Foxtable(狐表)用户栏目专家坐堂 → SQL后台统计查询数据精度问题


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

主题:SQL后台统计查询数据精度问题

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


加好友 发短信
等级:五尾狐 帖子:1088 积分:8247 威望:0 精华:4 注册:2012/3/31 18:08:00
SQL后台统计查询数据精度问题  发帖心情 Post By:2015/4/21 16:24:00 [只看该作者]

使用SQL数据库,有一个字段是单精度的,但统计出来是小数点四位的,我想实现 二位精度!!!


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


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




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


代码:

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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/21 16:25:00 [只看该作者]


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


加好友 发短信
等级:五尾狐 帖子:1088 积分:8247 威望:0 精华:4 注册:2012/3/31 18:08:00
  发帖心情 Post By:2015/4/21 16:34:00 [只看该作者]

我这是SQLCrossTableBuilder ,列是根据业务动态形成的,有很多金额列,应该 怎么写呢?
Tables(e.Form.Name & "_table3").DataTable.DataCols("金额").Decimals=2
提示不存在……

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/21 16:35:00 [只看该作者]

看看你实际列名是什么.

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By: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
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1088 积分:8247 威望:0 精华:4 注册:2012/3/31 18:08:00
  发帖心情 Post By:2015/4/21 16:39:00 [只看该作者]


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

就是这样的列,物料名称,名称是根据单据选择生成 的

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/21 16:39:00 [只看该作者]

看5楼.搞不定就上例子

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/4/21 16:39:00 [只看该作者]

Dim b As New SQLCrossTableBuilder("统计表1","cgrkd1")

b.Decimals = 2 '设置统计精度


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


加好友 发短信
等级:五尾狐 帖子:1088 积分:8247 威望:0 精华:4 注册:2012/3/31 18:08:00
  发帖心情 Post By:2015/4/21 16:44:00 [只看该作者]

以下是引用狐狸爸爸在2015/4/21 16:39:00的发言:

Dim b As New SQLCrossTableBuilder("统计表1","cgrkd1")

b.Decimals = 2 '设置统计精度

老爹很,放狠了个大招,一招搞定图片点击可在新窗口打开查看


佩服——搞定了——谢过,其实有属性的只不过没有用过所以……………………


 回到顶部