Foxtable(狐表)用户栏目专家坐堂 → [求助] 字符格式化数字后的计算


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

主题:[求助] 字符格式化数字后的计算

美女呀,离线,留言给我吧!
KWK001
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1417 威望:0 精华:0 注册:2016/8/17 12:49:00
[求助] 字符格式化数字后的计算  发帖心情 Post By:2017/8/11 21:49:00 [显示全部帖子]

我想把字符列数量的内容,格式化数字格式,然后计算数量。

但是现在提示代码不对,请老师看看?

If e.DataCol.Name = "数量" Then
    Dim pr As DataRow
    Dim dr As DataRow
    dr("数量") = Format(val(dr("数量")),"00000")
    pr = DataTables("库存").Find("背番号 = '" & e.DataRow("背番号") & "'")
    If pr IsNot Nothing Then
        pr("入库_数量")= pr("入库_数量") + dr.NewValue - dr.OldValue
    End If
End If

 回到顶部
美女呀,离线,留言给我吧!
KWK001
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1417 威望:0 精华:0 注册:2016/8/17 12:49:00
  发帖心情 Post By:2017/8/11 22:02:00 [显示全部帖子]

谢谢有点蓝老师,但是还是不行?



 回到顶部
美女呀,离线,留言给我吧!
KWK001
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1417 威望:0 精华:0 注册:2016/8/17 12:49:00
  发帖心情 Post By:2017/8/11 22:13:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


 回到顶部
美女呀,离线,留言给我吧!
KWK001
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1417 威望:0 精华:0 注册:2016/8/17 12:49:00
  发帖心情 Post By:2017/8/11 22:59:00 [显示全部帖子]

配合以下代码,该如何写入,现在都是显示0

DrawCell

If e.Col.Name = "数量" Then
    If e.Row(e.Col.Name) IsNot Nothing AndAlso e.Row(e.Col.Name).StartsWith("=") Then
        e.text = Eval(e.Row(e.Col.Name).substring(1))
    End If
End If

 回到顶部
美女呀,离线,留言给我吧!
KWK001
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1417 威望:0 精华:0 注册:2016/8/17 12:49:00
  发帖心情 Post By:2017/8/11 23:19:00 [显示全部帖子]

先用一段代码,在数量列实现类似excel中用单元格计算公式计算,如输入:=9-1,数量列显示8.

DrawCell

If e.Col.Name = "数量" Then
    If e.Row(e.Col.Name) IsNot Nothing AndAlso e.Row(e.Col.Name).StartsWith("=") Then
        e.text = Eval(e.Row(e.Col.Name).substring(1))
    End If
End If

然后在代码转换成数字(现在转换后出现0的情况,但是直接输入8的话,可以显示8,输入公式就显示o),计算库存数量。

If e.DataCol.Name = "数量" Then
    Dim pr As DataRow
    e.DataRow("数量") = Format(val(e.DataRow("数量")),"0")
    pr = DataTables("库存").Find("背番号 = '" & e.DataRow("背番号") & "'")
    If pr IsNot Nothing Then
        pr("入库_数量")= pr("入库_数量") + val(e.NewValue) - val(e.OldValue)
    End If
End If
[此贴子已经被作者于2017/8/11 23:19:48编辑过]

 回到顶部
美女呀,离线,留言给我吧!
KWK001
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1417 威望:0 精华:0 注册:2016/8/17 12:49:00
  发帖心情 Post By:2017/8/11 23:46:00 [显示全部帖子]

不管怎么样还是谢谢你! 我想明天加辅助列数量字符格式,表达式转换数字,再参加计算,可以吗?

 回到顶部
美女呀,离线,留言给我吧!
KWK001
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1417 威望:0 精华:0 注册:2016/8/17 12:49:00
  发帖心情 Post By:2017/8/12 20:51:00 [显示全部帖子]

我换了种思路,现在好了!

但是有新的问题,字符转数字再计算,请您看看。

我想在出库表的数量列中
累计入库表中同名批号总的总量(入库表中的数量是字符列),然后赋值给变动行的数量列(字符列)


If e.DataCol.Name = "批号" Then
    
    '则累计入库表中同名批号总的总量,然后赋值给变动行的数量列
    e.DataRow("数量") = DataTables("入库").Compute("Sum(数量)","[批号] = '" & e.NewValue & "'")
    
    
End If
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目1.table

[此贴子已经被作者于2017/8/12 20:53:15编辑过]

 回到顶部