以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]表A多列多值跨表转单行 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=193291) |
-- 作者:185723664 -- 发布时间:2024/9/2 10:10:00 -- [求助]表A多列多值跨表转单行 ![]() ![]() 求助表A多列值变化时,自动拆分到表B
|
-- 作者:有点蓝 -- 发布时间:2024/9/2 10:13:00 -- http://www.foxtable.com/webhelp/topics/2965.htm |
-- 作者:185723664 -- 发布时间:2024/9/2 10:42:00 -- 回复:(有点蓝)http://www.foxtable.com/webhelp/to... 蓝大师,上楼教程 垂直表和水平表的转换 单元格不是多值,1个单元格多值行拆分多行的教程有吗? |
-- 作者:有点蓝 -- 发布时间:2024/9/2 10:47:00 -- 一样的,多一个循环而已,在遍历所有行的时候,再把多值split拆分后遍历即可 |
-- 作者:y2287958 -- 发布时间:2024/9/2 12:27:00 -- DataTables("表B").DataRows.Clear For Each 行 As DataRow In DataTables("表A").DataRows For Each 科目 As String In "事宜|环境|成本".Split("|") For Each 事宜 As String In 行.Lines(科目) Dim 新增行 As DataRow = DataTables("表B").AddNew 新增行("编号") = 行("编号") 新增行("国家") = 行("国家") 新增行("科目") = 科目 新增行("表A多列多值跨表转单行") = 事宜 Next Next Next
|
-- 作者:185723664 -- 发布时间:2024/9/2 14:51:00 -- 回复:(y2287958)DataTables("表B").DataRows.Clear... 感谢,前辈高手 蓝大师 交学费,收徒吗? 前辈、蓝大师,增加一个判断,如果表b已经存在就不新增行,还有如果表a删除这行,表b也删除这行,代码怎么写?这个对我来说太难了 DataTables("表B").DataRows.Clear For Each 行 As DataRow In DataTables("表A").DataRows For Each 科目 As String In "事宜|环境|成本".Split("|") For Each 事宜 As String In 行.Lines(科目) Dim dr As DataRow = DataTables("表B").Find("编号 = " & "\'" & e.DataRow("编号") & "\' and 国家 = " & "\'" & e.DataRow("国家") & "\' and 成本 = " & "\'" & e.DataRow("成本") & "\'") If dr IsNot Nothing\' Then Then如果找到,则设置各列内容 Dim 新增行 As DataRow = DataTables("表B").AddNew 新增行("编号") = 行("编号") 新增行("国家") = 行("国家") 新增行("科目") = 科目 新增行("表A多列多值跨表转单行") = 事宜 End If Next Next Next [此贴子已经被作者于2024/9/2 15:13:01编辑过]
|
-- 作者:y2287958 -- 发布时间:2024/9/2 16:36:00 -- For Each 行 As DataRow In DataTables("表A").DataRows For Each 科目 As String In "事宜|环境|成本".Split("|") For Each 表A多列多值跨表转单行 As String In 行.Lines(科目) Dim 编号 As String = 行("编号") Dim 国家 As String = 行("国家") Dim 查找行 As DataRow = DataTables("表B").Find("编号 = \'" & 编号 & "\' and 国家 = \'" & 国家 & "\' and 科目 = \'" & 科目 & "\' and 表A多列多值跨表转单行 = \'" & 表A多列多值跨表转单行 & "\'") If 查找行 Is Nothing Then Dim 新增行 As DataRow = DataTables("表B").AddNew 新增行("编号") = 行("编号") 新增行("国家") = 行("国家") 新增行("科目") = 科目 新增行("表A多列多值跨表转单行") = 表A多列多值跨表转单行 End If Next Next Next
|
-- 作者:185723664 -- 发布时间:2024/9/2 17:49:00 -- 回复:(y2287958)For Each 行 As DataRow In DataTa... 前辈、高手 发现一个问题,表A修改 多值中的一行值“吊顶”,改成“吊顶22” 表B 吊顶,这行没删,有点问题
求助 : 如果要表B里有这行,表A里没这行,单元格绘制 样式1 这样如果就能发现问题 |
-- 作者:有点蓝 -- 发布时间:2024/9/2 19:31:00 -- 这种到表事件处理,参考:http://www.foxtable.com/webhelp/topics/1453.htm |