以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  请教如何把这种竖表转换成表  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=68444)

--  作者:gryy
--  发布时间:2015/5/18 11:25:00
--  请教如何把这种竖表转换成表

请教,如何根据表A内容动态生成表B那种格式,并把数据匹配过去
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


如果在一个批号里的用的同一种物料用了2个批次,要单独一行
http://www.foxtable.com/help/index.html?n=0679.htm
帮助里有个,我这个有点复杂,请各位指教下,谢谢

--  作者:大红袍
--  发布时间:2015/5/18 11:50:00
--  

 

Dim dtb As New DataTableBuilder("交叉表")
dtb.AddDef("批号", Gettype(String), 32)
For Each lx As String In DataTables("表A").GetValues("物料类型")
    For Each wl As String In DataTables("表A").GetValues("物料", "物料类型 = \'" & lx & "\'")
        dtb.AddDef(lx & "_" & wl & "_用量", Gettype(Double))
        dtb.AddDef(lx & "_" & wl & "_批次", Gettype(String))
        dtb.AddDef(lx & "_" & wl & "_来源", Gettype(String))
    Next
Next
dtb.Build()

Dim dt As DataTable = DataTables("交叉表")
For Each r As Row In Tables("表A").Rows
    Dim cname As String =  r("物料类型") & "_" & r("物料")
    Dim fdr As DataRow = dt.Find("批号 = \'" & r("批号") & "\' and " & cname & "_用量" & " Is null")
    If fdr Is Nothing Then
        fdr = dt.AddNew
        fdr("批号") = r("批号")
    End If
    fdr(cname & "_用量") = r("使用量")
    fdr(cname & "_批次") = r("批次")
    fdr(cname & "_来源") = r("来源")
Next


--  作者:gryy
--  发布时间:2015/5/18 16:02:00
--  
学习,谢谢