以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  单元格提取  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=92594)

--  作者:yaojun
--  发布时间:2016/11/8 0:09:00
--  单元格提取


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

怎样让最后一行的合计单价自动由前面的工序及单价中提取出来啊,求教


--  作者:有点色
--  发布时间:2016/11/8 9:10:00
--  

参考代码

 

Dim str As String = "工序0.1,工序0.9,工序33"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "[0-9\\.]+")
Dim sum As Double = 0
For i As Integer = 0 To mc.count-1
    output.show(mc(i).value)
    sum += val(mc(i).value)
Next
msgbox(sum)


--  作者:yaojun
--  发布时间:2016/11/8 11:18:00
--  

抱歉,是我叙述有问题,我的要求是最后面的“合计单价”列=“工序及单价”列里面的数字总和,自动计算,像EXCEL里面的函数一样。


--  作者:有点蓝
--  发布时间:2016/11/8 11:40:00
--  
方法差不多的,放到事件里就可以:http://www.foxtable.com/webhelp/scr/1451.htm

Select Case e.DataCol.Name
    Case "工序及单价"
        If e.NewValue Is Nothing Then \'如果新值是空白,也就是品名列的内容为空
            e.DataRow("合计单价") = Nothing \'那么清空此行单价列的内容
        Else
            Dim mc = System.Text.RegularExpressions.Regex.Matches(e.NewValue , "[0-9\\.]+")
            Dim sum As Double = 0
            For i As Integer = 0 To mc.count-1
                output.show(mc(i).value)
                sum += val(mc(i).value)
            Next
            e.DataRow("合计单价") = sum
        End If
End Select