以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [已解决]用数据表的值作为临时表列名,并同步数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=51912) |
||||
-- 作者:xinqingok -- 发布时间:2014/6/5 14:11:00 -- [已解决]用数据表的值作为临时表列名,并同步数据 如下图所示,现有名为“主表”的数据表,有"A""B""C""D"四列。 现在想: 1,自动新建临时表,其中临时表的表名为“主表”中B列的值(重复的值只计一次)【如图,自动新建名为“张三”,“王二”的临时表】 此主题相关图片如下:4.png 2,如下图,临时表中的列名,来自主表D列的值(重复只计一次),且自动复制主表C列的值到对应的列下【如图,新建的名为“张三”的临时表中,有“电视”“汽车”两列,且这两列的值来自主表中“电视”“汽车”对应的C列值。同理,临时表“王二”也是如此。】 请各位高手不吝赐教,代码要怎样写才能实现这样的功能,或者大体思路是怎样,我现在一点头绪都没有。 感谢。 例子已上传
[此贴子已经被作者于2014-6-5 15:37:14编辑过]
|
||||
-- 作者:Bin -- 发布时间:2014/6/5 14:13:00 -- 图挂了. 上传图片和文件参考这里http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=78 请尽量使用IE,谷歌,火狐等主流浏览器上传. 使用谷歌浏览器必须要先输入一个以上的字符 上传后需要等文件代码出现才算成功! 类似的问题,有例子才好办,最好就把文件传上来.
|
||||
-- 作者:xinqingok -- 发布时间:2014/6/5 14:20:00 -- 图片已修复, 待会上传例子 |
||||
-- 作者:Bin -- 发布时间:2014/6/5 14:31:00 -- 数据源也要发上来. |
||||
-- 作者:xinqingok -- 发布时间:2014/6/5 14:37:00 -- 大哥sorry 一时疏忽,改成内部源了。
|
||||
-- 作者:Bin -- 发布时间:2014/6/5 15:01:00 -- For Each n As String In DataTables("主表").GetValues("B") Dim dtb As New DataTableBuilder(n) Dim dlist As List(of String) = DataTables("主表").GetValues("D","B=\'" & n & "\'") For Each d As String In dlist dtb.AddDef(d, Gettype(Integer)) Next dtb.Build() For Each d As String In dlist For Each dr As DataRow In DataTables("主表").Select("B=\'" & n & "\' and D=\'" & d & "\'") Dim drr As DataRow = DataTables(n).Find(d & " is null") If drr Is Nothing Then drr = DataTables(n).AddNew End If drr(d)=dr("C") Next Next Next
|
||||
-- 作者:xinqingok -- 发布时间:2014/6/5 15:39:00 -- 问题解决 感谢大哥。太帅了 |
||||
-- 作者:xinqingok -- 发布时间:2014/6/7 2:25:00 -- 回复:(Bin)For Each n As String In DataTables("主... 大哥,今天用你的代码开始写项目,出状况了。如图,生成的临时表全错位了。我的主表叫"rtpcr",生成的临时表里每列的数据都是接着前一列的行号来的,导致前面都是空的。
按钮代码为: For Each n As String In DataTables("rtpcr").GetUniqueValues( "Target is not null","Target") Dim dtb As New DataTableBuilder(n) Dim dlist As List(of String) = DataTables("rtpcr").GetUniqueValues("Target=\'" & n & "\'","sample") For Each d As String In dlist dtb.AddDef(d, Gettype(string), 40) Next dtb.Build() For Each d As String In dlist For Each dr As DataRow In DataTables("rtpcr").Select("Target=\'" & n & "\' and sample=\'" & d & "\'") Dim drr As DataRow = DataTables(n).Find(d & " is null") If drr Is Nothing Then drr = DataTables(n).AddNew End If drr(d)=dr("Quantity") Next Next Next 我找原因找了一晚上了,没有发现问题出在哪,大哥有时间的话帮我看看吧,谢谢 [此贴子已经被作者于2014-6-7 2:27:55编辑过]
|