Без опису
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

列印_出貨單.vb 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. Option Strict Off
  2. Imports Microsoft.Office.Interop.Excel.XlUnderlineStyle
  3. Imports Microsoft.Office.Interop.Excel.Constants
  4. Imports Microsoft.Office.Interop.Excel.XlThemeFont
  5. Imports Microsoft.Office.Interop.Excel.XlThemeColor
  6. Imports Microsoft.Office.Interop.Excel.XlWindowState
  7. Imports Microsoft.Office.Interop.Excel
  8. Public Class 列印_出貨單
  9. ReadOnly ds As New DataSet : Dim N1 As Integer : Dim N2 As Integer : Dim N3 As Integer : Dim N4 As Integer : Dim N5 As Integer
  10. Dim xlApp As Application : Dim xlBook As Workbook : Dim xlSheet As Worksheet
  11. Private Sub Set_清單()
  12. 出貨明細_dgv.DataSource = Nothing : ds.Clear()
  13. 出貨明細_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  14. 出貨明細_dgv.ColumnHeadersHeight = 40
  15. 出貨明細_dgv.AllowUserToAddRows = False
  16. 出貨明細_dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText
  17. 出貨明細_dgv.MultiSelect = True
  18. SQL_列印_出貨單清單()
  19. da.Fill(ds) : 出貨明細_dgv.DataSource = ds.Tables(0) : conn.Close()
  20. 出貨明細_dgv.Columns(0).FillWeight = A_nud.Value : 出貨明細_dgv.Columns(1).FillWeight = B_nud.Value
  21. 出貨明細_dgv.Columns(2).FillWeight = C_nud.Value + 10 : 出貨明細_dgv.Columns(3).FillWeight = E_nud.Value
  22. 出貨明細_dgv.Columns(4).FillWeight = F_nud.Value : 出貨明細_dgv.Columns(5).FillWeight = G_nud.Value
  23. 出貨明細_dgv.Columns(3).DefaultCellStyle.Format = "#,##0" : 出貨明細_dgv.Columns(5).DefaultCellStyle.Format = "#,##0"
  24. 出貨明細_dgv.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 出貨明細_dgv.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  25. 出貨明細_dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 出貨明細_dgv.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  26. 出貨明細_dgv.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 出貨明細_dgv.Columns(3).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  27. 出貨明細_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 出貨明細_dgv.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  28. 出貨明細_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 出貨明細_dgv.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  29. 合計_tb.Text = "0"
  30. N1 = 出貨明細_dgv.Rows.Count \ 10 + 1 : 幾頁_tb.Text = N1
  31. For I As Integer = 0 To 5 : 出貨明細_dgv.Columns(I).ReadOnly = True : Next
  32. For i As Integer = 0 To 出貨明細_dgv.Rows.Count - 1
  33. 出貨明細_dgv.Rows(i).Cells("A").Value = i + 1 : 出貨明細_dgv.Rows(i).Cells("F").Value = "只"
  34. 合計_tb.Text = Val(合計_tb.Text) + 出貨明細_dgv.Rows(i).Cells("G").Value
  35. Next
  36. End Sub
  37. Private Sub 列印_出貨單_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  38. Set_清單() : SQL_列印_出貨單表頭()
  39. If dr.Read() Then
  40. 客戶公司_tb.Text = dr("店名").ToString : 電話_tb.Text = dr("電話").ToString : 統一編號_tb.Text = dr("統編").ToString : 送貨地址_tb.Text = dr("送貨地址").ToString
  41. 單據編號_tb.Text = dr("單據編號").ToString : 客戶聯絡人_tb.Text = dr("聯絡人").ToString : 訂單號碼_tb.Text = dr("訂單流水號").ToString : 業務人員_tb.Text = dr("業務").ToString
  42. 司機_tb.Text = dr("司機").ToString
  43. End If
  44. If 客戶公司_tb.Text = "其他-零售" Then
  45. SQL_列印_出貨單表頭_零售()
  46. If (dr.Read()) Then
  47. 電話_tb.Text = dr("電話").ToString : 統一編號_tb.Text = dr("統一編號").ToString : 送貨地址_tb.Text = dr("送貨地址").ToString : 客戶聯絡人_tb.Text = dr("客戶名稱").ToString
  48. End If
  49. Else : End If
  50. SQL_列印_出貨單邊界設定讀取()
  51. If dr.Read() Then
  52. A_nud.Value = dr("A") : B_nud.Value = dr("B") : C_nud.Value = dr("C") : D_nud.Value = dr("D") : E_nud.Value = dr("E")
  53. F_nud.Value = dr("F") : G_nud.Value = dr("G") : H_nud.Value = dr("H") : I_nud.Value = dr("I") : J_nud.Value = dr("J")
  54. K_nud.Value = dr("K") : L_nud.Value = dr("L") : M_nud.Value = dr("M") : N1_nud.Value = dr("表頭") : N2_nud.Value = dr("清單")
  55. N3_nud.Value = dr("表尾")
  56. End If : conn.Close()
  57. End Sub
  58. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles 設定存檔_bt.Click
  59. SQL_列印_出貨單邊界設定修改() : conn.Close() : MsgBox("修改完成。")
  60. End Sub
  61. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles 列印_bt.Click
  62. xlApp = CType(CreateObject("Excel.Application"), Application)
  63. xlBook = xlApp.Workbooks.Add
  64. xlApp.DisplayAlerts = True
  65. xlBook.Activate()
  66. xlSheet = NewMethod(xlBook)
  67. xlSheet.Activate()
  68. xlApp.Visible = True
  69. xlApp.Application.WindowState = xlMaximized
  70. N2 = 0 : N5 = 0 : N3 = 出貨明細_dgv.Rows.Count : AA(xlApp, xlSheet)
  71. For I As Integer = 1 To Val(幾頁_tb.Text)
  72. xlSheet.Cells(5 + N2, 3) = 客戶公司_tb.Text : xlSheet.Cells(6 + N2, 3) = 電話_tb.Text : xlSheet.Cells(7 + N2, 3) = 統一編號_tb.Text : xlSheet.Cells(8 + N2, 3) = 送貨地址_tb.Text
  73. xlSheet.Cells(4 + N2, 9) = 填單日期_dtp.Value : xlSheet.Cells(5 + N2, 9) = 單據編號_tb.Text : xlSheet.Cells(6 + N2, 9) = 客戶聯絡人_tb.Text : xlSheet.Cells(7 + N2, 9) = 訂單號碼_tb.Text
  74. xlSheet.Cells(8 + N2, 9) = 業務人員_tb.Text : xlSheet.Cells(23 + N2, 9) = 合計_tb.Text : xlSheet.Cells(25 + N2, 9) = 合計_tb.Text : xlSheet.Cells(24 + N2, 9) = "0"
  75. xlSheet.Cells(23 + N2, 3) = 合計_tb.Text : xlSheet.Cells(24 + N2, 3) = 司機_tb.Text
  76. If N3 > 10 Then : N4 = 10 : Else : N4 = N3 : End If
  77. For II As Integer = 0 To N4 - 1
  78. xlSheet.Cells(II + 12 + N2, 1) = 出貨明細_dgv.Rows(N5).Cells("A").Value
  79. xlSheet.Cells(II + 12 + N2, 2) = 出貨明細_dgv.Rows(N5).Cells("B").Value
  80. xlSheet.Cells(II + 12 + N2, 3) = 出貨明細_dgv.Rows(N5).Cells("C").Value
  81. xlSheet.Cells(II + 12 + N2, 5) = 出貨明細_dgv.Rows(N5).Cells("E").Value
  82. xlSheet.Cells(II + 12 + N2, 6) = 出貨明細_dgv.Rows(N5).Cells("F").Value
  83. xlSheet.Cells(II + 12 + N2, 7) = 出貨明細_dgv.Rows(N5).Cells("G").Value
  84. xlSheet.Cells(II + 12 + N2, 9) = "= E" & II + 12 & " * G" & II + 12
  85. If N3 < 10 Then
  86. xlSheet.Cells(II + 12 + N2 + 1, 2) = "(以下空白)"
  87. End If
  88. If N3 > 10 Then : N3 -= 10 : End If
  89. N5 += 1
  90. Next
  91. BB(xlApp, xlSheet) : N2 = 27
  92. Next
  93. xlSheet.PageSetup.PrintArea = ""
  94. xlApp.Cells.Select()
  95. xlSheet.Range("B1").Select()
  96. xlApp.Application.WindowState = xlMinimized
  97. xlSheet.Cells.Select()
  98. MsgBox("列印完成。")
  99. Me.Close()
  100. End Sub
  101. Private Shared Function NewMethod(xlBook As Workbook) As Worksheet
  102. Return CType(xlBook.Worksheets.Add, Worksheet)
  103. End Function
  104. Private Sub AA(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  105. xlSheet.Cells.Select()
  106. With myExcel.Selection.Font : .Name = "Times New Roman" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  107. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  108. End Sub
  109. Private Sub BB(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  110. xlSheet.Rows(12 + N2 & ":" & 25 + N2).Select
  111. With myExcel.Selection.Font : .Size = 11 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  112. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  113. xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = A_nud.Value
  114. xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = B_nud.Value
  115. xlSheet.Columns("C:C").Select : myExcel.Selection.ColumnWidth = C_nud.Value
  116. xlSheet.Columns("D:D").Select : myExcel.Selection.ColumnWidth = D_nud.Value
  117. xlSheet.Columns("E:E").Select : myExcel.Selection.ColumnWidth = E_nud.Value
  118. xlSheet.Columns("F:F").Select : myExcel.Selection.ColumnWidth = F_nud.Value
  119. xlSheet.Columns("G:G").Select : myExcel.Selection.ColumnWidth = G_nud.Value
  120. xlSheet.Columns("H:H").Select : myExcel.Selection.ColumnWidth = H_nud.Value
  121. xlSheet.Columns("I:I").Select : myExcel.Selection.ColumnWidth = I_nud.Value
  122. xlSheet.Columns("J:J").Select : myExcel.Selection.ColumnWidth = J_nud.Value
  123. xlSheet.Columns("K:K").Select : myExcel.Selection.ColumnWidth = K_nud.Value
  124. xlSheet.Columns("L:L").Select : myExcel.Selection.ColumnWidth = L_nud.Value
  125. xlSheet.Columns("M:M").Select : myExcel.Selection.ColumnWidth = M_nud.Value
  126. xlSheet.Range("I" & 4 + N2).Select() : myExcel.Selection.NumberFormatLocal = "yyyy/mm/dd"
  127. xlSheet.Range("E" & 12 + N2 & ":E" & 21 + N2).Select() : myExcel.Selection.NumberFormatLocal = "#,##0"
  128. xlSheet.Range("G" & 12 + N2 & ":G" & 21 + N2).Select() : myExcel.Selection.NumberFormatLocal = "#,##0"
  129. xlSheet.Range("I" & 12 + N2 & ":I" & 25 + N2).Select() : myExcel.Selection.NumberFormatLocal = "#,##0"
  130. xlSheet.Range("C" & 5 + N2 & ":C" & 8 + N2).Select()
  131. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  132. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  133. xlSheet.Range("I" & 4 + N2 & ":I" & 8 + N2).Select()
  134. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  135. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  136. xlSheet.Rows(3 + N2 & ":" & 8 + N2).Select : myExcel.Selection.RowHeight = N1_nud.Value
  137. xlSheet.Rows(12 + N2 & ":" & 22 + N2).Select : myExcel.Selection.RowHeight = N2_nud.Value
  138. xlSheet.Rows(23 + N2 & ":" & 27 + N2).Select : myExcel.Selection.RowHeight = N3_nud.Value
  139. xlSheet.Range("C" & 23 + N2).Select() : myExcel.Selection.NumberFormatLocal = "[DBNum2][$-zh-TW]G/通用格式"
  140. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  141. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  142. End Sub
  143. End Class