Foxtable(狐表)用户栏目专家坐堂 → [求助]


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

主题:[求助]

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/2 23:14:00 [显示全部帖子]

1、你2楼的代码都是数值列累加,没有涉及字符列。

 

2、如果你需要字符列累加,改成比如 cr("Qty") &= t.Rows(i)("Qty") & ","


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/3 13:07:00 [显示全部帖子]

具体实例、代码分别贴出来测试。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/9 16:07:00 [显示全部帖子]

看不懂你的逻辑,请说明最后需要得到什么结果。

 

Dim t1 As Table = Tables("Shipment.customsinvoice")
If t1.Rows.Count = 0 Then Return
Dim cr1 As Row
Dim cr2 As Row

Dim str As String = ""
For i As Integer = t1.TopPosition To t1.BottomPosition
    str = str & "," & t1.Rows(i)("_Identify")
Next

str = str.Trim(",")
t1.Filter = "[_Identify] in (" & str & ")"
Dim cr As Row
Dim Total As Double
Dim Totalp As Double

t1.sort = "ShippingNO,NameinChinese,Unit,HS,Qty"
If t1.Rows.Count > 1 Then  
    cr = t1.Rows(0)
    Total = cr("Netweight_Total")
    Totalp = cr("Totalprice")
    For i As Integer = t1.Rows.Count - 1 To 1 Step -1
        If cr("ShippingNO") = t1.Rows(i)("ShippingNO") AndAlso cr("NameinChinese") = t1.Rows(i)("NameinChinese") AndAlso cr("Unit") = t1.Rows(i)("unit") AndAlso cr("HS") = t1.Rows(i)("HS") AndAlso cr("Declaration") = t1.Rows(i)("Declaration")
            msgbox(123)
            cr("Qty") += val(t1.Rows(i)("Qty"))
            cr("TotalPrice") += val(t1.Rows(i)("TotalPrice"))
            cr("GrossWeight_total") += val(t1.Rows(i)("GrossWeight_Total"))
            '   cr("Netweight_Total") += val(t.Rows(i)("Netweight_Total"))
            Total += val(t1.Rows(i)("Netweight_Total"))
            cr("Netweight_PC") = Total /cr("Qty")
            Totalp += val(t1.Rows(i)("Totalprice"))
            cr("PO_UnitPrice") = Totalp /cr("Qty")
            cr("Combine") &= t1.Rows(i)("GSSPartNo") &  ","
            't1.Rows(i).delete
        Else
            cr = t1.Rows(i)
        End If
    Next 
End If


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/9 22:04:00 [显示全部帖子]

参考代码

 

Dim t1 As Table = Tables("Shipment.customsinvoice")
If t1.Rows.Count = 0 Then Return

Dim str As String = ""
For i As Integer = t1.TopPosition To t1.BottomPosition
    str = str & "," & t1.Rows(i)("_Identify")
Next

str = str.Trim(",")
Dim drs = t1.DataTable.Select("[_Identify] In (" & str & ") And supplier = 'GSS'", "ShippingNO,NameinChinese,Unit,HS")
Dim Total As Double
Dim Totalp As Double
msgbox(drs.count)
If drs.Count > 1 Then  
    Dim cr = drs(drs.count-1)
    Total = cr("Netweight_Total")
    Totalp = cr("Totalprice")
    For i As Integer = drs.Count - 2 To 0 Step -1
        If cr("ShippingNO") = drs(i)("ShippingNO") AndAlso cr("NameinChinese") = drs(i)("NameinChinese") AndAlso cr("Unit") = drs(i)("unit") AndAlso cr("HS") = drs(i)("HS") ' AndAlso cr("Declaration") = drs(i)("Declaration") AndAlso cr("PO_UnitPrice") = drs(i)("PO_UnitPrice") Then
            msgbox(123)
            cr("Qty") += val(drs(i)("Qty"))
            cr("TotalPrice") += val(drs(i)("TotalPrice"))
            cr("GrossWeight_total") += val(drs(i)("GrossWeight_Total"))
            '   cr("Netweight_Total") += val(drs(i)("Netweight_Total"))
            Total += val(drs(i)("Netweight_Total"))
            cr("Netweight_PC") = Total /cr("Qty")
            Totalp += val(drs(i)("Totalprice"))
            cr("PO_UnitPrice") = Totalp /cr("Qty")
            cr("Combine") &= drs(i)("GSSPartNo") &  ","
            drs(i).delete
        Else
            cr = drs(i)
        End If
    Next 
End If


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/9 22:39:00 [显示全部帖子]

38楼那段代码是判断情况为【supplier = 'GSS'】的。如果不是GSS的,你再拷贝一段处理才行。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/9 22:59:00 [显示全部帖子]

 

Dim drs = t1.DataTable.Select("[_Identify] In (" & str & ") And (supplier <> 'GSS' or supplier is null)", "ShippingNO,NameinChinese,Unit,HS")

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/9 23:05:00 [显示全部帖子]

以下是引用sanny在2018/12/9 23:05:00的发言:

谢谢,最后再问一下,如果不考虑supplier,就把以下去掉,对吗?

 

supplier <> "GSS"

 

是的。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/10 16:03:00 [显示全部帖子]

修改红色代码

 

Dim t1 As Table = Tables("Shipment.customsinvoice")
If t1.Rows.Count = 0 Then Return

Dim str As String = ""
For i As Integer = t1.TopPosition To t1.BottomPosition
    str = str & "," & t1.Rows(i)("_Identify")
Next

str = str.Trim(",")
'Dim drs = t1.DataTable.Select("[_Identify] In (" & str & ") And supplier = 'GSS'", "ShippingNO,NameinChinese,Unit,HS")
Dim drs = t1.DataTable.Select("[_Identify] In (" & str & ") ", "ShippingNO,NameinChinese,Unit,HS")

Dim Total As Double
Dim Totalp As Double
'msgbox(drs.count)
If drs.Count > 1 Then 
    Dim cr = drs(drs.count-1)
    Total = cr("Netweight_Total")
    Totalp = cr("Totalprice")
    For i As Integer = drs.Count - 2 To 0 Step -1
        If cr("ShippingNO") = drs(i)("ShippingNO") AndAlso cr("NameinChinese") = drs(i)("NameinChinese") AndAlso cr("Unit") = drs(i)("unit") AndAlso cr("HS") = drs(i)("HS") AndAlso cr("Declaration") = drs(i)("Declaration") Then
           ' msgbox(123)
            cr("Qty") += val(drs(i)("Qty"))
            cr("TotalPrice") += val(drs(i)("TotalPrice"))
            cr("GrossWeight_total") += val(drs(i)("GrossWeight_Total"))
            '   cr("Netweight_Total") += val(drs(i)("Netweight_Total"))
            Total += val(drs(i)("Netweight_Total"))
            cr("Netweight_PC") = Total /cr("Qty")
            Totalp += val(drs(i)("Totalprice"))
            cr("PO_UnitPrice") = Totalp /cr("Qty")
            cr("Combine") &= drs(i)("GSSPartNo") &  ","
            drs(i).delete
        Else
            cr = drs(i)
           Total = cr("Netweight_Total")
           Totalp = cr("Totalprice")

        End If
    Next 
End If


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/10 17:41:00 [显示全部帖子]

红色代码的列必须匹配

 

Dim drs = t1.DataTable.Select("[_Identify] In (" & str & ") ", "ShippingNO,NameinChinese,Unit,HS")

 

If cr("ShippingNO") = drs(i)("ShippingNO") AndAlso cr("NameinChinese") = drs(i)("NameinChinese") AndAlso cr("Unit") = drs(i)("unit") AndAlso cr("HS") = drs(i)("HS") AndAlso cr("Declaration") = drs(i)("Declaration") Then


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/11 9:02:00 [显示全部帖子]

Dim t1 As Table = Tables("Shipment.customsinvoice")
If t1.Rows.Count = 0 Then Return

Dim str As String = ""
For i As Integer = t1.TopPosition To t1.BottomPosition

    If t1.rows(i)("Exchangerate") = nothing Then

        msgbox(i & " 空白" )

        return

    End If
    str = str & "," & t1.Rows(i)("_Identify")
Next

str = str.Trim(",")


 回到顶部
总数 12 1 2 下一页