Foxtable(狐表)用户栏目专家坐堂 → 值对于 Decimal 太大或太小


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

主题:值对于 Decimal 太大或太小

帅哥哟,离线,有人找我吗?
狐表(小白)
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:368 积分:3967 威望:0 精华:0 注册:2019/9/17 10:06:00
值对于 Decimal 太大或太小  发帖心情 Post By:2022/3/20 15:20:00 [只看该作者]

如图,鼠标点击<YW_销售生产单明细>表中最长的那行'来源'列提示错误,其它行不会提示,SQL server 数据对应数据列类型是nvarchar(500),<YW_销售生产单明细>表数据是通过存储过程从<YW_销售订单拆单明细>表插入过来的,代码如下,执行完成后也不报错。数据来源表<YW_销售订单拆单明细> 中的 '来源' 是通过这种方式处理过的  dr("来源")= dr("来源").PadLeft(2,"0")

存储过程代码:

INSERT INTO YW_销售生产单明细
......

SELECT
......

 [来源]= stuff((SELECT distinct ',' + [来源] F ROM YW_销售订单拆单明细 t  

  WHERE t.产品名称=[YW_销售订单拆单明细].产品名称 and t.产品分类=[YW_销售订单拆单明细].产品分类  and t.产品型号=[YW_销售订单拆单明细].产品型号

  and t.订单编号=@订单编号  FOR xml path('')),1,1,'')  
........


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

[此贴子已经被作者于2022/3/20 17:40:00编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106654 积分:542453 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/20 21:11:00 [只看该作者]

调试看是那一句代码出现的错误

 回到顶部
帅哥哟,离线,有人找我吗?
狐表(小白)
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:368 积分:3967 威望:0 精华:0 注册:2019/9/17 10:06:00
  发帖心情 Post By:2022/3/21 10:39:00 [只看该作者]

 AfterSelRangeChange 事件代码在计算求和、平均值时报的错,怎么修改?
代码:
Dim str As String = ""
        Dim t As Table =CurrentTable
        If Tables.contains(t.name)=False Then Return
        
        With e.NewRange
            Dim t1 As Integer=iif(t.Rows.Count-1<.TopRow,t.Rows.Count-1,.TopRow)
            Dim t2 As Integer=iif(t.Cols.Count-1<.LeftCol,t.Cols.Count-1,.LeftCol)
            Dim t3 As Integer=iif(t.Rows.Count-1<.BottomRow,t.Rows.Count-1,.BottomRow)
            Dim t4 As Integer=iif(t.Cols.Count-1<.RightCol,t.Cols.Count-1,.RightCol)
            If t.Aggregate(AggregateEnum.Sum, t1, t2, t3, t4) <> Nothing Then
                Str = Str & "求和:" & t.Aggregate(AggregateEnum.Sum, t1, t2, t3, t4) & "       "
                Str = Str & "计数:" & t.Aggregate(AggregateEnum.Count, t1, t2, t3, t4) & "  "
                Str = Str & "平均值:" & t.Aggregate(AggregateEnum.Average, t1, t2, t3, t4)
            Else
                Str = Str & "计数:" & t.Aggregate(AggregateEnum.Count, t1, t2, t3, t4) & "  "
            End If
        End With

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106654 积分:542453 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/21 10:50:00 [只看该作者]

应该是求和的问题,求和后的值超过电脑高精度能够表示的范围了。


try
3楼代码
catch
End try

 回到顶部