以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  获取最近一次的销售日期和销售数量和金额  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=98761)

--  作者:liu1992
--  发布时间:2017/4/6 14:55:00
--  获取最近一次的销售日期和销售数量和金额
想在表A中设计一个查询窗口,即:找出相同品种、相同等级、同一个入库年的商品,最近一次的销售时间、销售数量、销售总金额。
表A中有品种、级别、入库时间、销售时间、销售数量、销售总金额字段


[此贴子已经被作者于2017/4/10 13:09:46编辑过]

--  作者:liu1992
--  发布时间:2017/4/6 15:52:00
--  
老师们,帮忙解答下,谢谢~~~
--  作者:有点色
--  发布时间:2017/4/6 16:17:00
--  

1、你直接用saveExcel来做吧

 

http://www.foxtable.com/webhelp/scr/0559.htm

 

2、增加列,循环生成表格的每一行数据,去找到对应的行,贴入数据。


--  作者:liu1992
--  发布时间:2017/4/10 13:11:00
--  
您所说的“增加列,循环生成表格的每一行数据,去找到对应的行,贴入数据”,不是很明白,具体怎么写代码啊?
--  作者:有点色
--  发布时间:2017/4/10 14:46:00
--  

1、分组统计

 

http://www.foxtable.com/webhelp/scr/0158.htm

 

2、增加列

 

http://www.foxtable.com/webhelp/scr/1428.htm

 

3、查找数据

 

http://www.foxtable.com/webhelp/scr/0396.htm

 

4、不会做,请上传实例。


--  作者:liu1992
--  发布时间:2017/4/11 16:57:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb

烦请到窗口管理中查看。
1.在库存统计表内增加“平均库龄”,用“今天”—入库日期,每一个荒料编号为一个货品,形成以品名、等级、平均库龄为组统计,平均库龄=同一个品名下货品的库龄/总的货品数,单位:月。
2.统计同一个品名下、等级、相同库龄下,最近一次销售日期、最近一次销售量(即计价数量之和)、最近一次销售数(即荒料编号的个数)、最近一次销售金额、最近一次销售单价。


感谢老师辅导,我已经烦了好久了。。。
[此贴子已经被作者于2017/4/11 16:57:07编辑过]

--  作者:有点色
--  发布时间:2017/4/11 17:32:00
--  

 没看懂你说的 平均库龄 是什么意思,请举例说明。

 

 还有就是你说的最近一次指什么?同一天的都是最近一次?还是说最后一行数据?

 

 如果要引用其它表数据,参考代码

 

Dim sd As WinForm.DateTimePicker
Dim ed As WinForm.DateTimePicker
sd = e.Form.Controls("StartDate")
ed = e.Form.Controls("EndDate")
If sd.Value Is Nothing OrElse ed.Value Is Nothing Then
    MessageBox.Show("请输入起始日期和终止日期!","提示", MessageBoxButtons.OK ,MessageBoxIcon.Information)
Else
    \'荒料库存情况
    Dim g As New GroupTableBuilder("统计表1", DataTables("JKH荒料"))
    Dim dt1 As fxDataSource
    g.Groups.AddDef("中文品名")
    g.Groups.AddDef("级别")
    g.Totals.AddDef("荒料编号", AggregateEnum.Count, "荒料_库存_库存数(颗)")
    g.Totals.AddDef("计价数量","荒料_库存_库存量")
    g.Filter = "[荒料状态] = \'在库未出库\'"
   
    dt1 = g.BuildDataSource()
   
    \'荒料销售
    Dim g2 As New GroupTableBuilder("统计表2",DataTables("JKH荒料"))
    Dim dt2 As fxDataSource
    g2.Filter = "[荒料状态] = \'销售出库\' And [销售日期] >= \'" & sd.Value & "\' And [销售日期] <= \'" & ed.Value & "\'"
   
    g2.Groups.AddDef("中文品名")
    g2.Groups.AddDef("级别")
    g2.Totals.AddDef("荒料编号", AggregateEnum.Count, "荒料_期间内销售_数(颗)")
    g2.Totals.AddDef("计价数量","荒料_期间内销售_数量")
   
    dt2 = g2.BuildDataSource()
   
    Dim nms2 As String() = {"中文品名","级别"} \'指定连接列
    dt1.Combine(nms2,dt2,nms2)
   
    Tables("荒料库存及去化报表-投管用_Table1").DataSource = dt1
   
   
    Dim t As Table = Tables("荒料库存及去化报表-投管用_Table1")
    t.DataTable.DataCols.Add("最近一次销售日期", Gettype(Date))
    t.DataTable.DataCols.Add("最近一次销售量", Gettype(Double))
    t.DataTable.DataCols.Add("最近一次销售金额", Gettype(Double))
   
    For Each r As Row In t.Rows
        Dim fdr As DataRow = DataTables("JKH荒料").find("中文品名 = \'" & r("中文品名") & "\' and 级别 = \'" & r("级别") & "\'", "销售日期 desc")
        If fdr IsNot Nothing Then
            r("最近一次销售日期") = fdr("销售日期")
            r("最近一次销售量") = fdr("计价数量")
            r("最近一次销售金额") = fdr("销售金额")
        End If
    Next

   
End If

 

 


--  作者:有点色
--  发布时间:2017/4/11 17:36:00
--  

如果是把同一天的数据累加,参考代码

 

Tables("荒料库存及去化报表-投管用_Table1").DataSource = dt1
   
   
    Dim t As Table = Tables("荒料库存及去化报表-投管用_Table1")
    t.DataTable.DataCols.Add("最近一次销售日期", Gettype(Date))
    t.DataTable.DataCols.Add("最近一次销售量", Gettype(Double))
    t.DataTable.DataCols.Add("最近一次销售金额", Gettype(Double))
   
    For Each r As Row In t.Rows
        Dim dt As DataTable = DataTables("JKH荒料")
        Dim fdr As DataRow = dt.find("中文品名 = \'" & r("中文品名") & "\' and 级别 = \'" & r("级别") & "\'", "销售日期 desc")
        If fdr IsNot Nothing Then
            r("最近一次销售日期") = fdr("销售日期")
            Dim filter As String = "中文品名 = \'" & r("中文品名") & "\' and 级别 = \'" & r("级别") & "\' and 销售日期 = #" & fdr("销售日期") & "# "
            r("最近一次销售量") = dt.Compute("sum(计价数量)", filter)
            r("最近一次销售金额") = dt.Compute("sum(销售金额)", filter)

        End If
    Next