以下是引用mywisdom88在2016-4-30 21:13:00的发言:
*表单1
*在text1里输入 日期
local cp
cp=thisform.text1.value
*这里,你要保证你的 cp 是什么类型的,是日期?为了安全,你可以这样做
if type("cp")<>"D"
messagebox("参数错误,不是日期",16,"错误")
else
do form 未发货 with cp
endif
*怎么保证 thisform.text1.value 输入的是合法的日期呢?其实最好是把Text1设置为字符,不要设置为日期,然后通过函数转换CTOD()
*先初始化 Text1 为字符,在 Text1.init上写上
this.value=""
*设置 Text1 的输入格式 InputMask = 9999/99/99 ,这样 Text1 就只能输入数字
*然后转换
cp=ctod(thisform.text1.value)
if empty(cp)
messagebox("日期输入错误",16,"错误")
return
endif
*经过这样后,就能保证你 cp这个值一定是有效的日期了。
*上面的代码就修改为:
************************************************
*表单1
*在text1里输入 日期
local cp
cp=ctod(thisform.text1.value )
if empty(cp)
messagebox("参数错误,不是日期",16,"错误")
return
endif
do form 未发货 with cp
“为发货”表单内的init 代码如下
Lparameters lctr
if empty(lctr) or type("lctr")<>"D" &&参数为空,或者参数的类型不是日期
this.text1.value={} &&设置为 空的日期,此时,这里的 Text1 是日期型
else
this.text1.value=lctr
endif
*把 grid.init全部移动到 form.init 上
local dtime
dtime=thisform.text1.value
if empty(dtime)
thisform.text2.value="空"
else
thisform.text2.value="有日期"
endif
thisform.grid1.SetAll("DynamicBackColor", "IIF(detail.出货时间=dtime, RGB(0,0,255), IIF(detail.出货时间<dtime, RGB(255,0,0),RGB(255,255,255)))", "Column")
真的非常的奇怪
图片附件: 游客没有浏览图片的权限,请
登录 或
注册
Lparameters lctr
if empty(lctr) or type("lctr")<>"D" &&参数为空,或者参数的类型不是日期
this.text1.value={} &&设置为 空的日期,此时,这里的 Text1 是日期型
else
this.text1.value=lctr
endif
local dtime
dtime=thisform.text1.value
if empty(dtime)
thisform.text2.value="空"
else
thisform.text2.value="有日期"
endif
thisform.grid1.SetAll("DynamicBackColor", "IIF(detail.出货时间=dtime, RGB(0,0,255), IIF(detail.出货时间<dtime, RGB(255,0,0),RGB(255,255,255)))", "Column")
这施form 的init的代码
只要将thisform.grid1.SetAll("DynamicBackColor", "IIF(detail.出货时间=dtime, RGB(0,0,255), IIF(detail.出货时间<dtime, RGB(255,0,0),RGB(255,255,255)))", "Column")放在form的init就出错,放回grid里虽然没错,但变量又传递不过来
这个真的是百思不得其解
我明天想想办法将程序文档传上去来给大家看看
我看真的要用文档才能说清楚了