起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 253|回复: 8

日期时间型数据的表现**

[复制链接]
发表于 2007-5-16 12:38:35 | 显示全部楼层 |阅读模式
数据库表中有一个字段为日期时间型,设置其表现形式为日期时间。运行后的表现效果为下拉框。使用下拉框选择时只能选择日期,而不能修改时间。并且当字段有值时,我想设置为今日今时,无法操作,好像这个控件默认只取日期,时间是上次的时间值。这样在操作和日期字段修改时做验证时很麻烦。请问能不能和DataTimePicker控件一样,设置它的显示格式为upDown啊?
回复

使用道具 举报

 楼主| 发表于 2007-5-16 14:33:25 | 显示全部楼层
ding
回复 支持 反对

使用道具 举报

发表于 2007-5-16 14:52:05 | 显示全部楼层
数据库表中有一个字段为日期时间型,设置其表现形式为日期时间。运行后的表现效果为下拉框。使用下拉框选择时只能选择日期,而不能修改时间。
怎么不能修改?你进入该字段,直接修改时间就可以了,你现在的现象是啥呢?根本就没有时间显示出来?还是显示不对

并且当字段有值时,我想设置为今日今时,无法操作,好像这个控件默认只取日期,时间是上次的时间值。
你是怎么设置今日今时,是用的“业务模型\系统空间\系统参数组\日期时间参数组\服务器今日今时” 这个参数吗?如果是不能啊,应该都取到了,他取的是操作系统的日期和时间,跟上次没有关系,


这样在操作和日期字段修改时做验证时很麻烦。请问能不能和DataTimePicker控件一样,设置它的显示格式为upDown啊?
请说说哪里麻烦?怎么个麻烦法呢?他本来就跟DataTimePicker类型的哦
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-16 15:43:39 | 显示全部楼层
老虎终于吭声了,嘿嘿。
是我表达不太清楚。我的意思是说,日期时间类型表现的是下拉框的形式,一般操作时就会通过选择日期的方式进行选择,而不是直接输入(直接输入当然没有问题了)。而选择时是没有时间的,只能选择日期。如果这个字段的值是空,我选择“转到今日”时,字段值就会是当前的日期;如果字段值 不为空时,我选择“转到今日”或其他日期时,字段值的日期部分会改变,但时间部分不会改变。
现在的问题是:我在FieldChange事件中写代码判断当日期改变时,日期不能大于当前的操作时间。这样的话在操作时就会出现问题。比如说,以前的日期是2007-05-15 18:00,我通过下拉框改为2007-05-16时,其返回的值就会变成2007-05-16: 18:00。而现在的时间是2007-05-16 14:00,这样就会触发验证代码,提示时间非法。我需要再改,岂不是麻烦?
虽然它本身就是DateTimePicker,可是DataTimePicker提供了一个属性,可是使表现变成右面显示上下箭头的样子(DateMode:=dmUpDown),这样不表现为下拉框的模式。可是这个属性没有输出,我如何才能设置成这种表现呢?
回复 支持 反对

使用道具 举报

发表于 2007-5-16 17:35:42 | 显示全部楼层
日期时间类型表现的是下拉框的形式,一般操作时就会通过选择日期的方式进行选择,而不是直接输入(直接输入当然没有问题了)。而选择时是没有时间的,只能选择日期。如果这个字段的值是空,我选择“转到今日”时,字段值就会是当前的日期;如果字段值 不为空时,我选择“转到今日”或其他日期时,字段值的日期部分会改变,但时间部分不会改变。
对,因为现在只能选择日期,时间只能输入,默认取的就是操作系统的时间。

我在FieldChange事件中写代码判断当日期改变时,日期不能大于当前的操作时间。这样的话在操作时就会出现问题。比如说,以前的日期是2007-05-15 18:00,我通过下拉框改为2007-05-16时,其返回的值就会变成2007-05-16: 18:00。而现在的时间是2007-05-16 14:00,这样就会触发验证代码,提示时间非法。我需要再改,岂不是麻烦?
这不需要通过代码来实现,直接设置字段的数据约束就可以了。约束条件就是 日期<=&[本地今日今时] 或者 日期<= &[服务器今日今时] 这样就可以了,在 数据约束错误信息 上填写自己的提示
具体参考《用户手册》第5章 数据字典 的相关说明。当然在数据集上也可以定义,参考《用户手册》第6章 业务信息 的相关说明
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-16 17:51:41 | 显示全部楼层
我只是举了个例子,其实要判断的东西还是很多的。不能仅仅通过约束条件实现的。
回复 支持 反对

使用道具 举报

发表于 2007-5-16 18:02:53 | 显示全部楼层
能说说还有啥,我的意思,既然选择平台,就充分利用平台提供的特性,少写代码。

不过你说其返回的值就会变成2007-05-16: 18:00。 应该是你输入有误了,不可能在日期和时间中间还要一个“:”这个符合,这是原因,不是判断麻烦,日期时间在数据库中,实际存放的值就是一个浮点,是可以判断大小的。
回复 支持 反对

使用道具 举报

发表于 2007-5-21 10:06:55 | 显示全部楼层
??
回复 支持 反对

使用道具 举报

发表于 2007-5-22 13:55:51 | 显示全部楼层
这个帖子我结了,有问题请重新起帖子
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-10 21:41 , Processed in 0.039621 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表