以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 编号 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=448) |
|
-- 作者:blackzhu -- 发布时间:2008/9/11 22:03:00 -- 编号 如果发生变化的是日期列,而且已经输入日期 If e.DataCol.Name = "日期" And e.Datarow.IsNull("日期") = False Then Dim dt As Date = e.DataRow("日期") \'获得输入的日期 \'计算编号 e.Datarow("编号") = Format(dt,"yyMMdd") & Format(e.DataTable.Compute("Count(日期)", "[日期] = #" & dt & "# And [_identify] < " & e.DataRow("_Identify")) + 1,"000") End If 我想问一下,如果变化的不是日期列,而是其他的什么任意列,但我要达到这样的效果,应该怎么写?我跟着你的代码修改过,但做不出了。 还有,如果我有一个日期列,在其他列输入数据时,日期列可以自动显示,易表我用IF函数加上TODAY就可以搞定,但狐表我用IIF做不出来,还有返回日期的函数是什么(TODAY()还是DATE())?我看了帮助有TODAY,DATE,DATEDAY,我一一试过都不行! |
|
-- 作者:smileboy -- 发布时间:2008/9/11 22:06:00 -- 1、e.DataCol.Name <>"日期".... 2、data.taday() |
|
-- 作者:blackzhu -- 发布时间:2008/9/12 12:30:00 -- 我可能太笨了,代码实在有一点不懂。如我在表达式中:字段IO为空值的时候,日期列为空值,否则返回当天的日期。这一个表达式怎么写,计算代码怎么写? |
|
-- 作者:kylin -- 发布时间:2008/9/12 12:35:00 -- iif (e.Datarow.IsNull("日期") = True and e.Datarow.IsNull("IO") = True ,DBNull.value,data.taday() ) |
|
-- 作者:lxl -- 发布时间:2008/9/12 12:57:00 -- 以下是引用blackzhu在2008-9-11 22:03:00的发言:
我想问一下,如果变化的不是日期列,而是其他的什么任意列,但我要达到这样的效果,应该怎么写?我跟着你的代码修改过,但做不出了。 If e.DataCol.Name = "日期" And e.Datarow.IsNull("日期") = False Then 以下是引用blackzhu在2008-9-12 12:30:00的发言: 我可能太笨了,代码实在有一点不懂。如我在表达式中:字段IO为空值的时候,日期列为空值,否则返回当天的日期。这一个表达式怎么写,计算代码怎么写? 这个不能写成表达式列,只能用数据列通过计算代码计算。(用表达式列会把所有记录的日期变成today) 其实翻来覆去都是这几个代码,只要理解了就简单了 |
|
-- 作者:blackzhu -- 发布时间:2008/9/12 13:10:00 -- 以下是引用kylin在2008-9-12 12:35:00的发言:
iif (e.Datarow.IsNull("日期") = True and e.Datarow.IsNull("IO") = True ,DBNull.value,data.taday() ) 我测试了一下,不行! |
|
-- 作者:kylin -- 发布时间:2008/9/12 14:23:00 -- 不好意思,太匆忙! |
|
-- 作者:blackzhu -- 发布时间:2008/9/12 17:47:00 -- LXL老师你太好了,这个代码我一定要学会它! |
|
-- 作者:blackzhu -- 发布时间:2008/9/12 17:48:00 -- 以下是引用lxl在2008-9-12 12:57:00的发言:
If e.DataCol.Name = "日期" And e.Datarow.IsNull("日期") = False Then 以下是引用blackzhu在2008-9-12 12:30:00的发言: 我可能太笨了,代码实在有一点不懂。如我在表达式中:字段IO为空值的时候,日期列为空值,否则返回当天的日期。这一个表达式怎么写,计算代码怎么写? 这个不能写成表达式列,只能用数据列通过计算代码计算。(用表达式列会把所有记录的日期变成today) 其实翻来覆去都是这几个代码,只要理解了就简单了 就是不理解才造成的。 |
|
-- 作者:blackzhu -- 发布时间:2008/9/13 13:52:00 -- If e.DataCol.Name = "IO" Then e.datarow("ID")= Format(e.DataTable.Compute("Count(IO)", "[IO] = #" & e.datarow("IO") & "# And [_identify] < " & e.DataRow("_Identify")) + 1,"000") END IF 我的意思是随着IO的变化而变化,如:IO#BEN3224 有三个记录,ID为1,2,3, IO#BEN3225 有四个记录,ID为1,2,3,4.我上面的代码是根据上面的日期编号改的,但显示不出,是函数不对还是代码完全错了?
|