以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  用按钮输入相应内容  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=91126)

--  作者:蓝蚂蚁
--  发布时间:2016/9/29 22:37:00
--  用按钮输入相应内容

实现功能:在表A中提取数据到表B中,如果表A里面的单元格为空,则不提取。用下面的代码是能够把表A里面的数据提取到表B中,但表B中第一列不知道该如何填上去。

先传代码:

DataTables("表B").DataRows.Clear \'每次按按钮清除表B的内容
dim f As New Filler
f.SourceTable = DataTables("表A") \'指定数据来源
f.SourceCols ="货架A_出库金额,货架A_出库数量" \'指定数据来源列
f.DataTable = DataTables("表B") \'指定数据接收表
f.Filter = Tables("表A").Filter & iif(Tables("表A").Filter > ""," and ","") & " 货架A_出库金额 is not null"
f.DataCols="金额,数量" \'指定数据接收列
f.Fill() \'填充数据

\'【我的问题:如果" 货架A_出库金额 is not null" ,如何在表B的第一列第一行填上“货架A ”】
f.SourceTable = DataTables("表A") \'指定数据来源
f.SourceCols ="货架B_出库金额,货架B_出库数量" \'指定数据来源列
f.DataTable = DataTables("表B") \'指定数据接收表
f.Filter = Tables("表A").Filter & iif(Tables("表A").Filter > ""," and ","") & " 货架B_出库金额 is not null"
f.DataCols="金额,数量" \'指定数据接收列
f.Fill() \'填充数据

\'【我的问题:如果" 货架B_出库金额 is not null" ,如何在表B的第一列第二行填上“货架B ”】
f.SourceTable = DataTables("表A") \'指定数据来源
f.SourceCols ="货架C_出库金额,货架C_出库数量" \'指定数据来源列
f.DataTable = DataTables("表B") \'指定数据接收表
f.Filter = Tables("表A").Filter & iif(Tables("表A").Filter > ""," and ","") & " 货架C_出库金额 is not null"
f.DataCols="金额,数量" \'指定数据接收列
f.Fill() \'填充数据

\'【我的问题:如果" 货架C_出库金额 is not null" ,如何在表B的第一列第三行填上“货架C ”】

 

 表A内容和结构


此主题相关图片如下:gg01.jpg
按此在新窗口浏览图片

 

 

表B用代码得出的内容和结构

此主题相关图片如下:gg02.jpg
按此在新窗口浏览图片

 

 

表B想要的理想结果(主要是想增加紫色方框里面的内容)

 
此主题相关图片如下:gg03.jpg
按此在新窗口浏览图片

 

 

不想用表头横向变竖向的方法,因为我要过滤掉表A中为空的单元格。麻烦老师能抽个时间帮帮忙,在此先谢过了,提前祝老师国庆节快乐!


[此贴子已经被作者于2016/9/29 22:41:33编辑过]

--  作者:蓝蚂蚁
--  发布时间:2016/9/29 22:39:00
--  

实例

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:货架.zip


--  作者:有点蓝
--  发布时间:2016/9/29 22:50:00
--  
也就只能用横向变竖向的方法

Dim dr As Row
For Each r As Row In Tables("表A").Rows
    For i As Integer = 0 To Tables("表A").Cols.Count - 1 Step 2
        If r.IsNull(i) = False Then
            dr = Tables("表B").AddNew
            dr("货架") = Tables("表A").Cols(i).name.Split("_")(0)
            dr("金额") = r(i)
            dr("数量") = r(i+1)
        End If
    Next
Next