以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  用按钮统计数据问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96112)

--  作者:feixianzhi
--  发布时间:2017/2/13 15:23:00
--  用按钮统计数据问题

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目9.rar

 

我想实现:

 

全年应返数量=合同表中财务编号对应的批发表和入库表中返利编号和高开编号对应的数量之和。

 

全年应返金额=合同表中财务编号对应的批发表和入库表中返利编号和高开编号对应的返利应返金额+高开应返金额。

 

全年已返数量=合同表中财务编号对应的收缴表中财务编号对应的收缴数量之和。

 

全年已返金额=合同表中财务编号对应的收缴表中财务编号对应的收缴金额之和。

 

全年未返数量=全年应返数量-全年已返数量

 

全年未返金额=全年应返金额-全年已返金额

 

第一季度应返数量=合同表中财务编号对应的批发表和入库表中返利编号和高开编号对应的单据日期为第一季度的数量之和。

 

第一季度应返金额=合同表中财务编号对应的批发表和入库表中返利编号和高开编号对应的单据日期为第一季度的返利应返金额+高开应返金额。

 

第一季度计提数量=全年未返数量

 

第一季度计提金额=全年未返金额

 

第二季度至第四季度应返数量、第二季度至第四季度应返金额,计算方式与第一季度相同。

 

第二季度计提数量=全年未返数量-第一季度计提数量

 

第二季度计提金额=全年未返金额-第一季度计提金额

 

第三季度计提数量=全年未返数量-第一季度计提数量-第二季度计提数量

 

第三季度计提金额=全年未返金额-第一季度计提金额-第二季度计提金额

 

第四季度计提数量、计提金额,以此类推。

 

我用窗口做了五个按钮,分别按上述要求统计全年数据、第一季度数据、第二季度数据、第三季度数据、第四季度数据。

按各个按钮后,首先弹出一个提示框,询问是否统计当前数据。如,点击全年统计按钮时,首先弹出“是否统计全年数据?”对话框,点“是”则统计,点“否”则退出。

 

请各位老师帮忙,我不想用表事件,这五个按钮的代码怎么写?

 


--  作者:feixianzhi
--  发布时间:2017/2/13 15:37:00
--  
请各位老师帮忙呀。
--  作者:有点色
--  发布时间:2017/2/13 15:57:00
--  

汗,你写这么多,还不如看一眼帮助文档。

 

统计 http://www.foxtable.com/webhelp/scr/0548.htm

 

条件 http://www.foxtable.com/webhelp/scr/1647.htm

 

日期条件 http://www.foxtable.com/webhelp/scr/2720.htm

 


--  作者:feixianzhi
--  发布时间:2017/2/13 16:42:00
--  
有点色老师,麻烦问一下,如果我点击“全年统计”按钮,出现一个对话框,上面显示,“是否统计全年数据”,有“是”和“否”两个钮,按是,继续统计,按否,则不统计退出。代码怎么写?
--  作者:有点色
--  发布时间:2017/2/13 17:13:00
--  
Dim rst As DialogResult = MessageBox.Show("你确认要删除", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)
If rst = DialogResult.Yes Then
    CurrentTable.Current.Delete
Else
    msgbox("点击了 否 ")
End If

--  作者:feixianzhi
--  发布时间:2017/2/14 7:58:00
--  
For Each dr As DataRow In DataTables("合同表").Select("")
    \'全年应返数量
    Dim dt1 As DataTable=DataTables("批发表")
    Dim dt2 As DataTable=DataTables("入库表")
    Dim dt3 As DataTable=DataTables("收缴表")
    Dim YFSL1 As Double = dt1.Compute("sum(数量)", "高开编号 = \'" & dr("财务编号") & "\'")
    Dim YFSL2 As Double = dt1.Compute("sum(数量)", "返利编号 = \'" & dr("财务编号") & "\'")
    Dim YFSL3 As Double = dt2.Compute("sum(数量)", "高开编号 = \'" & dr("财务编号") & "\'")
    Dim YFSL4 As Double = dt2.Compute("sum(数量)", "返利编号 = \'" & dr("财务编号") & "\'")
    dr("全年应返数量") = YFSL1 + YFSL2+ YFSL3+ YFSL4
    \'全年应返金额
    Dim YFJE1 As Double = dt1.Compute("sum(返利应返金额)", "返利编号 = \'" & dr("财务编号") & "\'")
    Dim YFJE2 As Double = dt1.Compute("sum(高开应返金额)", "高开编号 = \'" & dr("财务编号") & "\'")
    Dim YFJE3 As Double = dt2.Compute("sum(返利应返金额)", "返利编号 = \'" & dr("财务编号") & "\'")
    Dim YFJE4 As Double = dt2.Compute("sum(高开应返金额)", "高开编号 = \'" & dr("财务编号") & "\'")
    dr("全年应返金额") = YFJE1 + YFJE2+ YFJE3+ YFJE4
    
    \'全年已返数量
    Dim FHSL As Double = dt3.Compute("sum(收缴数量)", "财务编号 = \'" & dr("财务编号") & "\'")
    dr("全年已返数量") = FHSL
    
    \'全年已返金额
    Dim FHJE As Double = dt3.Compute("sum(收缴金额)", "财务编号 = \'" & dr("财务编号") & "\'")
    dr("全年已返金额") = FHJE
    
    \'全年未返数量
    dr("全年未返数量")= dr("全年应返数量")-dr("全年已返数量")
    dr("全年未返金额")= dr("全年应返金额")-dr("全年已返金额")
Next

有点色老师,上面的代码是,点击按钮后,依据财务编号统计全年应返数量、全年应返金额、全年已返数量、全年已返金额、全年未返数量、全年未返金额。

但当合同表财务编号有一行为空时,则出错。我想怎么加一段代码,当财务编号为空时,上述统计列数值为零,而不出错。代码怎样改?

--  作者:feixianzhi
--  发布时间:2017/2/14 8:40:00
--  
请有点色老师帮忙呀。
--  作者:有点蓝
--  发布时间:2017/2/14 8:53:00
--  
出什么错?

8楼的代码不应该出错的,就算合同表财务编号是空值,计算结果也就是0

--  作者:feixianzhi
--  发布时间:2017/2/14 9:31:00
--  
.NET Framework 版本:2.0.50727.3649
Foxtable 版本:2016.7.29.1
错误所在事件:窗口,数据统计,Button1,Click
详细错误信息:
无法在 System.Double 和 System.String 上执行“=”操作。


有点蓝老师,错误提示是这样的。

--  作者:有点色
--  发布时间:2017/2/14 9:42:00
--  

类似这样改一下

 

    Dim YFSL1 As Double = dt1.Compute("sum(数量)", "高开编号 = " & val(dr("财务编号")))
    Dim YFSL2 As Double = dt1.Compute("sum(数量)", "返利编号 = " & val(dr("财务编号")))
    Dim YFSL3 As Double = dt2.Compute("sum(数量)", "高开编号 = " & val(dr("财务编号")))
    Dim YFSL4 As Double = dt2.Compute("sum(数量)", "返利编号 = " & val(dr("财务编号")))