Option Strict Off Imports Microsoft.Office.Interop.Excel.XlUnderlineStyle Imports Microsoft.Office.Interop.Excel.Constants Imports Microsoft.Office.Interop.Excel.XlBordersIndex Imports Microsoft.Office.Interop.Excel.XlLineStyle Imports Microsoft.Office.Interop.Excel.XlBorderWeight Imports Microsoft.Office.Interop.Excel.XlThemeFont Imports Microsoft.Office.Interop.Excel.XlThemeColor Imports Microsoft.Office.Interop.Excel.XlWindowState Imports Microsoft.Office.Interop.Excel Public Class 訂單價格利潤明細表 Private ReadOnly ds, ds1, ds2 As New DataSet Dim xlApp As Application : Dim xlBook As Workbook : Dim xlSheet As Worksheet Dim 已超出 As Boolean : Private ReadOnly BB(3) As Boolean Public 平均數, 最終數, 資料數, NUM2, N1 As Integer Private ReadOnly MYSQL1 As String = "SELECT 訂單控制表.BUYER, 訂單控制表.年份季度, 訂單控制表.訂單流水號, 訂單控制表.客戶訂單號, 訂單控制表.型體號碼, 訂單控制表.GOODBOX AS 型體名稱, 訂單控制表.APMA確認 AS 顏色, 訂單控制表.TVW AS 楦型, 訂單控制表.訂單數量, 訂單控制表.客戶交期 AS 交期開始, 訂單控制表.客戶交期1 AS 交期結束, 訂單控制表.單價, 訂單控制表.總金額 AS 銷售金額, 訂單控制表.備註, 訂單控制表.生產工廠, 訂單控制表.資料流水號, 訂單價格利潤明細表.Quantity, 訂單價格利潤明細表.Currency, 訂單價格利潤明細表.Exchange, 訂單價格利潤明細表.Price, 訂單價格利潤明細表.Discount_price AS [Discount price], 訂單價格利潤明細表.Commercial_invoice AS [Commercial invoice], 訂單價格利潤明細表.Overage_invoice AS [Overage invoice], 訂單價格利潤明細表.Selling_price AS [Selling price], 訂單價格利潤明細表.HTS_code AS [HTS code], 訂單價格利潤明細表.Remark1, 訂單價格利潤明細表.Fty_price AS [Fty price], 訂單價格利潤明細表.Mold_cost AS [Mold cost], 訂單價格利潤明細表.Collected_mold_cost AS [Collected mold cost], 訂單價格利潤明細表.Amortization_qty AS [Amortization qty], 訂單價格利潤明細表.Profit, 訂單價格利潤明細表.Commission, 訂單價格利潤明細表.Remark2, 訂單價格利潤明細表.Price AS 客戶付款, 訂單價格利潤明細表.Price AS 未收款項, 訂單價格利潤明細表.Price AS 預收款項, 訂單價格利潤明細表.Price AS 成本金額, 訂單價格利潤明細表.Price AS 利潤, 訂單價格利潤明細表.Price AS 實際收款, 訂單價格利潤明細表.年份, 訂單價格利潤明細表.利潤表流水號, 訂單價格利潤明細表.審核 FROM 訂單控制表 LEFT OUTER JOIN 訂單價格利潤明細表 ON 訂單控制表.資料流水號 = 訂單價格利潤明細表.資料流水號 " Private ReadOnly MYSQL2 As String = "SELECT 訂單控制表.BUYER, 訂單控制表.年份季度, 訂單控制表.訂單流水號, 訂單控制表.客戶訂單號, 訂單控制表.型體號碼, 訂單控制表.GOODBOX AS 型體名稱, 訂單控制表.APMA確認 AS 顏色, 訂單控制表.TVW AS 楦型, 訂單控制表.訂單數量, 訂單控制表.客戶交期 AS 交期開始, 訂單控制表.客戶交期1 AS 交期結束, 訂單控制表.單價, 訂單控制表.總金額 AS 銷售金額, 訂單控制表.備註, 訂單控制表.生產工廠, 訂單控制表.資料流水號, 訂單價格利潤明細表.Quantity, 訂單價格利潤明細表.Currency, 訂單價格利潤明細表.Exchange, 訂單價格利潤明細表.Price, 訂單價格利潤明細表.Discount_price AS [Discount price], 訂單價格利潤明細表.Commercial_invoice AS [Commercial invoice], 訂單價格利潤明細表.Overage_invoice AS [Overage invoice], 訂單價格利潤明細表.Selling_price AS [Selling price], 訂單價格利潤明細表.HTS_code AS [HTS code], 訂單價格利潤明細表.Remark1, 訂單價格利潤明細表.Fty_price AS [Fty price], 訂單價格利潤明細表.Mold_cost AS [Mold cost], 訂單價格利潤明細表.Collected_mold_cost AS [Collected mold cost], 訂單價格利潤明細表.Amortization_qty AS [Amortization qty], 訂單價格利潤明細表.Profit, 訂單價格利潤明細表.Commission, 訂單價格利潤明細表.Remark2, 訂單價格利潤明細表.Price AS 客戶付款, 訂單價格利潤明細表.Price AS 未收款項, 訂單價格利潤明細表.Price AS 預收款項, 訂單價格利潤明細表.Price AS 成本金額, 訂單價格利潤明細表.Price AS 利潤, 訂單價格利潤明細表.Price AS 實際收款, 訂單價格利潤明細表.年份, 訂單價格利潤表暫存檔.利潤表流水號, 訂單價格利潤明細表.審核 FROM 訂單控制表 INNER JOIN 訂單價格利潤表暫存檔 ON 訂單控制表.資料流水號 = 訂單價格利潤表暫存檔.資料流水號 LEFT OUTER JOIN 訂單價格利潤明細表 ON 訂單控制表.資料流水號 = 訂單價格利潤明細表.資料流水號 ORDER BY 訂單控制表.訂單流水號 DESC" Private Sub Set_DGV1載入前設定() 清單1_dgv.DataSource = Nothing : ds.Clear() 清單1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 清單1_dgv.ColumnHeadersHeight = 50 清單1_dgv.AllowUserToAddRows = False 清單1_dgv.RowTemplate.Height = 35 ConnOpen() End Sub Private Sub Set_DGV1載入後設定() CmdSet_For_DGV() : da.SelectCommand.CommandTimeout = 900 : da.Fill(ds) : 清單1_dgv.DataSource = ds.Tables(0) : conn.Close() For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 If IsDBNull(清單1_dgv.Rows(i).Cells("審核").Value) Then 清單1_dgv.Rows(i).Cells("審核").Value = False End If If IsDBNull(清單1_dgv.Rows(i).Cells("Price").Value) Then 清單1_dgv.Rows(i).Cells("Price").Value = 0 End If If IsDBNull(清單1_dgv.Rows(i).Cells("Selling price").Value) Then 清單1_dgv.Rows(i).Cells("Selling price").Value = 0 End If If IsDBNull(清單1_dgv.Rows(i).Cells("HTS code").Value) Then 清單1_dgv.Rows(i).Cells("HTS code").Value = " " End If If IsDBNull(清單1_dgv.Rows(i).Cells("Remark1").Value) Then 清單1_dgv.Rows(i).Cells("Remark1").Value = " " End If If IsDBNull(清單1_dgv.Rows(i).Cells("Amortization qty").Value) Then 清單1_dgv.Rows(i).Cells("Amortization qty").Value = 0 End If If IsDBNull(清單1_dgv.Rows(i).Cells("Remark2").Value) Then 清單1_dgv.Rows(i).Cells("Remark2").Value = " " End If Next End Sub Private Sub Set_訂單清單1() Set_DGV1載入前設定() If 未建檔_ch.Checked = True Then Timer1.Enabled = True : 存檔_bt.Enabled = True : 刪除_bt.Enabled = False : 修改_bt.Enabled = False 等於訂單數_bt.Enabled = True : 等於零_bt.Enabled = True : 匯率為1_bt.Enabled = True If 訂單流水號_tb.Text = "" Then SQL1 = MYSQL1 & "WHERE ((訂單控制表.訂單流水號 Like '%" & PA & "%') OR (訂單控制表.年份季度 LIKE '%" & PA & "%') OR (訂單控制表.客戶訂單號 LIKE '%" & PA & "%') OR (訂單控制表.型體號碼 Like '%" & PA & "%') OR (訂單控制表.APMA確認 LIKE '%" & PA & "%') OR (訂單控制表.GOODBOX LIKE '%" & PA & "%') OR (訂單控制表.TVW Like '%" & PA & "%') OR (訂單控制表.備註 LIKE '%" & PA & "%') OR (訂單控制表.生產工廠 LIKE '%" & PA & "%')) AND (訂單價格利潤明細表.訂單流水號 Is Not NULL) AND (訂單價格利潤明細表.CFMSPEC LIKE 'LANDED BRANDED') ORDER BY 訂單控制表.訂單流水號 DESC" Else SQL1 = MYSQL1 & "WHERE (訂單控制表.訂單流水號 LIKE '" & 訂單流水號_tb.Text & "') AND (訂單控制表.CXL IS NULL OR 訂單控制表.CXL = 0) AND (訂單控制表.CFMSPEC LIKE 'LANDED BRANDED') ORDER BY 訂單控制表.訂單流水號 DESC" End If Set_DGV1載入後設定() : Set_grid() : Set_自動彙總1() Set_暫存資料設定() : Set_編輯清單1() : Set_grid() : Set_grid3() : Set_自動彙總1() ElseIf 未建檔_ch.Checked = False Then Timer1.Enabled = False : 資料尚未存檔_lb.Visible = False : 存檔_bt.Enabled = False : 刪除_bt.Enabled = True : 修改_bt.Enabled = True 等於訂單數_bt.Enabled = False : 等於零_bt.Enabled = False : 匯率為1_bt.Enabled = False If PA = "" Then SQL1 = MYSQL1 & "WHERE (訂單控制表.CXL IS NULL) OR (訂單控制表.CXL = 0) AND (訂單價格利潤明細表.年份 LIKE '" & 年份_cb.Text & "') AND (訂單控制表.CFMSPEC LIKE 'LANDED BRANDED') ORDER BY 訂單控制表.訂單流水號 DESC" Else SQL1 = MYSQL1 & "WHERE ((訂單控制表.訂單流水號 Like '%" & PA & "%') OR (訂單控制表.年份季度 LIKE '%" & PA & "%') OR (訂單控制表.客戶訂單號 LIKE '%" & PA & "%') OR (訂單控制表.型體號碼 LIKE '%" & PA & "%') OR (訂單控制表.APMA確認 LIKE '%" & PA & "%') OR (訂單控制表.GOODBOX LIKE '%" & PA & "%') OR (訂單控制表.TVW LIKE '%" & PA & "%') OR (訂單控制表.備註 LIKE '%" & PA & "%') OR (訂單控制表.生產工廠 LIKE '%" & PA & "%')) AND (訂單價格利潤明細表.訂單流水號 IS NOT NULL) AND (訂單價格利潤明細表.年份 LIKE '" & 年份_cb.Text & "') AND (訂單控制表.CXL IS NULL OR 訂單控制表.CXL = 0) AND (訂單控制表.CFMSPEC LIKE 'LANDED BRANDED') ORDER BY 訂單控制表.訂單流水號 DESC" End If 列印用SQL = SQL1 Set_DGV1載入後設定() : Set_grid() : Set_自動彙總1() End If End Sub Private Sub Set_編輯清單1() Set_DGV1載入前設定() : SQL1 = MYSQL2 : Set_DGV1載入後設定() : Me.匯率為1_bt.PerformClick() : Me.等於訂單數_bt.PerformClick() For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 : 清單1_dgv.Rows(i).Cells("Currency").Value = "USD" : 清單1_dgv.Rows(i).Cells("年份").Value = 年份_cb.Text : Next i End Sub Private Sub Set_DGV3載入前設定() 清單2_dgv.DataSource = Nothing : ds2.Clear() 清單2_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 清單2_dgv.ColumnHeadersHeight = 50 清單2_dgv.AllowUserToAddRows = False 清單2_dgv.RowTemplate.Height = 35 ConnOpen() End Sub Private Sub Set_DGV3載入後設定() CmdSet_For_DGV() : da.SelectCommand.CommandTimeout = 900 : da.Fill(ds2) : 清單2_dgv.DataSource = ds2.Tables(0) : conn.Close() For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 If IsDBNull(清單2_dgv.Rows(i).Cells("審核").Value) Then 清單2_dgv.Rows(i).Cells("審核").Value = False End If If IsDBNull(清單2_dgv.Rows(i).Cells("Price").Value) Then 清單2_dgv.Rows(i).Cells("Price").Value = 0 End If If IsDBNull(清單2_dgv.Rows(i).Cells("Selling price").Value) Then 清單2_dgv.Rows(i).Cells("Selling price").Value = 0 End If If IsDBNull(清單2_dgv.Rows(i).Cells("HTS code").Value) Then 清單2_dgv.Rows(i).Cells("HTS code").Value = " " End If If IsDBNull(清單2_dgv.Rows(i).Cells("Remark1").Value) Then 清單2_dgv.Rows(i).Cells("Remark1").Value = " " End If If IsDBNull(清單2_dgv.Rows(i).Cells("Amortization qty").Value) Then 清單2_dgv.Rows(i).Cells("Amortization qty").Value = 0 End If If IsDBNull(清單2_dgv.Rows(i).Cells("Remark2").Value) Then 清單2_dgv.Rows(i).Cells("Remark2").Value = " " End If Next End Sub Private Sub Set_訂單清單2() Set_DGV3載入前設定() If 未建檔_ch.Checked = True Then Timer1.Enabled = True : 存檔_bt.Enabled = True : 刪除_bt.Enabled = False : 修改_bt.Enabled = False 等於訂單數_bt.Enabled = True : 等於零_bt.Enabled = True : 匯率為1_bt.Enabled = True If 訂單流水號_tb.Text = "" Then SQL1 = MYSQL1 & "WHERE ((訂單控制表.訂單流水號 Like '%" & PA & "%') OR (訂單控制表.年份季度 LIKE '%" & PA & "%') OR (訂單控制表.客戶訂單號 LIKE '%" & PA & "%') OR (訂單控制表.型體號碼 Like '%" & PA & "%') OR (訂單控制表.APMA確認 LIKE '%" & PA & "%') OR (訂單控制表.GOODBOX LIKE '%" & PA & "%') OR (訂單控制表.TVW Like '%" & PA & "%') OR (訂單控制表.備註 LIKE '%" & PA & "%') OR (訂單控制表.生產工廠 LIKE '%" & PA & "%')) AND (訂單價格利潤明細表.訂單流水號 Is Not NULL) AND (訂單控制表.CFMSPEC LIKE 'FIRST COST') ORDER BY 訂單控制表.訂單流水號 DESC" Else SQL1 = MYSQL1 & "WHERE (訂單控制表.訂單流水號 LIKE '" & 訂單流水號_tb.Text & "') AND (訂單控制表.CXL IS NULL OR 訂單控制表.CXL = 0) AND (訂單控制表.CFMSPEC LIKE 'FIRST COST') ORDER BY 訂單控制表.訂單流水號 DESC" End If Set_DGV3載入後設定() : Set_grid3() : Set_自動彙總1() Set_暫存資料設定() : Set_編輯清單2() : Set_grid3() : Set_自動彙總1() ElseIf 未建檔_ch.Checked = False Then Timer1.Enabled = False : 資料尚未存檔_lb.Visible = False : 存檔_bt.Enabled = False : 刪除_bt.Enabled = True : 修改_bt.Enabled = True 等於訂單數_bt.Enabled = False : 等於零_bt.Enabled = False : 匯率為1_bt.Enabled = False If PA = "" Then SQL1 = MYSQL1 & "WHERE (訂單控制表.CXL IS NULL) OR (訂單控制表.CXL = 0) AND (訂單價格利潤明細表.年份 LIKE '" & 年份_cb.Text & "') AND (訂單控制表.CFMSPEC LIKE 'FIRST COST') ORDER BY 訂單控制表.訂單流水號 DESC" Else SQL1 = MYSQL1 & "WHERE ((訂單控制表.訂單流水號 Like '%" & PA & "%') OR (訂單控制表.年份季度 LIKE '%" & PA & "%') OR (訂單控制表.客戶訂單號 LIKE '%" & PA & "%') OR (訂單控制表.型體號碼 LIKE '%" & PA & "%') OR (訂單控制表.APMA確認 LIKE '%" & PA & "%') OR (訂單控制表.GOODBOX LIKE '%" & PA & "%') OR (訂單控制表.TVW LIKE '%" & PA & "%') OR (訂單控制表.備註 LIKE '%" & PA & "%') OR (訂單控制表.生產工廠 LIKE '%" & PA & "%')) AND (訂單價格利潤明細表.訂單流水號 IS NOT NULL) AND (訂單價格利潤明細表.年份 LIKE '" & 年份_cb.Text & "') AND (訂單控制表.CXL IS NULL OR 訂單控制表.CXL = 0) AND (訂單控制表.CFMSPEC LIKE 'FIRST COST') ORDER BY 訂單控制表.訂單流水號 DESC" End If 列印用SQL = SQL1 Set_DGV3載入後設定() : Set_grid3() : Set_自動彙總1() End If End Sub Private Sub Set_編輯清單2() Set_DGV3載入前設定() : SQL1 = MYSQL2 : Set_DGV3載入後設定() : Me.匯率為1_bt.PerformClick() : Me.等於訂單數_bt.PerformClick() For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 : 清單2_dgv.Rows(i).Cells("Currency").Value = "USD" : 清單2_dgv.Rows(i).Cells("年份").Value = 年份_cb.Text : Next i End Sub Private Sub Set_暫存資料設定() SQL_刪除訂單價格利潤表暫存檔() : conn.Close() SQL_最後一筆筆訂單價格利潤明細表() If dr.Read() Then : NUM2 = Strings.Right(dr("利潤表流水號").ToString, 8) : End If conn.Close() If 訂單屬性_cb.Text = "LANDED BRANDED" Then For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 Set_暫存資料設定1() PA5 = 清單1_dgv.Rows(i).Cells("訂單流水號").Value : PA4 = 清單1_dgv.Rows(i).Cells("資料流水號").Value SQL_新增訂單價格利潤表暫存檔() : conn.Close() Next i Else For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 PA6 = 清單2_dgv.Rows(i).Cells("資料流水號").Value : PA7 = 清單2_dgv.Rows(i).Cells("訂單流水號").Value Set_暫存資料設定1() SQL_新增訂單價格利潤表暫存檔1() : conn.Close() Next i End If End Sub Private Sub Set_暫存資料設定1() NUM2 += 1 If NUM2 < 10 Then : WW = "PR" & "0000000" & NUM2 ElseIf NUM2 > 9 And NUM2 < 100 Then : WW = "PR" & "000000" & NUM2 ElseIf NUM2 > 99 And NUM2 < 1000 Then : WW = "PR" & "00000" & NUM2 ElseIf NUM2 > 999 And NUM2 < 10000 Then : WW = "PR" & "0000" & NUM2 ElseIf NUM2 > 9999 And NUM2 < 100000 Then : WW = "PR" & "000" & NUM2 ElseIf NUM2 > 99999 And NUM2 < 100000 Then : WW = "PR" & "00" & NUM2 ElseIf NUM2 > 999999 And NUM2 < 1000000 Then : WW = "PR" & "0" & NUM2 ElseIf NUM2 > 9999999 Then : WW = "PR" & NUM2 End If End Sub Private Sub Set_未建檔清單() 未完成流水號清單_dgv.DataSource = Nothing : ds1.Clear() 未完成流水號清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 未完成流水號清單_dgv.ColumnHeadersHeight = 25 未完成流水號清單_dgv.AllowUserToAddRows = False SQL_未建檔清單() da.Fill(ds1) : 未完成流水號清單_dgv.DataSource = ds1.Tables(0) : conn.Close() End Sub Private Sub Set_grid() 清單1_dgv.Columns(0).ReadOnly = True : 清單1_dgv.Columns(1).ReadOnly = True : 清單1_dgv.Columns(2).ReadOnly = True : 清單1_dgv.Columns(3).ReadOnly = True 清單1_dgv.Columns(4).ReadOnly = True : 清單1_dgv.Columns(5).ReadOnly = True : 清單1_dgv.Columns(6).ReadOnly = True : 清單1_dgv.Columns(7).ReadOnly = True 清單1_dgv.Columns(8).ReadOnly = True : 清單1_dgv.Columns(9).ReadOnly = True : 清單1_dgv.Columns(10).ReadOnly = True : 清單1_dgv.Columns(12).ReadOnly = True 清單1_dgv.Columns(13).ReadOnly = True : 清單1_dgv.Columns(14).ReadOnly = True : 清單1_dgv.Columns(20).ReadOnly = True : 清單1_dgv.Columns(22).ReadOnly = True 清單1_dgv.Columns(28).ReadOnly = True : 清單1_dgv.Columns(30).ReadOnly = True : 清單1_dgv.Columns(31).ReadOnly = True : 清單1_dgv.Columns(33).ReadOnly = True 清單1_dgv.Columns(34).ReadOnly = True : 清單1_dgv.Columns(35).ReadOnly = True : 清單1_dgv.Columns(36).ReadOnly = True : 清單1_dgv.Columns(37).ReadOnly = True 清單1_dgv.Columns(38).ReadOnly = True : 清單1_dgv.Columns(39).ReadOnly = True : 清單1_dgv.Columns(40).ReadOnly = True '764 清單1_dgv.Columns(0).FillWeight = 90 : 清單1_dgv.Columns(1).FillWeight = 100 : 清單1_dgv.Columns(2).FillWeight = 115 : 清單1_dgv.Columns(3).FillWeight = 80 清單1_dgv.Columns(4).FillWeight = 90 : 清單1_dgv.Columns(5).FillWeight = 90 : 清單1_dgv.Columns(6).FillWeight = 100 : 清單1_dgv.Columns(7).FillWeight = 50 清單1_dgv.Columns(8).FillWeight = 60 : 清單1_dgv.Columns(9).FillWeight = 70 : 清單1_dgv.Columns(10).FillWeight = 70 : 清單1_dgv.Columns(11).FillWeight = 60 清單1_dgv.Columns(12).FillWeight = 80 : 清單1_dgv.Columns(13).FillWeight = 100 : 清單1_dgv.Columns(14).FillWeight = 80 : 清單1_dgv.Columns(15).Visible = False 清單1_dgv.Columns(16).FillWeight = 60 : 清單1_dgv.Columns(17).FillWeight = 60 : 清單1_dgv.Columns(18).FillWeight = 65 : 清單1_dgv.Columns(19).FillWeight = 60 清單1_dgv.Columns(20).FillWeight = 70 : 清單1_dgv.Columns(21).FillWeight = 80 : 清單1_dgv.Columns(22).FillWeight = 70 清單1_dgv.Columns(23).Visible = False : 清單1_dgv.Columns(24).Visible = False 清單1_dgv.Columns(25).FillWeight = 168 : 清單1_dgv.Columns(26).FillWeight = 60 : 清單1_dgv.Columns(27).FillWeight = 60 : 清單1_dgv.Columns(28).FillWeight = 80 清單1_dgv.Columns(29).FillWeight = 100 : 清單1_dgv.Columns(30).FillWeight = 80 : 清單1_dgv.Columns(31).FillWeight = 80 : 清單1_dgv.Columns(31).FillWeight = 100 清單1_dgv.Columns(32).FillWeight = 263 : 清單1_dgv.Columns(39).FillWeight = 70 : 清單1_dgv.Columns(40).FillWeight = 85 : 清單1_dgv.Columns(41).FillWeight = 57 清單1_dgv.Columns(8).DefaultCellStyle.Format = "#,##0" : 清單1_dgv.Columns(11).DefaultCellStyle.Format = "#,##0.00" : 清單1_dgv.Columns(12).DefaultCellStyle.Format = "#,##0.00" 清單1_dgv.Columns(16).DefaultCellStyle.Format = "#,##0" : 清單1_dgv.Columns(18).DefaultCellStyle.Format = "#,##0.0000" : 清單1_dgv.Columns(19).DefaultCellStyle.Format = "#,##0.00" 清單1_dgv.Columns(20).DefaultCellStyle.Format = "#,##0.00" : 清單1_dgv.Columns(21).DefaultCellStyle.Format = "#,##0.00" : 清單1_dgv.Columns(22).DefaultCellStyle.Format = "#,##0.00" 清單1_dgv.Columns(26).DefaultCellStyle.Format = "#,##0.00" : 清單1_dgv.Columns(27).DefaultCellStyle.Format = "#,##0.00" : 清單1_dgv.Columns(28).DefaultCellStyle.Format = "#,##0.00" 清單1_dgv.Columns(29).DefaultCellStyle.Format = "#,##0" : 清單1_dgv.Columns(30).DefaultCellStyle.Format = "#,##0.00" : 清單1_dgv.Columns(31).DefaultCellStyle.Format = "#,##0.00" 清單1_dgv.Columns(33).DefaultCellStyle.Format = "#,##0.00" : 清單1_dgv.Columns(34).DefaultCellStyle.Format = "#,##0.00" : 清單1_dgv.Columns(35).DefaultCellStyle.Format = "#,##0.00" 清單1_dgv.Columns(36).DefaultCellStyle.Format = "#,##0.00" : 清單1_dgv.Columns(37).DefaultCellStyle.Format = "#,##0.00" : 清單1_dgv.Columns(38).DefaultCellStyle.Format = "#,##0.00" 清單1_dgv.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(8).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(11).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(11).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(12).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(12).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(16).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(16).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(17).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(17).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(18).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(18).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(19).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(19).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(20).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(20).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(21).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(21).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(22).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(22).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(26).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(26).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(27).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(27).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(28).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(28).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(29).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(29).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(30).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(30).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(31).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(31).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(33).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(33).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(34).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(34).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(35).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(35).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(36).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(36).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(37).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(37).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(38).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(38).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(39).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(39).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(40).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(40).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(41).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單1_dgv.Columns(41).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單1_dgv.Columns(11).DefaultCellStyle.BackColor = Color.MistyRose : 清單1_dgv.Columns(16).DefaultCellStyle.BackColor = Color.MistyRose 清單1_dgv.Columns(17).DefaultCellStyle.BackColor = Color.MistyRose : 清單1_dgv.Columns(18).DefaultCellStyle.BackColor = Color.MistyRose 清單1_dgv.Columns(19).DefaultCellStyle.BackColor = Color.MistyRose : 清單1_dgv.Columns(21).DefaultCellStyle.BackColor = Color.MistyRose 清單1_dgv.Columns(26).DefaultCellStyle.BackColor = Color.MistyRose : 清單1_dgv.Columns(27).DefaultCellStyle.BackColor = Color.MistyRose 清單1_dgv.Columns(29).DefaultCellStyle.BackColor = Color.MistyRose 清單1_dgv.Columns(0).DefaultCellStyle.ForeColor = Color.Blue : 清單1_dgv.Columns(1).DefaultCellStyle.ForeColor = Color.Blue 清單1_dgv.Columns(2).DefaultCellStyle.ForeColor = Color.Blue : 清單1_dgv.Columns(3).DefaultCellStyle.ForeColor = Color.Blue 清單1_dgv.Columns(4).DefaultCellStyle.ForeColor = Color.Blue : 清單1_dgv.Columns(5).DefaultCellStyle.ForeColor = Color.Blue 清單1_dgv.Columns(6).DefaultCellStyle.ForeColor = Color.Blue : 清單1_dgv.Columns(7).DefaultCellStyle.ForeColor = Color.Blue 清單1_dgv.Columns(8).DefaultCellStyle.ForeColor = Color.Blue : 清單1_dgv.Columns(9).DefaultCellStyle.ForeColor = Color.Blue 清單1_dgv.Columns(10).DefaultCellStyle.ForeColor = Color.Blue 清單1_dgv.Columns(12).DefaultCellStyle.ForeColor = Color.Red : 清單1_dgv.Columns(20).DefaultCellStyle.ForeColor = Color.Red 清單1_dgv.Columns(22).DefaultCellStyle.ForeColor = Color.Red : 清單1_dgv.Columns(28).DefaultCellStyle.ForeColor = Color.Red 清單1_dgv.Columns(30).DefaultCellStyle.ForeColor = Color.Red : 清單1_dgv.Columns(31).DefaultCellStyle.ForeColor = Color.Red 清單1_dgv.Columns(33).DefaultCellStyle.ForeColor = Color.Red : 清單1_dgv.Columns(36).DefaultCellStyle.ForeColor = Color.Red 清單1_dgv.Columns(34).DefaultCellStyle.ForeColor = Color.Red : 清單1_dgv.Columns(37).DefaultCellStyle.ForeColor = Color.Red 清單1_dgv.Columns(35).DefaultCellStyle.ForeColor = Color.Red : 清單1_dgv.Columns(38).DefaultCellStyle.ForeColor = Color.Red If BB(0) = True And BB(1) = False And BB(2) = False And BB(3) = False Then 清單1_dgv.Columns(17).Visible = True : 清單1_dgv.Columns(18).Visible = True : 清單1_dgv.Columns(19).Visible = True : 清單1_dgv.Columns(20).Visible = True 清單1_dgv.Columns(21).Visible = True : 清單1_dgv.Columns(22).Visible = True : 清單1_dgv.Columns(25).Visible = True : 清單1_dgv.Columns(13).Visible = True 清單1_dgv.Columns(14).Visible = True : 清單1_dgv.Columns(16).Visible = True 清單1_dgv.Columns(26).Visible = False : 清單1_dgv.Columns(27).Visible = False : 清單1_dgv.Columns(28).Visible = False : 清單1_dgv.Columns(29).Visible = False 清單1_dgv.Columns(30).Visible = False : 清單1_dgv.Columns(31).Visible = False : 清單1_dgv.Columns(32).Visible = False : 清單1_dgv.Columns(33).Visible = False 清單1_dgv.Columns(34).Visible = False : 清單1_dgv.Columns(35).Visible = False : 清單1_dgv.Columns(36).Visible = False : 清單1_dgv.Columns(37).Visible = False 清單1_dgv.Columns(38).Visible = False : 清單1_dgv.Columns(39).Visible = False : 清單1_dgv.Columns(40).Visible = False : 清單1_dgv.Columns(41).Visible = False ElseIf BB(0) = False And BB(1) = True And BB(2) = False And BB(3) = False Then 清單1_dgv.Columns(17).Visible = False : 清單1_dgv.Columns(18).Visible = False : 清單1_dgv.Columns(19).Visible = False : 清單1_dgv.Columns(20).Visible = False 清單1_dgv.Columns(21).Visible = False : 清單1_dgv.Columns(22).Visible = False : 清單1_dgv.Columns(25).Visible = False : 清單1_dgv.Columns(13).Visible = False 清單1_dgv.Columns(14).Visible = False : 清單1_dgv.Columns(16).Visible = False 清單1_dgv.Columns(26).Visible = True : 清單1_dgv.Columns(27).Visible = True : 清單1_dgv.Columns(28).Visible = True : 清單1_dgv.Columns(29).Visible = True 清單1_dgv.Columns(30).Visible = True : 清單1_dgv.Columns(31).Visible = True : 清單1_dgv.Columns(32).Visible = True : 清單1_dgv.Columns(39).Visible = True 清單1_dgv.Columns(34).Visible = False : 清單1_dgv.Columns(35).Visible = False : 清單1_dgv.Columns(36).Visible = False : 清單1_dgv.Columns(37).Visible = False 清單1_dgv.Columns(38).Visible = False : 清單1_dgv.Columns(33).Visible = False : 清單1_dgv.Columns(40).Visible = False : 清單1_dgv.Columns(41).Visible = False ElseIf BB(0) = False And BB(1) = False And BB(2) = True And BB(3) = False Then 清單1_dgv.Columns(17).Visible = False : 清單1_dgv.Columns(18).Visible = False : 清單1_dgv.Columns(19).Visible = False : 清單1_dgv.Columns(20).Visible = False 清單1_dgv.Columns(21).Visible = False : 清單1_dgv.Columns(22).Visible = False : 清單1_dgv.Columns(25).Visible = False : 清單1_dgv.Columns(13).Visible = False 清單1_dgv.Columns(14).Visible = False : 清單1_dgv.Columns(16).Visible = False : 清單1_dgv.Columns(26).Visible = False : 清單1_dgv.Columns(27).Visible = False 清單1_dgv.Columns(28).Visible = False : 清單1_dgv.Columns(29).Visible = False : 清單1_dgv.Columns(30).Visible = False : 清單1_dgv.Columns(31).Visible = False 清單1_dgv.Columns(32).Visible = False 清單1_dgv.Columns(33).Visible = True : 清單1_dgv.Columns(34).Visible = True : 清單1_dgv.Columns(35).Visible = True : 清單1_dgv.Columns(36).Visible = True 清單1_dgv.Columns(37).Visible = True : 清單1_dgv.Columns(38).Visible = True : 清單1_dgv.Columns(39).Visible = True : 清單1_dgv.Columns(40).Visible = True 清單1_dgv.Columns(41).Visible = True End If 清單1_dgv.EditMode = DataGridViewEditMode.EditOnEnter For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 清單1_dgv("年份", i).Value = Strings.Left(清單1_dgv("交期開始", i).Value.ToString, 4) Next End Sub Private Sub Set_grid3() 清單2_dgv.Columns(0).ReadOnly = True : 清單2_dgv.Columns(1).ReadOnly = True : 清單2_dgv.Columns(2).ReadOnly = True : 清單2_dgv.Columns(3).ReadOnly = True 清單2_dgv.Columns(4).ReadOnly = True : 清單2_dgv.Columns(5).ReadOnly = True : 清單2_dgv.Columns(6).ReadOnly = True : 清單2_dgv.Columns(7).ReadOnly = True 清單2_dgv.Columns(8).ReadOnly = True : 清單2_dgv.Columns(9).ReadOnly = True : 清單2_dgv.Columns(10).ReadOnly = True : 清單2_dgv.Columns(12).ReadOnly = True 清單2_dgv.Columns(13).ReadOnly = True : 清單2_dgv.Columns(14).ReadOnly = True : 清單2_dgv.Columns(20).ReadOnly = True : 清單2_dgv.Columns(22).ReadOnly = True 清單2_dgv.Columns(28).ReadOnly = True : 清單2_dgv.Columns(30).ReadOnly = True : 清單2_dgv.Columns(31).ReadOnly = True : 清單2_dgv.Columns(33).ReadOnly = True 清單2_dgv.Columns(34).ReadOnly = True : 清單2_dgv.Columns(35).ReadOnly = True : 清單2_dgv.Columns(36).ReadOnly = True : 清單2_dgv.Columns(37).ReadOnly = True 清單2_dgv.Columns(38).ReadOnly = True : 清單2_dgv.Columns(39).ReadOnly = True : 清單2_dgv.Columns(40).ReadOnly = True '764 清單2_dgv.Columns(0).FillWeight = 90 : 清單2_dgv.Columns(1).FillWeight = 100 : 清單2_dgv.Columns(2).FillWeight = 115 : 清單2_dgv.Columns(3).FillWeight = 80 清單2_dgv.Columns(4).FillWeight = 90 : 清單2_dgv.Columns(5).FillWeight = 90 : 清單2_dgv.Columns(6).FillWeight = 100 : 清單2_dgv.Columns(7).FillWeight = 50 清單2_dgv.Columns(8).FillWeight = 60 : 清單2_dgv.Columns(9).FillWeight = 70 : 清單2_dgv.Columns(10).FillWeight = 70 : 清單2_dgv.Columns(11).FillWeight = 60 清單2_dgv.Columns(12).FillWeight = 80 : 清單2_dgv.Columns(13).FillWeight = 100 : 清單2_dgv.Columns(14).FillWeight = 80 : 清單2_dgv.Columns(15).Visible = False 清單2_dgv.Columns(16).FillWeight = 60 : 清單2_dgv.Columns(17).FillWeight = 60 : 清單2_dgv.Columns(18).FillWeight = 65 : 清單2_dgv.Columns(19).FillWeight = 60 清單2_dgv.Columns(20).FillWeight = 70 清單2_dgv.Columns(21).Visible = False : 清單2_dgv.Columns(22).Visible = False : 清單2_dgv.Columns(23).FillWeight = 80 : 清單2_dgv.Columns(24).FillWeight = 70 清單2_dgv.Columns(25).FillWeight = 133 : 清單2_dgv.Columns(26).FillWeight = 60 : 清單2_dgv.Columns(27).FillWeight = 60 : 清單2_dgv.Columns(28).FillWeight = 80 清單2_dgv.Columns(29).FillWeight = 100 : 清單2_dgv.Columns(30).FillWeight = 80 : 清單2_dgv.Columns(31).FillWeight = 80 : 清單2_dgv.Columns(31).FillWeight = 100 清單2_dgv.Columns(32).FillWeight = 263 : 清單2_dgv.Columns(39).FillWeight = 70 : 清單2_dgv.Columns(40).FillWeight = 85 : 清單2_dgv.Columns(41).FillWeight = 57 清單2_dgv.Columns(8).DefaultCellStyle.Format = "#,##0" : 清單2_dgv.Columns(11).DefaultCellStyle.Format = "#,##0.00" : 清單2_dgv.Columns(12).DefaultCellStyle.Format = "#,##0.00" 清單2_dgv.Columns(16).DefaultCellStyle.Format = "#,##0" : 清單2_dgv.Columns(18).DefaultCellStyle.Format = "#,##0.0000" : 清單2_dgv.Columns(19).DefaultCellStyle.Format = "#,##0.00" 清單2_dgv.Columns(20).DefaultCellStyle.Format = "#,##0.00" : 清單2_dgv.Columns(21).DefaultCellStyle.Format = "#,##0.00" : 清單2_dgv.Columns(22).DefaultCellStyle.Format = "#,##0.00" 清單2_dgv.Columns(26).DefaultCellStyle.Format = "#,##0.00" : 清單2_dgv.Columns(27).DefaultCellStyle.Format = "#,##0.00" : 清單2_dgv.Columns(28).DefaultCellStyle.Format = "#,##0.00" 清單2_dgv.Columns(29).DefaultCellStyle.Format = "#,##0" : 清單2_dgv.Columns(30).DefaultCellStyle.Format = "#,##0.00" : 清單2_dgv.Columns(31).DefaultCellStyle.Format = "#,##0.00" 清單2_dgv.Columns(33).DefaultCellStyle.Format = "#,##0.00" : 清單2_dgv.Columns(34).DefaultCellStyle.Format = "#,##0.00" : 清單2_dgv.Columns(35).DefaultCellStyle.Format = "#,##0.00" 清單2_dgv.Columns(36).DefaultCellStyle.Format = "#,##0.00" : 清單2_dgv.Columns(37).DefaultCellStyle.Format = "#,##0.00" : 清單2_dgv.Columns(38).DefaultCellStyle.Format = "#,##0.00" 清單2_dgv.Columns(23).DefaultCellStyle.Format = "#,##0.00" 清單2_dgv.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(8).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(11).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(11).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(12).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(12).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(16).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(16).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(17).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(17).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(18).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(18).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(19).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(19).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(20).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(20).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(21).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(21).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(22).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(22).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(26).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(26).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(27).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(27).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(28).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(28).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(29).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(29).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(30).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(30).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(31).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(31).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(23).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(23).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(33).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(33).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(34).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(34).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(35).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(35).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(36).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(36).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(37).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(37).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(38).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(38).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(39).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(39).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(40).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(40).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(41).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單2_dgv.Columns(41).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單2_dgv.Columns(11).DefaultCellStyle.BackColor = Color.MistyRose : 清單2_dgv.Columns(16).DefaultCellStyle.BackColor = Color.MistyRose 清單2_dgv.Columns(17).DefaultCellStyle.BackColor = Color.MistyRose : 清單2_dgv.Columns(18).DefaultCellStyle.BackColor = Color.MistyRose 清單2_dgv.Columns(19).DefaultCellStyle.BackColor = Color.MistyRose : 清單2_dgv.Columns(21).DefaultCellStyle.BackColor = Color.MistyRose 清單2_dgv.Columns(26).DefaultCellStyle.BackColor = Color.MistyRose : 清單2_dgv.Columns(27).DefaultCellStyle.BackColor = Color.MistyRose 清單2_dgv.Columns(29).DefaultCellStyle.BackColor = Color.MistyRose : 清單2_dgv.Columns(23).DefaultCellStyle.BackColor = Color.MistyRose 清單2_dgv.Columns(24).DefaultCellStyle.BackColor = Color.MistyRose 清單2_dgv.Columns(0).DefaultCellStyle.ForeColor = Color.Green : 清單2_dgv.Columns(1).DefaultCellStyle.ForeColor = Color.Green 清單2_dgv.Columns(2).DefaultCellStyle.ForeColor = Color.Green : 清單2_dgv.Columns(3).DefaultCellStyle.ForeColor = Color.Green 清單2_dgv.Columns(4).DefaultCellStyle.ForeColor = Color.Green : 清單2_dgv.Columns(5).DefaultCellStyle.ForeColor = Color.Green 清單2_dgv.Columns(6).DefaultCellStyle.ForeColor = Color.Green : 清單2_dgv.Columns(7).DefaultCellStyle.ForeColor = Color.Green 清單2_dgv.Columns(8).DefaultCellStyle.ForeColor = Color.Green : 清單2_dgv.Columns(9).DefaultCellStyle.ForeColor = Color.Green 清單2_dgv.Columns(10).DefaultCellStyle.ForeColor = Color.Green 清單2_dgv.Columns(12).DefaultCellStyle.ForeColor = Color.Red : 清單2_dgv.Columns(20).DefaultCellStyle.ForeColor = Color.Red 清單2_dgv.Columns(22).DefaultCellStyle.ForeColor = Color.Red : 清單2_dgv.Columns(28).DefaultCellStyle.ForeColor = Color.Red 清單2_dgv.Columns(30).DefaultCellStyle.ForeColor = Color.Red : 清單2_dgv.Columns(31).DefaultCellStyle.ForeColor = Color.Red 清單2_dgv.Columns(33).DefaultCellStyle.ForeColor = Color.Red : 清單2_dgv.Columns(36).DefaultCellStyle.ForeColor = Color.Red 清單2_dgv.Columns(34).DefaultCellStyle.ForeColor = Color.Red : 清單2_dgv.Columns(37).DefaultCellStyle.ForeColor = Color.Red 清單2_dgv.Columns(35).DefaultCellStyle.ForeColor = Color.Red : 清單2_dgv.Columns(38).DefaultCellStyle.ForeColor = Color.Red If BB(0) = True And BB(1) = False And BB(2) = False And BB(3) = False Then 清單2_dgv.Columns(17).Visible = True : 清單2_dgv.Columns(18).Visible = True : 清單2_dgv.Columns(19).Visible = True : 清單2_dgv.Columns(20).Visible = True 清單2_dgv.Columns(23).Visible = True : 清單2_dgv.Columns(24).Visible = True : 清單2_dgv.Columns(25).Visible = True : 清單2_dgv.Columns(13).Visible = True 清單2_dgv.Columns(14).Visible = True : 清單2_dgv.Columns(16).Visible = True 清單2_dgv.Columns(26).Visible = False : 清單2_dgv.Columns(27).Visible = False : 清單2_dgv.Columns(28).Visible = False : 清單2_dgv.Columns(29).Visible = False 清單2_dgv.Columns(30).Visible = False : 清單2_dgv.Columns(31).Visible = False : 清單2_dgv.Columns(32).Visible = False : 清單2_dgv.Columns(33).Visible = False 清單2_dgv.Columns(34).Visible = False : 清單2_dgv.Columns(35).Visible = False : 清單2_dgv.Columns(36).Visible = False : 清單2_dgv.Columns(37).Visible = False 清單2_dgv.Columns(38).Visible = False : 清單2_dgv.Columns(39).Visible = False : 清單2_dgv.Columns(40).Visible = False : 清單2_dgv.Columns(41).Visible = False ElseIf BB(0) = False And BB(1) = True And BB(2) = False And BB(3) = False Then 清單2_dgv.Columns(17).Visible = False : 清單2_dgv.Columns(18).Visible = False : 清單2_dgv.Columns(19).Visible = False : 清單2_dgv.Columns(20).Visible = False 清單2_dgv.Columns(23).Visible = False : 清單2_dgv.Columns(24).Visible = False : 清單2_dgv.Columns(25).Visible = False : 清單2_dgv.Columns(13).Visible = False 清單2_dgv.Columns(14).Visible = False : 清單2_dgv.Columns(16).Visible = False 清單2_dgv.Columns(26).Visible = True : 清單2_dgv.Columns(27).Visible = True : 清單2_dgv.Columns(28).Visible = True : 清單2_dgv.Columns(29).Visible = True 清單2_dgv.Columns(30).Visible = True : 清單2_dgv.Columns(31).Visible = True : 清單2_dgv.Columns(32).Visible = True : 清單2_dgv.Columns(39).Visible = True 清單2_dgv.Columns(34).Visible = False : 清單2_dgv.Columns(35).Visible = False : 清單2_dgv.Columns(36).Visible = False : 清單2_dgv.Columns(37).Visible = False 清單2_dgv.Columns(38).Visible = False : 清單2_dgv.Columns(33).Visible = False : 清單2_dgv.Columns(40).Visible = False : 清單2_dgv.Columns(41).Visible = False ElseIf BB(0) = False And BB(1) = False And BB(2) = True And BB(3) = False Then 清單2_dgv.Columns(17).Visible = False : 清單2_dgv.Columns(18).Visible = False : 清單2_dgv.Columns(19).Visible = False : 清單2_dgv.Columns(20).Visible = False 清單2_dgv.Columns(23).Visible = False : 清單2_dgv.Columns(24).Visible = False : 清單2_dgv.Columns(25).Visible = False : 清單2_dgv.Columns(13).Visible = False 清單2_dgv.Columns(14).Visible = False : 清單2_dgv.Columns(16).Visible = False : 清單2_dgv.Columns(26).Visible = False : 清單2_dgv.Columns(27).Visible = False 清單2_dgv.Columns(28).Visible = False : 清單2_dgv.Columns(29).Visible = False : 清單2_dgv.Columns(30).Visible = False : 清單2_dgv.Columns(31).Visible = False 清單2_dgv.Columns(32).Visible = False 清單2_dgv.Columns(33).Visible = True : 清單2_dgv.Columns(34).Visible = True : 清單2_dgv.Columns(35).Visible = True : 清單2_dgv.Columns(36).Visible = True 清單2_dgv.Columns(37).Visible = True : 清單2_dgv.Columns(38).Visible = True : 清單2_dgv.Columns(39).Visible = True : 清單2_dgv.Columns(40).Visible = True 清單2_dgv.Columns(41).Visible = True End If 清單2_dgv.EditMode = DataGridViewEditMode.EditOnEnter For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 清單2_dgv("年份", i).Value = Strings.Left(清單2_dgv("交期開始", i).Value.ToString, 4) Next End Sub Private Sub Set_grid1() 未完成流水號清單_dgv.Columns(0).FillWeight = 100 End Sub Private Sub Set_自動彙總1() LAND總雙數_tb.Text = "0" : FIRST總雙數_tb.Text = "0" : 合計總雙數_tb.Text = "0" : LAND銷售金額_tb.Text = "0" : FIRST銷售金額_tb.Text = "0" : 合計銷售金額_tb.Text = "0" LAND客戶付款_tb.Text = "0" : COST客戶付款_tb.Text = "0" : 合計客戶付款_tb.Text = "0" : LAND未收款項_tb.Text = "0" : COST未收款項_tb.Text = "0" : 合計未收款項_tb.Text = "0" LAND預收款項_tb.Text = "0" : COST預收款項_tb.Text = "0" : 合計預收款項_tb.Text = "0" : LAND成本金額_tb.Text = "0" : COST成本金額_tb.Text = "0" : 合計成本金額_tb.Text = "0" LAND利潤_tb.Text = "0" : COST利潤_tb.Text = "0" : 合計利潤_tb.Text = "0" : LAND實際收款_tb.Text = "0" : COST實際收款_tb.Text = "0" : 總實際收款_tb.Text = "0" For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 If 清單1_dgv("Discount price", i).Value.ToString = "" Then : 清單1_dgv("Discount price", i).Value = 0 : End If If 清單1_dgv("Commercial invoice", i).Value.ToString = "" Then : 清單1_dgv("Commercial invoice", i).Value = 0 : End If If 清單1_dgv("Mold cost", i).Value.ToString = "" Then : 清單1_dgv("Mold cost", i).Value = 0 : End If If 清單1_dgv("Fty price", i).Value.ToString = "" Then : 清單1_dgv("Fty price", i).Value = 0 : End If 清單1_dgv("銷售金額", i).Value = Double.Parse(清單1_dgv("單價", i).Value.ToString) * Double.Parse(清單1_dgv("訂單數量", i).Value) 清單1_dgv("Discount price", i).Value = Double.Parse(清單1_dgv("單價", i).Value.ToString) 清單1_dgv("Overage invoice", i).Value = Double.Parse(清單1_dgv("Discount price", i).Value.ToString) - Double.Parse(清單1_dgv("Commercial invoice", i).Value) 清單1_dgv("Collected mold cost", i).Value = Double.Parse(清單1_dgv("Mold cost", i).Value.ToString) * Double.Parse(清單1_dgv("訂單數量", i).Value) If Double.Parse(清單1_dgv("Discount price", i).Value.ToString) - Double.Parse(清單1_dgv("Mold cost", i).Value) = 0 Then 清單1_dgv("Profit", i).Value = 0 Else 清單1_dgv("Profit", i).Value = (Double.Parse(清單1_dgv("Discount price", i).Value.ToString) - Double.Parse(清單1_dgv("Mold cost", i).Value) - Double.Parse(清單1_dgv("Fty price", i).Value)) / (Double.Parse(清單1_dgv("Discount price", i).Value.ToString) - Double.Parse(清單1_dgv("Mold cost", i).Value)) * 100 End If 清單1_dgv("Commission", i).Value = (Double.Parse(清單1_dgv("單價", i).Value.ToString) - Double.Parse(清單1_dgv("Fty price", i).Value) - Double.Parse(清單1_dgv("Mold cost", i).Value)) * Double.Parse(清單1_dgv("訂單數量", i).Value) 清單1_dgv("客戶付款", i).Value = Double.Parse(清單1_dgv("Commercial invoice", i).Value.ToString) * Double.Parse(清單1_dgv("訂單數量", i).Value) 清單1_dgv("未收款項", i).Value = Double.Parse(清單1_dgv("Overage invoice", i).Value.ToString) * Double.Parse(清單1_dgv("訂單數量", i).Value) 清單1_dgv("預收款項", i).Value = 0 清單1_dgv("成本金額", i).Value = (Double.Parse(清單1_dgv("Fty price", i).Value.ToString) + Double.Parse(清單1_dgv("Mold cost", i).Value)) * Double.Parse(清單1_dgv("訂單數量", i).Value) 清單1_dgv("利潤", i).Value = (Double.Parse(清單1_dgv("銷售金額", i).Value.ToString) - Double.Parse(清單1_dgv("成本金額", i).Value)) 清單1_dgv("實際收款", i).Value = (Double.Parse(清單1_dgv("利潤", i).Value.ToString) - Double.Parse(清單1_dgv("未收款項", i).Value)) LAND總雙數_tb.Text = Val(LAND總雙數_tb.Text) + Double.Parse(清單1_dgv("訂單數量", i).Value) LAND銷售金額_tb.Text = Val(LAND銷售金額_tb.Text) + Double.Parse(清單1_dgv("銷售金額", i).Value) LAND客戶付款_tb.Text = Val(LAND客戶付款_tb.Text) + Double.Parse(清單1_dgv("客戶付款", i).Value) LAND未收款項_tb.Text = Val(LAND未收款項_tb.Text) + Double.Parse(清單1_dgv("未收款項", i).Value) LAND預收款項_tb.Text = Val(LAND預收款項_tb.Text) + Double.Parse(清單1_dgv("預收款項", i).Value) LAND成本金額_tb.Text = Val(LAND成本金額_tb.Text) + Double.Parse(清單1_dgv("成本金額", i).Value) LAND利潤_tb.Text = Val(LAND利潤_tb.Text) + Double.Parse(清單1_dgv("利潤", i).Value) LAND實際收款_tb.Text = Val(LAND實際收款_tb.Text) + Double.Parse(清單1_dgv("實際收款", i).Value) Next For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 If 清單2_dgv("Discount price", i).Value.ToString = "" Then : 清單2_dgv("Discount price", i).Value = 0 : End If If 清單2_dgv("Commercial invoice", i).Value.ToString = "" Then : 清單2_dgv("Commercial invoice", i).Value = 0 : End If If 清單2_dgv("Mold cost", i).Value.ToString = "" Then : 清單2_dgv("Mold cost", i).Value = 0 : End If If 清單2_dgv("Fty price", i).Value.ToString = "" Then : 清單2_dgv("Fty price", i).Value = 0 : End If If 清單2_dgv("Selling price", i).Value.ToString = "" Then : 清單2_dgv("Selling price", i).Value = 0 : End If 清單2_dgv("銷售金額", i).Value = Double.Parse(清單2_dgv("單價", i).Value.ToString) * Double.Parse(清單2_dgv("訂單數量", i).Value) 清單2_dgv("Discount price", i).Value = Double.Parse(清單2_dgv("單價", i).Value.ToString) 清單2_dgv("Overage invoice", i).Value = Double.Parse(清單2_dgv("Discount price", i).Value.ToString) - Double.Parse(清單2_dgv("Commercial invoice", i).Value) 清單2_dgv("Collected mold cost", i).Value = Double.Parse(清單2_dgv("Mold cost", i).Value.ToString) * Double.Parse(清單2_dgv("訂單數量", i).Value) If Double.Parse(清單2_dgv("Discount price", i).Value.ToString) - Double.Parse(清單2_dgv("Mold cost", i).Value) = 0 Then 清單2_dgv("Profit", i).Value = 0 Else 清單2_dgv("Profit", i).Value = (Double.Parse(清單2_dgv("Discount price", i).Value.ToString) - Double.Parse(清單2_dgv("Mold cost", i).Value) - Double.Parse(清單2_dgv("Fty price", i).Value)) / (Double.Parse(清單2_dgv("Discount price", i).Value.ToString) - Double.Parse(清單2_dgv("Mold cost", i).Value)) * 100 End If 清單2_dgv("Commission", i).Value = (Double.Parse(清單2_dgv("單價", i).Value.ToString) - Double.Parse(清單2_dgv("Fty price", i).Value) - Double.Parse(清單2_dgv("Mold cost", i).Value)) * Double.Parse(清單2_dgv("訂單數量", i).Value) 清單2_dgv("客戶付款", i).Value = Double.Parse(清單2_dgv("Selling price", i).Value.ToString) * Double.Parse(清單2_dgv("訂單數量", i).Value) 清單2_dgv("未收款項", i).Value = 0 If 清單2_dgv("Selling price", i).Value = 0 Then : 清單2_dgv("預收款項", i).Value = 0 : Else 清單2_dgv("預收款項", i).Value = (Double.Parse(清單2_dgv("Selling price", i).Value.ToString) - Double.Parse(清單2_dgv("Discount price", i).Value)) * Double.Parse(清單2_dgv("訂單數量", i).Value) End If 清單2_dgv("成本金額", i).Value = (Double.Parse(清單2_dgv("Fty price", i).Value.ToString) + Double.Parse(清單2_dgv("Mold cost", i).Value)) * Double.Parse(清單2_dgv("訂單數量", i).Value) 清單2_dgv("利潤", i).Value = (Double.Parse(清單2_dgv("銷售金額", i).Value.ToString) - Double.Parse(清單2_dgv("成本金額", i).Value)) 清單2_dgv("實際收款", i).Value = (Double.Parse(清單2_dgv("利潤", i).Value.ToString) + Double.Parse(清單2_dgv("預收款項", i).Value)) FIRST總雙數_tb.Text = Val(FIRST總雙數_tb.Text) + Double.Parse(清單2_dgv("訂單數量", i).Value) FIRST銷售金額_tb.Text = Val(FIRST銷售金額_tb.Text) + Double.Parse(清單2_dgv("銷售金額", i).Value) COST客戶付款_tb.Text = Val(COST客戶付款_tb.Text) + Double.Parse(清單2_dgv("客戶付款", i).Value) COST未收款項_tb.Text = Val(COST未收款項_tb.Text) + Double.Parse(清單2_dgv("未收款項", i).Value) COST預收款項_tb.Text = Val(COST預收款項_tb.Text) + Double.Parse(清單2_dgv("預收款項", i).Value) COST成本金額_tb.Text = Val(COST成本金額_tb.Text) + Double.Parse(清單2_dgv("成本金額", i).Value) COST利潤_tb.Text = Val(COST利潤_tb.Text) + Double.Parse(清單2_dgv("利潤", i).Value) : COST實際收款_tb.Text = Val(COST實際收款_tb.Text) + Double.Parse(清單2_dgv("實際收款", i).Value) Next 合計總雙數_tb.Text = Val(FIRST總雙數_tb.Text) + Val(LAND總雙數_tb.Text) : 合計銷售金額_tb.Text = Val(LAND銷售金額_tb.Text) + Val(FIRST銷售金額_tb.Text) 合計客戶付款_tb.Text = Val(LAND客戶付款_tb.Text) + Val(COST客戶付款_tb.Text) : 合計未收款項_tb.Text = Val(LAND未收款項_tb.Text) + Val(COST未收款項_tb.Text) 合計預收款項_tb.Text = Val(LAND預收款項_tb.Text) + Val(COST預收款項_tb.Text) : 合計成本金額_tb.Text = Val(LAND成本金額_tb.Text) + Val(COST成本金額_tb.Text) 合計利潤_tb.Text = Val(LAND利潤_tb.Text) + Val(COST利潤_tb.Text) : 總實際收款_tb.Text = Val(LAND實際收款_tb.Text) + Val(COST實際收款_tb.Text) 應收應付_tb.Text = Val(合計預收款項_tb.Text) - Val(合計未收款項_tb.Text) If Val(LAND實際收款_tb.Text) >= 0 Then : LAND實際收款_tb.ForeColor = Color.Blue : Else : LAND實際收款_tb.ForeColor = Color.Red : End If If Val(COST實際收款_tb.Text) >= 0 Then : COST實際收款_tb.ForeColor = Color.Blue : Else : COST實際收款_tb.ForeColor = Color.Red : End If If Val(總實際收款_tb.Text) >= 0 Then : 總實際收款_tb.ForeColor = Color.Blue : Else : 總實際收款_tb.ForeColor = Color.Red : End If If Val(應收應付_tb.Text) >= 0 Then : 應收應付_tb.ForeColor = Color.Blue : Else : 應收應付_tb.ForeColor = Color.Red : End If LAND總雙數_tb.Text = Strings.Format(Val(LAND總雙數_tb.Text), "#,##0") : FIRST總雙數_tb.Text = Strings.Format(Val(FIRST總雙數_tb.Text), "#,##0") 合計總雙數_tb.Text = Strings.Format(Val(合計總雙數_tb.Text), "#,##0") : 合計銷售金額_tb.Text = Strings.Format(Val(合計銷售金額_tb.Text), "#,##0.00") LAND銷售金額_tb.Text = Strings.Format(Val(LAND銷售金額_tb.Text), "#,##0.00") : FIRST銷售金額_tb.Text = Strings.Format(Val(FIRST銷售金額_tb.Text), "#,##0.00") LAND客戶付款_tb.Text = Strings.Format(Val(LAND客戶付款_tb.Text), "#,##0.00") : COST客戶付款_tb.Text = Strings.Format(Val(COST客戶付款_tb.Text), "#,##0.00") LAND未收款項_tb.Text = Strings.Format(Val(LAND未收款項_tb.Text), "#,##0.00") : COST未收款項_tb.Text = Strings.Format(Val(COST未收款項_tb.Text), "#,##0.00") 合計未收款項_tb.Text = Strings.Format(Val(合計未收款項_tb.Text), "#,##0.00") : 合計客戶付款_tb.Text = Strings.Format(Val(合計客戶付款_tb.Text), "#,##0.00") LAND預收款項_tb.Text = Strings.Format(Val(LAND預收款項_tb.Text), "#,##0.00") : COST預收款項_tb.Text = Strings.Format(Val(COST預收款項_tb.Text), "#,##0.00") 合計預收款項_tb.Text = Strings.Format(Val(合計預收款項_tb.Text), "#,##0.00") : 合計成本金額_tb.Text = Strings.Format(Val(合計成本金額_tb.Text), "#,##0.00") LAND成本金額_tb.Text = Strings.Format(Val(LAND成本金額_tb.Text), "#,##0.00") : COST成本金額_tb.Text = Strings.Format(Val(COST成本金額_tb.Text), "#,##0.00") LAND利潤_tb.Text = Strings.Format(Val(LAND利潤_tb.Text), "#,##0.00") : COST利潤_tb.Text = Strings.Format(Val(COST利潤_tb.Text), "#,##0.00") 合計利潤_tb.Text = Strings.Format(Val(合計利潤_tb.Text), "#,##0.00") : 總實際收款_tb.Text = Strings.Format(Val(總實際收款_tb.Text), "#,##0.00") LAND實際收款_tb.Text = Strings.Format(Val(LAND實際收款_tb.Text), "#,##0.00") : COST實際收款_tb.Text = Strings.Format(Val(COST實際收款_tb.Text), "#,##0.00") 應收應付_tb.Text = Strings.Format(Val(應收應付_tb.Text), "#,##0.00") End Sub Private Sub Set_格式() 訂單流水號_tb.Enabled = False : 客戶訂單號_tb.Enabled = False : 形體號碼_tb.Enabled = False : 顏色_tb.Enabled = False : 楦型_tb.Enabled = False 資料流水號_tb.Visible = False : 利潤表流水號_tb.Visible = False 存檔_bt.Enabled = False : Timer1.Enabled = False : 資料尚未存檔_lb.Visible = False : 刪除_bt.Enabled = True : 修改_bt.Enabled = True 等於訂單數_bt.Enabled = False : 等於零_bt.Enabled = False : 匯率為1_bt.Enabled = False End Sub Private Sub 訂單價格利潤明細表_Load(sender As Object, e As EventArgs) Handles MyBase.Load WINPROFIT_ERP_SYS.WindowState = 2 : Me.MdiParent = WINPROFIT_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True 年份_cb.Text = Year(Today) : 訂單屬性_cb.SelectedIndex = 0 : Currency_cb.SelectedIndex = 0 BB(0) = True : BB(1) = False : BB(2) = False : BB(3) = False 成本組成_bt.Enabled = False : TextBox18.Visible = False Set_訂單清單1() : Set_訂單清單2() : Set_grid() : Set_grid3() : Set_未建檔清單() : Set_grid1() : Set_自動彙總1() : Set_格式() End Sub Private Sub ComboBox10_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 訂單屬性_cb.TextChanged If 訂單屬性_cb.Text = "LANDED BRANDED" Then 清單1_dgv.Visible = True : 清單2_dgv.Visible = False Else 清單1_dgv.Visible = False : 清單2_dgv.Visible = True End If Set_未建檔清單() : Set_自動彙總1() End Sub Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick If 資料尚未存檔_lb.Visible = True Then : 資料尚未存檔_lb.Visible = False : Else : 資料尚未存檔_lb.Visible = True : End If End Sub Private Sub DataGridView1_CellEndEdit(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles 清單1_dgv.CellEndEdit Set_自動彙總1() End Sub Private Sub DataGridView3_CellEndEdit(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles 清單2_dgv.CellEndEdit Set_自動彙總1() End Sub Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles 清單1_dgv.CellClick If e.RowIndex = -1 Then : Else 訂單流水號_tb.Text = 清單1_dgv("訂單流水號", e.RowIndex).Value.ToString : 客戶訂單號_tb.Text = 清單1_dgv("客戶訂單號", e.RowIndex).Value.ToString 形體號碼_tb.Text = 清單1_dgv("型體號碼", e.RowIndex).Value.ToString : 顏色_tb.Text = 清單1_dgv("顏色", e.RowIndex).Value.ToString 楦型_tb.Text = 清單1_dgv("楦型", e.RowIndex).Value.ToString : 資料流水號_tb.Text = 清單1_dgv("資料流水號", e.RowIndex).Value.ToString 年份_cb.Text = 清單1_dgv("年份", e.RowIndex).Value.ToString : Currency_cb.Text = 清單1_dgv("Currency", e.RowIndex).Value.ToString 利潤表流水號_tb.Text = 清單1_dgv("利潤表流水號", e.RowIndex).Value.ToString End If End Sub Private Sub DataGridView3_CellClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles 清單2_dgv.CellClick If e.RowIndex = -1 Then : Else 訂單流水號_tb.Text = 清單2_dgv("訂單流水號", e.RowIndex).Value.ToString : 客戶訂單號_tb.Text = 清單2_dgv("客戶訂單號", e.RowIndex).Value.ToString 形體號碼_tb.Text = 清單2_dgv("型體號碼", e.RowIndex).Value.ToString : 顏色_tb.Text = 清單2_dgv("顏色", e.RowIndex).Value.ToString 楦型_tb.Text = 清單2_dgv("楦型", e.RowIndex).Value.ToString : 資料流水號_tb.Text = 清單2_dgv("資料流水號", e.RowIndex).Value.ToString 年份_cb.Text = 清單2_dgv("年份", e.RowIndex).Value.ToString : Currency_cb.Text = 清單2_dgv("Currency", e.RowIndex).Value.ToString 利潤表流水號_tb.Text = 清單2_dgv("利潤表流水號", e.RowIndex).Value.ToString End If End Sub Private Sub DataGridView2_CellClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles 未完成流水號清單_dgv.CellClick If e.RowIndex = -1 Then : Else 訂單流水號_tb.Text = 未完成流水號清單_dgv(0, e.RowIndex).Value.ToString Timer1.Enabled = True : 存檔_bt.Enabled = True : 未建檔_ch.Checked = True : 已建檔_ch.Checked = False : 刪除_bt.Enabled = False : 修改_bt.Enabled = False 等於訂單數_bt.Enabled = True : 等於零_bt.Enabled = True : 匯率為1_bt.Enabled = True Set_訂單清單1() : Set_訂單清單2() End If End Sub Private Sub Button10_Click(sender As Object, e As EventArgs) Handles 拆分一筆資料_bt.Click If 未建檔_ch.Checked = True Then If 資料流水號_tb.Text = "" Or 訂單流水號_tb.Text = "" Then MsgBox("沒有選擇將要拆分的資料") Else Dim NUM2 As Integer SQL_最後一筆利潤表流水號() If dr.Read() Then : NUM2 = Strings.Right(dr("利潤表流水號").ToString, 8) : End If conn.Close() NUM2 += 1 If NUM2 < 10 Then : WW = "PR" & "0000000" & NUM2 ElseIf NUM2 > 9 And NUM2 < 100 Then : WW = "PR" & "000000" & NUM2 ElseIf NUM2 > 99 And NUM2 < 1000 Then : WW = "PR" & "00000" & NUM2 ElseIf NUM2 > 999 And NUM2 < 10000 Then : WW = "PR" & "0000" & NUM2 ElseIf NUM2 > 9999 And NUM2 < 100000 Then : WW = "PR" & "000" & NUM2 ElseIf NUM2 > 99999 And NUM2 < 100000 Then : WW = "PR" & "00" & NUM2 ElseIf NUM2 > 999999 And NUM2 < 1000000 Then : WW = "PR" & "0" & NUM2 ElseIf NUM2 > 9999999 Then : WW = "PR" & NUM2 End If SQL_新增訂單價格利潤表暫存檔2() : conn.Close() Set_編輯清單1() : Set_編輯清單2() : Set_grid() : Set_grid3() : Set_自動彙總1() End If ElseIf 未建檔_ch.Checked = False Then Dim NUM2 As Integer SQL_最後一筆利潤表流水號1() If dr.Read() Then : NUM2 = Strings.Right(dr("利潤表流水號").ToString, 8) : End If conn.Close() NUM2 += 1 If NUM2 < 10 Then : WW = "PR" & "0000000" & NUM2 ElseIf NUM2 > 9 And NUM2 < 100 Then : WW = "PR" & "000000" & NUM2 ElseIf NUM2 > 99 And NUM2 < 1000 Then : WW = "PR" & "00000" & NUM2 ElseIf NUM2 > 999 And NUM2 < 10000 Then : WW = "PR" & "0000" & NUM2 ElseIf NUM2 > 9999 And NUM2 < 100000 Then : WW = "PR" & "000" & NUM2 ElseIf NUM2 > 99999 And NUM2 < 100000 Then : WW = "PR" & "00" & NUM2 ElseIf NUM2 > 999999 And NUM2 < 1000000 Then : WW = "PR" & "0" & NUM2 ElseIf NUM2 > 9999999 Then : WW = "PR" & NUM2 End If SQL_新增訂單價格利潤明細表() : conn.Close() Set_訂單清單1() : Set_訂單清單2() : Set_grid() : Set_grid3() : Set_自動彙總1() End If End Sub Private Sub Button15_Click(sender As Object, e As EventArgs) Handles 刪除拆分資料_bt.Click If 未建檔_ch.Checked = True Then SQL_刪除拆分資料() : conn.Close() Set_編輯清單1() : Set_編輯清單2() : Set_grid() : Set_grid3() : Set_自動彙總1() ElseIf 未建檔_ch.Checked = False Then SQL_刪除拆分資料1() : conn.Close() Set_訂單清單1() : Set_訂單清單2() : Set_grid() : Set_grid3() : Set_自動彙總1() End If End Sub Private Sub DataGridView1_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 清單1_dgv.RowPostPaint Dim linePen As New Pen(Color.Blue, 2) If e.RowIndex = 清單1_dgv.Rows.Count - 1 Then Exit Sub Else If 清單1_dgv(2, e.RowIndex).Value.ToString <> 清單1_dgv(2, e.RowIndex + 1).Value.ToString Then Dim startX As Integer = IIf(清單1_dgv.RowHeadersVisible, 清單1_dgv.RowHeadersWidth, 0) Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1 Dim endX As Integer = startX + 清單1_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 清單1_dgv.HorizontalScrollingOffset e.Graphics.DrawLine(linePen, startX, startY, endX, startY) Exit Sub End If End If End Sub Private Sub DataGridView3_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 清單2_dgv.RowPostPaint Dim linePen As New Pen(Color.Blue, 2) If e.RowIndex = 清單2_dgv.Rows.Count - 1 Then Exit Sub Else If 清單2_dgv(2, e.RowIndex).Value.ToString <> 清單2_dgv(2, e.RowIndex + 1).Value.ToString Then Dim startX As Integer = IIf(清單2_dgv.RowHeadersVisible, 清單2_dgv.RowHeadersWidth, 0) Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1 Dim endX As Integer = startX + 清單2_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 清單2_dgv.HorizontalScrollingOffset e.Graphics.DrawLine(linePen, startX, startY, endX, startY) Exit Sub End If End If End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles 返回_bt.Click PA = "" 未建檔_ch.Checked = False : 已建檔_ch.Checked = True : 訂單流水號_tb.Text = "" Timer1.Enabled = False : 資料尚未存檔_lb.Visible = False : 存檔_bt.Enabled = False : 刪除_bt.Enabled = True : 修改_bt.Enabled = True 等於訂單數_bt.Enabled = False : 等於零_bt.Enabled = False : 匯率為1_bt.Enabled = False Set_訂單清單1() : Set_訂單清單2() : Set_grid() : Set_grid3() : Set_未建檔清單() : Set_grid1() : Set_自動彙總1() End Sub Private Sub Button34_Click(sender As Object, e As EventArgs) Handles 成本組成_bt.Click 成本組成_bt.Enabled = False : 利潤拆分_bt.Enabled = True : 匯總分頁_bt.Enabled = True BB(0) = True : BB(1) = False : BB(2) = False : BB(3) = False Set_grid() : Set_grid3() End Sub Private Sub Button35_Click(sender As Object, e As EventArgs) Handles 利潤拆分_bt.Click 成本組成_bt.Enabled = True : 利潤拆分_bt.Enabled = False : 匯總分頁_bt.Enabled = True BB(0) = False : BB(1) = True : BB(2) = False : BB(3) = False Set_grid() : Set_grid3() End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles 匯總分頁_bt.Click 成本組成_bt.Enabled = True : 利潤拆分_bt.Enabled = True : 匯總分頁_bt.Enabled = False BB(0) = False : BB(1) = False : BB(2) = True : BB(3) = False Set_grid() : Set_grid3() End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles 關鍵字查詢_bt.Click PA = InputBox("請輸入要查詢的資料") : 訂單流水號_tb.Text = "" If 訂單屬性_cb.Text = "LANDED BRANDED" Then Set_訂單清單1() : Set_grid() : Set_自動彙總1() Else Set_訂單清單2() : Set_grid3() : Set_自動彙總1() End If End Sub Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles 未建檔_ch.Click 未建檔_ch.Checked = True : 已建檔_ch.Checked = False End Sub Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles 已建檔_ch.Click 未建檔_ch.Checked = False : 已建檔_ch.Checked = True End Sub Private Sub Button7_Click(sender As Object, e As EventArgs) Handles 重新讀取_bt.Click Set_未建檔清單() : Set_grid1() End Sub Private Sub Button6_Click(sender As Object, e As EventArgs) Handles 存檔_bt.Click If 年份_cb.Text = "" Or Currency_cb.Text = "" Then MsgBox("年份或幣別沒有選擇") Else If 訂單屬性_cb.Text = "LANDED BRANDED" Then For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 資料數 = 清單1_dgv.Rows.Count : 進度條() PA = 清單1_dgv.Rows(i).Cells("資料流水號").Value SQL_查閱利潤表流水號() If dr.Read() Then conn.Close() Else PA1 = 清單1_dgv.Rows(i).Cells("銷售金額").Value : PA = 清單1_dgv.Rows(i).Cells("資料流水號").Value PA3 = 清單1_dgv.Rows(i).Cells("單價").Value SQL_更改訂單控制表5() : conn.Close() '---------------------------------------------------------------------------------------------------------- PA2 = 清單1_dgv.Rows(i).Cells("訂單流水號").Value PA4 = 清單1_dgv.Rows(i).Cells("客戶訂單號").Value : PA5 = 清單1_dgv.Rows(i).Cells("利潤表流水號").Value PA6 = 清單1_dgv.Rows(i).Cells("Quantity").Value : PA7 = 清單1_dgv.Rows(i).Cells("Exchange").Value PA8 = 清單1_dgv.Rows(i).Cells("審核").Value : PA9 = 清單1_dgv.Rows(i).Cells("Price").Value PA10 = 清單1_dgv.Rows(i).Cells("Discount price").Value : PA11 = 清單1_dgv.Rows(i).Cells("Commercial invoice").Value PA12 = 清單1_dgv.Rows(i).Cells("Overage invoice").Value : PA13 = 清單1_dgv.Rows(i).Cells("Selling price").Value PA14 = 清單1_dgv.Rows(i).Cells("HTS code").Value : PA15 = 清單1_dgv.Rows(i).Cells("Remark1").Value PA16 = 清單1_dgv.Rows(i).Cells("Fty price").Value : PA17 = 清單1_dgv.Rows(i).Cells("Mold cost").Value PA18 = 清單1_dgv.Rows(i).Cells("Collected mold cost").Value : PA19 = 清單1_dgv.Rows(i).Cells("Amortization qty").Value PA20 = 清單1_dgv.Rows(i).Cells("Profit").Value : PA21 = 清單1_dgv.Rows(i).Cells("Commission").Value PA22 = 清單1_dgv.Rows(i).Cells("Remark2").Value SQL_新增訂單價格利潤明細表1() : conn.Close() End If Next i : ProgressBar1.Value = 0 : 最終數 = 0 Else For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 資料數 = 清單2_dgv.Rows.Count : 進度條() PA = 清單2_dgv.Rows(i).Cells("資料流水號").Value SQL_查詢利潤表流水號() If dr.Read() Then conn.Close() Else PA = 清單2_dgv.Rows(i).Cells("單價").Value : PA1 = 清單2_dgv.Rows(i).Cells("銷售金額").Value PA3 = 清單2_dgv.Rows(i).Cells("資料流水號").Value SQL_更改訂單控制表8() : conn.Close() '-------------------------------------------------------------------------------------------------- PA4 = 清單2_dgv.Rows(i).Cells("訂單流水號").Value PA5 = 清單2_dgv.Rows(i).Cells("客戶訂單號").Value : PA6 = 清單2_dgv.Rows(i).Cells("利潤表流水號").Value PA7 = 清單2_dgv.Rows(i).Cells("Quantity").Value : PA8 = 清單2_dgv.Rows(i).Cells("Exchange").Value PA9 = 清單2_dgv.Rows(i).Cells("審核").Value : PA10 = 清單2_dgv.Rows(i).Cells("Price").Value PA11 = 清單2_dgv.Rows(i).Cells("Discount price").Value : PA12 = 清單2_dgv.Rows(i).Cells("Commercial invoice").Value PA13 = 清單2_dgv.Rows(i).Cells("Overage invoice").Value : PA14 = 清單2_dgv.Rows(i).Cells("Selling price").Value PA15 = 清單2_dgv.Rows(i).Cells("HTS code").Value : PA16 = 清單2_dgv.Rows(i).Cells("Remark1").Value PA17 = 清單2_dgv.Rows(i).Cells("Fty price").Value : PA18 = 清單2_dgv.Rows(i).Cells("Mold cost").Value PA19 = 清單2_dgv.Rows(i).Cells("Collected mold cost").Value : PA20 = 清單2_dgv.Rows(i).Cells("Amortization qty").Value PA21 = 清單2_dgv.Rows(i).Cells("Profit").Value : PA22 = 清單2_dgv.Rows(i).Cells("Commission").Value PA23 = 清單2_dgv.Rows(i).Cells("Remark2").Value SQL_新增訂單價格利潤明細表2() : conn.Close() End If Next i : ProgressBar1.Value = 0 : 最終數 = 0 End If MsgBox("存檔完成") 未建檔_ch.Checked = False : 已建檔_ch.Checked = True Set_訂單清單1() : Set_訂單清單2() : Set_grid() : Set_grid3() : Set_未建檔清單() : Set_grid1() : Set_自動彙總1() : Set_格式() End If End Sub Private Sub 進度條() 平均數 = 10000 / 資料數 最終數 += 平均數 If 最終數 > 10000 Then : 最終數 = 10000 : End If ProgressBar1.Value = 最終數 End Sub Private Sub Button9_Click(sender As Object, e As EventArgs) Handles 修改_bt.Click If 年份_cb.Text = "" Or Currency_cb.Text = "" Then MsgBox("年份或幣別沒有選擇") Else If 訂單屬性_cb.Text = "LANDED BRANDED" Then For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 資料數 = 清單1_dgv.Rows.Count : 進度條() PA = 清單1_dgv.Rows(i).Cells("單價").Value : PA1 = 清單1_dgv.Rows(i).Cells("銷售金額").Value PA2 = 清單1_dgv.Rows(i).Cells("資料流水號").Value SQL_修改訂單控制表4() : conn.Close() '--------------------------------------------------------------------------------------------------- PA3 = 清單1_dgv.Rows(i).Cells("年份").Value : PA4 = 清單1_dgv.Rows(i).Cells("Quantity").Value PA5 = 清單1_dgv.Rows(i).Cells("Exchange").Value : PA6 = 清單1_dgv.Rows(i).Cells("審核").Value PA7 = 清單1_dgv.Rows(i).Cells("Price").Value : PA8 = 清單1_dgv.Rows(i).Cells("Discount price").Value PA9 = 清單1_dgv.Rows(i).Cells("Commercial invoice").Value : PA10 = 清單1_dgv.Rows(i).Cells("Overage invoice").Value PA11 = 清單1_dgv.Rows(i).Cells("Selling price").Value : PA12 = 清單1_dgv.Rows(i).Cells("HTS code").Value PA13 = 清單1_dgv.Rows(i).Cells("Remark1").Value : PA14 = 清單1_dgv.Rows(i).Cells("Fty price").Value PA15 = 清單1_dgv.Rows(i).Cells("Mold cost").Value : PA16 = 清單1_dgv.Rows(i).Cells("Collected mold cost").Value PA17 = 清單1_dgv.Rows(i).Cells("Amortization qty").Value : PA18 = 清單1_dgv.Rows(i).Cells("Profit").Value PA19 = 清單1_dgv.Rows(i).Cells("Commission").Value : PA20 = 清單1_dgv.Rows(i).Cells("Remark2").Value PA21 = 清單1_dgv.Rows(i).Cells("利潤表流水號").Value SQL_更改訂單價格利潤明細表() : conn.Close() TextBox18.Text = Strings.Format(Val((i / (清單1_dgv.Rows.Count - 1)) * 100), "#,##0.0") & "%" Next i : ProgressBar1.Value = 0 : 最終數 = 0 Else For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 資料數 = 清單2_dgv.Rows.Count : 進度條() PA22 = 清單2_dgv.Rows(i).Cells("單價").Value : PA23 = 清單2_dgv.Rows(i).Cells("銷售金額").Value PA24 = 清單2_dgv.Rows(i).Cells("資料流水號").Value SQL_更改訂單控制表7() : conn.Close() '-------------------------------------------------------------------------------------------------- PA = 清單2_dgv.Rows(i).Cells("年份").Value : PA1 = 清單2_dgv.Rows(i).Cells("Quantity").Value PA2 = 清單2_dgv.Rows(i).Cells("Exchange").Value : PA3 = 清單2_dgv.Rows(i).Cells("審核").Value PA4 = 清單2_dgv.Rows(i).Cells("Price").Value : PA5 = 清單2_dgv.Rows(i).Cells("Discount price").Value PA6 = 清單2_dgv.Rows(i).Cells("Commercial invoice").Value : PA7 = 清單2_dgv.Rows(i).Cells("Overage invoice").Value PA8 = 清單2_dgv.Rows(i).Cells("Selling price").Value : PA9 = 清單2_dgv.Rows(i).Cells("HTS code").Value PA10 = 清單2_dgv.Rows(i).Cells("Remark1").Value : PA11 = 清單2_dgv.Rows(i).Cells("Fty price").Value PA12 = 清單2_dgv.Rows(i).Cells("Mold cost").Value : PA13 = 清單2_dgv.Rows(i).Cells("Collected mold cost").Value PA14 = 清單2_dgv.Rows(i).Cells("Amortization qty").Value : PA15 = 清單2_dgv.Rows(i).Cells("Profit").Value PA16 = 清單2_dgv.Rows(i).Cells("Commission").Value : PA17 = 清單2_dgv.Rows(i).Cells("Remark2").Value PA18 = 清單2_dgv.Rows(i).Cells("利潤表流水號").Value SQL_更改訂單價格利潤明細表1() : conn.Close() TextBox18.Text = Strings.Format(Val((i / (清單2_dgv.Rows.Count - 1)) * 100), "#,##0.0") & "%" Next i : ProgressBar1.Value = 0 : 最終數 = 0 End If MsgBox("修改完成") 未建檔_ch.Checked = False : 已建檔_ch.Checked = True Set_訂單清單1() : Set_訂單清單2() : Set_grid() : Set_grid3() : Set_未建檔清單() : Set_grid1() : Set_自動彙總1() : Set_格式() End If End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles 刪除_bt.Click If 訂單流水號_tb.Text = "" Then MsgBox("請選擇要刪除的資料") Else Dim aa As MsgBoxResult aa = MsgBox("確定要刪除該筆資料?", MsgBoxStyle.OkCancel) If aa = MsgBoxResult.Ok Then SQL_更改訂單控制表6() : conn.Close() SQL_刪除訂單價格利潤明細表1() : conn.Close() MsgBox("刪除完成") End If End If Set_訂單清單1() : Set_訂單清單2() : Set_grid() : Set_grid3() : Set_未建檔清單() : Set_grid1() : Set_自動彙總1() : Set_格式() End Sub Private Sub Button12_Click(sender As Object, e As EventArgs) Handles 等於零_bt.Click If 訂單屬性_cb.Text = "LANDED BRANDED" Then For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 : 清單1_dgv.Rows(i).Cells("Quantity").Value = 0 : Next i Else For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 : 清單2_dgv.Rows(i).Cells("Quantity").Value = 0 : Next i End If End Sub Private Sub Button11_Click(sender As Object, e As EventArgs) Handles 等於訂單數_bt.Click If 訂單屬性_cb.Text = "LANDED BRANDED" Then For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 : 清單1_dgv.Rows(i).Cells("Quantity").Value = 清單1_dgv.Rows(i).Cells("訂單數量").Value : Next i Else For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 : 清單2_dgv.Rows(i).Cells("Quantity").Value = 清單2_dgv.Rows(i).Cells("訂單數量").Value : Next i End If End Sub Private Sub Button13_Click(sender As Object, e As EventArgs) Handles 匯率為1_bt.Click If 訂單屬性_cb.Text = "LANDED BRANDED" Then For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 : 清單1_dgv.Rows(i).Cells("Exchange").Value = 1 : Next i Else For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 : 清單2_dgv.Rows(i).Cells("Exchange").Value = 1 : Next i End If End Sub Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles Currency_cb.SelectedIndexChanged If 訂單屬性_cb.Text = "LANDED BRANDED" Then For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 : 清單1_dgv.Rows(i).Cells("Currency").Value = Currency_cb.Text : Next i Else For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 : 清單2_dgv.Rows(i).Cells("Currency").Value = Currency_cb.Text : Next i End If End Sub Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 年份_cb.SelectedIndexChanged If 訂單屬性_cb.Text = "LANDED BRANDED" Then For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 : 清單1_dgv.Rows(i).Cells("年份").Value = 年份_cb.Text : Next i Else For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 : 清單2_dgv.Rows(i).Cells("年份").Value = 年份_cb.Text : Next i End If End Sub Private Sub Button8_Click(sender As Object, e As EventArgs) Handles 列印_bt.Click If 列印用SQL = "" Then : MsgBox("請先搜尋資料後再行列印") Else xlApp = CType(CreateObject("Excel.Application"), Application) xlBook = xlApp.Workbooks.Add xlApp.DisplayAlerts = True xlApp.Visible = True xlApp.Application.WindowState = xlMaximized xlSheet = NewMethod(xlBook) xlApp.Sheets(1).Name = "FIRST COST" xlBook.Activate() : xlSheet.Activate() xlSheet.Cells(3, 1) = "BUYER" : xlSheet.Cells(3, 7) = "顏色" : xlSheet.Cells(3, 13) = "銷售金額" : xlSheet.Cells(3, 19) = "Remark1" : xlSheet.Cells(3, 25) = "Commission" xlSheet.Cells(3, 2) = "年份季度" : xlSheet.Cells(3, 8) = "楦型" : xlSheet.Cells(3, 14) = "備註" : xlSheet.Cells(3, 20) = "Fty price" : xlSheet.Cells(3, 26) = "Remark2" xlSheet.Cells(3, 3) = "訂單流水號" : xlSheet.Cells(3, 9) = "訂單數量" : xlSheet.Cells(3, 15) = "Price" : xlSheet.Cells(3, 21) = "Mold cost" : xlSheet.Cells(3, 27) = "客戶付款" xlSheet.Cells(3, 4) = "客戶訂單號" : xlSheet.Cells(3, 10) = "交期開始" : xlSheet.Cells(3, 16) = "Discount price" : xlSheet.Cells(3, 22) = "Collected mold cost" : xlSheet.Cells(3, 28) = "預收款項" xlSheet.Cells(3, 5) = "型體號碼" : xlSheet.Cells(3, 11) = "交期結束" : xlSheet.Cells(3, 17) = "Selling price" : xlSheet.Cells(3, 23) = "Amortization qty" : xlSheet.Cells(3, 29) = "成本金額" xlSheet.Cells(3, 6) = "型體名稱" : xlSheet.Cells(3, 12) = "單價" : xlSheet.Cells(3, 18) = "HTS code" : xlSheet.Cells(3, 24) = "Profit" : xlSheet.Cells(3, 30) = "利潤" xlSheet.Cells(1, 8) = "Total-PRS" : xlSheet.Cells(2, 8) = "=SUBTOTAL(9,I4:I$99999)" : xlSheet.Cells(1, 24) = "Total-Commission" : xlSheet.Cells(2, 24) = "=SUBTOTAL(9,Y4:Y$99999)" xlSheet.Cells(3, 31) = "實際收款" : xlSheet.Cells(3, 32) = "Currency" : xlSheet.Cells(3, 33) = "Exchange" : xlSheet.Cells(3, 34) = "年份" : xlSheet.Cells(1, 26) = "合計" xlSheet.Cells(1, 27) = "=SUBTOTAL(9,AA4:AA$99999)" : xlSheet.Cells(1, 28) = "=SUBTOTAL(9,AB4:AB$99999)" : xlSheet.Cells(1, 29) = "=SUBTOTAL(9,AC4:AC$99999)" xlSheet.Cells(1, 30) = "=SUBTOTAL(9,AD4:AD$99999)" : xlSheet.Cells(1, 31) = "=SUBTOTAL(9,AE4:AE$99999)" : xlSheet.Cells(1, 1) = "FIRST COST" For i As Integer = 0 To 清單2_dgv.Rows.Count - 1 xlSheet.Cells(i + 4, 1) = 清單2_dgv.Rows(i).Cells("BUYER").Value : xlSheet.Cells(i + 4, 2) = 清單2_dgv.Rows(i).Cells("年份季度").Value xlSheet.Cells(i + 4, 3) = 清單2_dgv.Rows(i).Cells("訂單流水號").Value : xlSheet.Cells(i + 4, 4) = 清單2_dgv.Rows(i).Cells("客戶訂單號").Value xlSheet.Cells(i + 4, 5) = 清單2_dgv.Rows(i).Cells("型體號碼").Value : xlSheet.Cells(i + 4, 6) = 清單2_dgv.Rows(i).Cells("型體名稱").Value xlSheet.Cells(i + 4, 7) = 清單2_dgv.Rows(i).Cells("顏色").Value : xlSheet.Cells(i + 4, 8) = 清單2_dgv.Rows(i).Cells("楦型").Value xlSheet.Cells(i + 4, 9) = 清單2_dgv.Rows(i).Cells("訂單數量").Value : xlSheet.Cells(i + 4, 10) = 清單2_dgv.Rows(i).Cells("交期開始").Value xlSheet.Cells(i + 4, 11) = 清單2_dgv.Rows(i).Cells("交期結束").Value : xlSheet.Cells(i + 4, 12) = 清單2_dgv.Rows(i).Cells("單價").Value xlSheet.Cells(i + 4, 13) = 清單2_dgv.Rows(i).Cells("銷售金額").Value : xlSheet.Cells(i + 4, 14) = 清單2_dgv.Rows(i).Cells("備註").Value xlSheet.Cells(i + 4, 15) = 清單2_dgv.Rows(i).Cells("Price").Value : xlSheet.Cells(i + 4, 16) = 清單2_dgv.Rows(i).Cells("Discount price").Value xlSheet.Cells(i + 4, 17) = 清單2_dgv.Rows(i).Cells("Selling price").Value : xlSheet.Cells(i + 4, 18) = 清單2_dgv.Rows(i).Cells("HTS code").Value xlSheet.Cells(i + 4, 19) = 清單2_dgv.Rows(i).Cells("Remark1").Value : xlSheet.Cells(i + 4, 20) = 清單2_dgv.Rows(i).Cells("Fty price").Value xlSheet.Cells(i + 4, 21) = 清單2_dgv.Rows(i).Cells("Mold cost").Value : xlSheet.Cells(i + 4, 22) = "=U" & i + 4 & "*I" & i + 4 xlSheet.Cells(i + 4, 23) = 清單2_dgv.Rows(i).Cells("Amortization qty").Value xlSheet.Cells(i + 4, 24) = "=IF((P" & i + 4 & "-U" & i + 4 & ")=0,0,(P" & i + 4 & "-T" & i + 4 & "-U" & i + 4 & ")/(P" & i + 4 & "-U" & i + 4 & "))" xlSheet.Cells(i + 4, 25) = "=(P" & i + 4 & "-T" & i + 4 & "-U" & i + 4 & ")*I" & i + 4 : xlSheet.Cells(i + 4, 26) = 清單2_dgv.Rows(i).Cells("Remark2").Value xlSheet.Cells(i + 4, 27) = "=Q" & i + 4 & "*I" & i + 4 : xlSheet.Cells(i + 4, 28) = "=(Q" & i + 4 & "-P" & i + 4 & ")*I" & i + 4 xlSheet.Cells(i + 4, 29) = "=(T" & i + 4 & "+U" & i + 4 & ")*I" & i + 4 : xlSheet.Cells(i + 4, 30) = "=M" & i + 4 & "-AC" & i + 4 xlSheet.Cells(i + 4, 31) = "=AA" & i + 4 & "-AC" & i + 4 : xlSheet.Cells(i + 4, 32) = 清單2_dgv.Rows(i).Cells("Currency").Value xlSheet.Cells(i + 4, 33) = 清單2_dgv.Rows(i).Cells("Exchange").Value : xlSheet.Cells(i + 4, 34) = 清單2_dgv.Rows(i).Cells("年份").Value N1 = i Next i CC(xlApp, xlSheet) xlSheet = NewMethod(xlBook) xlApp.Sheets(1).Name = "LANDED BRANDED" xlBook.Activate() : xlSheet.Activate() xlSheet.Cells(3, 1) = "BUYER" : xlSheet.Cells(3, 7) = "顏色" : xlSheet.Cells(3, 13) = "銷售金額" : xlSheet.Cells(3, 19) = "Remark1" : xlSheet.Cells(3, 25) = "Commission" xlSheet.Cells(3, 2) = "年份季度" : xlSheet.Cells(3, 8) = "楦型" : xlSheet.Cells(3, 14) = "備註" : xlSheet.Cells(3, 20) = "Fty price" : xlSheet.Cells(3, 26) = "Remark2" xlSheet.Cells(3, 3) = "訂單流水號" : xlSheet.Cells(3, 9) = "訂單數量" : xlSheet.Cells(3, 15) = "Price" : xlSheet.Cells(3, 21) = "Mold cost" : xlSheet.Cells(3, 27) = "客戶付款" xlSheet.Cells(3, 4) = "客戶訂單號" : xlSheet.Cells(3, 10) = "交期開始" : xlSheet.Cells(3, 16) = "Discount price" : xlSheet.Cells(3, 22) = "Collected mold cost" : xlSheet.Cells(3, 28) = "未收款項" xlSheet.Cells(3, 5) = "型體號碼" : xlSheet.Cells(3, 11) = "交期結束" : xlSheet.Cells(3, 17) = "Commercial invoice" : xlSheet.Cells(3, 23) = "Amortization qty" : xlSheet.Cells(3, 29) = "成本金額" xlSheet.Cells(3, 6) = "型體名稱" : xlSheet.Cells(3, 12) = "單價" : xlSheet.Cells(3, 18) = "Overage invoice" : xlSheet.Cells(3, 24) = "Profit" : xlSheet.Cells(3, 30) = "利潤" xlSheet.Cells(1, 8) = "Total-PRS" : xlSheet.Cells(2, 8) = "=SUBTOTAL(9,I4:I$99999)" : xlSheet.Cells(1, 24) = "Total-Commission" : xlSheet.Cells(2, 24) = "=SUBTOTAL(9,Y4:Y$99999)" xlSheet.Cells(3, 31) = "實際收款" : xlSheet.Cells(3, 32) = "Currency" : xlSheet.Cells(3, 33) = "Exchange" : xlSheet.Cells(3, 34) = "年份" : xlSheet.Cells(1, 26) = "合計" xlSheet.Cells(1, 27) = "=SUBTOTAL(9,AA4:AA$99999)" : xlSheet.Cells(1, 28) = "=SUBTOTAL(9,AB4:AB$99999)" : xlSheet.Cells(1, 29) = "=SUBTOTAL(9,AC4:AC$99999)" xlSheet.Cells(1, 30) = "=SUBTOTAL(9,AD4:AD$99999)" : xlSheet.Cells(1, 31) = "=SUBTOTAL(9,AE4:AE$99999)" : xlSheet.Cells(1, 1) = "LANDED BRANDED" For i As Integer = 0 To 清單1_dgv.Rows.Count - 1 xlSheet.Cells(i + 4, 1) = 清單1_dgv.Rows(i).Cells("BUYER").Value : xlSheet.Cells(i + 4, 2) = 清單1_dgv.Rows(i).Cells("年份季度").Value xlSheet.Cells(i + 4, 3) = 清單1_dgv.Rows(i).Cells("訂單流水號").Value : xlSheet.Cells(i + 4, 4) = 清單1_dgv.Rows(i).Cells("客戶訂單號").Value xlSheet.Cells(i + 4, 5) = 清單1_dgv.Rows(i).Cells("型體號碼").Value : xlSheet.Cells(i + 4, 6) = 清單1_dgv.Rows(i).Cells("型體名稱").Value xlSheet.Cells(i + 4, 7) = 清單1_dgv.Rows(i).Cells("顏色").Value : xlSheet.Cells(i + 4, 8) = 清單1_dgv.Rows(i).Cells("楦型").Value xlSheet.Cells(i + 4, 9) = 清單1_dgv.Rows(i).Cells("訂單數量").Value : xlSheet.Cells(i + 4, 10) = 清單1_dgv.Rows(i).Cells("交期開始").Value xlSheet.Cells(i + 4, 11) = 清單1_dgv.Rows(i).Cells("交期結束").Value : xlSheet.Cells(i + 4, 12) = 清單1_dgv.Rows(i).Cells("單價").Value xlSheet.Cells(i + 4, 13) = 清單1_dgv.Rows(i).Cells("銷售金額").Value : xlSheet.Cells(i + 4, 14) = 清單1_dgv.Rows(i).Cells("備註").Value xlSheet.Cells(i + 4, 15) = 清單1_dgv.Rows(i).Cells("Price").Value : xlSheet.Cells(i + 4, 16) = 清單1_dgv.Rows(i).Cells("Discount price").Value xlSheet.Cells(i + 4, 17) = 清單1_dgv.Rows(i).Cells("Commercial invoice").Value : xlSheet.Cells(i + 4, 18) = 清單1_dgv.Rows(i).Cells("Overage invoice").Value xlSheet.Cells(i + 4, 19) = 清單1_dgv.Rows(i).Cells("Remark1").Value : xlSheet.Cells(i + 4, 20) = 清單1_dgv.Rows(i).Cells("Fty price").Value xlSheet.Cells(i + 4, 21) = 清單1_dgv.Rows(i).Cells("Mold cost").Value : xlSheet.Cells(i + 4, 22) = "=U" & i + 4 & "*I" & i + 4 xlSheet.Cells(i + 4, 23) = 清單1_dgv.Rows(i).Cells("Amortization qty").Value xlSheet.Cells(i + 4, 24) = "=IF((P" & i + 4 & "-U" & i + 4 & ")=0,0,(P" & i + 4 & "-T" & i + 4 & "-U" & i + 4 & ")/(P" & i + 4 & "-U" & i + 4 & "))" xlSheet.Cells(i + 4, 25) = "=(P" & i + 4 & "-T" & i + 4 & "-U" & i + 4 & ")*I" & i + 4 : xlSheet.Cells(i + 4, 26) = 清單1_dgv.Rows(i).Cells("Remark2").Value xlSheet.Cells(i + 4, 27) = "=Q" & i + 4 & "*I" & i + 4 : xlSheet.Cells(i + 4, 28) = "=R" & i + 4 & "*I" & i + 4 xlSheet.Cells(i + 4, 29) = "=(T" & i + 4 & "+U" & i + 4 & ")*I" & i + 4 : xlSheet.Cells(i + 4, 30) = "=M" & i + 4 & "-AC" & i + 4 xlSheet.Cells(i + 4, 31) = "=AA" & i + 4 & "-AC" & i + 4 : xlSheet.Cells(i + 4, 32) = 清單1_dgv.Rows(i).Cells("Currency").Value xlSheet.Cells(i + 4, 33) = 清單1_dgv.Rows(i).Cells("Exchange").Value : xlSheet.Cells(i + 4, 34) = 清單1_dgv.Rows(i).Cells("年份").Value N1 = i Next i CC(xlApp, xlSheet) xlSheet = NewMethod(xlBook) xlApp.Sheets(1).Name = "彙總" xlBook.Activate() : xlSheet.Activate() xlSheet.Cells(2, 1) = "ORDER SUMMARY DATA COLLECTION" xlSheet.Cells(3, 2) = "平均單價" ' xlSheet.Cells(3, 3) = "總雙數" : xlSheet.Cells(3, 4) = "銷售金額" : xlSheet.Cells(3, 5) = "客戶付款" : xlSheet.Cells(3, 6) = "未收款項" xlSheet.Cells(3, 7) = "預收款項" : xlSheet.Cells(3, 8) = "成本金額" : xlSheet.Cells(3, 9) = "利潤" : xlSheet.Cells(3, 10) = "實際收款" xlSheet.Cells(4, 1) = "LANDED BRANDED" : xlSheet.Cells(4, 2) = "=D4/C4" xlSheet.Cells(4, 3) = LAND總雙數_tb.Text : xlSheet.Cells(4, 4) = LAND銷售金額_tb.Text : xlSheet.Cells(4, 5) = LAND客戶付款_tb.Text : xlSheet.Cells(4, 6) = LAND未收款項_tb.Text xlSheet.Cells(4, 7) = LAND預收款項_tb.Text : xlSheet.Cells(4, 8) = LAND成本金額_tb.Text : xlSheet.Cells(4, 9) = LAND利潤_tb.Text : xlSheet.Cells(4, 10) = LAND實際收款_tb.Text xlSheet.Cells(5, 1) = "FIRST COST" : xlSheet.Cells(5, 2) = "=D5/C5" xlSheet.Cells(5, 3) = FIRST總雙數_tb.Text : xlSheet.Cells(5, 4) = FIRST銷售金額_tb.Text : xlSheet.Cells(5, 5) = COST客戶付款_tb.Text : xlSheet.Cells(5, 6) = COST未收款項_tb.Text xlSheet.Cells(5, 7) = COST預收款項_tb.Text : xlSheet.Cells(5, 8) = COST成本金額_tb.Text : xlSheet.Cells(5, 9) = COST利潤_tb.Text : xlSheet.Cells(5, 10) = COST實際收款_tb.Text xlSheet.Cells(6, 1) = "合 計" : xlSheet.Cells(6, 2) = "=D6/C6" xlSheet.Cells(6, 3) = 合計總雙數_tb.Text : xlSheet.Cells(6, 4) = 合計銷售金額_tb.Text : xlSheet.Cells(6, 5) = 合計客戶付款_tb.Text : xlSheet.Cells(6, 6) = 合計未收款項_tb.Text xlSheet.Cells(6, 7) = 合計預收款項_tb.Text : xlSheet.Cells(6, 8) = 合計成本金額_tb.Text : xlSheet.Cells(6, 9) = 合計利潤_tb.Text : xlSheet.Cells(7, 10) = 總實際收款_tb.Text xlSheet.Cells(7, 6) = "PS : 應收應付如果 = 正數,及為應付;如果 = 負數,及惟應收。 預收款項 - 未收款項 = 應收應付" xlSheet.Cells(7, 9) = "利潤 + 應收應付 = 總實際收款" : xlSheet.Cells(7, 7) = 應收應付_tb.Text AA(xlApp, xlSheet) xlSheet.PageSetup.PrintArea = "" xlApp.Cells.Select() xlSheet.Range("B1").Select() xlApp.Application.WindowState = xlMinimized MsgBox("列印完成") End If End Sub Private Shared Function NewMethod(xlBook As Workbook) As Worksheet Return CType(xlBook.Worksheets.Add, Worksheet) End Function Private Sub AA(ByVal myExcel As Application, ByVal xlSheet As Worksheet) xlSheet.Cells.Select() With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone End With xlSheet.Rows("2:7").Select : myExcel.Selection.RowHeight = 35 xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 20 xlSheet.Columns("B:J").Select : myExcel.Selection.ColumnWidth = 18 xlSheet.Range("A2:J2").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With : myExcel.Selection.Merge xlSheet.Range("B4:J6").Select() : myExcel.Selection.NumberFormatLocal = "#,##0.00;[紅色]-#,##0.00" xlSheet.Range("G7").Select() : myExcel.Selection.NumberFormatLocal = "#,##0.00;[紅色]-#,##0.00" xlSheet.Range("J7").Select() : myExcel.Selection.NumberFormatLocal = "#,##0.00;[紅色]-#,##0.00" xlSheet.Range("I7").Select() With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With xlSheet.Range("F7").Select() With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 1 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With xlSheet.Range("A3:J3").Select() With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With xlSheet.Range("A2:J6").Select() myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With myExcel.ActiveWindow.DisplayGridlines = False xlSheet.Range("C4:C6").Select() : myExcel.Selection.NumberFormatLocal = "#,##0;[紅色]-#,##0" xlSheet.Range("B3:J3").Select() With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorAccent5 : .TintAndShade = 0.799981688894314 : .PatternTintAndShade = 0 : End With xlSheet.Range("A4:A6").Select() With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorAccent4 : .TintAndShade = 0.799981688894314 : .PatternTintAndShade = 0 : End With End Sub Private Sub CC(ByVal myExcel As Application, ByVal xlSheet As Worksheet) myExcel.ActiveWindow.Zoom = 90 xlSheet.Cells.Select() With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone End With myExcel.Application.CutCopyMode = False xlSheet.Columns("D:D").Select : myExcel.Selection.NumberFormatLocal = "@" xlSheet.Columns("I:I").Select : myExcel.Selection.NumberFormatLocal = "#,##0;[紅色]-#,##0" xlSheet.Columns("J:K").Select : myExcel.Selection.NumberFormatLocal = "yyyy/mm/dd" xlSheet.Columns("L:L").Select : myExcel.Selection.NumberFormatLocal = "#,##0.00;[紅色]-#,##0.00" xlSheet.Columns("M:M").Select : myExcel.Selection.NumberFormatLocal = "#,##0.00;[紅色]-#,##0.00" xlSheet.Columns("O:R").Select : myExcel.Selection.NumberFormatLocal = "#,##0.00;[紅色]-#,##0.00" xlSheet.Columns("T:V").Select : myExcel.Selection.NumberFormatLocal = "#,##0.00;[紅色]-#,##0.00" xlSheet.Columns("W:W").Select : myExcel.Selection.NumberFormatLocal = "#,##0;[紅色]-#,##0" xlSheet.Columns("X:X").Select : myExcel.Selection.NumberFormatLocal = "0.00%" xlSheet.Columns("Y:Y").Select : myExcel.Selection.NumberFormatLocal = "#,##0.00;[紅色]-#,##0.00" xlSheet.Columns("AA:AE").Select : myExcel.Selection.NumberFormatLocal = "#,##0.00;[紅色]-#,##0.00" xlSheet.Columns("AG:AG").Select : myExcel.Selection.NumberFormatLocal = "#,##0.0000;[紅色]-#,##0.0000" xlSheet.Columns("AF:AH").Select With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With xlSheet.Rows("3:3").Select With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 18 xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 12 xlSheet.Columns("C:C").Select : myExcel.Selection.ColumnWidth = 16 xlSheet.Columns("D:D").Select : myExcel.Selection.ColumnWidth = 12 xlSheet.Columns("E:E").Select : myExcel.Selection.ColumnWidth = 13 xlSheet.Columns("F:F").Select : myExcel.Selection.ColumnWidth = 12 xlSheet.Columns("G:G").Select : myExcel.Selection.ColumnWidth = 20 xlSheet.Columns("H:H").Select : myExcel.Selection.ColumnWidth = 5 xlSheet.Columns("I:I").Select : myExcel.Selection.ColumnWidth = 8 xlSheet.Columns("J:K").Select : myExcel.Selection.ColumnWidth = 9.5 xlSheet.Columns("L:L").Select : myExcel.Selection.ColumnWidth = 6 xlSheet.Columns("M:M").Select : myExcel.Selection.ColumnWidth = 12 xlSheet.Columns("N:N").Select : myExcel.Selection.ColumnWidth = 20 xlSheet.Columns("O:R").Select : xlSheet.Columns("O:R").EntireColumn.AutoFit xlSheet.Columns("T:Y").Select : xlSheet.Columns("T:Y").EntireColumn.AutoFit xlSheet.Columns("AA:AH").Select : xlSheet.Columns("AA:AH").EntireColumn.AutoFit xlSheet.Rows("4:4").Select : myExcel.ActiveWindow.FreezePanes = True : myExcel.ActiveWindow.DisplayGridlines = False xlSheet.Range("A3:AH" & N1 + 5).Select() : myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With xlSheet.Rows("3:3").Select : myExcel.Selection.RowHeight = 45 With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlTop : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With : myExcel.Selection.AutoFilter xlSheet.Range("H1:I1").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge xlSheet.Range("H2:I2").Select() myExcel.Selection.Merge With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With xlSheet.Range("H1:I2").Select() myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With xlSheet.Range("A1:N3").Select() myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With xlSheet.Range("A1:N3").Select() With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorDark1 : .TintAndShade = -0.249977111117893 : .PatternTintAndShade = 0 : End With xlSheet.Range("X1:Y1").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge xlSheet.Range("X2:Y2").Select() myExcel.Selection.Merge With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With xlSheet.Range("Z1:Z2").Select() myExcel.Selection.Merge With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With xlSheet.Range("AA1:AA2").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge xlSheet.Range("AB1:AB2").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge xlSheet.Range("AC1:AC2").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge xlSheet.Range("AD1:AD2").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge xlSheet.Range("AE1:AE2").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge xlSheet.Range("O1:Z3").Select() myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .Color = 65535 : .TintAndShade = 0 : .PatternTintAndShade = 0 : End With xlSheet.Range("AA1:AE3").Select() myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .Color = 5296274 : .TintAndShade = 0 : .PatternTintAndShade = 0 : End With xlSheet.Range("AF1:AH3").Select() myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With xlSheet.Range("A1:G2").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 16 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone End With xlSheet.Range("X3").Activate() : myExcel.Selection.ColumnWidth = 8 xlSheet.Columns("Y:Y").Select : myExcel.Selection.ColumnWidth = 12 xlSheet.Range("X2:Y2").Select() : myExcel.Selection.NumberFormatLocal = "#,##0.00;[紅色]-#,##0.00" xlSheet.Range("X1:Y2").Select() myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With xlSheet.Columns("AA:AE").Select : myExcel.Selection.ColumnWidth = 10 xlSheet.Range("X1:Y1").Select() With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With xlSheet.Range("H1:I1").Select() With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With End Sub Private Sub 清單1_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 清單1_dgv.MouseUp If 清單1_dgv.SelectedCells.Count = 1 Then 已超出 = False End If If 清單1_dgv.SelectedCells.Count > 0 Then '設定滑鼠點擊DGV時候的範圍,超出範圍時有可能不是數字所以不計算 If 清單1_dgv.SelectedCells(0).ColumnIndex = 12 Or 清單1_dgv.SelectedCells(0).ColumnIndex = 8 Then If 已超出 = False Then Dim x As Double = 0 For i As Integer = 0 To 清單1_dgv.SelectedCells.Count - 1 '清單1_dgv.SelectedCells.Item(i).ColumnIndex + 8 是因為該DGV顯示項與計算像剛好差8格,使用時要注意可直接計算的不需要加數字。 x += Val(清單1_dgv.Rows(清單1_dgv.SelectedCells.Item(i).RowIndex).Cells(清單1_dgv.SelectedCells.Item(i).ColumnIndex).Value) Next i '將計算好的資料放置到指定的控件中 WINPROFIT_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(x, "#,##0.00") Else WINPROFIT_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0.00") End If Else 已超出 = True WINPROFIT_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0.00") End If End If End Sub End Class