以下是引用jujinfang在2005-4-13 11:59:17的发言:
日期的输入:我想用下拉列表的形式输入日期,但遇到大小月天数和闰年2月天数的问题。
对此我仍想用查询方式解决:
年表year.dbf(年份year、闰年判断[逻辑]true)//年份下拉表list1
月表month.dbf(月份month、大小月判断[逻辑]true)//月份下拉表list2
31天日表31_day.dbf(日day)
1个供查询用的日表inday.dbf//日下拉表list3
下面是我用SQL语言编的部分编程,但不知错在哪里:
delete from inday.dbf //清空inday.dbf记录
if thisfrom.list2.month="02" //2月
if thisfrom.list1.true=.T. //闰年
select * into inday.dbf from 31_day.dbf where day<30 //29天
else select * into inday.dbf from 31_day.dbf where day<29 //否则28天
endif
else
if thisfrom.list2.true=.T. //大月
select * into inday.dbf from 31_day.dbf //31天
else select * into inday.dbf from 31_day.dbf where day<31 //否则30天
endif
endif
这段代码不知错在什么地方。应该还有更简单的方法,希望“大虾”们指点。(不想用日历表的方式)
另外,希望能提供《书羊农历控件1.65》的使用教程,谢谢!如果还有其他农历控件及使用说明,也希望告知。谢谢啦!——
delete file inday.dbf //清空inday.dbf记录
if thisfrom.list2.month="02" //2月
if thisform.list1.true=.T. //闰年
select * from 31_day.dbf where day<30 into table inday.dbf //29天
else
select * from 31_day.dbf where day<29 into table inday.dbf //否则28天
endif
else
if thisform.list2.true=.T. //大月
select * from 31_day.dbf into table inday.dbf //31天
else
select * from 31_day.dbf where day<31 into table inday.dbf //否则30天
endif
endif
另一种方法:
1.建两个下拉列表框(分别选择月(YueSelect)日(RiSelect));
2.将月下拉列表框的RowSourceType的值设为1 Value ,RowSource的值设为
01,02,03,04,05,06,07,08,09,10,11,12
3.在月下拉列表框的Valid事件中写入如下代码:
#DEFINE RiValue "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31"
if this.value="02" //2月
if thisform.list1.true=.T. //闰年
this.parent.riSelect.value=left(rivalue1,len(Rivalue1)-6)
else
this.parent.riSelect.value=left(rivalue1,len(Rivalue1)-9) //否则28天
endif
else
if thisform.list2.true=.T. //大月
this.parent.riSelect.value=Rivalue1 //31天
else
this.parent.RiSelect.value=left(rivalue1,len(Rivalue1)-3) //否则30天
endif
endif
[此贴子已经被作者于2005-4-18 15:35:24编辑过]