以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 字符格式化数字后的计算  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=105125)

--  作者:KWK001
--  发布时间: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

--  作者:有点蓝
--  发布时间:2017/8/11 21:56:00
--  
If e.DataCol.Name = "数量" Then
    Dim pr As DataRow
    e.DataRow("数量") = Format(val(e.DataRow("数量")),"00000")
    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 22:33:08编辑过]

--  作者:KWK001
--  发布时间:2017/8/11 22:02:00
--  
谢谢有点蓝老师,但是还是不行?



--  作者:有点蓝
--  发布时间:2017/8/11 22:09:00
--  
哦,怎么个不行呀。截图或者上实例说明
--  作者:KWK001
--  发布时间:2017/8/11 22:13:00
--  

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


--  作者:有点蓝
--  发布时间:2017/8/11 22:33:00
--  
If e.DataCol.Name = "数量" Then
    Dim pr As DataRow
    e.DataRow("数量") = Format(val(e.DataRow("数量")),"00000")
    pr = DataTables("库存").Find("背番号 = \'" & e.DataRow("背番号") & "\'")
    If pr IsNot Nothing Then
        pr("入库_数量")= pr("入库_数量") + val(e.NewValue) - val(e.OldValue)
    End If
End If

--  作者:KWK001
--  发布时间: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

--  作者:有点蓝
--  发布时间:2017/8/11 23:01:00
--  
没看懂你的代码要做什么
--  作者:KWK001
--  发布时间: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编辑过]

--  作者:有点蓝
--  发布时间:2017/8/11 23:37:00
--  
哪位仁兄想出来的蛋疼的用法。我无能为力

还是老老实实录入吧。