老师您好:之前我忽略了一个问题,“客户往来明细表”中,原来设定的往来查询“开始日期”是月初1日,结束日期是月底(可以跨月查询),这样的话,“上期余额”是正确的。现在我想到一个问题,比如截图1中李四的客户“杭州市”12月20日到12月25日都有业务往来此主题相关图片如下:截图1.png
我在查询时“开始日期”选12月21日,“结束日期”选12月25日
此主题相关图片如下:截图2.png
生成报表时“上期余额”无法显示12月20日的往来
此主题相关图片如下:截图3.png
报表事件中的代码能帮我改下吗?“上期余额”显示为“客户往来查询”中“开始日期”控件前一天及之前的余额。
Select Case e.Book.TempLate
Case "客户往来明细账"
If Forms("客户往来查询").Opened AndAlso Forms("客户往来查询").Controls("startdate").text > ""
Dim Filter As String = "业务员 = '" & e.DataRow("业务员") & "' and 客户名称 = '" & e.DataRow("客户名称") & "'"
Dim d As Date = Forms("客户往来查询").Controls("startdate").value
If d.Month > 1 Then
Dim fd As Date = new Date(d.Year,1,1)
Dim ld As Date = new Date(d.Year,d.Month,1)
Filter &= " and 日期 >= #" & fd & "# and 日期 < #" & ld & "#"
End If
Dim s1 = DataTables("客户往来明细表").Compute("Sum(应收账款)",Filter)
Dim s2 = DataTables("客户往来明细表").Compute("Sum(已收账款)",Filter)
vars("上期余额") = s1 - s2
vars("应收余额") = s1 - s2
Else
vars("应收余额") = 0
vars("上期余额") = 0
End If
End Select
谢谢老师!