以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [讨论]年度统计  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=108435)

--  作者:江南小镇
--  发布时间:2017/10/23 9:29:00
--  [讨论]年度统计
老师,下面代码统计不出数据。

If e.DataCol.name = "年份" OrElse e.DataCol.name = "客户名称" Then
    If e.DataRow.Isnull("年份") = False AndAlso e.DataRow.Isnull("客户名称") = False Then
        Dim filter As String = "客户 = \'" & e.DataRow("客户名称") & "\'"
        For i As Integer = 1 To 12
            Dim d As Date = new Date(val(e.DataRow("年份")), i, 1)
            Dim sum As Integer = DataTables("出库明细").compute("sum(出库_价税合计)", filter & " and 出库日期 >= #" & d & "# and 出库日期 < #" & d.addmonths(1) & "#")
            e.DataRow("M" & i) = sum
        Next
    Else
        For i As Integer = 1 To 12
            e.DataRow("M" & i) = Nothing
        Next
    End If
End If

--  作者:有点甜
--  发布时间:2017/10/23 9:58:00
--  

1、加入msgbox,看是否进入执行了代码;

 

2、例子发上来测试。


--  作者:江南小镇
--  发布时间:2017/10/23 11:43:00
--  
老师,好了。
--  作者:江南小镇
--  发布时间:2017/10/23 12:55:00
--  
老师,我要从进销存表中把筛选后的每个年度、来源、客户列的字段引用到统计表中,
--  作者:有点甜
--  发布时间:2017/10/23 13:24:00
--  
以下是引用江南小镇在2017/10/23 12:55:00的发言:
老师,我要从进销存表中把筛选后的每个年度、来源、客户列的字段引用到统计表中,

 

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.CommandText = "SELECT DISTINCT year(日期) as 年, 编号,数量 from {表C}"
dt = cmd.ExecuteReader()
For Each dr As DataRow In dt.datarows
    output.show(dr("年"))
Next


--  作者:江南小镇
--  发布时间:2017/10/23 14:25:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:图像 2.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2017/10/23 15:18:00
--  

参考5楼代码。不会写,上传具体例子测试。


--  作者:江南小镇
--  发布时间:2017/10/23 15:42:00
--  
老师,我要引用进销存的日期、来源、客户ID、客户名称列到统计表中。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:统计.rar


--  作者:有点甜
--  发布时间:2017/10/23 15:55:00
--  
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim t As Table = Tables("进销存")
Dim filter = iif(t.filter > "", t.filter, "1=1")
cmd.CommandText = "SELECT DISTINCT year(日期) as 年, 来源,客户ID,客户名称 from {进销存} where " & filter
dt = cmd.ExecuteReader()
For Each dr As DataRow In dt.datarows
    Dim ndr As DataRow = DataTables("年度统计").addnew
    ndr("年份") = dr("年")
    ndr("来源") = dr("来源")
    ndr("客户名称") = dr("客户名称")
Next

--  作者:江南小镇
--  发布时间:2017/10/23 22:15:00
--  
老师,上面代码报错
.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2017.4.22.1
错误所在事件:
详细错误信息:
Microsoft Jet 数据库引擎找不到输入表或查询 \'~TMPCLP进销存\'。 确定它是否存在,以及它的名称的拼写是否正确。