Foxtable(狐表)用户栏目专家坐堂 → 用按钮统计数据问题


  共有1826人关注过本帖树形打印复制链接

主题:用按钮统计数据问题

帅哥哟,离线,有人找我吗?
feixianzhi
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:4002 威望:0 精华:0 注册:2016/6/7 7:45:00
用按钮统计数据问题  发帖心情 Post By:2017/2/13 15:23:00 [显示全部帖子]

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

 

我想实现:

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

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

 

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
feixianzhi
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:4002 威望:0 精华:0 注册:2016/6/7 7:45:00
  发帖心情 Post By:2017/2/13 15:37:00 [显示全部帖子]

请各位老师帮忙呀。

 回到顶部
帅哥哟,离线,有人找我吗?
feixianzhi
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:4002 威望:0 精华:0 注册:2016/6/7 7:45:00
  发帖心情 Post By:2017/2/13 16:42:00 [显示全部帖子]

有点色老师,麻烦问一下,如果我点击“全年统计”按钮,出现一个对话框,上面显示,“是否统计全年数据”,有“是”和“否”两个钮,按是,继续统计,按否,则不统计退出。代码怎么写?

 回到顶部
帅哥哟,离线,有人找我吗?
feixianzhi
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:4002 威望:0 精华:0 注册:2016/6/7 7:45:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:4002 威望:0 精华:0 注册:2016/6/7 7:45:00
  发帖心情 Post By:2017/2/14 8:40:00 [显示全部帖子]

请有点色老师帮忙呀。

 回到顶部
帅哥哟,离线,有人找我吗?
feixianzhi
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:4002 威望:0 精华:0 注册:2016/6/7 7:45:00
  发帖心情 Post By:2017/2/14 9:31:00 [显示全部帖子]

.NET Framework 版本:2.0.50727.3649
Foxtable 版本:2016.7.29.1
错误所在事件:窗口,数据统计,Button1,Click
详细错误信息:
无法在 System.Double 和 System.String 上执行“=”操作。


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

 回到顶部
帅哥哟,离线,有人找我吗?
feixianzhi
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:4002 威望:0 精华:0 注册:2016/6/7 7:45:00
  发帖心情 Post By:2017/2/14 10:24: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(数量)", "高开编号 = '" & 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("财务编号")))
    dr("全年应返数量") = YFSL1 + YFSL2+ YFSL3+ YFSL4
    '全年应返金额
    Dim YFJE1 As Double = dt1.Compute("sum(返利应返金额)", "返利编号 = '" & val(dr("财务编号")))
    Dim YFJE2 As Double = dt1.Compute("sum(高开应返金额)", "高开编号 = '" & val(dr("财务编号")))
    Dim YFJE3 As Double = dt2.Compute("sum(返利应返金额)", "返利编号 = '" & val(dr("财务编号")))
    Dim YFJE4 As Double = dt2.Compute("sum(高开应返金额)", "高开编号 = '" & val(dr("财务编号")))
    dr("全年应返金额") = YFJE1 + YFJE2+ YFJE3+ YFJE4
    
    '全年已返数量
    Dim FHSL As Double = dt3.Compute("sum(收缴数量)", "财务编号 = '" & val(dr("财务编号")))
    dr("全年已返数量") = FHSL
    
    '全年已返金额
    Dim FHJE As Double = dt3.Compute("sum(收缴金额)", "财务编号 = '" & val(dr("财务编号")))
    dr("全年已返金额") = FHJE
    
    '全年未返数量
    dr("全年未返数量")= dr("全年应返数量")-dr("全年已返数量")
    dr("全年未返金额")= dr("全年应返金额")-dr("全年已返金额")
Next

有点色老师,我把代码改成以上这样,结果出现如下错误提示:




 Framework 版本:2.0.50727.3649
Foxtable 版本:2016.7.29.1
错误所在事件:窗口,数据统计,Button1,Click
详细错误信息:
表达式包含无效的字符串常量: '201600001。




 回到顶部
帅哥哟,离线,有人找我吗?
feixianzhi
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:4002 威望:0 精华:0 注册:2016/6/7 7:45:00
  发帖心情 Post By:2017/2/14 10:38: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(数量)", "高开编号 = '" & 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("财务编号")))
    dr("全年应返数量") = YFSL1 + YFSL2+ YFSL3+ YFSL4
    '全年应返金额
    Dim YFJE1 As Double = dt1.Compute("sum(返利应返金额)", "返利编号 = '" & val(dr("财务编号")))
    Dim YFJE2 As Double = dt1.Compute("sum(高开应返金额)", "高开编号 = '" & val(dr("财务编号")))
    Dim YFJE3 As Double = dt2.Compute("sum(返利应返金额)", "返利编号 = '" & val(dr("财务编号")))
    Dim YFJE4 As Double = dt2.Compute("sum(高开应返金额)", "高开编号 = '" & val(dr("财务编号")))
    dr("全年应返金额") = YFJE1 + YFJE2+ YFJE3+ YFJE4
    
    '全年已返数量
    Dim FHSL As Double = dt3.Compute("sum(收缴数量)", "财务编号 = '" & val(dr("财务编号")))
    dr("全年已返数量") = FHSL
    
    '全年已返金额
    Dim FHJE As Double = dt3.Compute("sum(收缴金额)", "财务编号 = '" & val(dr("财务编号")))
    dr("全年已返金额") = FHJE
    
    '全年未返数量
    dr("全年未返数量")= dr("全年应返数量")-dr("全年已返数量")
    dr("全年未返金额")= dr("全年应返金额")-dr("全年已返金额")
Next

出现如下错误提示,是怎么回事。

.NET Framework 版本:2.0.50727.3649
Foxtable 版本:2016.7.29.1
错误所在事件:窗口,数据统计,Button1,Click
详细错误信息:
表达式包含无效的字符串常量: '201600001。


 回到顶部
帅哥哟,离线,有人找我吗?
feixianzhi
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:4002 威望:0 精华:0 注册:2016/6/7 7:45:00
  发帖心情 Post By:2017/2/14 10:56: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(数量)", "高开编号 = '" & 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("财务编号")))
    dr("全年应返数量") = YFSL1 + YFSL2+ YFSL3+ YFSL4
    '全年应返金额
    Dim YFJE1 As Double = dt1.Compute("sum(返利应返金额)", "返利编号 = '" & val(dr("财务编号")))
    Dim YFJE2 As Double = dt1.Compute("sum(高开应返金额)", "高开编号 = '" & val(dr("财务编号")))
    Dim YFJE3 As Double = dt2.Compute("sum(返利应返金额)", "返利编号 = '" & val(dr("财务编号")))
    Dim YFJE4 As Double = dt2.Compute("sum(高开应返金额)", "高开编号 = '" & val(dr("财务编号")))
    dr("全年应返金额") = YFJE1 + YFJE2+ YFJE3+ YFJE4
    
    '全年已返数量
    Dim FHSL As Double = dt3.Compute("sum(收缴数量)", "财务编号 = '" & val(dr("财务编号")))
    dr("全年已返数量") = FHSL
    
    '全年已返金额
    Dim FHJE As Double = dt3.Compute("sum(收缴金额)", "财务编号 = '" & val(dr("财务编号")))
    dr("全年已返金额") = FHJE
    
    '全年未返数量
    dr("全年未返数量")= dr("全年应返数量")-dr("全年已返数量")
    dr("全年未返金额")= dr("全年应返金额")-dr("全年已返金额")
Next



但出现如下错误提示:


.NET Framework 版本:2.0.50727.3649
Foxtable 版本:2016.7.29.1
错误所在事件:窗口,数据统计,Button1,Click
详细错误信息:
表达式包含无效的字符串常量: '201600001。



这是怎么回事?

 回到顶部
帅哥哟,离线,有人找我吗?
feixianzhi
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:4002 威望:0 精华:0 注册:2016/6/7 7:45:00
  发帖心情 Post By:2017/2/14 10:56:00 [显示全部帖子]

不好意思,发重了。


 回到顶部
总数 15 1 2 下一页