以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  条件查询组合统计  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=45768)

--  作者:xh2207
--  发布时间:2014/2/10 18:52:00
--  条件查询组合统计
请教:如何实现“需求材料”窗口的条件查询功能?
图片点击可在新窗口打开查看此主题相关图片如下:条件查询组合.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新成(需求材料窗口条件查询组合).zip


--  作者:有点甜
--  发布时间: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、在入库窗口点击存货编码,弹出“材料需求”窗体,点击需求查询,查询到入库窗体主表中当前行的项目名称需求材料数量,然后按导入按键,将复选框中所选的材料导到出库明细表中。

能实现该功能,这样就达到根据需求定量出入库的功能。请各大侠赐教,无尽感激。谢谢!

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


--  作者:有点甜
--  发布时间:2014/2/15 22:26:00
--  
 如下

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


--  作者:xh2207
--  发布时间:2014/2/16 23:27:00
--  

先谢谢有点甜老师的帮助,还没达到要求的功能,应是我描述得不够清楚。现我将已完成入仓窗体的导入功能,剩余的出仓导入需求材料不知怎修改代码,请指导帮助,谢谢!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新成((完成入仓窗体未完成仓导入功能).zip


图片点击可在新窗口打开查看此主题相关图片如下:从入仓窗口导入代码.png
图片点击可在新窗口打开查看