以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教:DataList1显示的总计行仍会出现N个小数  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2728)

--  作者:yangming
--  发布时间:2009/5/9 9:53:00
--  请教:DataList1显示的总计行仍会出现N个小数
请看下图,图中表格是以下代码生成的


图片点击可在新窗口打开查看此主题相关图片如下:113.jpg
图片点击可在新窗口打开查看

DataTables("部门分月工资表").DataRows.Clear()
 dim f As New Filler
 f.SourceTable = DataTables("工资库") \'指定数据来源
 f.SourceCols = "部门" \'指定数据来源列
 f.DataTable = DataTables("部门分月工资表") \'指定数据接收表
 f.DataCols = "部门" \'指定数据接收列
 f.Fill() \'填充数据
 For Each dc As DataCol In DataTables("部门分月工资表").DataCols
     If dc.Name.EndsWith("月") Then
         For Each dr As DataRow In DataTables("部门分月工资表").DataRows
             dr(dc.name) = DataTables("工资库").Compute("Sum(实发工资)","月份 =\'" & dc.Name & "\' And 部门 = \'" & dr("部门") & "\'")
         Next
     End If
 Next
Dim dst As WinForm.DataList = e.Form.Controls("DataList1")
dst.DataTable = DataTables("部门分月工资表")
dst.Build()
dst.DataTable = DataTables("部门分月工资表")
dst.Build()
dst.GrandTotal(AggregateEnum.Sum,"总计", "一月","二月","三月","四月", "五月", "六月","七月","八月","九月","十月","十一月","十二月","效益工资","年终奖","合计")

--  作者:八婺
--  发布时间:2009/5/9 23:22:00
--  
是有这个问题,看来老还得改一下GrandTotal

好象不关紧要,只要你不拉宽列宽,数据显示是正确的。
[此贴子已经被作者于2009-5-9 23:22:55编辑过]

--  作者:mr725
--  发布时间:2009/5/9 23:50:00
--  
直接在 部门分月工资表 最后增加一行合计就可以了,不需要在datalist中来合计吧~
--  作者:yangming
--  发布时间:2009/5/10 9:04:00
--  
以下是引用mr725在2009-5-9 23:50:00的发言:
直接在 部门分月工资表 最后增加一行合计就可以了,不需要在datalist中来合计吧~

直接加的合计在datalist是显示不出的,呵呵


--  作者:mr725
--  发布时间:2009/5/10 20:01:00
--  

在命令窗口测试 正常啊~     有谁能简化一下就好了
CurrentTable.AddNew()
currenttable.current("部门") = "合计"
currenttable.current("一月") = currenttable.Compute("Sum(一月)")
currenttable.current("二月") = currenttable.Compute("Sum(二月)")
currenttable.current("三月") = currenttable.Compute("Sum(三月)")
currenttable.current("四月") = currenttable.Compute("Sum(四月)")
currenttable.current("五月") = currenttable.Compute("Sum(五月)")
currenttable.current("六月") = currenttable.Compute("Sum(六月)")
currenttable.current("七月") = currenttable.Compute("Sum(七月)")
currenttable.current("八月") = currenttable.Compute("Sum(八月)")
currenttable.current("九月") = currenttable.Compute("Sum(九月)")
currenttable.current("十月") = currenttable.Compute("Sum(十月)")
currenttable.current("十一月") = currenttable.Compute("Sum(十一月)")
currenttable.current("十二月") = currenttable.Compute("Sum(十二月)")
currenttable.current("效益工资") = currenttable.Compute("Sum(效益工资)")   \'原日期型改为双精
currenttable.current("年终奖") = currenttable.Compute("Sum(年终奖)")
currenttable.current("合计") = currenttable.Compute("Sum(合计)")  \'字符型改为双精
forms("窗口1").open()
Dim dst As WinForm.DataList = Forms("窗口1").Controls("DataList1")
dst.DataTable = DataTables("部门分月工资表")
dst.Build()

[此贴子已经被作者于2009-5-10 20:17:18编辑过]

--  作者:mr725
--  发布时间:2009/5/10 20:10:00
--  
看看动画吧:不会有N位的小数

图片点击可在新窗口打开查看此主题相关图片如下:xs.gif
图片点击可在新窗口打开查看

--  作者:狐狸爸爸
--  发布时间:2009/5/11 7:22:00
--  
我改一下程序。
设计结构的时候,最好别用单精度小数,用双精度小数比较好
--  作者:yangming
--  发布时间:2009/5/11 8:55:00
--  
以下是引用狐狸爸爸在2009-5-11 7:22:00的发言:
我改一下程序。
设计结构的时候,最好别用单精度小数,用双精度小数比较好

噢,我改一下