以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- [求助] 这个事件代码如何设置? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=2268)
|
-- 作者:wcs
-- 发布时间:2009/4/2 15:17:00
-- [求助] 这个事件代码如何设置?
if e.datacol.name = "年" orelse e.datacol.name = "月" orelse e.datacol.name = "日" then e.datarow("日期")=e.datarow("年")&"-"&e.datarow("月")&"-"&e.datarow("日") end if
在datachanged 事件中,我设置了上述代码。
年、月、日这三列的数据总是同时更新的,所以我设置为 orelse
但是,执行总是出错:“2009--”类型错,不能 记入日期列中。
后来,我设置为了 and
但是,执行以后,日期列为空值,不能触发事件!
请教各们如果计算“日期”列啊?
|
-- 作者:wcs
-- 发布时间:2009/4/2 15:21:00
--
年、月、日 是从其他数据库中查询追加进来的。
|
-- 作者:狐狸爸爸
-- 发布时间:2009/4/2 15:25:00
--
if e.datacol.name = "年" orelse e.datacol.name = "月" orelse e.datacol.name = "日" then dim txt As String = e.datarow("年")&"-"&e.datarow("月")&"-"&e.datarow("日") Dim Dt As Date If Date.TryParse(txt,dt) Then e.datarow("日期")=dt Else
e.datarow("日期")= nothing
end if end if
|
-- 作者:czy
-- 发布时间:2009/4/2 15:31:00
--
这样好象也可以。
Dim dr As DataRow = e.DataRow if e.datacol.name = "年" orelse e.datacol.name = "月" orelse e.datacol.name = "日" then if dr.IsNull("年") = false And dr.IsNull("月") = false And dr.IsNull("日") = false Then dr("日期")= CDate(dr("年") & "-" & dr("月") &"-"& dr("日")) End If end if
|
-- 作者:wcs
-- 发布时间:2009/4/2 15:32:00
--
设置一下转换?
试试!
|
-- 作者:czy
-- 发布时间:2009/4/2 15:34:00
--
呵,我的不好。还得加个分支才行。
Dim dr As DataRow = e.DataRow if e.datacol.name = "年" orelse e.datacol.name = "月" orelse e.datacol.name = "日" then if dr.IsNull("年") = false And dr.IsNull("月") = false And dr.IsNull("日") = false Then dr("日期")= CDate(dr("年") & "-" & dr("月") &"-"& dr("日")) Else dr("日期") = Nothing End If end if
|
-- 作者:wcs
-- 发布时间:2009/4/2 15:48:00
--
这个问题解决了,但是在datachanged事件中,还有这样一段代码:
if e.datacol.name = "账套编号" orelse e.datacol.name = "年" orelse e.datacol.name = "月" orelse e.datacol.name = "日" orelse e.datacol.name = "凭证类型" orelse e.datacol.name = "凭证编号" orelse e.datacol.name = "附件张数" then dim bm as string = e.datarow("凭证编号").tostring() e.datarow("关联") = e.datarow("账套编号")&" "&e.datarow("年")&"年"&e.datarow("月")&"月"&e.datarow("日")&"日"&e.datarow("凭证类型")&bm.PadLeft(4," ")&"号 附件"&e.datarow("附件张数") end if
这段代码的意思是,当"账套编号"、"年"等等列的内容发生变化时,就更新"关联"列的内容,其中 "凭证编号"转换了一下类型。
执行以后就出现这样的错误提示:
此主题相关图片如下:未命名.jpg
我是一段一段地测试代码的,可以确定就是这一段出错了。
[此贴子已经被作者于2009-4-2 15:49:13编辑过]
|
-- 作者:smileboy
-- 发布时间:2009/4/2 15:55:00
--
&符号前后要有空格
|
-- 作者:wcs
-- 发布时间:2009/4/2 15:58:00
--
已试过了,还是出相同的错误!
[此贴子已经被作者于2009-4-2 15:59:59编辑过]
|
-- 作者:smileboy
-- 发布时间:2009/4/2 16:05:00
--
传文件看看
|