Foxtable(狐表)用户栏目专家坐堂 → [求助] 这个事件代码如何设置?


  共有21501人关注过本帖树形打印复制链接

主题:[求助] 这个事件代码如何设置?

帅哥哟,离线,有人找我吗?
wcs
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1034 积分:7408 威望:0 精华:0 注册:2008/8/31 22:52:00
[求助] 这个事件代码如何设置?  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1034 积分:7408 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2009/4/2 15:21:00 [只看该作者]

年、月、日 是从其他数据库中查询追加进来的。

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33951 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1034 积分:7408 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2009/4/2 15:32:00 [只看该作者]

设置一下转换?

试试!

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33951 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1034 积分:7408 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By: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
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 好心情 一级勋章
等级:超级版主 帖子:715 积分:5564 威望:0 精华:1 注册:2008/8/31 20:45:00
  发帖心情 Post By:2009/4/2 15:55:00 [只看该作者]

&符号前后要有空格

 回到顶部
帅哥哟,离线,有人找我吗?
wcs
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1034 积分:7408 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2009/4/2 15:58:00 [只看该作者]

已试过了,还是出相同的错误!

[此贴子已经被作者于2009-4-2 15:59:59编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
smileboy
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 好心情 一级勋章
等级:超级版主 帖子:715 积分:5564 威望:0 精华:1 注册:2008/8/31 20:45:00
  发帖心情 Post By:2009/4/2 16:05:00 [只看该作者]

传文件看看

 回到顶部
总数 19 1 2 下一页