我们现有有一个表,表中的记录为:20230101 ,20230102,20230103,20230104..。。。共50条记录,我现在想把这记录,当作表头标题数据,然后根据表头的标题数据,查到另一个表中的记录,显示在列中
此主题相关图片如下:1704176555897.png
一种方法:就是通过遍历,把这些数据写入指定的单元格中,可是找不到这样的控件(相当于VB中的文本表格)。
还有一种,就是通过SQL,把列值转到行值,然后再循环判断,把对应的值关联进去。这个有点麻烦,也不知能不能实现
这个【想要得到的表】,是临时表还是已经存在的表?50条记录可能就会有50个列,还会不会有500条、5000条记录?表格不可能有这么多列的
最多排90天的,就90个列。我本打算不用表
,只用一个容器能像表一样展示。我用循环把这个数值写到指定的单元格中。如果不行,必须得用临时表,我应该咋操作?
此主题相关图片如下:1704186292475.png
我想是不是,我先建一个90列的临时表,然后再填数据,标题放在第一行,其它的对应的日期的记录,放第二行,第三行最后显示出来?
http://www.foxtable.com/webhelp/topics/0679.htm
Dim dtb As New DataTableBuilder("统计表)
Dim Products As List(Of String) = DataTables("表1").GetValues("日期")
For Each v As String In Products
dtb.AddDef(v, Gettype(string),16)
Next
dtb.Build()
For Each v As String In Products
For Each dr As datarow In DataTables("表2").select("日期='" & v & "'")
Dim dr1 As DataRow = DataTables("统计表").find(v & " is null")
if dr1 is nothing
dr1 = DataTables("统计表").AddNew()
end if
dr1(dr("日期")) = dr("工单")
Next
Next
MainTable = Tables("统计表")