以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- SQL后台统计查询数据精度问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=67278) |
-- 作者:unverse -- 发布时间:2015/4/21 16:24:00 -- SQL后台统计查询数据精度问题 使用SQL数据库,有一个字段是单精度的,但统计出来是小数点四位的,我想实现 二位精度!!! 代码: Dim yf As WinForm.CheckBox = e.Form.Controls("CheckBox1") Dim dw As WinForm.CheckBox = e.Form.Controls("CheckBox2") Dim fsl As WinForm.CheckBox = e.Form.Controls("CheckBox3") Dim sl As WinForm.CheckBox = e.Form.Controls("CheckBox4") Dim nd As WinForm.CheckBox = e.Form.Controls("CheckBox5") Dim r As WinForm.CheckBox = e.Form.Controls("CheckBox6") Dim srq As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker3") Dim erq As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker4") Dim b As New SQLCrossTableBuilder("统计表1","cgrkd1") b.C b.AddTable("cgrkd1","单据内码","cgrkd2","单据内码") \'添加统计表 Dim s As String With srq If .value IsNot Nothing If s> "" Then s = s & " AND " End If s = s & "采购日期 >= \'" & .value & "\'" End If End With With erq If .value IsNot Nothing If s> "" Then s = s & " AND " End If s = s & "采购日期 <= \'" & .value & "\'" End If End With b.Filter= s If nd.Checked b.hGroups.AddDef("采购日期",DateGroupEnum.Year,"年") End If If yf.Checked b.hGroups.AddDef("采购日期",DateGroupEnum.month,"月") End If If r.Checked b.hGroups.AddDef("采购日期",DateGroupEnum.day,"日") End If If dw.Checked b.HGroups.AddDef("供料单位") \'添加客户列用于水平分组 End If b.vGroups.AddDef("物料名称","物料名称_{0}")\'添加产品列用于垂直分组,并设置了Pattern参数 If fsl.Checked b.Totals.AddDef("辅助数量","吨数") End If If sl.Checked b.Totals.AddDef("数量","立方米") \'添加数量列用于统计 End If b.Totals.AddDef("金额") \'添加数量列用于统计 b.Build \'生成统计表 b.VerticalTotal=True b.HorizontalTotal=True |
-- 作者:Bin -- 发布时间:2015/4/21 16:25:00 -- http://www.foxtable.com/help/topics/2046.htm |
-- 作者:unverse -- 发布时间:2015/4/21 16:34:00 -- 我这是SQLCrossTableBuilder ,列是根据业务动态形成的,有很多金额列,应该 怎么写呢? Tables(e.Form.Name & "_table3").DataTable.DataCols("金额").Decimals=2 提示不存在……
|
-- 作者:Bin -- 发布时间:2015/4/21 16:35:00 -- 看看你实际列名是什么. |
-- 作者:Bin -- 发布时间:2015/4/21 16:37:00 -- 你看到的是标题.而且你这是多层表头,怎么可以只看最后一层呢? for each c as col in Tables(e.Form.Name & "_table3").cols if c.Caption.EndsWith("金额") then c.datacol.Decimals=2 c.datacol.SetFormat("0.00") end if next
|
-- 作者:unverse -- 发布时间:2015/4/21 16:39:00 -- 此主题相关图片如下:qq截图20150421163723.jpg 就是这样的列,物料名称,名称是根据单据选择生成 的
|
-- 作者:Bin -- 发布时间:2015/4/21 16:39:00 -- 看5楼.搞不定就上例子 |
-- 作者:狐狸爸爸 -- 发布时间:2015/4/21 16:39:00 -- Dim b As New SQLCrossTableBuilder("统计表1","cgrkd1") b.Decimals = 2 \'设置统计精度 |
-- 作者:unverse -- 发布时间:2015/4/21 16:44:00 -- 以下是引用狐狸爸爸在2015/4/21 16:39:00的发言: Dim b As New SQLCrossTableBuilder("统计表1","cgrkd1") b.Decimals = 2 \'设置统计精度 老爹很,放狠了个大招,一招搞定 佩服——搞定了——谢过,其实有属性的只不过没有用过所以…………………… |