以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 条件查询组合统计 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=45768) |
||||
-- 作者:xh2207 -- 发布时间:2014/2/10 18:52:00 -- 条件查询组合统计 请教:如何实现“需求材料”窗口的条件查询功能? ![]() ![]()
|
||||
-- 作者:有点甜 -- 发布时间:2014/2/10 20:16:00 -- 在你原本的按钮代码上改了一下,如下。建议用sql语句直接执行更好,会简洁很多 Dim Filter As String With e.Form.Controls("combobox1") If .Value IsNot Nothing Then Filter = "parent.项目类别 = \'" & .Value & "\'" End If End With With e.Form.Controls("combobox2") If .Value IsNot Nothing Then If Filter > "" Then Filter = Filter & " And " End If Filter = Filter & "parent.项目名称 = \'" & .Value & "\'" End If End With \'------------------ Dim bd1 As New GroupTableBuilder("统计表1",DataTables("申报材料明细表")) Dim dt1 As fxDataSource bd1.Groups.AddDef("存货编码") \'根据型号分组 bd1.Filter = filter bd1.Totals.AddDef("数量","申报材料_数量") \'对数量进行统计 \'bd1.Totals.AddDef("金额","进货_金额") \'对金额进行统计 dt1 = bd1.BuildDataSource() Dim bd2 As New GroupTableBuilder("统计表2",DataTables("项目内调拨材料明细表")) Dim dt2 As fxDataSource bd2.Groups.AddDef("存货编码") \'根据型号分组 bd2.Filter = filter bd2.Totals.AddDef("数量","项目内调拨_数量") \'对数量进行统计 \'bd2.Totals.AddDef("金额","销售_金额") \'对金额进行统计 dt2 = bd2.BuildDataSource() Dim bd3 As New GroupTableBuilder("统计表3",DataTables("利库材料明细表")) Dim dt3 As fxDataSource bd3.Groups.AddDef("存货编码") \'根据型号分组 bd3.Filter = filter bd3.Totals.AddDef("数量","利库材料_数量") \'对数量进行统计 \'bd3.Totals.AddDef("金额","退货_金额") \'对金额进行统计 dt3 = bd3.BuildDataSource() dt1.Combine("存货编码",dt2,"存货编码") \'将销售统计数据组合到进货统计数据 dt1.Combine("存货编码",dt3,"存货编码") \'将退货统计数据组合到进货统计数据 \'DT1.SHOW("DT1") Tables("需求材料_Table1").DataSource = dt1 \'将统计结果绑定到Table If Relations.Contains("关联1") Relations.Delete("关联1") Else Relations.Add("关联1",DataTables("存货档案").DataCols("存货编码"),DataTables("需求材料_Table1").DataCols("存货编码")) End If If DataTables("需求材料_Table1").DataCols.Contains("材料名称型号规格") DataTables("需求材料_Table1").DataCols("材料名称型号规格").Expression = "Parent.材料名称型号规格" Else DataTables("需求材料_Table1").DataCols.Add("材料名称型号规格", Gettype(String),"Parent.材料名称型号规格") End If Relations.Delete("关联1") \'Tables("组合统计_Table1").SetColVisibleWidth("存货编码|90|材料名称及规格|200|申报材料|120|申报材料_数量|120|项目内调拨|120|项目内调拨_数量|120|利库材料|120|利库材料_数量|120|需求合计|120|需求合计_数量|120") With DataTables("需求材料_Table1").DataCols \'用表达式列计算库存数据 .Add("需求合计_数量",Gettype(Integer), "IsNull([申报材料_数量],0) + ISNULL([项目内调拨_数量],0) + ISNULL([利库材料_数量],0)") \' .Add("需求_金额",Gettype(Double), "([申报材料_数量],0)*[申报材料_金额] +([项目内调拨_数量],0)*[项目内调拨_金额] + ([利库材料_数量],0) *[利库材料_金额] ") End With Tables("需求材料_Table1").SetColVisibleWidth("存货编码|90|材料名称型号规格|200|申报材料|120|申报材料_数量|120|项目内调拨|120|项目内调拨_数量|120|利库材料|120|利库材料_数量|120|需求合计|120|需求合计_数量|120") |
||||
-- 作者:xh2207 -- 发布时间:2014/2/10 21:51:00 -- 谢谢,有点甜!还是简单的提问好点,否则变成上一话题了,老师弄不明问啥问题。 |
||||
-- 作者:xh2207 -- 发布时间:2014/2/14 23:20:00 -- 请问各大侠或有点甜老师,原查询的条件是combobox2里的内容,现将查询的条件换成出库或入库窗体中当前行的项目名称,"需求查询"和导入的 代码如何修改? 目的是想达到如下功能: 1、在出库窗口点击存货编码,弹出“材料需求”窗体,点击需求查询,查询到出库窗体主表中当前行的项目名称需求材料数量,然后按导入按键,将复选框中所选的材料导到出库明细表中。 2、在入库窗口点击存货编码,弹出“材料需求”窗体,点击需求查询,查询到入库窗体主表中当前行的项目名称需求材料数量,然后按导入按键,将复选框中所选的材料导到出库明细表中。 能实现该功能,这样就达到根据需求定量出入库的功能。请各大侠赐教,无尽感激。谢谢!
|
||||
-- 作者:有点甜 -- 发布时间:2014/2/15 22:26:00 -- 如下
|
||||
-- 作者:xh2207 -- 发布时间:2014/2/16 23:27:00 -- 先谢谢有点甜老师的帮助,还没达到要求的功能,应是我描述得不够清楚。现我将已完成入仓窗体的导入功能,剩余的出仓导入需求材料不知怎修改代码,请指导帮助,谢谢!
![]() ![]() |