以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [原创]求助报表数值小数位问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=113864)

--  作者:ljxlwq_0803
--  发布时间:2018/1/24 13:02:00
--  [原创]求助报表数值小数位问题
各位老师:通过Excel报表模板截图1

图片点击可在新窗口打开查看此主题相关图片如下:截图1.png
图片点击可在新窗口打开查看
生成报表截图2

图片点击可在新窗口打开查看此主题相关图片如下:截图2.png
图片点击可在新窗口打开查看
在Excel报表模板中“期末余额”数值已设置成“数值”,小数2位

图片点击可在新窗口打开查看此主题相关图片如下:截图3.png
图片点击可在新窗口打开查看
生成报表中的“期末余额”小位数怎么有的是2位,有的没有小数位?还有“截止日期”,打开报表有时能显示,有时不能显示?是不是我是“试用版”的缘故?谢谢之前答疑的“有点甜”和“有点蓝”老师!




--  作者:有点甜
--  发布时间:2018/1/24 15:21:00
--  

报表事件那里你处理一下,比如

 

vars("期末余额") = format(val(vars("期末余额")), "0.00")


--  作者:ljxlwq_0803
--  发布时间:2018/1/24 15:25:00
--  
好的老师,我代码里加进去,谢谢老师!!图片点击可在新窗口打开查看
--  作者:ljxlwq_0803
--  发布时间:2018/1/24 16:28:00
--  
老师:按您的代码,问题解决了!合计金额正确应为297687.05,少了小数位的值。期末余额好像不是数值型的,单元格左上角有小三角,在生成Excel报表后,各单位格统计时不能显示“合计金额”。
--  作者:有点甜
--  发布时间:2018/1/24 16:39:00
--  

修改代码,然后关闭重新打开项目测试。

 

    Case "余额"
        Dim filter As String
        If Forms("客户余额查询").Opened AndAlso Forms("客户余额查询").Controls("enddate").text > ""
            filter = "业务员 = \'" & e.DataRow("业务员") & "\' and 客户名称 = \'" & e.DataRow("客户名称") & "\' and 日期 >= #" & Forms("客户余额查询").Controls("enddate").value & "#"
        Else
            filter = "业务员 = \'" & e.DataRow("业务员") & "\' and 客户名称 = \'" & e.DataRow("客户名称") & "\'"
        End If
        Dim s1 = DataTables("客户往来明细表").Compute("Sum(应收账款)",Filter)
        Dim s2 = DataTables("客户往来明细表").Compute("Sum(已收账款)",Filter)
        vars("期末余额") = val(s1 - s2)
        vars("结束日期") = Forms("客户余额查询").Controls("enddate").text
        If e.ColumnName = "业务员" Then
            vars("总期末余额") = 0
        Else
            vars("总期末余额") += val(vars("期末余额"))
        End If


--  作者:ljxlwq_0803
--  发布时间:2018/1/24 19:26:00
--  
老师您好:按您说的改了代码后,已达到预期效果了,太谢谢您了,那个总的正确合计金额应该是297687.05,但报表生成还是297687.00,请问这是什么缘故?谢谢!老师我测了其他“业务员”的余额,合计金额都是小数位后不正确,都是****.00的状态,无法显示2位小数的值。
[此贴子已经被作者于2018/1/24 19:31:39编辑过]

--  作者:有点甜
--  发布时间:2018/1/24 19:43:00
--  

beforeBuild事件写代码

 

vars("总期末余额") = cdbl(0)

 

然后重先打开项目测试


--  作者:ljxlwq_0803
--  发布时间:2018/1/24 20:08:00
--  
老师:加了vars("总期末余额") = cdbl(0.00),报表完美了!!图片点击可在新窗口打开查看图片点击可在新窗口打开查看谢谢老师!!!
--  作者:ljxlwq_0803
--  发布时间:2018/1/24 20:36:00
--  
老师您好:1、像我这个“项目”的话,我想先用商业版试下,用商业版可以吗?商业版用一段时间后可以升级为开发版吗?2、如果不分年度(比如2018-2020年,主要是我不懂如何分年度)每天录入的数据都存在“客户往来明细表“中,几年下来,数据达到10万条之多,在查询数据时是不是有影响?3、老师有没有把数据分年度存储,且数据能结转到下一年度的学习案例吗?我学习下。谢谢老师!!
--  作者:有点甜
--  发布时间:2018/1/24 20:41:00
--  

1、商业版就是试用版,只是比试用版延长了使用期限。

 

开发版你需要额外购买的,不能通过商业版升级到开发版的。

 

2、数据多没问题;大数据量,尽量用外部数据源存放;你进入系统的时候,可以控制加载量的,把当年或者前多少个月的数据加载进来。