以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 代码问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=90268) |
||||
-- 作者:落叶孤影 -- 发布时间:2016/9/8 16:07:00 -- 代码问题 前段时间让“大红袍”老师写的代码,如下: 现在我想改成:如果sum3的值大于0时,执行 str &= i & "、" & dr("项目简称") & ":(1)当日资金可用余额:" & Format(dr("资金可用余额") ,"0.00") & "万元;(2)当日销售情况:现金收款" & Format(dr("当天收入截至当天17时_现金回款额") ,"0.00") & "万元;(3)当日共支出:" & Format(dr("支出合计") ,"0.00") & "万元;其中土地支出:" & Format(dr("当天支出截至当天17时_土地支出") ,"0.00") & "万元." 小于等于0时,执行: str &= i & "、" & dr("项目简称") & ":(1)当日资金可用余额:" & Format(dr("资金可用余额") ,"0.00") & "万元;(2)当日销售情况:现金收款" & Format(dr("当天收入截至当天17时_现金回款额") ,"0.00") & "万元;(3)当日共支出:" & Format(dr("支出合计") ,"0.00") & "万元." 请问代码该如何改啊?谢谢老师!
大红袍老师写的代码,如下: \'\'\' str &= vbcrlf |
||||
-- 作者:有点蓝 -- 发布时间:2016/9/8 16:22:00 -- For j As Integer = t.TopPosition To t.BottomPosition str &= i & "、" & dr("项目简称") & ":(1)当日资金可用余额:" & Format(dr("资金可用余额") ,"0.00") & "万元;(2)当日销售情况:现金收款" & Format(dr("当天收入截至当天17时_现金回款额") ,"0.00") & "万元;(3)当日共支出:" & Format(dr("支出合计") ,"0.00") & "万元;其中土地支出:" & Format(dr("当天支出截至当天17时_土地支出") ,"0.00") & "万元." else str &= i & "、" & dr("项目简称") & ":(1)当日资金可用余额:" & Format(dr("资金可用余额") ,"0.00") & "万元;(2)当日销售情况:现金收款" & Format(dr("当天收入截至当天17时_现金回款额") ,"0.00") & "万元;(3)当日共支出:" & Format(dr("支出合计") ,"0.00") & "万元." endif str &= vbcrlf |
||||
-- 作者:落叶孤影 -- 发布时间:2016/9/8 17:20:00 -- 执行上面的代码后,还是执行这段长的代码。而且sum3的值是等于0的。还请老师再给看看是哪里错了!谢谢 str &= i & "、" & dr("项目简称") & ":(1)当日资金可用余额:" & Format(dr("资金可用余额") ,"0.00") & "万元;(2)当日销售情况:现金收款" & Format(dr("当天收入截至当天17时_现金回款额") ,"0.00") & "万元;(3)当日共支出:" & Format(dr("支出合计") ,"0.00") & "万元;其中土地支出:" & Format(dr("当天支出截至当天17时_土地支出") ,"0.00") & "万元." |
||||
-- 作者:有点蓝 -- 发布时间:2016/9/8 17:27:00 -- msgbox(sum3)看看 [此贴子已经被作者于2016/9/8 17:27:29编辑过]
|
||||
-- 作者:落叶孤影 -- 发布时间:2016/9/8 17:39:00 -- 是改成 if msgbox(sum3) > 0 then 吗?如果是,代码也不对! [此贴子已经被作者于2016/9/8 17:40:18编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2016/9/8 17:45:00 -- 是让你弹出sum3的值看看 |
||||
-- 作者:落叶孤影 -- 发布时间:2016/9/8 17:51:00 -- 我觉得应该是sum3这个变量的值有问题,sum3是对整个表的支出合计列进行的求和,所以说sum3 >0执行长代码也是对的。应该再新增一个变量,对表中每行的支出合计列进行求和,这样的话思路就对了。就是我不会写代码,还麻烦老师给写一下,谢谢! |
||||
-- 作者:有点蓝 -- 发布时间:2016/9/8 18:03:00 -- 不明白你想要做什么。 重新整理下问题,详细说明,最好上例子
|
||||
-- 作者:落叶孤影 -- 发布时间:2016/9/8 19:11:00 --
此主题相关图片如下:qq图片20160908185925.png 我的意思是,只有支出合计列(图片中做标记那列)的数据大于0时,生成的WORD报表中才有这下这句话: 1、洛阳世家:(1)当日资金可用余额:76.78万元;(2)当日销售情况:现金收款149.97万元;(3)当日共支出:253.73万元;其中土地支出:0.00万元;设计费:0.00万元。 如果支出合计列(图片中做标记那列)的数据等于0时,生成的WORD报表是这这句话: 就是把后面的 其中土地支出**万元......等给去掉。请问该怎么写代码,谢谢! |
||||
-- 作者:有点蓝 -- 发布时间:2016/9/8 20:39:00 -- 这个合计的判断是指整表的合计还是某个项目的合计? 如果是后者,这样 For j As Integer = t.TopPosition To t.BottomPosition Dim dr As Row = t.rows(j) sum3 = DataTables("日报表").Compute("Sum(支出合计)","项目名称=\'" & dr("项目名称") & "\'") If sum3 > 0 Then str &= i & "、" & dr("项目名称") & ":(1)当日资金可用余额:" & Format(dr("资金可用余额") ,"0.00") & "万元;(2)当日销售情况:现金收款" & Format(dr("当天收入截至当天17时_现金回款额") ,"0.00") & "万元;(3)当日共支出:" & Format(dr("支出合计") ,"0.00") & "万元;其中土地支出:" & Format(dr("当天支出截至当天17时_土地支出") ,"0.00") & "万元;设计费:" & Format(dr("当天支出截至当天17时_设计费") ,"0.00") & "万元。" Else str &= i & "、" & dr("项目名称") & ":(1)当日资金可用余额:" & Format(dr("资金可用余额") ,"0.00") & "万元;(2)当日销售情况:现金收款" & Format(dr("当天收入截至当天17时_现金回款额") ,"0.00") & "万元;(3)当日共支出:" & Format(dr("支出合计") ,"0.00") & "万元." End If str &= vbcrlf i += 1 Next |