以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] excel模板汇总问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=127678)

--  作者:sanny
--  发布时间:2018/11/19 21:52:00
--  [求助] excel模板汇总问题

老师,这个导出的模板,其中L栏位的数量加总不对了,正确的是1708KG.能帮忙看一下以下代码哪儿不对了吗? 谢谢。

 

Dim Book As New XLS.Book(ProjectPath & "Attachments\\manuf Packing list.xlsx")
Dim fl As String = ProjectPath & "manuf\\Packinglist_" & Tables("shipment.packinglist").current("shippingNo") & ".xlsx"
Dim Result As DialogResult
Dim Proc As New Process \'打开工作簿


Dim r1 As Row = Nothing
Dim cn1 As Integer = 0
Dim cn2 As Double = 0
Dim cn3 As Double = 0
Tables("Shipment.Packinglist").sort = "BoxNo"
For i As Integer = 0 To Tables("Shipment.Packinglist").Rows.Count - 1
    Dim r As Row = Tables("Shipment.Packinglist").Rows(i)
    If r1 Is Nothing OrElse r("ShippingNo") & r("BoxNo") <> r1("ShippingNo") & r1("BoxNo")
        cn1 += 1
        cn2 += r("Volume_CBM")
        cn3 += r("Gross_weight")
        r1 = r
    End If
Next


vars("总箱数") = cn1
vars("总立方") = cn2
vars("总毛重") = cn3

Book.Build() \'生成细节区
Dim Sheet As XLS.Sheet = Book.Sheets(0)

Dim idx As Integer = 5
For i As Integer = 6 To sheet.Rows.Count - 5
    If sheet(i,10).text <> sheet(i-1,10).text
        If i > idx +1
            For j As Integer = idx+1 To i-1
                \'msgbox(j & " " & idx & " " & i)
                sheet(j, 14).value = 0
            Next
           
            Sheet.MergeCell(idx,10,i-idx,1)
            Sheet.MergeCell(idx,11,i-idx,1)
            Sheet.MergeCell(idx,12,i-idx,1)
            Sheet.MergeCell(idx,13,i-idx,1)
            Sheet.MergeCell(idx,14,i-idx,1)
        End If
        idx = i
    End If
Next

 


If FileSys.FileExists(ProjectPath & "manuf\\Packinglist_" & Tables("shipment.packinglist").current("shippingNo") & ".xlsx")  Then
    Result = Messagebox.Show(Tables("shipment.packinglist").current("shippingNo") & ".xlsx"&" 文件已经存在,是否要覆盖?","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
       
        Book.Save(fl) \'保存工作簿
        Proc.File = fl
        Proc.Start()
      End If
Else
Book.Save(fl) \'保存工作簿
Proc.File = fl
Proc.Start()
End If

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:packinglist_aa01.xlsx


--  作者:有点蓝
--  发布时间:2018/11/19 22:43:00
--  
代码没有问题。ShippingNo的值是不是不一样?
--  作者:sanny
--  发布时间:2018/11/19 23:15:00
--  

一样的,右边 的volume_cmb 出来就是对的。


--  作者:有点蓝
--  发布时间:2018/11/19 23:23:00
--  
For j As Integer = idx+1 To i-1
                \'msgbox(j & " " & idx & " " & i)
                sheet(j, 11).value = 0
                sheet(j, 14).value = 0
            Next
--  作者:sanny
--  发布时间:2018/11/20 7:46:00
--  

谢谢。


--  作者:sanny
--  发布时间:2018/12/13 18:57:00
--  
版主,再使用中又发现问题。如图,这个计数不正确,应该是2个,它计数7个,要怎么改呢? 谢谢。
图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2018/12/13 20:17:00
--  

 

出错的实例发上来测试。

 

 


--  作者:sanny
--  发布时间:2018/12/13 21:04:00
--  
版主,请查看,谢谢。
--  作者:有点甜
--  发布时间:2018/12/13 21:10:00
--  
没看到项目和文件,请正确上传。
--  作者:sanny
--  发布时间:2018/12/13 21:12:00
--  

麻烦了。

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