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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851
  1. Option Strict Off
  2. Imports Microsoft.Office.Interop.Excel.XlUnderlineStyle
  3. Imports Microsoft.Office.Interop.Excel.Constants
  4. Imports Microsoft.Office.Interop.Excel.XlBordersIndex
  5. Imports Microsoft.Office.Interop.Excel.XlLineStyle
  6. Imports Microsoft.Office.Interop.Excel.XlBorderWeight
  7. Imports Microsoft.Office.Interop.Excel.XlThemeFont
  8. Imports Microsoft.Office.Interop.Excel.XlThemeColor
  9. Imports Microsoft.Office.Interop.Excel.XlWindowState
  10. Imports Microsoft.Office.Interop.Excel
  11. Imports System.IO
  12. Imports System.Reflection
  13. Imports Microsoft.Office.Interop
  14. Public Class 估價單
  15. ReadOnly ds As New DataSet : ReadOnly ds1 As New DataSet : ReadOnly ds2 As New DataSet : Dim boo As Boolean : Dim 新項次 As String : Dim 新流水 As String : Dim 新流水1 As String
  16. Dim NUM1, NUM2 As Integer
  17. Dim xlApp As New Microsoft.Office.Interop.Excel.Application
  18. Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
  19. Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
  20. Dim 位置1 As String
  21. Dim N2 As Integer : Dim N3 As Integer
  22. Dim index As Integer
  23. Private Sub 估價單_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  24. Me.MdiParent = ICS_ASMS_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  25. 報價日期_dtp.CustomFormat = "yyyy/MM/dd"
  26. 報價日期_dtp.Format = DateTimePickerFormat.Custom
  27. 確認新增_bt.Enabled = False : 修改_bt.Enabled = False : boo = False
  28. 選擇供應商_cb.Items.Add("")
  29. SQL_物料資料庫_供應商_下拉清單()
  30. While (dr.Read()) : 選擇供應商_cb.Items.Add(dr("公司名")) : End While : conn.Close()
  31. SQL_讀取公司名稱()
  32. If dr.Read() Then
  33. 公司_tb.Text = dr("公司名稱")
  34. End If
  35. Set_清單1() : Set_清單3()
  36. End Sub
  37. Private Sub 類別清單_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 選擇供應商_cb.SelectedIndexChanged
  38. Set_清單3() : 料號_tb.Text = "" : 品名_tb.Text = "" : 成本_tb.Text = "" : 狀態_tb.Text = ""
  39. End Sub
  40. Private Sub Set_清單1()
  41. 控制表_dgv.DataSource = Nothing : ds.Clear()
  42. 控制表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  43. 控制表_dgv.ColumnHeadersHeight = 25
  44. 控制表_dgv.AllowUserToAddRows = False
  45. 控制表_dgv.RowTemplate.Height = 30
  46. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  47. SQL_估價單_控制表清單()
  48. da.Fill(ds) : 控制表_dgv.DataSource = ds.Tables(0) : conn.Close()
  49. 控制表_dgv.Columns(1).FillWeight = 50 : 控制表_dgv.Columns(3).FillWeight = 50
  50. 控制表_dgv.Columns(0).Visible = False : 控制表_dgv.Columns(2).Visible = False
  51. 控制表_dgv.Columns(4).Visible = False : 控制表_dgv.Columns(5).Visible = False : 控制表_dgv.Columns(6).Visible = False
  52. End Sub
  53. Private Sub 控制表_dgv_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles 控制表_dgv.CellClick
  54. If boo = False Then
  55. If e.RowIndex = -1 Then : Else
  56. 確認新增_bt.Enabled = False : 修改_bt.Enabled = True
  57. 單號_tb.Text = 控制表_dgv(0, e.RowIndex).Value.ToString : 車主名稱_tb.Text = 控制表_dgv(1, e.RowIndex).Value.ToString
  58. 電話_tb.Text = 控制表_dgv(2, e.RowIndex).Value.ToString : 車號_tb.Text = 控制表_dgv(3, e.RowIndex).Value.ToString
  59. 報價日期_dtp.Text = 控制表_dgv(4, e.RowIndex).Value.ToString : 備註_tb.Text = 控制表_dgv(5, e.RowIndex).Value.ToString
  60. 里程_tb.Text = 控制表_dgv(6, e.RowIndex).Value.ToString
  61. Set_清單2()
  62. End If
  63. End If
  64. End Sub
  65. Private Sub Set_清單2()
  66. 明細表_dgv.DataSource = Nothing : ds1.Clear()
  67. 明細表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  68. 明細表_dgv.ColumnHeadersHeight = 25
  69. 明細表_dgv.AllowUserToAddRows = False
  70. 明細表_dgv.RowTemplate.Height = 35
  71. 明細表_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  72. SQL_估價單_查詢明細表() : da.Fill(ds1) : 明細表_dgv.DataSource = ds1.Tables(0) : conn.Close()
  73. Dim newFont As New System.Drawing.Font("微軟正黑體", 9)
  74. 明細表_dgv.Columns("總售價").ReadOnly = True : 明細表_dgv.Columns("項次").ReadOnly = True : 明細表_dgv.Columns("總成本").ReadOnly = True
  75. 明細表_dgv.Columns("利潤").ReadOnly = True
  76. 明細表_dgv.Columns(0).Visible = False : 明細表_dgv.Columns(1).FillWeight = 60 : 明細表_dgv.Columns(2).FillWeight = 400 : 明細表_dgv.Columns(3).FillWeight = 60
  77. 明細表_dgv.Columns(5).FillWeight = 100 : 明細表_dgv.Columns(7).Visible = 100
  78. 明細表_dgv.Columns(9).Visible = 300 : 明細表_dgv.Columns(10).Visible = False : 明細表_dgv.Columns(11).Visible = False : 明細表_dgv.Columns(12).Visible = False
  79. 明細表_dgv.RowsDefaultCellStyle.Font = newFont
  80. If 隱藏成本_cb.Checked = False Then
  81. 明細表_dgv.Columns(4).Visible = False
  82. 明細表_dgv.Columns(6).Visible = False
  83. 明細表_dgv.Columns(8).Visible = False
  84. Else
  85. 明細表_dgv.Columns(4).FillWeight = 100 : 明細表_dgv.Columns(6).FillWeight = 100 : 明細表_dgv.Columns(8).Visible = 100
  86. 明細表_dgv.Columns(6).DefaultCellStyle.Format = "#,##0.##"
  87. 明細表_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.##"
  88. 明細表_dgv.Columns(8).DefaultCellStyle.Format = "#,##0.##"
  89. 明細表_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  90. 明細表_dgv.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  91. 明細表_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  92. 明細表_dgv.Columns(6).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  93. 明細表_dgv.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  94. 明細表_dgv.Columns(8).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  95. End If
  96. 明細表_dgv.Columns(5).DefaultCellStyle.Format = "#,##0.##" : 明細表_dgv.Columns(7).DefaultCellStyle.Format = "#,##0.##"
  97. 明細表_dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  98. 明細表_dgv.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  99. 明細表_dgv.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  100. 明細表_dgv.Columns(3).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  101. 明細表_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  102. 明細表_dgv.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  103. 明細表_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  104. 明細表_dgv.Columns(7).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  105. Dim NUM1 As Integer = 0
  106. Dim NUM2 As Integer = 0
  107. For i As Integer = 0 To 明細表_dgv.Rows.Count - 1
  108. 明細表_dgv.Rows(i).Cells("總售價").Value = 明細表_dgv.Rows(i).Cells("數量").Value * 明細表_dgv.Rows(i).Cells("售價").Value
  109. 明細表_dgv.Rows(i).Cells("總成本").Value = 明細表_dgv.Rows(i).Cells("數量").Value * 明細表_dgv.Rows(i).Cells("成本").Value
  110. 明細表_dgv.Rows(i).Cells("利潤").Value = (明細表_dgv.Rows(i).Cells("數量").Value * 明細表_dgv.Rows(i).Cells("售價").Value) - (明細表_dgv.Rows(i).Cells("數量").Value * 明細表_dgv.Rows(i).Cells("成本").Value)
  111. If 明細表_dgv.Rows(i).Cells("狀態").Value <> "承修項目" Then
  112. NUM1 += 明細表_dgv.Rows(i).Cells("總售價").Value
  113. Else
  114. NUM2 += 明細表_dgv.Rows(i).Cells("總售價").Value
  115. End If
  116. Next
  117. 零件_tb.Text = Strings.Format(Val(NUM1), "#,##0")
  118. 工資_tb.Text = Strings.Format(Val(NUM2), "#,##0")
  119. 總計_tb.Text = Strings.Format(Val(NUM1 + NUM2), "#,##0")
  120. If 是否收稅_cb.Checked = True Then
  121. 稅金_tb.Text = Strings.Format(Val((NUM1 + NUM2) * 0.05), "#,##0")
  122. 應收合計_tb.Text = Strings.Format(Val(NUM1 + NUM2 + ((NUM1 + NUM2) * 0.05)), "#,##0")
  123. 總計_tb.Text = Strings.Format(Val(NUM1 + NUM2 + ((NUM1 + NUM2) * 0.05)), "#,##0")
  124. Else
  125. 稅金_tb.Text = "0"
  126. 應收合計_tb.Text = Strings.Format(Val(NUM1 + NUM2), "#,##0")
  127. End If
  128. End Sub
  129. Private Sub 是否收稅_cb_CheckedChanged(sender As Object, e As EventArgs) Handles 是否收稅_cb.CheckedChanged
  130. Dim NUM1, NUM2 As Integer
  131. If 總計_tb.Text <> "" Then
  132. NUM1 = 總計_tb.Text
  133. NUM2 = NUM1 * 0.05
  134. If 是否收稅_cb.Checked = True Then
  135. 稅金_tb.Text = Strings.Format(Val(NUM2), "#,##0")
  136. 應收合計_tb.Text = Strings.Format(Val(NUM1 + NUM2), "#,##0")
  137. 總計_tb.Text = Strings.Format(Val(NUM1 + NUM2), "#,##0")
  138. Else
  139. 稅金_tb.Text = "0"
  140. 應收合計_tb.Text = Strings.Format(Val(NUM1), "#,##0")
  141. End If
  142. End If
  143. End Sub
  144. Private Sub 明細表_dgv_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles 明細表_dgv.CellEnter
  145. Dim NUM1 As Integer = 0
  146. Dim NUM2 As Integer = 0
  147. index = e.RowIndex
  148. If e.RowIndex = -1 Then : Else
  149. 項次_tb.Text = 明細表_dgv(1, e.RowIndex).Value.ToString
  150. For i As Integer = 0 To 明細表_dgv.Rows.Count - 1
  151. If 明細表_dgv.Rows(i).Cells("數量").Value.ToString <> "" And 明細表_dgv.Rows(i).Cells("售價").Value.ToString <> "" And 明細表_dgv.Rows(i).Cells("成本").Value.ToString <> "" Then
  152. 明細表_dgv.Rows(i).Cells("總售價").Value = 明細表_dgv.Rows(i).Cells("數量").Value * 明細表_dgv.Rows(i).Cells("售價").Value
  153. 明細表_dgv.Rows(i).Cells("總成本").Value = 明細表_dgv.Rows(i).Cells("數量").Value * 明細表_dgv.Rows(i).Cells("成本").Value
  154. 明細表_dgv.Rows(i).Cells("利潤").Value = (明細表_dgv.Rows(i).Cells("數量").Value * 明細表_dgv.Rows(i).Cells("售價").Value) - (明細表_dgv.Rows(i).Cells("數量").Value * 明細表_dgv.Rows(i).Cells("成本").Value)
  155. End If
  156. If 明細表_dgv.Rows(i).Cells("狀態").Value <> "承修項目" Then
  157. NUM1 += 明細表_dgv.Rows(i).Cells("總售價").Value
  158. Else
  159. NUM2 += 明細表_dgv.Rows(i).Cells("總售價").Value
  160. End If
  161. Next
  162. 零件_tb.Text = Strings.Format(Val(NUM1), "#,##0")
  163. 工資_tb.Text = Strings.Format(Val(NUM2), "#,##0")
  164. 總計_tb.Text = Strings.Format(Val(NUM1 + NUM2), "#,##0")
  165. If 是否收稅_cb.Checked = True Then
  166. 稅金_tb.Text = Strings.Format(Val((NUM1 + NUM2) * 0.05), "#,##0")
  167. 應收合計_tb.Text = Strings.Format(Val(NUM1 + NUM2 + ((NUM1 + NUM2) * 0.05)), "#,##0")
  168. 總計_tb.Text = Strings.Format(Val(NUM1 + NUM2 + ((NUM1 + NUM2) * 0.05)), "#,##0")
  169. Else
  170. 稅金_tb.Text = "0"
  171. 應收合計_tb.Text = Strings.Format(Val(NUM1 + NUM2), "#,##0")
  172. End If
  173. End If
  174. End Sub
  175. Private Sub Set_清單3()
  176. 物料_dgv.DataSource = Nothing : ds2.Clear()
  177. 物料_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  178. 物料_dgv.ColumnHeadersHeight = 25
  179. 物料_dgv.AllowUserToAddRows = False
  180. 物料_dgv.RowTemplate.Height = 30
  181. 物料_dgv.DefaultCellStyle.Font = SystemFonts.DefaultFont
  182. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  183. SQL_車輛銷售管理_物料清單(選擇供應商_cb.Text)
  184. da.Fill(ds2) : 物料_dgv.DataSource = ds2.Tables(0) : conn.Close()
  185. Dim newFont As New System.Drawing.Font("微軟正黑體", 9) ' 創建一個新字體,Arial 12pt
  186. 物料_dgv.RowsDefaultCellStyle.Font = newFont
  187. 物料_dgv.Columns(1).FillWeight = 55 : 物料_dgv.Columns(3).FillWeight = 30
  188. 物料_dgv.Columns(0).Visible = False : 物料_dgv.Columns(2).FillWeight = 15 : 物料_dgv.Columns(4).Visible = False
  189. If 顯示成本_cb.Checked = True Then
  190. 物料_dgv.Columns(5).FillWeight = 30
  191. 物料_dgv.Columns(5).DefaultCellStyle.Format = "#,##0.##"
  192. 物料_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  193. 物料_dgv.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  194. Else
  195. 物料_dgv.Columns(5).Visible = False
  196. End If
  197. End Sub
  198. Private Sub 物料_dgv_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles 物料_dgv.CellClick
  199. If e.RowIndex = -1 Then : Else
  200. 料號_tb.Text = 物料_dgv(0, e.RowIndex).Value.ToString
  201. 品名_tb.Text = 物料_dgv(1, e.RowIndex).Value.ToString
  202. 成本_tb.Text = 物料_dgv(5, e.RowIndex).Value.ToString
  203. 狀態_tb.Text = 物料_dgv(4, e.RowIndex).Value.ToString
  204. End If
  205. End Sub
  206. Private Sub 新增_bt_Click(sender As Object, e As EventArgs) Handles 新增_bt.Click
  207. 新增_bt.Enabled = False : 確認新增_bt.Enabled = True : 修改_bt.Enabled = False
  208. Set_日期格式轉換() : Dim NUM1 As Integer
  209. For i As Integer = 1 To 999
  210. NUM1 = 0 + i
  211. If NUM1 < 10 Then : 單號_tb.Text = "GD-" & DTP1 & "-00" & NUM1
  212. ElseIf NUM1 > 9 And NUM1 < 100 Then : 單號_tb.Text = "GD-" & DTP1 & "-0" & NUM1
  213. ElseIf NUM1 > 99 Then : 單號_tb.Text = "GD-" & DTP1 & "-" & NUM1 : End If
  214. PA = 單號_tb.Text : SQL_估價單_單號查詢()
  215. If dr.Read() Then : Else : i = 999 : conn.Close() : End If : conn.Close()
  216. Next
  217. 報價日期_dtp.Value = Date.Today
  218. 車主名稱_tb.Text = "" : 車號_tb.Text = "" : 電話_tb.Text = "" : 備註_tb.Text = "" : 項次_tb.Text = "" : 里程_tb.Text = ""
  219. 工資_tb.Text = "0" : 零件_tb.Text = "0" : 總計_tb.Text = "0" : 稅金_tb.Text = "0" : 應收合計_tb.Text = "0"
  220. SQL_估價單_控制表新增() : boo = True : Set_清單2()
  221. End Sub
  222. Private Sub Set_日期格式轉換()
  223. Dim selectedDate As DateTime = Date.Today
  224. DTP4 = Strings.Format(selectedDate, "yyyy/MM/dd") : DTP1 = Strings.Format(selectedDate, "yyyyMMdd")
  225. End Sub
  226. Private Sub 確認新增_bt_Click(sender As Object, e As EventArgs) Handles 確認新增_bt.Click
  227. If 車主名稱_tb.Text = "" Or 車號_tb.Text = "" Then
  228. MsgBox("車主名稱及車號未輸入完成!!")
  229. Else
  230. 新增_bt.Enabled = True : 確認新增_bt.Enabled = False : 修改_bt.Enabled = True : boo = False
  231. SQL_估價單_控制表修改() : conn.Close() : MsgBox("儲存成功!!") : Set_清單1()
  232. End If
  233. End Sub
  234. Private Sub 修改_bt_Click(sender As Object, e As EventArgs) Handles 修改_bt.Click
  235. If 單號_tb.Text = "" Then
  236. MsgBox("未選擇單號!!")
  237. Else
  238. SQL_估價單_控制表修改() : conn.Close() : MsgBox("儲存成功!!") : Set_清單1()
  239. End If
  240. End Sub
  241. Private Sub 刪除_bt_Click(sender As Object, e As EventArgs) Handles 刪除_bt.Click
  242. If 單號_tb.Text = "" Then
  243. MsgBox("未選擇單號!!")
  244. Else
  245. 新增_bt.Enabled = True : 確認新增_bt.Enabled = False : 修改_bt.Enabled = False : boo = False
  246. SQL_估價單_控制表刪除() : SQL_估價單_明細表刪除() : conn.Close() : MsgBox("刪除成功")
  247. 單號_tb.Text = "" : 項次_tb.Text = ""
  248. 車主名稱_tb.Text = "" : 車號_tb.Text = "" : 電話_tb.Text = "" : 備註_tb.Text = "" : 里程_tb.Text = ""
  249. 工資_tb.Text = "0" : 零件_tb.Text = "0" : 總計_tb.Text = "0" : 稅金_tb.Text = "0" : 應收合計_tb.Text = "0"
  250. Set_清單1() : Set_清單2()
  251. End If
  252. End Sub
  253. Private Sub 刪除選中的一筆資料_bt_Click(sender As Object, e As EventArgs) Handles 刪除選中的一筆資料1_bt.Click
  254. If 項次_tb.Text = "" Then
  255. MsgBox("未選擇需要刪除的資料。")
  256. Else
  257. For i As Integer = 0 To 明細表_dgv.Rows.Count - 1
  258. Dim 項次 As String = 明細表_dgv.Rows(i).Cells("項次").Value.ToString
  259. Dim 項 As String = 明細表_dgv.Rows(i).Cells("各項支出名稱").Value.ToString
  260. Dim 數量 As String = 明細表_dgv.Rows(i).Cells("數量").Value.ToString
  261. Dim 金額 As String = 明細表_dgv.Rows(i).Cells("售價").Value.ToString
  262. Dim 備註 As String = 明細表_dgv.Rows(i).Cells("備註").Value.ToString
  263. SQL_估價單_修改明細表(項次, 項, 單號_tb.Text, 數量, 金額, 備註) : conn.Close()
  264. Next
  265. SQL_估價單_刪除明細表項次() : SQL_估價單_明細表項次更新() : conn.Close()
  266. Set_清單2() : 項次_tb.Text = "" : MsgBox("刪除成功。")
  267. End If
  268. End Sub
  269. Private Sub 申請_bt_Click(sender As Object, e As EventArgs) Handles 申請1_bt.Click
  270. For i As Integer = 0 To 明細表_dgv.Rows.Count - 1
  271. Dim 項次 As String = 明細表_dgv.Rows(i).Cells("項次").Value.ToString
  272. Dim 項 As String = 明細表_dgv.Rows(i).Cells("各項支出名稱").Value.ToString
  273. Dim 數量 As String = 明細表_dgv.Rows(i).Cells("數量").Value.ToString
  274. Dim 金額 As String = 明細表_dgv.Rows(i).Cells("售價").Value.ToString
  275. Dim 備註 As String = 明細表_dgv.Rows(i).Cells("備註").Value.ToString
  276. SQL_估價單_修改明細表(項次, 項, 單號_tb.Text, 數量, 金額, 備註) : conn.Close()
  277. Next : Set_清單2() : MsgBox("儲存成功。")
  278. End Sub
  279. Private Sub 查詢_bt_Click(sender As Object, e As EventArgs) Handles 查詢_bt.Click
  280. CHB("請輸入要查詢的單號資料。") : PA56 = 訊息回應 : Set_清單1() : PA56 = ""
  281. End Sub
  282. Private Sub 收支單中新增一筆資料1_bt_Click(sender As Object, e As EventArgs) Handles 收支單中新增一筆資料1_bt.Click
  283. If 單號_tb.Text = "" Then
  284. MsgBox("未選擇單號!!")
  285. Else
  286. If 明細表_dgv.Rows.Count > 0 Then
  287. For i As Integer = 0 To 明細表_dgv.Rows.Count - 1
  288. Dim 項次 As String = 明細表_dgv.Rows(i).Cells("項次").Value.ToString
  289. Dim 項 As String = 明細表_dgv.Rows(i).Cells("各項支出名稱").Value.ToString
  290. Dim 數量 As String = 明細表_dgv.Rows(i).Cells("數量").Value.ToString
  291. Dim 金額 As String = 明細表_dgv.Rows(i).Cells("售價").Value.ToString
  292. Dim 備註 As String = 明細表_dgv.Rows(i).Cells("備註").Value.ToString
  293. SQL_估價單_修改明細表(項次, 項, 單號_tb.Text, 數量, 金額, 備註) : conn.Close()
  294. Next
  295. End If
  296. If 料號_tb.Text = "" Or 品名_tb.Text = "" Or 成本_tb.Text = "" Then
  297. MsgBox("未選擇物料。")
  298. Else
  299. SQL_估價單_查詢最後一筆單號項次()
  300. If dr.Read() Then
  301. 新項次 = dr("項次")
  302. NUM1 = Double.Parse(新項次) + 1
  303. Else
  304. NUM1 = 1
  305. End If : conn.Close()
  306. SQL_估價單_新增明細表(NUM1.ToString(), 品名_tb.Text, 單號_tb.Text, 料號_tb.Text, 成本_tb.Text, 狀態_tb.Text) : conn.Close()
  307. Set_清單2()
  308. MsgBox("明細表新增成功!!")
  309. End If
  310. End If
  311. End Sub
  312. Private Sub 收支單中新增一筆空白資料_bt_Click(sender As Object, e As EventArgs) Handles 收支單中新增一筆空白資料1_bt.Click
  313. If 單號_tb.Text = "" Then
  314. MsgBox("未選擇單號!!")
  315. Else
  316. If 明細表_dgv.Rows.Count > 0 Then
  317. For i As Integer = 0 To 明細表_dgv.Rows.Count - 1
  318. Dim 項次 As String = 明細表_dgv.Rows(i).Cells("項次").Value.ToString
  319. Dim 項 As String = 明細表_dgv.Rows(i).Cells("各項支出名稱").Value.ToString
  320. Dim 數量 As String = 明細表_dgv.Rows(i).Cells("數量").Value.ToString
  321. Dim 金額 As String = 明細表_dgv.Rows(i).Cells("售價").Value.ToString
  322. Dim 備註 As String = 明細表_dgv.Rows(i).Cells("備註").Value.ToString
  323. SQL_估價單_修改明細表(項次, 項, 單號_tb.Text, 數量, 金額, 備註) : conn.Close()
  324. Next
  325. End If
  326. SQL_估價單_查詢最後一筆單號項次()
  327. If dr.Read() Then
  328. 新項次 = dr("項次")
  329. NUM1 = Double.Parse(新項次) + 1
  330. Else
  331. NUM1 = 1
  332. End If : conn.Close()
  333. SQL_估價單_新增明細表(NUM1.ToString(), "", 單號_tb.Text, "", "", "免") : conn.Close()
  334. Set_清單2()
  335. MsgBox("明細表新增成功!!")
  336. End If
  337. End Sub
  338. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  339. 連動模組.SetCallingPage("估價單") : 連動模組.ShowDialog() : 連動模組.BringToFront()
  340. End Sub
  341. Public Sub ReceiveDataFromPageB(ByVal data As String, ByVal data1 As String, ByVal data3 As String, ByVal data4 As String)
  342. ' 在這裡處理從頁面B接收到的數據,將其設定到頁面A的TextBox中
  343. 車主名稱_tb.Text = data
  344. 電話_tb.Text = data1
  345. 車號_tb.Text = data3
  346. 備註_tb.Text = data4
  347. End Sub
  348. Private Sub 匯入_bt_Click(sender As Object, e As EventArgs) Handles 匯入_bt.Click
  349. If 單號_tb.Text = "" Then
  350. MsgBox("未選擇單號!!")
  351. Else
  352. If 車主名稱_tb.Text <> "" And 車號_tb.Text <> "" Then
  353. SQL_估價單_查詢客戶資料(車主名稱_tb.Text, 車號_tb.Text)
  354. If dr.Read() Then
  355. SQL_估價單_修改客戶資料(車主名稱_tb.Text, 車號_tb.Text, 電話_tb.Text, 備註_tb.Text)
  356. Else
  357. SQL_客戶資料表_最後一筆資料()
  358. If dr.Read() Then : 新流水 = dr("流水號").ToString : Else : 新流水 = "CL00000" : End If
  359. conn.Close()
  360. Dim NUM1 As Integer
  361. NUM1 = Double.Parse(Strings.Right(新流水, 5)) + 1
  362. If NUM1 < 10 Then : 新流水 = "CL" & "0000" & NUM1
  363. ElseIf NUM1 > 9 And NUM1 < 100 Then : 新流水 = "CL" & "000" & NUM1
  364. ElseIf NUM1 > 99 And NUM1 < 1000 Then : 新流水 = "CL" & "00" & NUM1
  365. ElseIf NUM1 > 999 And NUM1 < 10000 Then : 新流水 = "CL" & "0" & NUM1
  366. ElseIf NUM1 > 9999 And NUM1 < 100000 Then : 新流水 = "CL" & NUM1 : End If
  367. SQL_估價單_新增客戶資料(新流水, 車主名稱_tb.Text, 車號_tb.Text, 電話_tb.Text, 備註_tb.Text) : conn.Close()
  368. End If
  369. Set_日期格式轉換()
  370. For i As Integer = 1 To 999
  371. NUM1 = 0 + i
  372. If NUM1 < 10 Then : 單號_tb.Text = "CR-" & DTP1 & "-00" & NUM1
  373. ElseIf NUM1 > 9 And NUM1 < 100 Then : 單號_tb.Text = "CR-" & DTP1 & "-0" & NUM1
  374. ElseIf NUM1 > 99 Then : 單號_tb.Text = "CR-" & DTP1 & "-" & NUM1 : End If
  375. PA = 單號_tb.Text : SQL_車輛銷售管理_單號查詢()
  376. If dr.Read() Then : Else : i = 999 : conn.Close() : End If : conn.Close()
  377. Next
  378. SQL_車輛銷售管理_人員明細(車主名稱_tb.Text, 車號_tb.Text)
  379. If dr.Read() Then
  380. 車型_tb.Text = dr("廠牌")
  381. 年_tb.Text = dr("年份型式")
  382. 引擎號碼1_tb.Text = dr("引擎號碼")
  383. 輪胎尺寸_tb.Text = dr("買入顏色")
  384. Else
  385. 車型_tb.Text = ""
  386. 年_tb.Text = ""
  387. 引擎號碼1_tb.Text = ""
  388. 輪胎尺寸_tb.Text = ""
  389. End If : conn.Close()
  390. SQL_估價單_車輛銷售控制表新增(PA, "保養維修", 車主名稱_tb.Text, 車號_tb.Text, DTP4, 電話_tb.Text, 是否收稅_cb.Checked, 應收合計_tb.Text,
  391. 車型_tb.Text, 年_tb.Text, 引擎號碼1_tb.Text, 輪胎尺寸_tb.Text) : conn.Close()
  392. For i As Integer = 0 To 明細表_dgv.Rows.Count - 1
  393. Set_流水號()
  394. Dim 項次 As String = 明細表_dgv.Rows(i).Cells("項次").Value.ToString
  395. Dim 項 As String = 明細表_dgv.Rows(i).Cells("各項支出名稱").Value.ToString
  396. Dim 數量 As String = 明細表_dgv.Rows(i).Cells("數量").Value.ToString
  397. Dim 金額 As String = 明細表_dgv.Rows(i).Cells("售價").Value.ToString
  398. Dim 備註 As String = 明細表_dgv.Rows(i).Cells("備註").Value.ToString
  399. Dim 料號 As String = 明細表_dgv.Rows(i).Cells("料號").Value.ToString
  400. Dim 成本 As String = 明細表_dgv.Rows(i).Cells("成本").Value.ToString
  401. Dim 狀態 As String = 明細表_dgv.Rows(i).Cells("狀態").Value.ToString
  402. SQL_估價單_車輛銷售明細表新增(新流水1, 項, 數量, 金額, 備註, PA, 料號, 項次, 成本, 狀態) : conn.Close()
  403. Next
  404. MsgBox("車輛銷售管理匯入成功!!")
  405. Else
  406. MsgBox("車主和車號不能為空!!")
  407. End If
  408. End If
  409. End Sub
  410. Private Sub Set_流水號()
  411. conn.Close() : dr.Close()
  412. Dim NUM1 As Integer
  413. For NUM1 = 0 To 999
  414. Dim d As String : Dim f As String
  415. Dim selectedDate As DateTime = Date.Today
  416. Dim y As String = selectedDate.Year.ToString().Substring(2, 2)
  417. If selectedDate.Month < 10 Then : d = "0" & selectedDate.Month.ToString()
  418. Else : d = selectedDate.Month.ToString()
  419. End If
  420. If selectedDate.Day < 10 Then : f = "0" & selectedDate.Day.ToString()
  421. Else : f = selectedDate.Day.ToString()
  422. End If
  423. If NUM1 < 10 Then : 新流水1 = "C" & y & d & f & "00" & NUM1
  424. ElseIf NUM1 > 9 And NUM1 < 100 Then : 新流水1 = "C" & y & d & f & "0" & NUM1
  425. ElseIf NUM1 > 99 Then : 新流水1 = "C" & y & d & f & NUM1
  426. End If : PA19 = 新流水1
  427. SQL_車輛銷售管理_查詢明細表流水號()
  428. If dr.Read() Then : conn.Close() : Else : conn.Close() : NUM1 = 999 : End If
  429. Next
  430. End Sub
  431. Private Sub 顯示成本_cb_CheckedChanged(sender As Object, e As EventArgs) Handles 顯示成本_cb.CheckedChanged
  432. Set_清單3()
  433. End Sub
  434. Private Sub 隱藏成本_cb_CheckedChanged(sender As Object, e As EventArgs) Handles 隱藏成本_cb.CheckedChanged
  435. Set_清單2()
  436. End Sub
  437. Private Sub 查詢物_bt_Click(sender As Object, e As EventArgs) Handles 查詢物_bt.Click
  438. CHB("請輸入要查詢的關鍵字。") : PA56 = 訊息回應 : Set_清單3() : PA56 = ""
  439. End Sub
  440. Private Sub 查詢_bt_MouseEnter(sender As Object, e As EventArgs) Handles 查詢_bt.MouseEnter
  441. ToolTip1.SetToolTip(Me.查詢_bt, "查詢單號")
  442. End Sub
  443. Private Sub 查詢物_bt_MouseEnter(sender As Object, e As EventArgs) Handles 查詢物_bt.MouseEnter
  444. ToolTip1.SetToolTip(Me.查詢物_bt, "查詢物料")
  445. End Sub
  446. Private Sub 新增_bt_MouseEnter(sender As Object, e As EventArgs) Handles 新增_bt.MouseEnter
  447. ToolTip1.SetToolTip(Me.新增_bt, "新增準備")
  448. End Sub
  449. Private Sub 確認新增_bt_MouseEnter(sender As Object, e As EventArgs) Handles 確認新增_bt.MouseEnter
  450. ToolTip1.SetToolTip(Me.確認新增_bt, "確認新增")
  451. End Sub
  452. Private Sub 修改_bt_MouseEnter(sender As Object, e As EventArgs) Handles 修改_bt.MouseEnter
  453. ToolTip1.SetToolTip(Me.修改_bt, "修改存檔")
  454. End Sub
  455. Private Sub 刪除_bt_MouseEnter(sender As Object, e As EventArgs) Handles 刪除_bt.MouseEnter
  456. ToolTip1.SetToolTip(Me.刪除_bt, "刪除")
  457. End Sub
  458. Private Sub 申請_bt_MouseEnter(sender As Object, e As EventArgs) Handles 申請1_bt.MouseEnter
  459. ToolTip1.SetToolTip(Me.申請1_bt, "明細表存檔")
  460. End Sub
  461. Private Sub 匯出EXCEL_bt_MouseEnter(sender As Object, e As EventArgs) Handles 匯出EXCEL_bt.MouseEnter
  462. ToolTip1.SetToolTip(Me.匯出EXCEL_bt, "匯出PDF")
  463. End Sub
  464. Private Sub 收支單中新增一筆資料_bt_MouseEnter(sender As Object, e As EventArgs) Handles 收支單中新增一筆資料1_bt.MouseEnter
  465. ToolTip1.SetToolTip(Me.收支單中新增一筆資料1_bt, "明細表新增帶料號的資料")
  466. End Sub
  467. Private Sub 收支單中新增一筆空白資料_bt_MouseEnter(sender As Object, e As EventArgs) Handles 收支單中新增一筆空白資料1_bt.MouseEnter
  468. ToolTip1.SetToolTip(Me.收支單中新增一筆空白資料1_bt, "明細表新增空白的資料")
  469. End Sub
  470. Private Sub 刪除選中的一筆資料_bt_MouseEnter(sender As Object, e As EventArgs) Handles 刪除選中的一筆資料1_bt.MouseEnter
  471. ToolTip1.SetToolTip(Me.刪除選中的一筆資料1_bt, "刪除選中的一筆資料")
  472. End Sub
  473. Private Sub 匯出EXCEL_bt_Click(sender As Object, e As EventArgs) Handles 匯出EXCEL_bt.Click
  474. xlApp = CType(CreateObject("Excel.Application"), Microsoft.Office.Interop.Excel.Application)
  475. xlApp.Visible = True
  476. xlApp.DisplayAlerts = True
  477. xlApp.Application.WindowState = xlMaximized
  478. xlBook = xlApp.Workbooks.Add
  479. xlSheet = NewMethod(xlBook)
  480. xlBook.Activate()
  481. xlSheet.Activate()
  482. xlSheet.Cells(1, 1) = 公司_tb.Text
  483. xlSheet.Cells(2, 1) = "估 價 單"
  484. xlSheet.Cells(3, 1) = "車主名稱 " : xlSheet.Cells(3, 2) = 車主名稱_tb.Text : xlSheet.Cells(3, 3) = "工資 " : xlSheet.Cells(3, 4) = 工資_tb.Text
  485. xlSheet.Cells(3, 5) = "零件 " : xlSheet.Cells(3, 6) = 零件_tb.Text : xlSheet.Cells(4, 1) = "車號 " : xlSheet.Cells(4, 2) = 車號_tb.Text
  486. xlSheet.Cells(4, 3) = "稅金5% " : xlSheet.Cells(4, 4) = 稅金_tb.Text : xlSheet.Cells(4, 5) = "總計 " : xlSheet.Cells(4, 6) = 總計_tb.Text
  487. xlSheet.Cells(5, 1) = "估價日期 " : xlSheet.Cells(5, 2) = 報價日期_dtp.Text : xlSheet.Cells(5, 5) = "應收合計 " : xlSheet.Cells(5, 6) = 應收合計_tb.Text
  488. xlSheet.Cells(5, 3) = "進廠里程 " : xlSheet.Cells(5, 4) = 里程_tb.Text
  489. xlSheet.Cells(6, 1) = "項次" : xlSheet.Cells(6, 2) = "各項支出名稱" : xlSheet.Cells(6, 3) = "數量"
  490. xlSheet.Cells(6, 4) = "售價" : xlSheet.Cells(6, 5) = "總售價" : xlSheet.Cells(6, 6) = "備註"
  491. Dim 總計 As Double = 0
  492. For i As Integer = 0 To 明細表_dgv.Rows.Count - 1
  493. xlSheet.Cells(i + 7, 1) = 明細表_dgv.Rows(i).Cells("項次").Value
  494. xlSheet.Cells(i + 7, 2) = 明細表_dgv.Rows(i).Cells("各項支出名稱").Value
  495. Dim 數量 As Double = Convert.ToDouble(明細表_dgv.Rows(i).Cells("數量").Value)
  496. Dim 售價 As Double = Convert.ToDouble(明細表_dgv.Rows(i).Cells("售價").Value)
  497. Dim 總售價 As Double = Convert.ToDouble(明細表_dgv.Rows(i).Cells("總售價").Value)
  498. 總計 = 總計 + 總售價
  499. xlSheet.Cells(i + 7, 3) = 數量.ToString("#,##0")
  500. xlSheet.Cells(i + 7, 4) = 售價.ToString("#,##0")
  501. xlSheet.Cells(i + 7, 5) = 總售價.ToString("#,##0")
  502. xlSheet.Cells(i + 7, 6) = 明細表_dgv.Rows(i).Cells("備註").Value
  503. N2 = i + 8
  504. Next i
  505. xlSheet.Cells(N2, 4) = "總計" : xlSheet.Cells(N2, 5) = 總計.ToString("#,##0")
  506. xlSheet.Cells(N2 + 1, 1) = "車主須知"
  507. xlSheet.Cells(N2 + 2, 1) = "1.本估價單有效期限3個月,逾期需視材料物料波動情況,重新報價。"
  508. xlSheet.Cells(N2 + 3, 1) = "2.如蒙惠顧,請先預付訂金5成。"
  509. xlSheet.Cells(N2 + 4, 1) = "3.如在本估價單內未列項目,如需維修,另加計費。"
  510. BB(xlApp, xlSheet)
  511. xlApp.Sheets(2).Delete : xlSheet.PageSetup.PrintArea = ""
  512. '----轉成PDF-----
  513. Dim pdfFolderPath As String = Path.Combine(System.Windows.Forms.Application.StartupPath, "pdf")
  514. If Not Directory.Exists(pdfFolderPath) Then
  515. Directory.CreateDirectory(pdfFolderPath)
  516. End If
  517. Dim pdfFilePath As String = Path.Combine(pdfFolderPath, 單號_tb.Text & "-估價單.pdf")
  518. xlBook.Sheets(1).ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, pdfFilePath, XlFixedFormatQuality.xlQualityStandard, True)
  519. '--------
  520. xlApp.Cells.Select() : xlApp.Application.WindowState = xlMinimized : xlBook.Close(False)
  521. Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet)
  522. Runtime.InteropServices.Marshal.ReleaseComObject(xlBook)
  523. Runtime.InteropServices.Marshal.ReleaseComObject(xlApp)
  524. xlApp.Quit() : xlSheet = Nothing : xlBook = Nothing : xlApp = Nothing : GC.Collect()
  525. Try
  526. Dim chromePath As String = "C:\Program Files\Google\Chrome\Application\chrome.exe"
  527. If System.IO.File.Exists(chromePath) Then
  528. Dim process As New Process()
  529. process.StartInfo.FileName = "chrome"
  530. process.StartInfo.Arguments = """" & pdfFilePath & """"
  531. process.Start()
  532. Else : Dim edgePath As String = "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
  533. If System.IO.File.Exists(edgePath) Then
  534. Dim process As New Process()
  535. process.StartInfo.FileName = "msedge"
  536. process.StartInfo.Arguments = """" & pdfFilePath & """"
  537. process.Start()
  538. Else
  539. Process.Start(pdfFilePath)
  540. End If
  541. End If
  542. Catch ex As Exception
  543. MsgBox("以存檔至桌面 。" & vbCrLf & "檔案名稱:" & 單號_tb.Text & "-估價單.pdf")
  544. End Try
  545. End Sub
  546. Private Sub BB(ByVal myExcel As Microsoft.Office.Interop.Excel.Application, ByVal xlSheet As Microsoft.Office.Interop.Excel.Worksheet)
  547. xlSheet.Cells.Select()
  548. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 12 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False
  549. .Shadow = False : .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  550. xlSheet.Range("A3:F" & N2).Select()
  551. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone
  552. myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  553. With myExcel.Selection.Borders(xlEdgeLeft)
  554. .LineStyle = xlContinuous
  555. .ColorIndex = 0
  556. .TintAndShade = 0
  557. .Weight = xlThin
  558. End With
  559. With myExcel.Selection.Borders(xlEdgeTop)
  560. .LineStyle = xlContinuous
  561. .ColorIndex = 0
  562. .TintAndShade = 0
  563. .Weight = xlThin
  564. End With
  565. With myExcel.Selection.Borders(xlEdgeBottom)
  566. .LineStyle = xlContinuous
  567. .ColorIndex = 0
  568. .TintAndShade = 0
  569. .Weight = xlThin
  570. End With
  571. With myExcel.Selection.Borders(xlEdgeRight)
  572. .LineStyle = xlContinuous
  573. .ColorIndex = 0
  574. .TintAndShade = 0
  575. .Weight = xlThin
  576. End With
  577. With myExcel.Selection.Borders(xlInsideVertical)
  578. .LineStyle = xlContinuous
  579. .ColorIndex = 0
  580. .TintAndShade = 0
  581. .Weight = xlThin
  582. End With
  583. With myExcel.Selection.Borders(xlInsideHorizontal)
  584. .LineStyle = xlContinuous
  585. .ColorIndex = 0
  586. .TintAndShade = 0
  587. .Weight = xlThin
  588. End With
  589. xlSheet.Range("A1:F1").Select()
  590. With myExcel.Selection
  591. .HorizontalAlignment = xlCenter
  592. .VerticalAlignment = xlCenter
  593. .WrapText = False
  594. .Orientation = 0
  595. .AddIndent = False
  596. .IndentLevel = 0
  597. .ShrinkToFit = False
  598. .ReadingOrder = xlContext
  599. .MergeCells = False
  600. End With
  601. myExcel.Selection.Merge
  602. xlSheet.Range("A2:F2").Select()
  603. With myExcel.Selection
  604. .HorizontalAlignment = xlCenter
  605. .VerticalAlignment = xlCenter
  606. .WrapText = False
  607. .Orientation = 0
  608. .AddIndent = False
  609. .IndentLevel = 0
  610. .ShrinkToFit = False
  611. .ReadingOrder = xlContext
  612. .MergeCells = False
  613. End With
  614. myExcel.Selection.Merge
  615. xlSheet.Range("A3:F" & N2).Select()
  616. With myExcel.Selection
  617. .HorizontalAlignment = xlCenter
  618. .VerticalAlignment = xlCenter
  619. .WrapText = False
  620. .Orientation = 0
  621. .AddIndent = False
  622. .IndentLevel = 0
  623. .ShrinkToFit = False
  624. .ReadingOrder = xlContext
  625. .MergeCells = False
  626. End With
  627. xlSheet.Range("A" & N2 + 1 & ":F" & N2 + 1).Select()
  628. With myExcel.Selection
  629. .HorizontalAlignment = xlCenter
  630. .VerticalAlignment = xlCenter
  631. .WrapText = False
  632. .Orientation = 0
  633. .AddIndent = False
  634. .IndentLevel = 0
  635. .ShrinkToFit = False
  636. .ReadingOrder = xlContext
  637. .MergeCells = False
  638. End With
  639. myExcel.Selection.Merge
  640. xlSheet.Range("A" & N2 + 2 & ":F" & N2 + 2).Select()
  641. With myExcel.Selection
  642. .HorizontalAlignment = xlCenter
  643. .VerticalAlignment = xlCenter
  644. .WrapText = False
  645. .Orientation = 0
  646. .AddIndent = False
  647. .IndentLevel = 0
  648. .ShrinkToFit = False
  649. .ReadingOrder = xlContext
  650. .MergeCells = False
  651. End With
  652. myExcel.Selection.Merge
  653. xlSheet.Range("A" & N2 + 3 & ":F" & N2 + 3).Select()
  654. With myExcel.Selection
  655. .HorizontalAlignment = xlCenter
  656. .VerticalAlignment = xlCenter
  657. .WrapText = False
  658. .Orientation = 0
  659. .AddIndent = False
  660. .IndentLevel = 0
  661. .ShrinkToFit = False
  662. .ReadingOrder = xlContext
  663. .MergeCells = False
  664. End With
  665. myExcel.Selection.Merge
  666. xlSheet.Range("A" & N2 + 4 & ":F" & N2 + 4).Select()
  667. With myExcel.Selection
  668. .HorizontalAlignment = xlCenter
  669. .VerticalAlignment = xlCenter
  670. .WrapText = False
  671. .Orientation = 0
  672. .AddIndent = False
  673. .IndentLevel = 0
  674. .ShrinkToFit = False
  675. .ReadingOrder = xlContext
  676. .MergeCells = False
  677. End With
  678. myExcel.Selection.Merge
  679. xlSheet.Columns("A:F").AutoFit()
  680. AdjustColumnWidth(xlSheet, "A", 10)
  681. AdjustColumnWidth(xlSheet, "C", 10)
  682. AdjustColumnWidth(xlSheet, "D", 10)
  683. AdjustColumnWidth(xlSheet, "E", 10)
  684. If xlSheet.Columns("B:B").ColumnWidth > 30 Then
  685. xlSheet.Columns("B:B").ColumnWidth = 30
  686. ElseIf xlSheet.Columns("B:B").ColumnWidth < 10 Then
  687. xlSheet.Columns("B:B").ColumnWidth = 10
  688. End If
  689. If xlSheet.Columns("F:F").ColumnWidth > 20 Then
  690. xlSheet.Columns("F:F").ColumnWidth = 20
  691. ElseIf xlSheet.Columns("F:F").ColumnWidth < 10 Then
  692. xlSheet.Columns("F:F").ColumnWidth = 10
  693. End If
  694. xlSheet.Range("B:B,F:F").Select()
  695. With myExcel.Selection
  696. .VerticalAlignment = xlCenter
  697. .WrapText = True
  698. .Orientation = 0
  699. .AddIndent = False
  700. .IndentLevel = 0
  701. .ShrinkToFit = False
  702. .ReadingOrder = xlContext
  703. End With
  704. xlSheet.Range("A3:F5").Select()
  705. With myExcel.Selection.Interior
  706. .Pattern = xlSolid
  707. .PatternColorIndex = xlAutomatic
  708. .ThemeColor = xlThemeColorAccent4
  709. .TintAndShade = 0.799981688894314
  710. .PatternTintAndShade = 0
  711. End With
  712. xlSheet.Range("A6:F6").Select()
  713. With myExcel.Selection.Interior
  714. .Pattern = xlSolid
  715. .PatternColorIndex = xlAutomatic
  716. .ThemeColor = xlThemeColorAccent1
  717. .TintAndShade = 0.799981688894314
  718. .PatternTintAndShade = 0
  719. End With
  720. For i As Integer = 1 To N2 + 4
  721. xlSheet.Rows(i).AutoFit
  722. xlSheet.Rows(i).RowHeight = xlSheet.Rows(i).RowHeight + 5
  723. Next
  724. myExcel.Application.PrintCommunication = False
  725. With myExcel.ActiveSheet.PageSetup
  726. .PrintTitleRows = ""
  727. .PrintTitleColumns = ""
  728. End With
  729. myExcel.Application.PrintCommunication = True
  730. myExcel.ActiveSheet.PageSetup.PrintArea = ""
  731. myExcel.Application.PrintCommunication = False
  732. With myExcel.ActiveSheet.PageSetup
  733. .LeftHeader = ""
  734. .CenterHeader = ""
  735. .RightHeader = ""
  736. .LeftFooter = ""
  737. .CenterFooter = ""
  738. .RightFooter = ""
  739. .LeftMargin = myExcel.Application.InchesToPoints(0.25)
  740. .RightMargin = myExcel.Application.InchesToPoints(0.25)
  741. .TopMargin = myExcel.Application.InchesToPoints(0.75)
  742. .BottomMargin = myExcel.Application.InchesToPoints(0.75)
  743. .HeaderMargin = myExcel.Application.InchesToPoints(0.3)
  744. .FooterMargin = myExcel.Application.InchesToPoints(0.3)
  745. .PrintHeadings = False
  746. .PrintGridlines = False
  747. .CenterHorizontally = True
  748. .CenterVertically = False
  749. .Draft = False
  750. .FirstPageNumber = xlAutomatic
  751. .BlackAndWhite = False
  752. .Zoom = False
  753. .FitToPagesWide = 1
  754. .FitToPagesTall = False
  755. .OddAndEvenPagesHeaderFooter = False
  756. .DifferentFirstPageHeaderFooter = False
  757. .ScaleWithDocHeaderFooter = True
  758. .AlignMarginsHeaderFooter = True
  759. .EvenPage.LeftHeader.Text = ""
  760. .EvenPage.CenterHeader.Text = ""
  761. .EvenPage.RightHeader.Text = ""
  762. .EvenPage.LeftFooter.Text = ""
  763. .EvenPage.CenterFooter.Text = ""
  764. .EvenPage.RightFooter.Text = ""
  765. .FirstPage.LeftHeader.Text = ""
  766. .FirstPage.CenterHeader.Text = ""
  767. .FirstPage.RightHeader.Text = ""
  768. .FirstPage.LeftFooter.Text = ""
  769. .FirstPage.CenterFooter.Text = ""
  770. .FirstPage.RightFooter.Text = ""
  771. End With
  772. myExcel.Application.PrintCommunication = True
  773. End Sub
  774. Private Sub AdjustColumnWidth(ByVal sheet As Excel.Worksheet, ByVal column As String, ByVal minWidth As Double)
  775. Dim colRange As Excel.Range = sheet.Columns(column & ":" & column)
  776. If colRange.ColumnWidth < minWidth Then
  777. colRange.ColumnWidth = minWidth
  778. End If
  779. End Sub
  780. Private Shared Function NewMethod(xlBook As Microsoft.Office.Interop.Excel.Workbook) As Microsoft.Office.Interop.Excel.Worksheet
  781. Return CType(xlBook.Worksheets.Add, Microsoft.Office.Interop.Excel.Worksheet)
  782. End Function
  783. End Class