回 帖 发 新 帖 刷新版面

主题:求助:怎样将olecontrol1的时间格式填进我的代码里

老师好
我用olecontrol1来做时间查询用,但怎么样才能和我的代码联贯呢?底下
sele 地址,count(*) from 表2 where 时间 (thisform.olecontrol1.value) group by 地址 into table 临时地址

(thisform.olecontrol1.value)估计不对,怎样写呢?请指教

回复列表 (共5个回复)

沙发

olecontrol1对象的时间或日期格式,关键要看你用的是那个ActiveX控件,用的“MSComCtl2.DTPicker.2”控件,其代表当前值的属性为“_Value”,其实在VFP9中调用怎么ActiveX控件的实例时,你都可以在属性窗口查看相关属性,属性名大多代表的意义都是相同的,只是有部份特殊的,你可以一个一个属性的读取其值查看,我学习一个ActiveX控件就采用此办法,看每个属性在操作中发生了什么变化并根据属性名称判断其作用,像日期时间类型的ActiveX控件可能你在一两个小时内其本上就能很好的运用它。

板凳

选取方法:在form control上点击OLEcontrol,点击表单,出现对话框,选择MicroSoft date and time picker cont。是用MicroSoft date and time picker control 这个OLE控件。加了半天不行,请老师指教。以后我慢慢学。

3 楼

MicroSoft date and time picker control 此控件就是我上面说的那一个,控件值的对应属性就是“_value”,但要注意此值为日期时间型,你要使用肯定要知道这一点。
如果你的“时间”字段是日期型则要把此属性值转换成日期型:
NowValue=ttod(thisform.olecontrol1._value)&&把日期时间转换日期型
你上面的查询改为如下:
sele 地址,count(*) from 表2 where 时间=NowValue group by 地址 into table 临时地址

4 楼

[quote]选取方法:在form control上点击OLEcontrol,点击表单,出现对话框,选择MicroSoft date and time picker cont。是用MicroSoft date and time picker control 这个OLE控件。加了半天不行,请老师指教。以后我慢慢学。[/quote]

这个控件如果取整个值是一个日期时间型,类型是T,用cast()可转换各种类型,取值方法;=Thisform.Olecontrol1._value

如果取单个年月日的值它是一个字符形,类型是C,用cast()可转换各种类型,取值方法:年=ALLTRIM(STR(Thisform.Olecontrol1.Year))
    月=ALLTRIM(STR(Thisform.Olecontrol1.Month))
    日=ALLTRIM(STR(Thisform.Olecontrol1.day))

    当月和日是一位数组成字符串时,应添加'0'
  date_n=ALLTRIM(STR(Thisform.Olecontrol1.Year))
  date_y=IIF(LEN(ALLTRIM(STR(Thisform.Olecontrol1.Month)))=1,('0'-ALLTRIM(STR(Thisform.Olecontrol1.Month))),ALLTRIM(STR(Thisform.Olecontrol1.Month)))
  date_r=IIF(LEN(ALLTRIM(STR(Thisform.Olecontrol1.day)))=1,('0'-ALLTRIM(STR(Thisform.Olecontrol1.day))),ALLTRIM(STR(Thisform.Olecontrol1.day)))
   REPLACE 报表日期 WITH date_n-'.'-date_y-'.'-date_r

5 楼

两位老师好
二楼我能看懂点,按着做,行啦。
三楼我看的不大懂,我下载了,慢慢学习吧。
先谢谢两位老师啦

我来回复

您尚未登录,请登录后再回复。点此登录或注册