以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多值統計相同產品編碼問題  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=35633)

--  作者:miawjie
--  发布时间:2013/6/28 23:04:00
--  多值統計相同產品編碼問題

與產品編號相同的原主件編號(多值字段)如附件圖

請問要如何統計訂單明細的原主件訂單數量

並將統計數到產品信息的總量數?

請求狐爸或高手詳解。


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

詳細說明:例如產品編號A002名稱AAB為原主件A002,A004,A005三件共同產品組成的,

而有一訂單A002訂單,訂單數為3則A002統計數量應為3,A004統計數量應為3,A005統計數量也為3

請問狐爸,

也就是說,訂單明細表裡的數量乘上原主件各編號數量既為訂購數量,

我在excel可以已函數統計但初學狐表不知是否也能實現,該如何實現?

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

[此贴子已经被作者于2013-6-28 23:11:10编辑过]

--  作者:ybil
--  发布时间:2013/6/28 23:18:00
--  
楼主哪里人?香港?宝岛? 最好上传文件
--  作者:ybil
--  发布时间:2013/6/28 23:41:00
--  
大概如此這般:
Dim drs As List(of DataRow)
Dim dr1,dr2 As DataRow
Dim dt As DataTable = DataTables("產品信息表")

dt.StopRedraw
drs =dt.Select("產品編號 > \'\'")
If drs.count > 0 Then
    For Each dr1 In drs
        dr1("統計數量") = Nothing
    Next
End If

drs =DataTables("訂單明細表").Select("原主件編號 > \'\'")

If drs.count > 0 Then
    For Each dr1 In drs
        For Each s1 As String In dr1("原主件編號").split(",")
            dr2=dt.Find("產品編號 =\'" & s1 & "\'")
            If dr2 IsNot Nothing Then
                dr2("統計數量")+ =dr2("訂單數量")
            End If
        Next
    Next
End If
dt.ResumeRedraw

--  作者:miawjie
--  发布时间:2013/6/28 23:44:00
--  

你好我是寶島的同胞上傳了附件文檔

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:狐表練習.xls


--  作者:miawjie
--  发布时间:2013/6/28 23:48:00
--  
謝謝狐爸!這些代碼是要編輯在哪個事件做處理。
[此贴子已经被作者于2013-6-28 23:49:01编辑过]

--  作者:ybil
--  发布时间:2013/6/28 23:55:00
--  
呵呵,我不是狐爸哦,我是香港人.
代碼可放入按鈕或表切換事件中,建議你多看看幫助

--  作者:miawjie
--  发布时间:2013/6/29 0:05:00
--  
難怪你會輸入繁體,剛剛我試了,好像沒有作用,統計不出任何數據。
[此贴子已经被作者于2013-6-29 0:11:08编辑过]

--  作者:ybil
--  发布时间:2013/6/29 0:18:00
--  
呵呵,我是輸簡出繁.
代碼是根據你圖示表名寫的,你的實例與圖示不符:[產品信息] <> [產品信息表]...

Dim drs As List(of DataRow)
Dim dr1,dr2 As DataRow
Dim dt As DataTable = DataTables("產品信息")

dt.StopRedraw
drs =dt.Select("產品編號 > \'\'")
If drs.count > 0 Then
    For Each dr1 In drs
        dr1("統計數量") = Nothing
    Next
End If

drs =DataTables("訂單明細").Select("原主件編號 > \'\'")

If drs.count > 0 Then
    For Each dr1 In drs
        For Each s1 As String In dr1("原主件編號").split(",")
            dr2=dt.Find("產品編號 =\'" & s1 & "\'")
            If dr2 IsNot Nothing Then
                dr2("統計數量")+ =dr1("訂單數量")
            End If
        Next
    Next
End If
dt.ResumeRedraw
[此贴子已经被作者于2013-6-29 0:20:19编辑过]

--  作者:miawjie
--  发布时间:2013/6/29 0:23:00
--  

按照你的代碼填入後,出現調用目標發生異常


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


--  作者:ybil
--  发布时间:2013/6/29 0:29:00
--  
是了,你的列類型沒有正確設置:數量列應該設置為數值列而不是字符列!