• VB Export sample


    连接附件的:

      1 Private Sub btnExportForCustomer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExportForCustomer.Click
      2         Dim xApp = New Excel.Application
      3         Dim xBook As Excel.Workbook
      4         Dim xSheet As New Excel.Worksheet
      5 
      6         xBook = xApp.Workbooks.Add(Application.StartupPath & "\Templets\Customer packing list.xlt")
      7         xSheet = xBook.Worksheets(1)
      8         xSheet.PageSetup().PrintTitleRows = "$27:$27"
      9 
     10         '---------------------------Logo------------------------
     11         Dim strCompyC As String
     12         If g.gLocation = LocationType.BRUNE Then
     13             strCompyC = "Brunet"
     14         Else
     15             If g.gLocation = LocationType.CHINA_SHENZHEN Then
     16                 strCompyC = "SHS"
     17             Else
     18                 strCompyC = "Bogart"
     19             End If
     20         End If
     21 
     22         Dim netLogo As OleDb.OleDbDataAdapter = gData.GetCompanyLogo(sqlConn, "", strCompyC)
     23         Dim netPrint As New DataSet
     24         netLogo.Fill(netPrint, "mos")
     25         Try
     26             strCompyC = netPrint.Tables("mos").Rows(0).Item("CompanyCode")
     27             If strCompyC = "" Then 'export 不選擇logo默認一個,否則取不到數
     28                 strCompyC = "Brunet"
     29             End If
     30         Catch ex As Exception
     31         End Try
     32 
     33         If getImage(strCompyC, 643.5, 205.92) = True Then
     34             xSheet.Range("A1").Select()
     35             xSheet.Pictures.Insert("C:\Temp\BILogo.jpg").Select()
     36             xApp.Selection.ShapeRange.IncrementLeft(244.25#)
     37             'xApp.Selection.ShapeRange.IncrementTop(5.0#)
     38             'xApp.Selection.ShapeRange.LockAspectRatio = True
     39         End If
     40         '---------------------------Logo------------------------
     41 
     42         '--------------------------header----------------------- 
     43         Dim sql As String = "SELECT A.CLOT,A.CSTORD,A.SPPROC,case when isnull(A.OLDDEG,'')='' then A.DEG else (A.DEG+'/'+A.OLDDEG) end as DEG,A.CSPRD,A.PRDCOM,A.PRDWID,C.CompanyName,C.Address1,C.Address2,C.Address3,C.Address4,C.TelNo,C.FaxNo,b.bandno FROM dbo.CompanyProfile C, dbo.FG_OrderDetail A INNER JOIN FG_PLHeader B ON A.CLOT=B.CLOT AND A.CSTORD=B.CSTORD AND A.DEG=B.DEG AND A.BICOM=B.BICOM AND A.BANDNO=B.BANDNO where B.PLNO='" & dgd.Columns("plno").Text.Trim & "' AND C.CompanyCode='" & strCompyC & "' "
     44         Dim head As DataTable = gData.GetDataTable(sql, sqlConn)
     45 
     46         sql = "SELECT t2.bandno,count(*) as count FROM dbo.FG_PLDetail a LEFT JOIN dbo.FG_PLHeader b ON (a.PLNO=b.PLNO) LEFT JOIN dbo.FG_CartonDetail c on (a.ctnid=c.ctnid) left join FG_CartonBobbin t1 on c.ctnid=t1.ctnid left join FG_BobbinDetail t2 on t1.bobid=t2.bobid LEFT JOIN dbo.FG_CartonDimension d on (c.ctndim=d.ctndim) LEFT JOIN dbo.FG_OrderDetail o on (b.clot=o.clot and b.cstord=o.cstord and b.deg=o.deg and b.bicom=o.bicom and b.bandno=o.bandno) WHERE a.PLNO='" & dgd.Columns("plno").Text.Trim & "' group by t2.bandno"
     47         Dim head_LR As DataTable = gData.GetDataTable(sql, sqlConn)
     48         If head_LR.Rows.Count > 1 Then
     49             head_LR = gData.GetDataTable("SELECT '' as bandno,1 as count", sqlConn)
     50         End If
     51         head.Rows(0).Item("bandno") = head_LR.Rows(0).Item("bandno")
     52         head.AcceptChanges()
     53 
     54         'Shipment No & Customer PO
     55         sql = "select distinct cstpo1 from ORFORDY where cstord ='" + head.Rows(0).Item("CSTORD") + "'"
     56         Dim tbPONO As DataTable = gData.GetDataTable(sql, netConn)
     57         Dim CustomerPONO As String = ""
     58         For Each r As DataRow In tbPONO.Rows
     59             If r.Item("cstpo1") <> "" Then
     60                 CustomerPONO = CustomerPONO + r.Item("cstpo1") + ","
     61             End If
     62         Next
     63         If CustomerPONO <> "" Then
     64             CustomerPONO = Mid(CustomerPONO, 1, CustomerPONO.Length - 1)
     65         End If
     66         xSheet.Range("H8").Resize(1, 1).Value = CustomerPONO
     67 
     68         'print date
     69         xSheet.Range("H10").Resize(1, 1).Value = Now.Date
     70 
     71         '------------------------------------Invoice address-------------------------
     72         Dim altadr As String = gData.SelectValue("select altadr from ORFORDA where cstord='" + Trim(dgd.Columns("cstord").Value) + "'", netConn, "")
     73         Dim invoice As DataTable = gData.GetDataTable("select cast(adrs1 as char(60) ccsid 937) adrs1,cast(adrs2 as char(60) ccsid 937) adrs2,cast(adrs3 as char(60) ccsid 937) adrs3,cast(adrs4 as char(60) ccsid 937) adrs4,cast(adrs5 as char(60) ccsid 937) adrs5,phone1,fax1 from ORFEXS where ekey='" & Trim(dgd.Columns("ekey").Value) & "' and altadr=" + altadr, netConn)
     74         If invoice.Rows.Count > 0 Then
     75             xSheet.Range("B15").Resize(1, 1).Value = invoice.Rows(0).Item("adrs1")
     76             xSheet.Range("B16").Resize(1, 1).Value = invoice.Rows(0).Item("adrs2") + " " + invoice.Rows(0).Item("adrs3") + " " + invoice.Rows(0).Item("adrs4") + " " + invoice.Rows(0).Item("adrs5") + Chr(10) + "Attn:" + Chr(10) + "Tel:" + invoice.Rows(0).Item("phone1") + Chr(10) + "Fax:" + invoice.Rows(0).Item("fax1")
     77         End If
     78         '------------------------------------Invoice address-------------------------
     79 
     80         '--------------------------------------ship to-------------------------------
     81         '即是lot的branch地址。先判斷分部(orfexba)是否有數,否則到orfexe取數。
     82         Dim Branch_T As Boolean = gData.SelectValue("select count(bkey) from orfexba where ekey='" & dgd.Columns("ekey").Text.Trim & "'", adoConn, "0") > 0
     83         Dim bkey As String = gData.SelectValue("select max(bkey) bkey from ORFORDT where cstord='" & dgd.Columns("cstord").Text.Trim & "' group by cstord", adoConn, "")
     84         If Branch_T Then
     85             Dim Branch_N As Integer = Me.CustomBranchAlt(dgd.Columns("cstord").Text.Trim, dgd.Columns("ekey").Text.Trim)
     86             Dim shipto As DataTable = gData.GetDataTable("select cast(adrs1 as char(60) ccsid 937) adrs1,cast(adrs2 as char(60) ccsid 937) adrs2,cast(adrs3 as char(60) ccsid 937) adrs3,cast(adrs4 as char(60) ccsid 937) adrs4,cast(adrs5 as char(60) ccsid 937) adrs5,phone1,fax1 from ORFEXBA where ekey='" & dgd.Columns("ekey").Text.Trim & "' and bkey='" + bkey + "' AND altadr=" & Branch_N, netConn)
     87             If shipto.Rows.Count > 0 Then
     88                 xSheet.Range("F15").Resize(1, 1).Value = shipto.Rows(0).Item("adrs1")
     89                 xSheet.Range("F16").Resize(1, 1).Value = shipto.Rows(0).Item("adrs2") + " " + shipto.Rows(0).Item("adrs3") + " " + shipto.Rows(0).Item("adrs4") + " " + shipto.Rows(0).Item("adrs5") + Chr(10) + "Attn:" + Chr(10) + "Tel:" + shipto.Rows(0).Item("phone1") + Chr(10) + "Fax:" + shipto.Rows(0).Item("fax1")
     90             End If
     91         Else
     92             Dim shipto As DataTable = gData.GetDataTable("select cast(adrs1 as char(60) ccsid 937) adrs1,cast(adrs2 as char(60) ccsid 937) adrs2,cast(adrs3 as char(60) ccsid 937) adrs3,cast(adrs4 as char(60) ccsid 937) adrs4,cast(adrs5 as char(60) ccsid 937) adrs5,phone1,fax1 from orfexe where ekey='" + dgd.Columns("ekey").Text.Trim + "'", netConn)
     93             If shipto.Rows.Count > 0 Then
     94                 xSheet.Range("F15").Resize(1, 1).Value = shipto.Rows(0).Item("adrs1")
     95                 xSheet.Range("F16").Resize(1, 1).Value = shipto.Rows(0).Item("adrs2") + " " + shipto.Rows(0).Item("adrs3") + " " + shipto.Rows(0).Item("adrs4") + " " + shipto.Rows(0).Item("adrs5") + Chr(10) + "Attn:" + Chr(10) + "Tel:" + shipto.Rows(0).Item("phone1") + Chr(10) + "Fax:" + shipto.Rows(0).Item("fax1")
     96             End If
     97         End If
     98         '--------------------------------------ship to-------------------------------
     99 
    100         'BI Call Lot No
    101         xSheet.Range("B20").Resize(1, 1).Value = head.Rows(0).Item("CLOT")
    102 
    103         'Article No
    104         Dim strAtr = CStr(IIf(IsDBNull(head.Rows(0).Item("DEG")), "", head.Rows(0).Item("DEG")))
    105         If Not IsDBNull(head.Rows(0).Item("bandno")) Then
    106             If CStr(head.Rows(0).Item("bandno")).Trim.Length > 0 Then
    107                 strAtr += "-" + CStr(head.Rows(0).Item("bandno"))
    108             End If
    109         End If
    110         xSheet.Range("B23").Resize(1, 1).Value = strAtr
    111 
    112         'Cust. Article No
    113         xSheet.Range("G23").Resize(1, 1).Value = head.Rows(0).Item("CSPRD")
    114 
    115         'Special Process
    116         xSheet.Range("B24").Resize(1, 1).Value = head.Rows(0).Item("SPPROC")
    117 
    118         'Description
    119         xSheet.Range("B25").Resize(1, 1).Value = head.Rows(0).Item("PRDCOM")
    120 
    121         'Width
    122         xSheet.Range("B26").Resize(1, 1).Value = head.Rows(0).Item("PRDWID")
    123         '--------------------------header----------------------- 
    124 
    125         '--------------------------detail-----------------------
    126         sql = "SELECT CTNNO,BATCHNO,ltrim(rtrim(CSCOMD)) AS CSCOMD,CSCOM,GRSWGTKG,NETWGTKG,NETWGTLB,C.grslenm,NETLENM,C.deflenm,D.CTNDIMD FROM dbo.FG_PLDetail a LEFT JOIN dbo.FG_PLHeader b ON (a.PLNO=b.PLNO) LEFT JOIN dbo.FG_CartonDetail c on (a.ctnid=c.ctnid) LEFT JOIN dbo.FG_CartonDimension d on (c.ctndim=d.ctndim) LEFT JOIN dbo.FG_OrderDetail o on (b.clot=o.clot and b.cstord=o.cstord and b.deg=o.deg and b.bicom=o.bicom and b.bandno=o.bandno) WHERE a.PLNO='" & dgd.Columns("plno").Text.Trim & "' order by CTNNO"
    127         Dim detail As DataTable = gData.GetDataTable(sql, sqlConn)
    128         Dim i As Integer = 0
    129         Dim nRow As DataRow
    130         Dim count As Integer = detail.Rows.Count
    131         Dim ArrayData(count, 11) As Object
    132         If count > 0 Then
    133             For Each nRow In detail.Rows
    134                 xSheet.Rows("29:29").EntireRow.Insert()
    135                 ArrayData(i, 0) = nRow.Item("CTNNO")
    136                 ArrayData(i, 1) = nRow.Item("BATCHNO")
    137                 ArrayData(i, 2) = nRow.Item("CSCOMD")
    138                 ArrayData(i, 3) = nRow.Item("CSCOM")
    139                 ArrayData(i, 4) = nRow.Item("GRSWGTKG")
    140                 ArrayData(i, 5) = nRow.Item("NETWGTKG")
    141                 ArrayData(i, 6) = nRow.Item("NETWGTLB")
    142                 ArrayData(i, 7) = nRow.Item("grslenm")
    143                 ArrayData(i, 8) = nRow.Item("NETLENM")
    144                 ArrayData(i, 9) = nRow.Item("deflenm")
    145                 ArrayData(i, 10) = nRow.Item("CTNDIMD")
    146                 i = i + 1
    147             Next
    148             xSheet.Range("A28").Resize(count, 11).Value = ArrayData
    149         End If
    150         Dim sumnum As Integer = 29 + count - 1
    151         xSheet.Rows(CStr(sumnum) + ":" + CStr(sumnum)).EntireRow.delete()
    152 
    153         sql = "SELECT count(distinct CTNNO) as count,sum(GRSWGTKG) as GRSWGTKG,sum(NETWGTKG) as NETWGTKG,sum(NETWGTLB) as NETWGTLB,sum(C.grslenm) as grslenm,sum(NETLENM) as NETLENM,sum(C.deflenm) as deflenm FROM dbo.FG_PLDetail a LEFT JOIN dbo.FG_PLHeader b ON (a.PLNO=b.PLNO) LEFT JOIN dbo.FG_CartonDetail c on (a.ctnid=c.ctnid) LEFT JOIN dbo.FG_CartonDimension d on (c.ctndim=d.ctndim) LEFT JOIN dbo.FG_OrderDetail o on (b.clot=o.clot and b.cstord=o.cstord and b.deg=o.deg and b.bicom=o.bicom and b.bandno=o.bandno) WHERE a.PLNO='" & dgd.Columns("plno").Text.Trim & "'"
    154         Dim sums As DataTable = gData.GetDataTable(sql, sqlConn)
    155 
    156         xSheet.Cells(sumnum, 1) = "Total Carton/Rolls:" + CStr(IIf(IsDBNull(sums.Rows(0).Item("count")), "", sums.Rows(0).Item("count")))
    157         xSheet.Range("E" + CStr(sumnum)).FormulaR1C1 = "=SUM(R[-" + CStr(count) + "]C:R[-1]C)"
    158         xSheet.Range("F" + CStr(sumnum)).FormulaR1C1 = "=SUM(R[-" + CStr(count) + "]C:R[-1]C)"
    159         xSheet.Range("G" + CStr(sumnum)).FormulaR1C1 = "=SUM(R[-" + CStr(count) + "]C:R[-1]C)"
    160         xSheet.Range("H" + CStr(sumnum)).FormulaR1C1 = "=SUM(R[-" + CStr(count) + "]C:R[-1]C)"
    161         xSheet.Range("I" + CStr(sumnum)).FormulaR1C1 = "=SUM(R[-" + CStr(count) + "]C:R[-1]C)"
    162         xSheet.Range("J" + CStr(sumnum)).FormulaR1C1 = "=SUM(R[-" + CStr(count) + "]C:R[-1]C)"
    163         '--------------------------detail-----------------------
    164 
    165         '---------------------------ShipMark----------------------
    166         Dim tabShipMark As DataTable = gData.GetDataTable("Select * from dbo.FG_PLShipMark where plno=" & dgd.Columns("plno").Text.Trim & " order by remlin", sqlConn)
    167         If tabShipMark.Rows.Count > 0 Then
    168             Dim ShipMark(tabShipMark.Rows.Count, 1) As Object
    169             For j As Integer = 0 To tabShipMark.Rows.Count - 1
    170                 xSheet.Rows(CStr(34 + count) + ":" + CStr(34 + count)).EntireRow.Insert()
    171                 ShipMark(j, 0) = tabShipMark.Rows(j).Item("remark")
    172             Next
    173             Dim num As Integer = 33 + count + tabShipMark.Rows.Count
    174             xSheet.Range("B" + CStr(33 + count)).Resize(tabShipMark.Rows.Count, 1).Value = ShipMark
    175             xSheet.Rows(CStr(num) + ":" + CStr(num)).EntireRow.delete()
    176         End If
    177         '---------------------------ShipMark----------------------
    178 
    179         '---------------------------footer------------------------
    180         Dim footer As Integer = 36
    181         If count > 0 Then
    182             footer = footer + count - 1
    183         End If
    184         If tabShipMark.Rows.Count > 0 Then
    185             footer = footer + tabShipMark.Rows.Count - 1
    186         End If
    187         Dim footer1 As String = ""
    188         Dim footer2 As String = ""
    189         Dim footer3 As String = ""
    190         footer1 = head.Rows(0).Item("Address1")
    191         xSheet.Range("A" + CStr(footer)).Resize(1, 1).Value = footer1
    192         footer += 1
    193 
    194         footer2 = head.Rows(0).Item("Address2") + head.Rows(0).Item("Address3") + head.Rows(0).Item("Address4")
    195         xSheet.Range("A" + CStr(footer)).Resize(1, 1).Value = footer2
    196         footer += 1
    197 
    198         footer3 = "Tel:" + head.Rows(0).Item("TelNo") + "    Fax:" + head.Rows(0).Item("FaxNo")
    199         xSheet.Range("A" + CStr(footer)).Resize(1, 1).Value = footer3
    200         '---------------------------footer------------------------
    201 
    202         '頁腳
    203         xSheet.PageSetup.CenterFooter = footer1 + Chr(10) + footer2 + Chr(10) + footer3
    204         '打印範圍
    205         xSheet.PageSetup.PrintArea = "$A$1:$k$" + CStr(footer - 3)
    206 
    207         xApp.DisplayAlerts = False
    208         xBook.Worksheets(1).Select()
    209         xApp.Visible = True
    210         xApp.Caption = Me.Text
    211         xApp.ActiveWindow.Caption = "Customer Packing List"
    212     End Sub
    213 
    214     Private Function CustomBranchAlt(ByVal Lot_C As String, ByVal Custom_C As String) As Integer
    215         Try
    216             Dim SQL_C As String = "select max(bkey) bkey from ORFORDT where cstord='" & Lot_C & "' group by cstord"
    217             Dim Branch_C As String = gData.SelectValue(SQL_C, adoConn, "")
    218             SQL_C = "select altadr from orfexba where ekey='" & Custom_C & "' and bkey='" & Branch_C & "'"
    219             Dim Branch_N As Integer = gData.SelectValue(SQL_C, adoConn, "0")
    220             Return Branch_N
    221         Catch ex As Exception
    222             Return 0
    223         End Try
    224     End Function

       

    直接代码的:

      1 Private Sub btnExport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExport.Click
      2         If Me.dgd.Splits(0).Rows.Count <= 0 Then
      3             Exit Sub
      4         End If
      5         Dim tbDetail As DataTable = gData.GetDataTable("select * from FG_PLDetail WHERE PLNO='" + dgd.Columns("plno").Text.Trim + "' ", sqlConn)
      6         If tbDetail.Rows.Count = 0 Then
      7             MessageBox.Show("Please add PL details first!", "Packing List")
      8             Exit Sub
      9         End If
     10         Cursor.Current = Cursors.WaitCursor
     11         gSub.setPrompt("Working...")
     12         Try
     13             Dim xApp As Excel.Application = New Excel.Application
     14             Dim xBook As Excel.Workbook
     15             Dim xSheet As New Excel.Worksheet
     16             xBook = xApp.Workbooks.Add
     17             xSheet = xBook.Worksheets(1)
     18             xSheet.Cells.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter
     19             xSheet.Cells.VerticalAlignment = Excel.XlHAlign.xlHAlignCenter
     20 
     21             xSheet.Cells.RowHeight = 21.5
     22             xSheet.Cells.Font.Size = 12
     23             xSheet.Cells.Font.Name = "Arial"
     24             xApp.WindowState = Excel.XlWindowState.xlMaximized
     25             '1頁寬
     26             With xSheet.PageSetup
     27                 .PrintTitleRows = "$12:$12"
     28                 .LeftMargin = xApp.Application.InchesToPoints(0.25)
     29                 .RightMargin = xApp.Application.InchesToPoints(0.25)
     30                 .TopMargin = xApp.Application.InchesToPoints(0.25)
     31                 .BottomMargin = xApp.Application.InchesToPoints(1)
     32                 .HeaderMargin = xApp.Application.InchesToPoints(0.3)
     33                 .FooterMargin = xApp.Application.InchesToPoints(0.3)
     34                 .PrintComments = xlPrintNoComments
     35                 .Orientation = Excel.XlPageOrientation.xlPortrait
     36                 .Draft = False
     37                 .FirstPageNumber = xlAutomatic
     38                 .Order = xlDownThenOver
     39                 .BlackAndWhite = False
     40                 .Zoom = False
     41                 .FitToPagesWide = 1
     42                 .FitToPagesTall = 1000
     43                 .PrintErrors = xlPrintErrorsDisplayed
     44                 '.PaperSize = 120
     45                 .PrintGridlines = False
     46                 .CenterHorizontally = True
     47             End With
     48 
     49 
     50             Dim strCompyC As String
     51             If g.gLocation = LocationType.BRUNE Then
     52                 strCompyC = "Brunet"
     53             Else
     54                 If g.gLocation = LocationType.CHINA_SHENZHEN Then
     55                     strCompyC = "SHS"
     56                 Else
     57                     strCompyC = "Bogart"
     58                 End If
     59             End If
     60 
     61             Dim netLogo As OleDb.OleDbDataAdapter = gData.GetCompanyLogo(sqlConn, "", strCompyC)
     62             Dim netPrint As New DataSet
     63             netLogo.Fill(netPrint, "mos")
     64             Try
     65                 strCompyC = netPrint.Tables("mos").Rows(0).Item("CompanyCode")
     66                 If strCompyC = "" Then 'export 不選擇logo默認一個,否則取不到數
     67                     strCompyC = "Brunet"
     68                 End If
     69             Catch ex As Exception
     70             End Try
     71 
     72             '---------------------------Logo------------------------
     73             If getImage(strCompyC, 390, 124.8) = True Then
     74                 xSheet.Range("C1").Select()
     75                 xSheet.Pictures.Insert("C:\Temp\BILogo.jpg").Select()
     76                 xApp.Selection.ShapeRange.IncrementLeft(45.0#)
     77                 'xApp.Selection.ShapeRange.IncrementTop(5.0#)
     78                 'xApp.Selection.ShapeRange.LockAspectRatio = True
     79             End If
     80             '---------------------------Logo------------------------
     81 
     82             '---------------------------head------------------------
     83             Dim netDs As New DataSet
     84             Dim sql As String = "SELECT 'PL'+LTRIM(RTRIM(CAST(B.PLNO AS CHAR(18)))) PLNO,A.CSTORD,A.CLOT,A.CORDNO,A.BICOM,A.BANDNO,A.CSTREF,A.EXTNAM,case when isnull(A.OLDDEG,'')='' then A.DEG else (A.DEG+'/'+A.OLDDEG) end as DEG,A.PRDDSC,A.PRDWID,A.SHORDNO,C.CompanyName,C.Address1,C.Address2,C.Address3,C.Address4,C.TelNo,C.FaxNo,A.SPPROC,A.PRDCOM,B.BANDNO FROM dbo.CompanyProfile C, dbo.FG_OrderDetail A INNER JOIN FG_PLHeader B ON A.CLOT=B.CLOT AND A.CSTORD=B.CSTORD AND A.DEG=B.DEG AND A.BICOM=B.BICOM AND A.BANDNO=B.BANDNO where B.PLNO='" & dgd.Columns("plno").Text.Trim & "' AND C.CompanyCode='" & strCompyC & "' "
     85             Dim head As DataTable = gData.GetDataTable(sql, sqlConn)
     86             netDs.Tables.Add(head)
     87             head.TableName = "Head"
     88 
     89             sql = "SELECT t2.bandno,count(*) as count FROM dbo.FG_PLDetail a LEFT JOIN dbo.FG_PLHeader b ON (a.PLNO=b.PLNO) LEFT JOIN dbo.FG_CartonDetail c on (a.ctnid=c.ctnid) left join FG_CartonBobbin t1 on c.ctnid=t1.ctnid left join FG_BobbinDetail t2 on t1.bobid=t2.bobid LEFT JOIN dbo.FG_CartonDimension d on (c.ctndim=d.ctndim) LEFT JOIN dbo.FG_OrderDetail o on (b.clot=o.clot and b.cstord=o.cstord and b.deg=o.deg and b.bicom=o.bicom and b.bandno=o.bandno) WHERE a.PLNO='" & dgd.Columns("plno").Text.Trim & "' group by t2.bandno"
     90             Dim head_LR As DataTable = gData.GetDataTable(sql, sqlConn)
     91             If head_LR.Rows.Count > 1 Then
     92                 head_LR = gData.GetDataTable("SELECT '' as bandno,1 as count", sqlConn)
     93             End If
     94             netDs.Tables("Head").Rows(0).Item("bandno") = head_LR.Rows(0).Item("bandno")
     95             netDs.AcceptChanges()
     96 
     97             'Packing List
     98             xSheet.Range("H2").Resize(1, 1).Value = "Packing List"
     99             xSheet.Range("H3").Resize(1, 1).Value = "Print Date:"
    100             xSheet.Range("H4").Resize(1, 1).Value = "Packing No:"
    101             With xSheet.Range("I3").Resize(1, 2)
    102                 .Merge()
    103                 .Value = Now.Date
    104             End With
    105             With xSheet.Range("I4").Resize(1, 2)
    106                 .Merge()
    107                 .Value = netDs.Tables("Head").Rows(0).Item("PLNO")
    108             End With
    109             xSheet.Range("H2").Resize(3, 3).HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft
    110             'main
    111             With xSheet.Range("A7").Resize(1, 5)
    112                 .Merge()
    113                 .Value = netDs.Tables("Head").Rows(0).Item("CompanyName")
    114                 .HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft
    115             End With
    116             With xSheet.Range("A8").Resize(1, 5)
    117                 .Merge()
    118                 Dim strAtr = "Atr. No. :" + CStr(IIf(IsDBNull(netDs.Tables("Head").Rows(0).Item("DEG")), "", netDs.Tables("Head").Rows(0).Item("DEG")))
    119                 If Not IsDBNull(netDs.Tables("Head").Rows(0).Item("BANDNO")) Then
    120                     If CStr(netDs.Tables("Head").Rows(0).Item("BANDNO")).Trim.Length > 0 Then
    121                         strAtr += "-" + CStr(netDs.Tables("Head").Rows(0).Item("BANDNO"))
    122                     End If
    123                 End If
    124                 .Value = strAtr
    125                 .HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft
    126             End With
    127             With xSheet.Range("A9").Resize(2, 5)
    128                 .Merge()
    129                 .Value = "Special Process:" + CStr(IIf(IsDBNull(netDs.Tables("Head").Rows(0).Item("SPPROC")), "", netDs.Tables("Head").Rows(0).Item("SPPROC")))
    130                 .WrapText = True
    131                 .HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft
    132             End With
    133             With xSheet.Range("A11").Resize(1, 5)
    134                 .Merge()
    135                 .Value = "Mo:" + CStr(IIf(IsDBNull(netDs.Tables("Head").Rows(0).Item("SHORDNO")), "", netDs.Tables("Head").Rows(0).Item("SHORDNO")))
    136                 .HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft
    137             End With
    138             With xSheet.Range("F7").Resize(1, 5)
    139                 .Merge()
    140                 .Value = "P/O No. :" + CStr(IIf(IsDBNull(netDs.Tables("Head").Rows(0).Item("CORDNO")), "", netDs.Tables("Head").Rows(0).Item("CORDNO"))).Trim() + "/" + CStr(IIf(IsDBNull(netDs.Tables("Head").Rows(0).Item("CLOT")), "", netDs.Tables("Head").Rows(0).Item("CLOT"))).Trim()
    141                 .HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft
    142             End With
    143             With xSheet.Range("F8").Resize(3, 5)
    144                 .Merge()
    145                 .Value = "Description:" + CStr(IIf(IsDBNull(netDs.Tables("Head").Rows(0).Item("PRDCOM")), "", netDs.Tables("Head").Rows(0).Item("PRDCOM")))
    146                 .WrapText = True
    147                 .HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft
    148             End With
    149             With xSheet.Range("F11").Resize(1, 5)
    150                 .Merge()
    151                 .Value = "Width:" + CStr(IIf(IsDBNull(netDs.Tables("Head").Rows(0).Item("PRDWID")), "", netDs.Tables("Head").Rows(0).Item("PRDWID")))
    152                 .HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft
    153             End With
    154             '-----------------去內邊框-----------------------------
    155             'With xSheet.Range("A7").Resize(5, 10)
    156             '    '.Interior.ColorIndex = 2
    157             '    '.Borders(xlDiagonalDown).LineStyle = xlNone
    158             '    '.Borders(xlDiagonalUp).LineStyle = xlNone
    159             '    With .Borders(xlEdgeLeft)
    160             '        .LineStyle = xlContinuous
    161             '        .Weight = xlThin
    162             '        .ColorIndex = xlAutomatic
    163             '    End With
    164             '    With .Borders(xlEdgeTop)
    165             '        .LineStyle = xlContinuous
    166             '        .Weight = xlThin
    167             '        .ColorIndex = xlAutomatic
    168             '    End With
    169             '    With .Borders(xlEdgeBottom)
    170             '        .LineStyle = xlContinuous
    171             '        .Weight = xlThin
    172             '        .ColorIndex = xlAutomatic
    173             '    End With
    174             '    With .Borders(xlEdgeRight)
    175             '        .LineStyle = xlContinuous
    176             '        .Weight = xlThin
    177             '        .ColorIndex = xlAutomatic
    178             '    End With
    179             '    '.Borders(xlInsideVertical).LineStyle = xlNone
    180             '    '.Borders(xlInsideHorizontal).LineStyle = xlNone
    181             'End With
    182             'With xSheet.Range("E7").Resize(5, 1)
    183             '    With .Borders(xlEdgeRight)
    184             '        .LineStyle = xlContinuous
    185             '        .Weight = xlThin
    186             '        .ColorIndex = xlAutomatic
    187             '    End With
    188             'End With
    189             '-----------------去內邊框-----------------------------
    190             '---------------------------head------------------------
    191 
    192             '---------------------------detail------------------------
    193             sql = "SELECT CTNNO,BATCHNO,ltrim(rtrim(CSCOMD)),GRSWGTKG,NETWGTKG,NETWGTLB,C.grslenm,NETLENM,C.deflenm,D.CTNDIMD FROM dbo.FG_PLDetail a LEFT JOIN dbo.FG_PLHeader b ON (a.PLNO=b.PLNO) LEFT JOIN dbo.FG_CartonDetail c on (a.ctnid=c.ctnid) LEFT JOIN dbo.FG_CartonDimension d on (c.ctndim=d.ctndim) LEFT JOIN dbo.FG_OrderDetail o on (b.clot=o.clot and b.cstord=o.cstord and b.deg=o.deg and b.bicom=o.bicom and b.bandno=o.bandno) WHERE a.PLNO='" & dgd.Columns("plno").Text.Trim & "' order by CTNNO"
    194             Dim detail As DataTable = gData.GetDataTable(sql, sqlConn)
    195 
    196             sql = "SELECT count(distinct CTNNO) as count,sum(GRSWGTKG) as GRSWGTKG,sum(NETWGTKG) as NETWGTKG,sum(NETWGTLB) as NETWGTLB,sum(C.grslenm) as grslenm,sum(NETLENM) as NETLENM,sum(C.deflenm) as deflenm FROM dbo.FG_PLDetail a LEFT JOIN dbo.FG_PLHeader b ON (a.PLNO=b.PLNO) LEFT JOIN dbo.FG_CartonDetail c on (a.ctnid=c.ctnid) LEFT JOIN dbo.FG_CartonDimension d on (c.ctndim=d.ctndim) LEFT JOIN dbo.FG_OrderDetail o on (b.clot=o.clot and b.cstord=o.cstord and b.deg=o.deg and b.bicom=o.bicom and b.bandno=o.bandno) WHERE a.PLNO='" & dgd.Columns("plno").Text.Trim & "'"
    197             Dim sums As DataTable = gData.GetDataTable(sql, sqlConn)
    198 
    199             Dim count = detail.Rows.Count
    200             Dim Herder() As String = "CTN No.,Batch No.,Color,G.W.(kgs),N.W.(kgs),N.W.(LBS),Gross(m),N.Length(m),Tare(m),Meas/cm".Split(",")
    201             Dim data(count + 1, Herder.Length) As Object
    202             For i As Integer = 0 To count
    203                 If i = 0 Then 'header
    204                     For k As Integer = 0 To Herder.Length - 1
    205                         data(0, k) = Herder(k)
    206                     Next
    207                 Else 'data
    208                     For j As Integer = 0 To Herder.Length - 1
    209                         data(i, j) = detail.Rows(i - 1).Item(j)
    210                     Next
    211                 End If
    212             Next
    213             With xSheet.Range("A12").Resize(count + 2, Herder.Length)
    214                 .Value = data
    215                 .Borders.LineStyle = 1
    216             End With
    217             With xSheet.Range("A12").Resize(1, Herder.Length)
    218                 .Interior.Color = RGB(192, 192, 192) '底色
    219             End With
    220 
    221             'sum
    222             Dim x = 13 + count
    223             xSheet.Range("A" + CStr(x)).Resize(1, 1).Value = "Ctns:" + CStr(IIf(IsDBNull(sums.Rows(0).Item("count")), "", sums.Rows(0).Item("count")))
    224             With xSheet.Range("B" + CStr(x)).Resize(1, 2)
    225                 .Merge()
    226                 .Value = "Total:"
    227                 .HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter
    228             End With
    229             Dim sum(6) As Object
    230             sum(0) = sums.Rows(0).Item("GRSWGTKG")
    231             sum(1) = sums.Rows(0).Item("NETWGTKG")
    232             sum(2) = sums.Rows(0).Item("NETWGTLB")
    233             sum(3) = sums.Rows(0).Item("grslenm")
    234             sum(4) = sums.Rows(0).Item("NETLENM")
    235             sum(5) = sums.Rows(0).Item("deflenm")
    236             xSheet.Range("D" + CStr(x)).Resize(1, 6).Value = sum
    237 
    238             xSheet.Range("A1").Resize(1, 1).RowHeight = 93.75
    239             'ColumnWidth
    240             xSheet.Range("A1").Resize(1, 1).ColumnWidth = 7.57
    241             xSheet.Range("B1").Resize(1, 1).ColumnWidth = 14.5
    242             xSheet.Range("C1").Resize(1, 1).ColumnWidth = 23.15
    243             xSheet.Range("D1").Resize(1, 1).ColumnWidth = 10
    244             xSheet.Range("E1").Resize(1, 1).ColumnWidth = 9.71
    245             xSheet.Range("F1").Resize(1, 1).ColumnWidth = 10.5
    246             xSheet.Range("G1").Resize(1, 1).ColumnWidth = 9.57
    247             xSheet.Range("H1").Resize(1, 1).ColumnWidth = 12.43
    248             xSheet.Range("I1").Resize(1, 1).ColumnWidth = 8.5
    249             xSheet.Range("J1").Resize(1, 1).ColumnWidth = 15.71
    250             '---------------------------detail------------------------
    251 
    252             '---------------------------ShipMark----------------------
    253             x += 2
    254             With xSheet.Range("A" + CStr(x)).Resize(1, 2)
    255                 .Merge()
    256                 .Value = "Shipping Mark:"
    257                 .HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft
    258             End With
    259             Dim tabShipMark As DataTable = gData.GetDataTable("Select * from dbo.FG_PLShipMark where plno=" & dgd.Columns("plno").Text.Trim & " order by remlin", sqlConn)
    260             If tabShipMark.Rows.Count > 0 Then
    261                 Dim ShipMark(tabShipMark.Rows.Count, 1) As Object
    262                 For i As Integer = 0 To tabShipMark.Rows.Count - 1
    263                     ShipMark(i, 0) = tabShipMark.Rows(i).Item("remark")
    264                 Next
    265                 x += 1
    266                 xSheet.Range("B" + CStr(x)).Resize(tabShipMark.Rows.Count, 1).Value = ShipMark
    267                 For i As Integer = x To x + tabShipMark.Rows.Count
    268                     xSheet.Range("B" + CStr(i)).Resize(1, 9).Merge()
    269                     xSheet.Range("B" + CStr(i)).Resize(1, 9).HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft
    270                 Next
    271                 x += tabShipMark.Rows.Count + 2
    272             Else
    273                 x += 5
    274             End If
    275 
    276             '---------------------------ShipMark----------------------
    277 
    278             '---------------------------footer------------------------
    279             x += 1
    280             Dim footer1 As String = ""
    281             Dim footer2 As String = ""
    282             Dim footer3 As String = ""
    283             With xSheet.Range("A" + CStr(x)).Resize(1, Herder.Length)
    284                 .Merge()
    285                 footer1 = netDs.Tables("Head").Rows(0).Item("Address1")
    286                 .Value = footer1
    287                 .HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter
    288                 '.Interior.Color = RGB(192, 192, 192) '底色
    289             End With
    290             x += 1
    291             With xSheet.Range("A" + CStr(x)).Resize(1, Herder.Length)
    292                 .Merge()
    293                 footer2 = CStr(IIf(IsDBNull(netDs.Tables("Head").Rows(0).Item("Address2")), "", netDs.Tables("Head").Rows(0).Item("Address2"))) + CStr(IIf(IsDBNull(netDs.Tables("Head").Rows(0).Item("Address3")), "", netDs.Tables("Head").Rows(0).Item("Address3"))) + CStr(IIf(IsDBNull(netDs.Tables("Head").Rows(0).Item("Address4")), "", netDs.Tables("Head").Rows(0).Item("Address4")))
    294                 .Value = footer2
    295                 .HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter
    296                 '.Interior.Color = RGB(192, 192, 192) '底色
    297             End With
    298             x += 1
    299             With xSheet.Range("A" + CStr(x)).Resize(1, Herder.Length)
    300                 .Merge()
    301                 footer3 = "Tel:" + CStr(IIf(IsDBNull(netDs.Tables("Head").Rows(0).Item("TelNo")), "", netDs.Tables("Head").Rows(0).Item("TelNo"))) + "   Fax:" + CStr(IIf(IsDBNull(netDs.Tables("Head").Rows(0).Item("FaxNo")), "", netDs.Tables("Head").Rows(0).Item("FaxNo")))
    302                 .Value = footer3
    303                 .HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter
    304                 '.Interior.Color = RGB(192, 192, 192) '底色
    305             End With
    306             '---------------------------footer------------------------
    307 
    308             '頁腳
    309             xSheet.PageSetup.CenterFooter = footer1 + Chr(10) + footer2 + Chr(10) + footer3
    310             '打印範圍
    311             xSheet.PageSetup.PrintArea = "$A$1:$J$" + CStr(x - 3)
    312 
    313             xApp.Range("A1").Select()
    314 
    315             xApp.ActiveWindow.Zoom = 100
    316             xApp.Visible = True
    317             xApp.Caption = "Bogart ProTex Report"
    318             xApp.ActiveWindow.Caption = "Data Export"
    319 
    320             xSheet = Nothing
    321             xBook = Nothing
    322             xApp = Nothing
    323             GC.Collect()
    324         Catch ex As Exception
    325             MsgBox(ex.ToString(), MsgBoxStyle.Information, "Packing List")
    326         End Try
    327         gSub.setPrompt("Ready")
    328         Me.Cursor = Cursors.Default
    329     End Sub

    vinson
  • 相关阅读:
    CentOS+Nginx+PHP+MySQL详细配置(图解)
    linux下MySQL安装登录及操作
    hdu 1059 多重背包
    hdu 1754 单点更新
    poj 3264 RMQ 水题
    hdu 1114 基础完全背包
    hdu 3466 排序01背包
    poj 2923 状压dp+01背包
    hdu 2639 第k大01背包
    hdu 2184 01背包变形
  • 原文地址:https://www.cnblogs.com/vinsonLu/p/3025630.html
Copyright © 2020-2023  润新知