Foxtable(狐表)用户栏目专家坐堂 → [求助]克隆含表达式行出错


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

主题:[求助]克隆含表达式行出错

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


加好友 发短信
等级:幼狐 帖子:52 积分:873 威望:0 精华:0 注册:2012/2/9 16:16:00
[求助]克隆含表达式行出错  发帖心情 Post By:2012/2/23 9:28:00 [只看该作者]

工资表中有一表达式列, [医疗保险] = [医疗基数] * 0.02 + 3,利用

For Each dr1 As DataRow In DataTables("工资表").Select("[月份]=MAX([月份])")
   Dim dr2 As DataRow = DataTables("工资表").AddNew()
   For Each dc As DataCol In DataTables("工资表").DataCols
           dr2(dc.name) = dr1(dc.name)
    Next

Next

克隆时,提示错误“医疗保险”列为只读。据观察,如果原行数值为空,复制后数值不再是空,而变为“0”。这样的话,对表达式的意义就不同了。

如何修改能避免克隆时出现此问题呢? 即有数值的克隆下来,空数值的仍然为空。


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/2/23 9:39:00 [只看该作者]

For Each dr1 As DataRow In DataTables("工资表").Select("[月份]=MAX([月份])")
   Dim dr2 As DataRow = DataTables("工资表").AddNew()
   For Each dc As DataCol In DataTables("工资表").DataCols

         if dc.Expression = "" then
              dr2(dc.name) = dr1(dc.name)

        end if
    Next
Next


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


加好友 发短信
等级:幼狐 帖子:52 积分:873 威望:0 精华:0 注册:2012/2/9 16:16:00
  发帖心情 Post By:2012/2/23 9:48:00 [只看该作者]

老师,改完后是不报错了,但如果医疗基数为空时,复制出的行数值仍然是0,医疗保险自然变为3,这样还是不对啊..

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/2/23 9:52:00 [只看该作者]


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


加好友 发短信
等级:幼狐 帖子:52 积分:873 威望:0 精华:0 注册:2012/2/9 16:16:00
  发帖心情 Post By:2012/2/23 10:04:00 [只看该作者]

IsNull的问题我考虑过,但在这里我觉得不能用啊,比如某个人没上保险,医疗基数不能为0,否则就扣医疗保险3元了.

现在问题就出在,原先是空值的复制后不再是空值而变成0了,对后面的表达式造成了影响。、

不知我理解的对不对


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


加好友 发短信
等级:幼狐 帖子:52 积分:873 威望:0 精华:0 注册:2012/2/9 16:16:00
  发帖心情 Post By:2012/2/23 10:11:00 [只看该作者]

图片点击可在新窗口打开查看

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/2/23 10:21:00 [只看该作者]

For Each dr1 As DataRow In DataTables("工资表").Select("[月份]=MAX([月份])")
    Dim dr2 As DataRow = DataTables("工资表").AddNew()
    For Each dc As DataCol In DataTables("工资表").DataCols
        If dc.Expression = ""  AndAlso dr1.IsNull(dc.name) = False  Then
            dr2(dc.name) = dr1(dc.name)
        End If
    Next
Next


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


加好友 发短信
等级:幼狐 帖子:52 积分:873 威望:0 精华:0 注册:2012/2/9 16:16:00
  发帖心情 Post By:2012/2/23 10:35:00 [只看该作者]

图片点击可在新窗口打开查看  谢谢!做笔记了...

之前我还有个问题没有搞妥,月份列如何改成“2012-02”这种格式,然后在克隆时月份自动递增到下个月


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/2/23 10:39:00 [只看该作者]

用Drawcell事件搞定

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


加好友 发短信
等级:幼狐 帖子:52 积分:873 威望:0 精华:0 注册:2012/2/9 16:16:00
  发帖心情 Post By:2012/2/23 10:58:00 [只看该作者]

帮助文档中Drawcell事件的例子很少啊,基本都是和单元格颜色有关的,不知从何下手

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