Foxtable(狐表)用户栏目专家坐堂 → 动态合并数据的表达式如何设置


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

主题:动态合并数据的表达式如何设置

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


加好友 发短信
等级:幼狐 帖子:134 积分:996 威望:0 精华:0 注册:2018/9/13 16:41:00
动态合并数据的表达式如何设置  发帖心情 Post By:2022/10/17 12:32:00 [只看该作者]

在同一行中把第一列和第二列的内容合并显示到第三列里面的表达式如何设置,看帮助上是用Add或or 但是在里面没有找到,(1列 13   2列  52  3列显示 13-52)


勾选销售确认后把进货表里面这行复制到销货表里面去  现在是勾了没反应 去掉勾反而复制了,代码哪里错了
If e.DataCol.Name = "销售确认" AndAlso e.DataRow("销售确认") = True Then
    Dim nma() As String = {"产品编号"} 'A表数据来源列
    Dim nmb() As String = {"产品编号"} 'B表数据接收列
    Dim dr As DataRow = DataTables("销货表").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
    Next
  End If
[此贴子已经被作者于2022/10/17 13:22:07编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112449 积分:572525 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/10/17 13:31:00 [只看该作者]

1、如果使用表达式:第一列+'-'+第二列
如果是代码:e.DataRow("第三列") = e.DataRow("第一列") & "-" & e.DataRow("第二列")

2、
If e.DataCol.Name = "销售确认" 
if e.DataRow("销售确认") = True Then
    Dim nma() As String = {"产品编号"} 'A表数据来源列
    Dim nmb() As String = {"产品编号"} 'B表数据接收列
    Dim dr As DataRow = DataTables("销货表").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
    Next
endif
  End If

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


加好友 发短信
等级:幼狐 帖子:134 积分:996 威望:0 精华:0 注册:2018/9/13 16:41:00
  发帖心情 Post By:2022/10/17 13:34:00 [只看该作者]

图片点击可在新窗口打开查看
不行,报错

还是一样的,勾选不复制,去掉勾的时候就复制过去了
[此贴子已经被作者于2022/10/17 13:41:16编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112449 积分:572525 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/10/17 13:48:00 [只看该作者]

如果某个列不是字符型列,需转换一下
convert(第一列,'System.String') +'-'+第二列

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


加好友 发短信
等级:幼狐 帖子:134 积分:996 威望:0 精华:0 注册:2018/9/13 16:41:00
  发帖心情 Post By:2022/10/17 14:21:00 [只看该作者]

通过代码实现了,但是第三列上面会有-,如何实现第一和第二列上没有数据时第三列上面为空

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112449 积分:572525 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/10/17 14:33:00 [只看该作者]

判断一下第一和第二列:http://www.foxtable.com/webhelp/topics/0426.htm

示例二

列与列之间的计算,我们通常用表达式列来实现,但不是所有的计算都可以通过表达式来完成的。
例如员工表中有身份证号码、出生日期列,出生日期根据身份证号码计算得出。
为了自动计算出生日期,可以在员工表的DataColChanged事件中加入下面的代码:

If e.DataCol.Name = "身份证号码" Then '如果更改的是身份证号码列
    If e.DataRow.IsNull("身份证号码"Then '身份证号码是否为空
        e.
DataRow("出生日期") = Nothing '如果为空,则清除出生日期
    
Else
    
    '否则从身份证号码列中提取出生日期
        e.
DataRow("出生日期") = ReadBirthday(e.DataRow("身份证号码"))
    End
 If
End
 
If


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


加好友 发短信
等级:幼狐 帖子:134 积分:996 威望:0 精华:0 注册:2018/9/13 16:41:00
  发帖心情 Post By:2022/10/17 14:48:00 [只看该作者]

测试成功了,但是这里需要修改的有两列,用AND链接吗

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112449 积分:572525 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/10/17 14:55:00 [只看该作者]


 回到顶部