以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 数据填充出问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=111107) |
-- 作者:aza520 -- 发布时间:2017/12/15 10:50:00 -- 数据填充出问题 我在窗口的一个按钮写了如下代码,想实现这样的功能:从“S征地明细"表(分页加载)提取数据生成一个能统计后台数据的”征地统计表“,然后将”征地统计表“中的对应列填充到”S计量统计表“中,希望每次点击按钮都能将”征地统计表“中与”S计量统计表“不重复的数据列填入,重复的则不填入。 但我写的代码,每每次点击都会出现重复填充,而且有填充列不对应的情况。求老师指教 |
-- 作者:aza520 -- 发布时间:2017/12/15 10:52:00 -- 代码如下: Dim b As New GroupTableBuilder("征地统计表",DataTables("S征地明细")) b.Groups.AddDef("项目名称") \'根据产品分组 b.Groups.AddDef("县区") \'根据产品分组 b.Groups.AddDef("第几期结算") \'根据产品分组 b.Totals.AddDef("征地数量") \'对数量进行统计 b.FromServer = True b.Build \'生成统计表 MainTable = Tables("征地统计表") \'打开生成的统计表 Dim Cols1() As String = {"项目名称","县区","第几期结算","征地数量"}\'指定数据来源列 Dim Cols2() As String = {"项目名称","县区","第几期结算","本期结算征地数量"}\'指定数据接收表 For Each dr1 As DataRow In DataTables("征地统计表").Select("[第几期结算] > 0") Dim dr2 As DataRow = DataTables("S征地计量统计表").AddNew() For i As Integer = 0 To Cols1.Length -1 dr2(Cols2(i)) = dr1(Cols1(i)) Next Next Dim Vals As List(of String()) Vals = DataTables("征地统计表").GetValues("项目名称|县区|第几期结算|征地数量") For i As Integer = 0 To Vals.Count - 1 Dim dr As DataRow = DataTables("S征地计量统计表").AddNew() dr("第几期结算") = Vals(i)(0) |
-- 作者:有点甜 -- 发布时间:2017/12/15 11:05:00 -- 填充之前,先查找
Dim Cols1() As String = {"项目名称","县区","第几期结算","征地数量"}\'指定数据来源列 |
-- 作者:aza520 -- 发布时间:2017/12/15 11:15:00 -- 老师,重复填充的问题解决了,但还是出现有县区列填充到第几期结算列的情况 |
-- 作者:有点甜 -- 发布时间:2017/12/15 11:25:00 -- 以下是引用aza520在2017/12/15 11:15:00的发言:
老师,重复填充的问题解决了,但还是出现有县区列填充到第几期结算列的情况
下面这段代码?如果不需要,你不可以删掉?
Dim Vals As List(of String())
Vals = DataTables("征地统计表").GetValues("项目名称|县区|第几期结算|征地数量")
For i As Integer = 0 To Vals.Count - 1
Dim dr As DataRow = DataTables("S征地计量统计表").AddNew()
dr("第几期结算") = Vals(i)(0)
|
-- 作者:aza520 -- 发布时间:2017/12/15 11:31:00 -- 我相填充的时候不填充”第几期结算“为0的数据,或者怎么样在生成”征地统计表“的时候不生成”第几期结算“为0的行 |
-- 作者:有点甜 -- 发布时间:2017/12/15 11:33:00 -- For Each dr1 As DataRow In DataTables("征地统计表").Select("[第几期结算] > 0")
Vals = DataTables("征地统计表").GetValues("项目名称|县区|第几期结算|征地数量", "[第几期结算] > 0") |
-- 作者:aza520 -- 发布时间:2017/12/15 11:34:00 -- 可以了,谢谢老师指点 |
-- 作者:aza520 -- 发布时间:2017/12/15 11:46:00 -- 我想在填充时先清空”S计量统计表“的所有数据,然后再进行填充,增回这个代码显示错误: If e.DataTableName = "S计量统计表" Then e.Filter = "[_Identify] Is Null" End If |
-- 作者:有点甜 -- 发布时间:2017/12/15 12:03:00 -- 删除数据,参考
DataTables("S征地计量统计表").DataRows.Clear |