以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于跨表引用数据进行组合数据表问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=194721) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:刘效功天津 -- 发布时间:2025/1/8 11:19:00 -- 关于跨表引用数据进行组合数据表问题
专家老师好!
现在有2个原始数据表 (表A 表B) 1个数据组合表 (表C) 表A ,表B 的 平面分区 与 立面分区 作为索引的关键列 在表C中进行数据组合 组合的结果就是表C 结构 想要实现的功能: 1 就是在分区相同的数据整合到一起(如 第一分区 第1分区) 在此基础上 每一个平面分格代号
与该分区下的所有立面分格代号进行组合 相应的数据 对应填入
如 B1 H1
100 1100
B1 H2
100 1200
B2 H1 200 1200
B2 H2 200 1200
依此类推
2 表C数据整合完后,如果以后再对表A,,表B
扩充追加数据, 表C原已整合完的数据不动, 还是在上述整合数据的原则下,在表C中增加追加新的扩充数据 我采用咱们的
数据填充器,手工编码数据填充的方式 以及咱们常规的跨表引用数据的方式进行了多次尝试,一点也没实现所需的功能,对这种数据整合代码一点也没摸着头脑,束手无策 请老师看看关于这种情况代码怎么写,谢谢老师 下面是我在maintablechanged事件中写入的代码, If MainTable.Name = "表C" Then \'如果选择的主表是订单表
Dim f As New Filler f.SourceTable =
DataTables("表A") \'指定数据来源 f.SourceCols = "平面分区, 平面分格代号, 平面分格尺寸"
\'指定数据来源列 f.DataTable =
DataTables("表C") \'指定数据接收表 f.DataCols = "平面分区, 平面分格代号, 平面分格尺寸"
\'指定数据接收列 f.ExcludeExistValue = True \'排除接收表中已经存在的重复值 f.Fill() \'填充数据 f.SourceTable =
DataTables("表B ") \'指定数据来源 f.SourceCols = "立面分区, 立面分格代号, 立面分格尺寸"
\'指定数据来源列 f.DataTable =
DataTables("表C") \'指定数据接收表 f.DataCols = "立面分区, 立面分格代号, 立面分格尺寸"
\'指定数据接收列 \' f.Filter =
"system.DBNull(DataTables("表C ").DataCols("平面分格代号"))" f.ExcludeExistValue = True \'排除接收表中已经存在的重复值 f.Fill() \'填充 End If \'Dim Vals As List(Of String()) \'Vals = DataTables("表B").GetValues("立面分格代号|立面分格尺寸") \'For i As Integer = 0 To Vals.Count - 1 \' Dim dr As DataRow =
DataTables("表C").AddNew() \' dr("立面分格代号") = Vals(i)(0) \' dr("立面分格尺寸") = Vals(i)(1) \'Next |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2025/1/8 11:46:00 -- 无法使用填充,只能遍历处理 dim a1() as string = {"第一分区","第二分区"} dim a2() as string = {"第1分区","第2分区"} for i as integer = 0 to a1.length - 1 for each dr1 as datarow in datatables("A").select("平面分区=‘“ & a1(i) & ”’") for each dr2 as datarow in datatables("B").select("立面分区=‘“ & a2(i) & ”’") dim r as row = tables("C").addnew r("平面分区") = a1(i) r("立面分区") = a2(i) r("平面分格代号") = dr1 ("平面分格代号") r("立面分格代号") = dr2 ("立面分格代号") next next next
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:刘效功天津 -- 发布时间:2025/1/8 14:27:00 -- 老师好,按您的代码,它还是老报错,说没找到数组中的元素“第一分区”的列,您再给看看,我把测试文件给您也发过去,看究竟问题出在哪儿,谢谢老师 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:刘效功天津 -- 发布时间:2025/1/8 14:28:00 -- 老师好,按您的代码,它还是老报错,说没找到数组中的元
素“第一分区”的列,您再给看看,我把测试文件给您也发过去,看究竟问题出在哪儿,谢谢老师 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2025/1/8 14:36:00 -- 使用英文的逗号和双引号 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:刘效功天津 -- 发布时间:2025/1/8 14:57:00 -- 老师好,我还专门在咱们得杂项菜单的执行窗口中写的数组元素,然后复制到代码中,还从咱们得帮助文件中复制的数组,改了一下名称,但是还是老报错,说找不到数组元素“第一分区” ,上面发的示例文件,您看看究竟问题在哪儿 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:刘效功天津 -- 发布时间:2025/1/8 15:25:00 -- 老师您好,我用了英文半角双引号和逗号,怎么还是不行,还是报同样的错,测试文件给您前面发过去了,您测试一下,能不能实现所需的功能要求,看看究竟是哪儿的问题,谢谢老师 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2025/1/8 15:42:00 -- 肯定还是没有改为英文半角双引号和逗号 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:刘效功天津 -- 发布时间:2025/1/8 15:58:00 -- 我再试试,谢谢老师! |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:刘效功天津 -- 发布时间:2025/1/8 16:48:00 -- 谢谢老师,问题解决了,还真是出在双引号和单引号上,我开始一直盯着数组上的双引号,逗号,后来是合成表达式上的双引号和逗号 谢谢老师 另外,这段代码我是放在mainTableChanged事件中,发觉这是从2个表中提出数据,经过循环合成表的数据就多了1倍,我算过了本来是26行数据,但只要是切换一次,就增价52行数据,这样多出来的数据就搞乱了,怎么添加点代码,不管切换多少次,它都是26行代码, 您说这段代码是放在mainTableChanged事件中好,还是放在其它事件中好 谢谢老师
|