以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 分组统计求助 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=98052)
|
-- 作者:xywl
-- 发布时间:2017/3/23 12:36:00
-- 分组统计求助
项目发布后主要以窗口为主,我想实现控件写入代码实现导出分组统计,就是说不写在
BuildGroupHeader
里,写在按钮事件里,有没有示例参考?
|
-- 作者:有点蓝
-- 发布时间:2017/3/23 14:16:00
--
参考:http://www.foxtable.com/webhelp/scr/1145.htm
|
-- 作者:xywl
-- 发布时间:2017/3/23 17:16:00
--
在窗口控件中怎样取得另外一个窗口副本表的当前行
|
-- 作者:有点色
-- 发布时间:2017/3/23 17:48:00
--
以下是引用xywl在2017/3/23 17:16:00的发言:
在窗口控件中怎样取得另外一个窗口副本表的当前行
Dim t As Table = Forms("窗口2").Controls("Table2").Table
|
-- 作者:xywl
-- 发布时间:2017/4/19 15:40:00
--
我把代码写在报表事件里。现在想通过窗口的控件点击生成报表,那么在生成分组头前的要执行的要怎样引用,就是不用在菜单的打印输出那里点生成报表,在窗口里有个窗口点击导出就行,要把报表事件里的代码移到控件按钮里执行吗
|
-- 作者:有点色
-- 发布时间:2017/4/19 15:43:00
--
你的模板和你的报表事件都不需要改变,按钮里面加上2楼的代码即可。
|
-- 作者:xywl
-- 发布时间:2017/4/19 16:32:00
--
原来直接引用就好,那么我窗口中的是副本表,也就是说我想按副本表的数据生成报表,我动态改行吗
|
-- 作者:xywl
-- 发布时间:2017/4/19 16:33:00
--
Sheet(0,1).Value = Tables("zcxx").Current("gsmc") \'写入表名 Sheet(1,0).Value = "<GroupHeader,出库明细_table1,收货地址,1>"
这样应该不行
|
-- 作者:有点色
-- 发布时间:2017/4/19 16:34:00
--
以下是引用xywl在2017/4/19 16:32:00的发言:
原来直接引用就好,那么我窗口中的是副本表,也就是说我想按副本表的数据生成报表,我动态改行吗
1、你可以把模板改成你的窗口表,如 <窗口1_Table1> 这样设计。
2、你也可以用代码去修改模板的值 http://www.foxtable.com/webhelp/scr/2626.htm
|
-- 作者:xywl
-- 发布时间:2017/4/19 18:13:00
--
Dim sl As Integer = 0 For Each r As Row In Tables("商品出库_table1").GetCheckedRows If r("库位") = "库存不足" And r("库位") Is Nothing Then r.Checked = False Else r.Checked = True Dim pr As DataRow Dim filter As String filter = "Item = \'" & r("商品编号") & "\'" pr = DataTables("商品库存").Find(filter) If pr IsNot Nothing Then pr("待发库存") = pr("待发库存") + r("数量") pr("可用库存") = pr("可用库存") - r("数量") pr("实时库存") = pr("实时库存") - r("数量") pr.Save() End If Dim dr As DataRow = DataTables("商品库存明细").Find("货品编号 = \'" & r("商品编号") & "\' and 可用库存 >=" & r("数量")) If dr IsNot Nothing Then Dim d1 As Row = Tables("出库明细").AddNew() d1("订单编号") = r("订单编号") d1("商品编号") = r("商品编号") d1("出库日期") = r("出库日期") d1("中文名称") = r("中文名称") d1("中文描述") = r("中文描述") d1("单价") = r("单价") d1("出库数量") = r("数量") d1("净重") = r("净重") d1("单位") = r("单位") d1("经手人") = r("经手人") d1("有效期至") = r("有效期至") d1("生产日期") = r("生产日期") d1("经手人姓名") = r("经手人姓名") d1("库位") = dr("货格") d1("总价") = r("总价") d1("沃尔玛商品号") = r("沃尔玛商品号") d1("收货地址") = r("收货地址") d1("收货人") = r("收货人") d1("收货人电话") = r("收货人电话") d1("入库日期") = dr("入库日期") d1("入库数量") = dr("可用库存") d1("剩余库存") = dr("可用库存") - r("数量") If d1("剩余库存") > 0 Then dr("可用库存") = d1("剩余库存") dr("实时库存") = d1("剩余库存") \'Else If d1("剩余库存") = 0 Then \'dr.Delete() End If Else Dim count As Integer = 0 Dim drs As List(Of DataRow) = DataTables("商品库存明细").Select("货品编号 = \'" & r("商品编号") & "\' AND 可用库存 > 0", "生产日期, _Identify") Dim s As String = "" Dim cnt As Integer For i As Integer = 0 To drs.count - 1 Dim dr1 As DataRow = drs(i) count += dr1("可用库存") Dim sy As Integer = count - r("数量") \'s &= dr1("货格") & "," If sy >= 0 Then cnt = i Exit For End If Next Dim coun As Integer = 0 \'For k As Integer = 0 To cnt \'Dim dr3 As DataRow = drs(k) \'If k = cnt - 1 Then \'Exit For \'End If \'coun += dr3("可用库存") \'Next \' For j As Integer = 0 To cnt Dim d2 As Row = Tables("出库明细").AddNew() Dim dr2 As DataRow = drs(j) If j < cnt Then d2("订单编号") = r("订单编号") d2("商品编号") = r("商品编号") d2("出库日期") = r("出库日期") d2("中文名称") = r("中文名称") d2("中文描述") = r("中文描述") d2("单价") = r("单价") d2("出库数量") = dr2("可用库存") d2("净重") = r("净重") d2("单位") = r("单位") d2("经手人") = r("经手人") d2("有效期至") = r("有效期至") d2("生产日期") = r("生产日期") d2("经手人姓名") = r("经手人姓名") d2("库位") = dr2("货格") d2("总价") = r("总价") d2("沃尔玛商品号") = r("沃尔玛商品号") d2("收货地址") = r("收货地址") d2("收货人") = r("收货人") d2("收货人电话") = r("收货人电话") d2("入库日期") = dr2("入库日期") d2("入库数量") = dr2("可用库存") d2("剩余库存") = dr2("可用库存") - d2("出库数量") coun += dr2("可用库存") \'If d2("剩余库存") = 0 Then \'dr2.Delete() \'End If Else If j = cnt Then d2("订单编号") = r("订单编号") d2("商品编号") = r("商品编号") d2("出库日期") = r("出库日期") d2("中文名称") = r("中文名称") d2("中文描述") = r("中文描述") d2("单价") = r("单价") d2("出库数量") = r("数量") - coun d2("净重") = r("净重") d2("单位") = r("单位") d2("经手人") = r("经手人") d2("有效期至") = r("有效期至") d2("生产日期") = r("生产日期") d2("经手人姓名") = r("经手人姓名") d2("库位") = dr2("货格") d2("总价") = r("总价") d2("沃尔玛商品号") = r("沃尔玛商品号") d2("收货地址") = r("收货地址") d2("收货人") = r("收货人") d2("收货人电话") = r("收货人电话") d2("入库日期") = dr2("入库日期") d2("入库数量") = dr2("可用库存") d2("剩余库存") = dr2("可用库存") - d2("出库数量") If d2("剩余库存") > 0 Then dr2("可用库存") = d2("剩余库存") dr2("实时库存") = d2("剩余库存") \'Else If d2("剩余库存") = 0 Then \'dr2.Delete() End If End If Next End If sl = sl+1 End If Next DataTables("出库明细").Save() DataTables("商品库存明细").Save() MessageBox.Show("导入成功!本次有 " & Tables("商品出库_table1").Compute("Sum(数量)") & " 个商品数量,共计 " & sl & " 种新商品!") \'With DataTables("当天出库") \'.DataRows.Clear() \'清除所有行 \'End With For Each r As Row In Tables("当天出库").GetCheckedRows r.Delete Next DataTables("当天出库").Save() Dim d As Date = Date.Today Dim tr As WinForm.TreeView = Forms("商品出库").Controls("TreeView1") tr.BuildTree("出库明细", "订单编号","出库日期 = \'" & d & "\'") tr.Nodes.Insert("当天所有出库记录",0) For Each nd As WinForm.TreeNode In tr.AllNodes nd.ExpandAll Next
这段代码,想筛出副本表中不是库存不足或者空的的数据提交,如果选中,自动识别,满足要求的提交并且在最后删掉这些已提交的行,这样写好像没效果,不满足则不能选中
|