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 Imports System.Data.SqlClient Imports System.Text.RegularExpressions Imports System.IO Public Class 車輛銷售管理 ReadOnly ds As New DataSet : ReadOnly ds1 As New DataSet : Dim 新流水1 As String : Dim 新項次 As String Dim NUM1, NUM2 As Integer : ReadOnly ds2 As New DataSet : Dim 上次的流水號 As String : Dim index As Integer Dim boo As Boolean : Dim boo1 As Boolean : Dim boo2 As Boolean : ReadOnly ds3 As New DataSet Dim xlApp As Microsoft.Office.Interop.Excel.Application Dim xlBook As Microsoft.Office.Interop.Excel.Workbook Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet Dim 位置1 As String Dim N2 As Integer : Dim N3 As Integer Private Sub 車輛銷售管理_Load(sender As Object, e As EventArgs) Handles MyBase.Load If CC(104) = False Then 車廠型態 = False Else 線路選擇.ShowDialog() : 線路選擇.BringToFront() End If ICS_ASMS_ERP_SYS.WindowState = 2 Me.MdiParent = ICS_ASMS_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True 選擇日期_dtp.CustomFormat = "yyyy/MM/dd" 選擇日期_dtp.Format = DateTimePickerFormat.Custom 選擇供應商_cb.Items.Add("") SQL_物料資料庫_供應商_下拉清單() While (dr.Read()) : 選擇供應商_cb.Items.Add(dr("公司名")) : End While : conn.Close() 利潤率.Value = 20 SQL_讀取公司名稱() If dr.Read() Then 公司名稱.Text = dr("公司名稱") End If conn.Close() If 車廠型態 = True Then 狀態 = "車輛買賣" Panel4.Visible = True Panel6.Visible = False Panel2.Visible = True Panel5.Visible = False 只顯示未付款_cb.Visible = False Else 狀態 = "保養維修" Panel4.Visible = False Panel6.Visible = True Panel2.Visible = False Panel5.Visible = True 只顯示未付款_cb.Visible = True End If SQL_車輛銷售管理_讀取列印資訊() If dr.Read() Then 註解1_tb.Text = If(Not IsDBNull(dr("列印1")), dr("列印1").ToString(), "") 註解2_tb.Text = If(Not IsDBNull(dr("列印2")), dr("列印2").ToString(), "") 註解3_tb.Text = If(Not IsDBNull(dr("列印3")), dr("列印3").ToString(), "") 註解4_tb.Text = If(Not IsDBNull(dr("列印4")), dr("列印4").ToString(), "") End If 確認新增_bt.Enabled = False : Set_清單1() : Set_清單2() End Sub Private Sub Set_清單1() 控制表_dgv.DataSource = Nothing : ds1.Clear() 控制表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 控制表_dgv.ColumnHeadersHeight = 25 控制表_dgv.AllowUserToAddRows = False 控制表_dgv.RowTemplate.Height = 30 If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If If 只顯示未付款_cb.Checked = True Then PA55 = " AND 買入進價 = 0" Else PA55 = "" End If SQL_車輛銷售管理_控制表清單() da.Fill(ds1) : 控制表_dgv.DataSource = ds1.Tables(0) : conn.Close() 控制表_dgv.Columns(5).FillWeight = 60 : 控制表_dgv.Columns(7).FillWeight = 40 If 車廠型態 = True Then 控制表_dgv.Columns(24).FillWeight = 20 Else 控制表_dgv.Columns(24).Visible = False End If Dim newFont As New System.Drawing.Font("微軟正黑體", 9) ' 創建一個新字體,Arial 12pt 控制表_dgv.RowsDefaultCellStyle.Font = newFont 控制表_dgv.Columns(1).Visible = False : 控制表_dgv.Columns(2).Visible = False 控制表_dgv.Columns(3).Visible = False : 控制表_dgv.Columns(4).Visible = False 控制表_dgv.Columns(6).Visible = False : 控制表_dgv.Columns(0).Visible = False : 控制表_dgv.Columns(8).Visible = False 控制表_dgv.Columns(9).Visible = False : 控制表_dgv.Columns(10).Visible = False : 控制表_dgv.Columns(11).Visible = False 控制表_dgv.Columns(12).Visible = False 控制表_dgv.Columns(13).Visible = False : 控制表_dgv.Columns(14).Visible = False : 控制表_dgv.Columns(15).Visible = False 控制表_dgv.Columns(16).Visible = False : 控制表_dgv.Columns(17).Visible = False : 控制表_dgv.Columns(18).Visible = False 控制表_dgv.Columns(19).Visible = False : 控制表_dgv.Columns(20).Visible = False : 控制表_dgv.Columns(21).Visible = False 控制表_dgv.Columns(22).Visible = False : 控制表_dgv.Columns(23).Visible = False 控制表_dgv.Columns(25).Visible = False : 控制表_dgv.Columns(26).Visible = False For i As Integer = 0 To 控制表_dgv.Rows.Count - 1 If Not DBNull.Value.Equals(控制表_dgv.Rows(i).Cells("買入進價").Value) Then Else 控制表_dgv.Rows(i).Cells("買入進價").Value = 0 End If If Not DBNull.Value.Equals(控制表_dgv.Rows(i).Cells("賣出售價").Value) Then Else 控制表_dgv.Rows(i).Cells("賣出售價").Value = 0 End If If Not DBNull.Value.Equals(控制表_dgv.Rows(i).Cells("買入總成本").Value) Then Else 控制表_dgv.Rows(i).Cells("買入總成本").Value = 0 End If Next End Sub Private Sub Set_清單2() 物料_dgv.DataSource = Nothing : ds.Clear() 物料_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 物料_dgv.ColumnHeadersHeight = 25 物料_dgv.AllowUserToAddRows = False 物料_dgv.RowTemplate.Height = 30 物料_dgv.DefaultCellStyle.Font = SystemFonts.DefaultFont If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If SQL_車輛銷售管理_物料清單() da.Fill(ds) : 物料_dgv.DataSource = ds.Tables(0) : conn.Close() Dim newFont As New System.Drawing.Font("微軟正黑體", 9) ' 創建一個新字體,Arial 12pt 物料_dgv.RowsDefaultCellStyle.Font = newFont 物料_dgv.Columns(1).FillWeight = 55 : 物料_dgv.Columns(3).FillWeight = 30 物料_dgv.Columns(0).Visible = False : 物料_dgv.Columns(2).FillWeight = 15 : 物料_dgv.Columns(4).Visible = False If 顯示成本_cb.Checked = True Then 物料_dgv.Columns(5).FillWeight = 30 物料_dgv.Columns(5).DefaultCellStyle.Format = "#,##0.##" 物料_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 物料_dgv.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter Else 物料_dgv.Columns(5).Visible = False End If End Sub Private Sub Set_清單3() If 車廠型態 = True Then 明細表_dgv.DataSource = Nothing : ds2.Clear() 明細表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 明細表_dgv.ColumnHeadersHeight = 25 明細表_dgv.AllowUserToAddRows = False 明細表_dgv.RowTemplate.Height = 35 明細表_dgv.EditMode = DataGridViewEditMode.EditOnEnter SQL_車輛銷售管理_查詢明細表() : da.Fill(ds2) : 明細表_dgv.DataSource = ds2.Tables(0) : conn.Close() For Each row As DataGridViewRow In 明細表1_dgv.Rows row.Height = 30 ' 將每一列的高度設為 40 像素 Next Dim newFont As New System.Drawing.Font("微軟正黑體", 9) ' 創建一個新字體,Arial 12pt 明細表1_dgv.RowsDefaultCellStyle.Font = newFont 明細表_dgv.Columns("總售價").ReadOnly = True : 明細表_dgv.Columns("項次").ReadOnly = True : 明細表_dgv.Columns("總成本").ReadOnly = True 明細表_dgv.Columns("利潤").ReadOnly = True : 明細表_dgv.Columns("已儲存").ReadOnly = True 明細表_dgv.Columns(0).Visible = False : 明細表_dgv.Columns(1).FillWeight = 60 : 明細表_dgv.Columns(2).FillWeight = 400 : 明細表_dgv.Columns(3).FillWeight = 60 明細表_dgv.Columns(5).FillWeight = 100 : 明細表_dgv.Columns(7).Visible = 100 明細表_dgv.Columns(9).Visible = 300 : 明細表_dgv.Columns(10).Visible = False : 明細表_dgv.Columns(11).Visible = False 明細表_dgv.Columns(12).FillWeight = 60 : 明細表_dgv.Columns(13).Visible = 100 If 隱藏成本_cb.Checked = True Then 明細表_dgv.Columns(4).Visible = False 明細表_dgv.Columns(6).Visible = False 明細表_dgv.Columns(8).Visible = False Else 明細表_dgv.Columns(4).FillWeight = 100 : 明細表_dgv.Columns(6).FillWeight = 100 : 明細表_dgv.Columns(8).Visible = 100 明細表_dgv.Columns(6).DefaultCellStyle.Format = "#,##0.##" 明細表_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.##" 明細表_dgv.Columns(8).DefaultCellStyle.Format = "#,##0.##" 明細表_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight 明細表_dgv.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 明細表_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight 明細表_dgv.Columns(6).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 明細表_dgv.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight 明細表_dgv.Columns(8).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight End If 明細表_dgv.Columns(5).DefaultCellStyle.Format = "#,##0.##" : 明細表_dgv.Columns(7).DefaultCellStyle.Format = "#,##0.##" 明細表_dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 明細表_dgv.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細表_dgv.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 明細表_dgv.Columns(3).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細表_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight 明細表_dgv.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 明細表_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight 明細表_dgv.Columns(7).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight For i As Integer = 0 To 明細表_dgv.Rows.Count - 1 If 明細表_dgv.Rows(i).Cells("成本").Value Is Nothing OrElse IsDBNull(明細表_dgv.Rows(i).Cells("成本").Value) Then ' 如果成本為 NULL,設置為 0 明細表_dgv.Rows(i).Cells("成本").Value = 0 End If Next Dim NUM2, NUM3 As Integer For i As Integer = 0 To 明細表_dgv.Rows.Count - 1 明細表_dgv.Rows(i).Cells("總售價").Value = 明細表_dgv.Rows(i).Cells("數量").Value * 明細表_dgv.Rows(i).Cells("售價").Value 明細表_dgv.Rows(i).Cells("總成本").Value = 明細表_dgv.Rows(i).Cells("數量").Value * 明細表_dgv.Rows(i).Cells("成本").Value 明細表_dgv.Rows(i).Cells("利潤").Value = (明細表_dgv.Rows(i).Cells("數量").Value * 明細表_dgv.Rows(i).Cells("售價").Value) - (明細表_dgv.Rows(i).Cells("數量").Value * 明細表_dgv.Rows(i).Cells("成本").Value) NUM2 += 明細表_dgv.Rows(i).Cells("總售價").Value NUM3 += 明細表_dgv.Rows(i).Cells("總成本").Value Next 支出合計_tb.Text = Strings.Format(Val(NUM2), "#,##0") 總成本_tb.Text = Strings.Format(Val(NUM3), "#,##0") Else 明細表1_dgv.DataSource = Nothing : ds2.Clear() 明細表1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 明細表1_dgv.ColumnHeadersHeight = 25 明細表1_dgv.AllowUserToAddRows = False 明細表1_dgv.RowTemplate.Height = 35 明細表1_dgv.EditMode = DataGridViewEditMode.EditOnEnter SQL_車輛銷售管理_查詢明細表() : da.Fill(ds2) : 明細表1_dgv.DataSource = ds2.Tables(0) : conn.Close() For Each row As DataGridViewRow In 明細表1_dgv.Rows row.Height = 30 ' 將每一列的高度設為 40 像素 Next Dim newFont As New System.Drawing.Font("微軟正黑體", 9) ' 創建一個新字體,Arial 12pt 明細表1_dgv.RowsDefaultCellStyle.Font = newFont 明細表1_dgv.Columns("總售價").ReadOnly = True : 明細表1_dgv.Columns("項次").ReadOnly = True : 明細表1_dgv.Columns("總成本").ReadOnly = True 明細表1_dgv.Columns("利潤").ReadOnly = True : 明細表1_dgv.Columns("已儲存").ReadOnly = True 明細表1_dgv.Columns(0).Visible = False : 明細表1_dgv.Columns(1).FillWeight = 60 : 明細表1_dgv.Columns(2).FillWeight = 400 : 明細表1_dgv.Columns(3).FillWeight = 60 明細表1_dgv.Columns(5).FillWeight = 100 : 明細表1_dgv.Columns(7).Visible = 100 明細表1_dgv.Columns(9).Visible = 300 : 明細表1_dgv.Columns(10).Visible = False : 明細表1_dgv.Columns(11).Visible = False 明細表1_dgv.Columns(12).FillWeight = 60 : 明細表1_dgv.Columns(13).Visible = 100 If 隱藏成本_cb.Checked = True Then 明細表1_dgv.Columns(4).FillWeight = 100 : 明細表1_dgv.Columns(6).FillWeight = 100 : 明細表1_dgv.Columns(8).Visible = 100 明細表1_dgv.Columns(6).DefaultCellStyle.Format = "#,##0.##" 明細表1_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.##" 明細表1_dgv.Columns(8).DefaultCellStyle.Format = "#,##0.##" 明細表1_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight 明細表1_dgv.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 明細表1_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight 明細表1_dgv.Columns(6).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 明細表1_dgv.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight 明細表1_dgv.Columns(8).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight Else 明細表1_dgv.Columns(4).Visible = False 明細表1_dgv.Columns(6).Visible = False 明細表1_dgv.Columns(8).Visible = False End If 明細表1_dgv.Columns(7).DefaultCellStyle.Format = "#,##0.##" : 明細表1_dgv.Columns(5).DefaultCellStyle.Format = "#,##0.##" 明細表1_dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 明細表1_dgv.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細表1_dgv.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 明細表1_dgv.Columns(3).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細表1_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight 明細表1_dgv.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 明細表1_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight 明細表1_dgv.Columns(7).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight Dim NUM1 As Integer = 0 Dim NUM2 As Integer = 0 For i As Integer = 0 To 明細表1_dgv.Rows.Count - 1 明細表1_dgv.Rows(i).Cells("總售價").Value = 明細表1_dgv.Rows(i).Cells("數量").Value * 明細表1_dgv.Rows(i).Cells("售價").Value 明細表1_dgv.Rows(i).Cells("總成本").Value = 明細表1_dgv.Rows(i).Cells("數量").Value * 明細表1_dgv.Rows(i).Cells("成本").Value 明細表1_dgv.Rows(i).Cells("利潤").Value = (明細表1_dgv.Rows(i).Cells("數量").Value * 明細表1_dgv.Rows(i).Cells("售價").Value) - (明細表1_dgv.Rows(i).Cells("數量").Value * 明細表1_dgv.Rows(i).Cells("成本").Value) If 明細表1_dgv.Rows(i).Cells("狀態").Value <> "承修項目" Then NUM1 += 明細表1_dgv.Rows(i).Cells("總售價").Value Else NUM2 += 明細表1_dgv.Rows(i).Cells("總售價").Value End If Next 零件_tb.Text = Strings.Format(Val(NUM1), "#,##0") 工資_tb.Text = Strings.Format(Val(NUM2), "#,##0") 總計_tb.Text = Strings.Format(Val(NUM1 + NUM2), "#,##0") If 是否收稅_cb.Checked = True Then 稅金_tb.Text = Strings.Format(Val((NUM1 + NUM2) * 0.05), "#,##0") 應收合計_tb.Text = Strings.Format(Val(NUM1 + NUM2 + ((NUM1 + NUM2) * 0.05)), "#,##0") 總計_tb.Text = Strings.Format(Val(NUM1 + NUM2 + ((NUM1 + NUM2) * 0.05)), "#,##0") Else 稅金_tb.Text = "0" 應收合計_tb.Text = Strings.Format(Val(NUM1 + NUM2), "#,##0") End If End If End Sub Private Sub 是否收稅_cb_CheckedChanged(sender As Object, e As EventArgs) Handles 是否收稅_cb.CheckedChanged Dim NUM1, NUM2 As Integer If 總計_tb.Text <> "" Then NUM1 = 總計_tb.Text NUM2 = NUM1 * 0.05 If 是否收稅_cb.Checked = True Then 稅金_tb.Text = Strings.Format(Val(NUM2), "#,##0") 應收合計_tb.Text = Strings.Format(Val(NUM1 + NUM2), "#,##0") 總計_tb.Text = Strings.Format(Val(NUM1 + NUM2), "#,##0") Else 稅金_tb.Text = "0" 應收合計_tb.Text = Strings.Format(Val(NUM1), "#,##0") End If End If End Sub Private Sub 新增_bt_Click(sender As Object, e As EventArgs) Handles 新增_bt.Click Set_日期格式轉換() : Dim NUM1 As Integer 新增_bt.Enabled = False : 確認新增_bt.Enabled = True : 修改_bt.Enabled = False 入廠日期_dtp.Value = DTP4 For i As Integer = 1 To 999 NUM1 = 0 + i If NUM1 < 10 Then : 單號_tb.Text = "CR-" & DTP1 & "-00" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 單號_tb.Text = "CR-" & DTP1 & "-0" & NUM1 ElseIf NUM1 > 99 Then : 單號_tb.Text = "CR-" & DTP1 & "-" & NUM1 : End If PA = 單號_tb.Text : SQL_車輛銷售管理_單號查詢() If dr.Read() Then : Else : i = 999 : conn.Close() : End If : conn.Close() Next If 車廠型態 = True Then CHB("請輸入車牌號碼") : 買入牌照號碼_tb.Text = 訊息回應 CHB("請輸入姓名") : 買入車主名稱_tb.Text = 訊息回應 If (買入牌照號碼_tb.Text = "" And 買入車主名稱_tb.Text = "") Then 單號_tb.Text = "" : 買入牌照號碼_tb.Text = "" : 買入車主名稱_tb.Text = "" 新增_bt.Enabled = True : 確認新增_bt.Enabled = False : 修改_bt.Enabled = True MsgBox("未輸入資料!!") Return Else SQL_車輛銷售管理_重複查詢() If dr.Read() Then conn.Close() 單號_tb.Text = "" : 買入牌照號碼_tb.Text = "" : 買入車主名稱_tb.Text = "" 新增_bt.Enabled = True : 確認新增_bt.Enabled = False : 修改_bt.Enabled = True MsgBox("重複資料!!") Return End If End If conn.Close() 進價_tb.Text = "0" : 售價_tb.Text = "0" : 總成本_tb.Text = "0" : 支出合計_tb.Text = "0" 廠牌_tb.Text = "" : 年分_tb.Text = "" : 引擎_tb.Text = "" : 總利潤_tb.Text = "0" 買入顏色_tb.Text = "" 買入車主電話_tb.Text = "" : 買入車主地址_tb.Text = "" : 買入經手人_tb.Text = "" 賣出牌照號碼_tb.Text = "" : 賣出顏色_tb.Text = "" : 賣出車主名稱_tb.Text = "" 賣出車主電話_tb.Text = "" : 賣出車主地址_tb.Text = "" : 賣出經手人_tb.Text = "" : 備註_tb.Text = "" 進廠里程_tb.Text = "" : 出廠里程_tb.Text = "" 檢測日期_dtp.Format = DateTimePickerFormat.Custom : 檢測日期_dtp.CustomFormat = " " 買入日期_dtp.Format = DateTimePickerFormat.Custom : 買入日期_dtp.CustomFormat = " " 賣出日期_dtp.Format = DateTimePickerFormat.Custom : 賣出日期_dtp.CustomFormat = " " 料號_tb.Text = "" : 品名.Text = "" : 成本.Text = "" : 利潤率.Value = 20 : 已交車_cb.Checked = False : 狀態_tb.Text = "" Else 出險公司_tb.Text = "" : 車主名稱_tb.Text = "" : 車號_tb.Text = "" : 地址_tb.Text = "" : 電話_tb.Text = "" 車型_tb.Text = "" : 保養預示_tb.Text = "" : 里程_tb.Text = "" : 廠牌_tb.Text = "" : 廠牌_tb.Text = "" : 引擎號碼1_tb.Text = "" 應驗車日_dtp.Format = DateTimePickerFormat.Custom : 應驗車日_dtp.CustomFormat = " " : 輪胎尺寸_tb.Text = "" : 年_tb.Text = "" 入廠日期_dtp.CustomFormat = "yyyy/MM/dd" : 備註1_tb.Text = "" 入廠日期_dtp.Format = DateTimePickerFormat.Custom 工資_tb.Text = "0" : 零件_tb.Text = "0" : 總計_tb.Text = "0" : 稅金_tb.Text = "0" 信用卡_tb.Text = "0" : 應收合計_tb.Text = "0" : 賒帳_tb.Text = "0" : 支票_tb.Text = "0" 現金_tb.Text = "0" End If SQL_車輛銷售管理_控制表新增() : Set_清單3() End Sub Private Sub Set_日期格式轉換() Dim selectedDate As DateTime = 選擇日期_dtp.Value DTP4 = Strings.Format(selectedDate, "yyyy/MM/dd") : DTP1 = Strings.Format(selectedDate, "yyyyMMdd") End Sub Private Sub 查詢_bt_Click(sender As Object, e As EventArgs) Handles 查詢_bt.Click CHB("請輸入要查詢的單號資料。") : PA56 = 訊息回應 : Set_清單1() : PA56 = "" End Sub Private Sub 查詢物_bt_Click(sender As Object, e As EventArgs) Handles 查詢物_bt.Click CHB("請輸入要查詢的關鍵字。") : PA56 = 訊息回應 : Set_清單2() : PA56 = "" End Sub Private Sub 確認新增_bt_Click(sender As Object, e As EventArgs) Handles 確認新增_bt.Click If 車廠型態 = True Then If 買入車主名稱_tb.Text = "" Or 買入牌照號碼_tb.Text = "" Then MsgBox("資料未輸入完成!!") Else 新增_bt.Enabled = True : 確認新增_bt.Enabled = False : 修改_bt.Enabled = True If 買入車主名稱_tb.Text <> "" And 買入牌照號碼_tb.Text <> "" Then SQL_車輛銷售管理_查詢客戶資料() If dr.Read() Then SQL_車輛銷售管理_修改客戶資料() Else SQL_客戶資料表_最後一筆資料() If dr.Read() Then : 供應商編號_tb.Text = dr("流水號").ToString : Else : 供應商編號_tb.Text = "CL00000" : End If conn.Close() Dim NUM1 As Integer NUM1 = Double.Parse(Strings.Right(供應商編號_tb.Text, 5)) + 1 If NUM1 < 10 Then : 供應商編號_tb.Text = "CL" & "0000" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 供應商編號_tb.Text = "CL" & "000" & NUM1 ElseIf NUM1 > 99 And NUM1 < 1000 Then : 供應商編號_tb.Text = "CL" & "00" & NUM1 ElseIf NUM1 > 999 And NUM1 < 10000 Then : 供應商編號_tb.Text = "CL" & "0" & NUM1 ElseIf NUM1 > 9999 And NUM1 < 100000 Then : 供應商編號_tb.Text = "CL" & NUM1 : End If SQL_車輛銷售管理_新增客戶資料() : conn.Close() End If End If If 賣出車主名稱_tb.Text <> "" And 賣出牌照號碼_tb.Text <> "" Then SQL_車輛銷售管理_查詢客戶資料1() If dr.Read() Then SQL_車輛銷售管理_修改客戶資料1() Else SQL_客戶資料表_最後一筆資料() If dr.Read() Then : 供應商編號_tb.Text = dr("流水號").ToString : Else : 供應商編號_tb.Text = "CL00000" : End If conn.Close() Dim NUM1 As Integer NUM1 = Double.Parse(Strings.Right(供應商編號_tb.Text, 5)) + 1 If NUM1 < 10 Then : 供應商編號_tb.Text = "CL" & "0000" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 供應商編號_tb.Text = "CL" & "000" & NUM1 ElseIf NUM1 > 99 And NUM1 < 1000 Then : 供應商編號_tb.Text = "CL" & "00" & NUM1 ElseIf NUM1 > 999 And NUM1 < 10000 Then : 供應商編號_tb.Text = "CL" & "0" & NUM1 ElseIf NUM1 > 9999 And NUM1 < 100000 Then : 供應商編號_tb.Text = "CL" & NUM1 : End If SQL_車輛銷售管理_新增客戶資料1() : conn.Close() End If End If SQL_車輛銷售管理_控制表修改() : conn.Close() : MsgBox("儲存成功!!") : Set_清單1() End If If 登入人級別 <> "00" Then If 已交車_cb.Checked = True Then 修改_bt.Enabled = False : 刪除_bt.Enabled = False : 查詢1_bt.Enabled = False : 查詢2_bt.Enabled = False 收支單中新增一筆資料_bt.Enabled = False : 收支單中新增一筆空白資料_bt.Enabled = False : 刪除選中的一筆資料_bt.Enabled = False 申請_bt.Enabled = False Else 修改_bt.Enabled = True : 刪除_bt.Enabled = True : 查詢1_bt.Enabled = True : 查詢2_bt.Enabled = True 收支單中新增一筆資料_bt.Enabled = True : 收支單中新增一筆空白資料_bt.Enabled = True : 刪除選中的一筆資料_bt.Enabled = True 申請_bt.Enabled = True End If End If Else 新增_bt.Enabled = True : 確認新增_bt.Enabled = False : 修改_bt.Enabled = True If 車主名稱_tb.Text <> "" And 車號_tb.Text <> "" Then SQL_車輛銷售管理_查詢客戶資料() If dr.Read() Then SQL_車輛銷售管理_修改客戶資料() Else SQL_客戶資料表_最後一筆資料() If dr.Read() Then : 供應商編號_tb.Text = dr("流水號").ToString : Else : 供應商編號_tb.Text = "CL00000" : End If conn.Close() Dim NUM1 As Integer NUM1 = Double.Parse(Strings.Right(供應商編號_tb.Text, 5)) + 1 If NUM1 < 10 Then : 供應商編號_tb.Text = "CL" & "0000" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 供應商編號_tb.Text = "CL" & "000" & NUM1 ElseIf NUM1 > 99 And NUM1 < 1000 Then : 供應商編號_tb.Text = "CL" & "00" & NUM1 ElseIf NUM1 > 999 And NUM1 < 10000 Then : 供應商編號_tb.Text = "CL" & "0" & NUM1 ElseIf NUM1 > 9999 And NUM1 < 100000 Then : 供應商編號_tb.Text = "CL" & NUM1 : End If SQL_車輛銷售管理_新增客戶資料() : conn.Close() End If End If SQL_車輛銷售管理_控制表修改() : conn.Close() : MsgBox("儲存成功!!") : Set_清單1() End If End Sub Private Sub 控制表_dgv_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles 控制表_dgv.CellClick boo1 = True If e.RowIndex = -1 Then : Else If 車廠型態 = True Then 總利潤_tb.Text = "0" 單號_tb.Text = 控制表_dgv(0, e.RowIndex).Value.ToString : 廠牌_tb.Text = 控制表_dgv(1, e.RowIndex).Value.ToString 年分_tb.Text = 控制表_dgv(2, e.RowIndex).Value.ToString : 引擎_tb.Text = 控制表_dgv(3, e.RowIndex).Value.ToString 買入牌照號碼_tb.Text = 控制表_dgv(5, e.RowIndex).Value.ToString 買入顏色_tb.Text = 控制表_dgv(6, e.RowIndex).Value.ToString : 買入車主名稱_tb.Text = 控制表_dgv(7, e.RowIndex).Value.ToString 買入車主電話_tb.Text = 控制表_dgv(8, e.RowIndex).Value.ToString : 買入車主地址_tb.Text = 控制表_dgv(9, e.RowIndex).Value.ToString 進價_tb.Text = Strings.Format(Val(控制表_dgv(10, e.RowIndex).Value), "#,##0") : 買入經手人_tb.Text = 控制表_dgv(11, e.RowIndex).Value.ToString 賣出牌照號碼_tb.Text = 控制表_dgv(15, e.RowIndex).Value.ToString 賣出顏色_tb.Text = 控制表_dgv(16, e.RowIndex).Value.ToString : 賣出車主名稱_tb.Text = 控制表_dgv(17, e.RowIndex).Value.ToString 賣出車主電話_tb.Text = 控制表_dgv(18, e.RowIndex).Value.ToString : 賣出車主地址_tb.Text = 控制表_dgv(19, e.RowIndex).Value.ToString 利潤率.Value = Strings.Format(Val(控制表_dgv(13, e.RowIndex).Value)) : 賣出經手人_tb.Text = 控制表_dgv(21, e.RowIndex).Value.ToString 備註_tb.Text = 控制表_dgv(22, e.RowIndex).Value.ToString : 售價_tb.Text = Strings.Format(Val(控制表_dgv(20, e.RowIndex).Value), "#,##0") 進廠里程_tb.Text = 控制表_dgv(25, e.RowIndex).Value.ToString : 出廠里程_tb.Text = 控制表_dgv(26, e.RowIndex).Value.ToString If 控制表_dgv(24, e.RowIndex).Value IsNot DBNull.Value Then 已交車_cb.Checked = 控制表_dgv(24, e.RowIndex).Value Else 已交車_cb.Checked = False End If Dim value As String = 控制表_dgv(14, e.RowIndex).Value.ToString Dim value1 As String = 控制表_dgv(23, e.RowIndex).Value.ToString Dim value2 As String = 控制表_dgv(4, e.RowIndex).Value.ToString If value.Length < 5 Then 賣出日期_dtp.Format = DateTimePickerFormat.Custom : 賣出日期_dtp.CustomFormat = " " Else 賣出日期_dtp.Text = 控制表_dgv(14, e.RowIndex).Value.ToString 賣出日期_dtp.CustomFormat = "yyyy/MM/dd" 賣出日期_dtp.Format = DateTimePickerFormat.Custom End If If value1.Length < 5 Then 檢測日期_dtp.Format = DateTimePickerFormat.Custom : 檢測日期_dtp.CustomFormat = " " Else 檢測日期_dtp.Text = 控制表_dgv(23, e.RowIndex).Value.ToString 檢測日期_dtp.CustomFormat = "yyyy/MM/dd" 檢測日期_dtp.Format = DateTimePickerFormat.Custom End If If value2.Length < 5 Then 買入日期_dtp.Format = DateTimePickerFormat.Custom : 買入日期_dtp.CustomFormat = " " Else 買入日期_dtp.Text = 控制表_dgv(4, e.RowIndex).Value.ToString 買入日期_dtp.CustomFormat = "yyyy/MM/dd" 買入日期_dtp.Format = DateTimePickerFormat.Custom End If Else 信用卡_tb.Text = "0" : 現金_tb.Text = "0" : 賒帳_tb.Text = "0" : 支票_tb.Text = "0" 單號_tb.Text = 控制表_dgv(0, e.RowIndex).Value.ToString 車號_tb.Text = 控制表_dgv(5, e.RowIndex).Value.ToString 車主名稱_tb.Text = 控制表_dgv(7, e.RowIndex).Value.ToString 電話_tb.Text = 控制表_dgv(8, e.RowIndex).Value.ToString : 地址_tb.Text = 控制表_dgv(9, e.RowIndex).Value.ToString 里程_tb.Text = 控制表_dgv(25, e.RowIndex).Value.ToString : 保養預示_tb.Text = 控制表_dgv(26, e.RowIndex).Value.ToString 引擎號碼1_tb.Text = 控制表_dgv(3, e.RowIndex).Value.ToString 賒帳_tb.Text = 控制表_dgv(19, e.RowIndex).Value.ToString 出險公司_tb.Text = 控制表_dgv(11, e.RowIndex).Value.ToString : 車型_tb.Text = 控制表_dgv(1, e.RowIndex).Value.ToString 年_tb.Text = 控制表_dgv(2, e.RowIndex).Value.ToString : 輪胎尺寸_tb.Text = 控制表_dgv(6, e.RowIndex).Value.ToString SQL_車輛銷售管理_車號備註查詢() If dr.Read() Then : 備註1_tb.Text = dr("備註").ToString : End If conn.Close() If (控制表_dgv(20, e.RowIndex).Value) Is Nothing OrElse IsDBNull(控制表_dgv(20, e.RowIndex).Value) Then ' 如果成本為 NULL,設置為 0 現金_tb.Text = "0" Else 現金_tb.Text = Strings.Format(Val(控制表_dgv(20, e.RowIndex).Value), "#,##0") End If If (控制表_dgv(12, e.RowIndex).Value) Is Nothing OrElse IsDBNull(控制表_dgv(12, e.RowIndex).Value) Then ' 如果成本為 NULL,設置為 0 支票_tb.Text = "0" Else 支票_tb.Text = Strings.Format(Val(控制表_dgv(12, e.RowIndex).Value), "#,##0") End If If (控制表_dgv(13, e.RowIndex).Value) Is Nothing OrElse IsDBNull(控制表_dgv(13, e.RowIndex).Value) Then ' 如果成本為 NULL,設置為 0 信用卡_tb.Text = "0" Else 信用卡_tb.Text = Strings.Format(Val(控制表_dgv(13, e.RowIndex).Value), "#,##0") End If Dim 現金, 支票, 信用卡 As Double If Double.TryParse(現金_tb.Text, 現金) AndAlso Double.TryParse(支票_tb.Text, 支票) AndAlso Double.TryParse(信用卡_tb.Text, 信用卡) Then 全部_tb.Text = (現金 + 支票 + 信用卡).ToString() End If If 控制表_dgv(24, e.RowIndex).Value IsNot DBNull.Value Then 是否收稅_cb.Checked = 控制表_dgv(24, e.RowIndex).Value Else 是否收稅_cb.Checked = False End If Dim value As String = 控制表_dgv(14, e.RowIndex).Value.ToString Dim value1 As String = 控制表_dgv(23, e.RowIndex).Value.ToString Dim value2 As String = 控制表_dgv(4, e.RowIndex).Value.ToString If value1.Length < 5 Then 應驗車日_dtp.Format = DateTimePickerFormat.Custom : 應驗車日_dtp.CustomFormat = " " Else 應驗車日_dtp.Text = 控制表_dgv(23, e.RowIndex).Value.ToString 應驗車日_dtp.CustomFormat = "yyyy/MM/dd" 應驗車日_dtp.Format = DateTimePickerFormat.Custom End If If value2.Length < 5 Then 入廠日期_dtp.Format = DateTimePickerFormat.Custom : 入廠日期_dtp.CustomFormat = " " Else 入廠日期_dtp.Text = 控制表_dgv(4, e.RowIndex).Value.ToString 入廠日期_dtp.CustomFormat = "yyyy/MM/dd" 入廠日期_dtp.Format = DateTimePickerFormat.Custom End If End If 流水號_tb.Text = "" : Set_清單3() End If If 車廠型態 = True Then If 登入人級別 <> "00" Then If 已交車_cb.Checked = True Then 修改_bt.Enabled = False : 刪除_bt.Enabled = False : 查詢1_bt.Enabled = False : 查詢2_bt.Enabled = False 收支單中新增一筆資料_bt.Enabled = False : 收支單中新增一筆空白資料_bt.Enabled = False : 刪除選中的一筆資料_bt.Enabled = False 申請_bt.Enabled = False Else 修改_bt.Enabled = True : 刪除_bt.Enabled = True : 查詢1_bt.Enabled = True : 查詢2_bt.Enabled = True 收支單中新增一筆資料_bt.Enabled = True : 收支單中新增一筆空白資料_bt.Enabled = True : 刪除選中的一筆資料_bt.Enabled = True 申請_bt.Enabled = True End If End If End If boo1 = False End Sub Private Sub 刪除_bt_Click(sender As Object, e As EventArgs) Handles 刪除_bt.Click 新增_bt.Enabled = True : 確認新增_bt.Enabled = False SQL_車輛銷售管理_控制表刪除() : SQL_車輛銷售管理_明細表刪除() : SQL_車輛銷售管理_倉儲明細表刪除() : conn.Close() : MsgBox("刪除成功") : Set_清單1() : Set_清單3() 單號_tb.Text = "" : 廠牌_tb.Text = "" 年分_tb.Text = "" : 引擎_tb.Text = "" 買入牌照號碼_tb.Text = "" 買入顏色_tb.Text = "" : 買入車主名稱_tb.Text = "" 買入車主電話_tb.Text = "" : 買入車主地址_tb.Text = "" 進價_tb.Text = "" : 買入經手人_tb.Text = "" 支出合計_tb.Text = "" : 總成本_tb.Text = "" 賣出牌照號碼_tb.Text = "" 賣出顏色_tb.Text = "" : 賣出車主名稱_tb.Text = "" 賣出車主電話_tb.Text = "" : 賣出車主地址_tb.Text = "" 售價_tb.Text = "" : 賣出經手人_tb.Text = "" 備註_tb.Text = "" : 引擎號碼1_tb.Text = "" 進廠里程_tb.Text = "" : 出廠里程_tb.Text = "" 檢測日期_dtp.CustomFormat = "yyyy/MM/dd" 檢測日期_dtp.Format = DateTimePickerFormat.Custom 檢測日期_dtp.Value = Today 買入日期_dtp.CustomFormat = "yyyy/MM/dd" 買入日期_dtp.Format = DateTimePickerFormat.Custom 買入日期_dtp.Value = Today 賣出日期_dtp.CustomFormat = "yyyy/MM/dd" 賣出日期_dtp.Format = DateTimePickerFormat.Custom 賣出日期_dtp.Value = Today 料號_tb.Text = "" : 品名.Text = "" : 成本.Text = "" : 總利潤_tb.Text = "" : 已交車_cb.Checked = False : 狀態_tb.Text = "" 出險公司_tb.Text = "" : 車主名稱_tb.Text = "" : 車號_tb.Text = "" : 地址_tb.Text = "" : 電話_tb.Text = "" 車型_tb.Text = "" : 保養預示_tb.Text = "" : 里程_tb.Text = "" : 廠牌_tb.Text = "" : 廠牌_tb.Text = "" 應驗車日_dtp.Format = DateTimePickerFormat.Custom : 應驗車日_dtp.CustomFormat = " " 工資_tb.Text = "" : 零件_tb.Text = "" : 總計_tb.Text = "" : 稅金_tb.Text = "" 信用卡_tb.Text = "" : 應收合計_tb.Text = "" : 賒帳_tb.Text = "" : 支票_tb.Text = "" 現金_tb.Text = "" : 年_tb.Text = "" : 輪胎尺寸_tb.Text = "" : 備註1_tb.Text = "" End Sub Private Sub 檢測日期_dtp_ValueChanged(sender As Object, e As EventArgs) Handles 檢測日期_dtp.MouseDown 檢測日期_dtp.CustomFormat = "yyyy/MM/dd" 檢測日期_dtp.Format = DateTimePickerFormat.Custom End Sub Private Sub 買入日期_dtp_ValueChanged(sender As Object, e As EventArgs) Handles 買入日期_dtp.MouseDown 買入日期_dtp.CustomFormat = "yyyy/MM/dd" 買入日期_dtp.Format = DateTimePickerFormat.Custom End Sub Private Sub 賣出日期_dtp_ValueChanged(sender As Object, e As EventArgs) Handles 賣出日期_dtp.MouseDown 賣出日期_dtp.CustomFormat = "yyyy/MM/dd" 賣出日期_dtp.Format = DateTimePickerFormat.Custom End Sub Private Sub 入廠日期_dtp_ValueChanged(sender As Object, e As EventArgs) Handles 入廠日期_dtp.MouseDown 入廠日期_dtp.CustomFormat = "yyyy/MM/dd" 入廠日期_dtp.Format = DateTimePickerFormat.Custom End Sub Private Sub 應驗車日_dtp_ValueChanged(sender As Object, e As EventArgs) Handles 應驗車日_dtp.MouseDown 應驗車日_dtp.CustomFormat = "yyyy/MM/dd" 應驗車日_dtp.Format = DateTimePickerFormat.Custom End Sub Private Sub 利潤率_ValueChanged(sender As Object, e As EventArgs) Handles 利潤率.ValueChanged If 售價_tb.Text <> "" And 進價_tb.Text <> "" And 總成本_tb.Text <> "" Then Dim d1, d2, d4 As Integer Dim d3 As Double Dim s1 As String = 進價_tb.Text Dim s2 As String = 總成本_tb.Text Dim s4 As String = 售價_tb.Text s1 = s1.Replace(",", "") s2 = s2.Replace(",", "") s4 = s4.Replace(",", "") d1 = Integer.Parse(s1) d2 = Integer.Parse(s2) d4 = Integer.Parse(s4) d3 = 利潤率.Value 總利潤_tb.Text = ((d1 + d2) * d3 / 100).ToString("#,##0") If boo1 = True Then 總利潤_tb.Text = (d4 - (d1 + d2)).ToString("#,##0") Else 售價_tb.Text = (d1 + d2 + ((d1 + d2) * d3 / 100)).ToString("#,##0") End If End If End Sub Private Sub 進價_tb_TextChanged(sender As Object, e As EventArgs) Handles 進價_tb.TextChanged If 售價_tb.Text <> "" And 進價_tb.Text <> "" And 總成本_tb.Text <> "" Then Dim d1, d2, d4 As Integer Dim d3 As Double Dim s1 As String = 進價_tb.Text Dim s2 As String = 總成本_tb.Text Dim s4 As String = 售價_tb.Text s1 = s1.Replace(",", "") s2 = s2.Replace(",", "") s4 = s4.Replace(",", "") d1 = Integer.Parse(s1) d2 = Integer.Parse(s2) d4 = Integer.Parse(s4) d3 = 利潤率.Value If boo1 = True Then 總利潤_tb.Text = (d4 - (d1 + d2)).ToString("#,##0") Else 總利潤_tb.Text = ((d1 + d2) * d3 / 100).ToString("#,##0") 售價_tb.Text = (d1 + d2 + ((d1 + d2) * d3 / 100)).ToString("#,##0") End If End If End Sub Private Sub 售價_tb_TextChanged(sender As Object, e As EventArgs) Handles 售價_tb.TextChanged If 售價_tb.Text <> "" And 進價_tb.Text <> "" And 總成本_tb.Text <> "" Then Dim d, d1, d2, d3 As Integer Dim s As String = 售價_tb.Text Dim s1 As String = 進價_tb.Text Dim s2 As String = 總成本_tb.Text s = s.Replace(",", "") s1 = s1.Replace(",", "") s2 = s2.Replace(",", "") d = Integer.Parse(s) d1 = Integer.Parse(s1) d2 = Integer.Parse(s2) d3 = d - (d1 + d2) If boo1 = True Then Else 總利潤_tb.Text = d3.ToString("#,##0") End If End If End Sub Private Sub 售價_tb_Leave(sender As Object, e As EventArgs) Handles 售價_tb.Leave boo1 = True If Not String.IsNullOrEmpty(售價_tb.Text) AndAlso IsNumeric(售價_tb.Text) Then ' 將文本轉換為數字 Dim number As Double = CDbl(售價_tb.Text) ' 格式化數字為千分位 售價_tb.Text = number.ToString("#,##0") End If Dim d, d1, d2, d3 As Integer Dim s As String = 售價_tb.Text Dim s1 As String = 進價_tb.Text Dim s2 As String = 總成本_tb.Text s = s.Replace(",", "") s1 = s1.Replace(",", "") s2 = s2.Replace(",", "") d = Integer.Parse(s) d1 = Integer.Parse(s1) d2 = Integer.Parse(s2) d3 = d - (d1 + d2) Dim ratio As Double = (d3 / (d1 + d2)) * 100 Dim roundedRatio As Double = Math.Round(ratio, 1) If roundedRatio < 0 Then 利潤率.Value = 0 ElseIf roundedRatio > 1000 Then 利潤率.Value = 1000 Else 利潤率.Value = roundedRatio End If End Sub Private Sub 進價_tb_Leave(sender As Object, e As EventArgs) Handles 進價_tb.Leave If Not String.IsNullOrEmpty(進價_tb.Text) AndAlso IsNumeric(進價_tb.Text) Then ' 將文本轉換為數字 Dim number As Double = CDbl(進價_tb.Text) ' 格式化數字為千分位 進價_tb.Text = number.ToString("#,##0") End If End Sub Private Sub 售價_tb_KeyPress(sender As Object, e As KeyPressEventArgs) Handles 售價_tb.KeyPress ' 檢查輸入的字符是否為數字或允許的其他字符(如小數點、負號、刪除鍵) If Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> "." AndAlso e.KeyChar <> "-" AndAlso e.KeyChar <> ChrW(Keys.Back) Then ' 如果輸入的字符不是數字或允許的字符,取消該字符輸入 e.Handled = True End If End Sub Private Sub 售價_tb_LostFocus(sender As Object, e As EventArgs) Handles 售價_tb.LostFocus ' 檢查文本框的值是否為空 If String.IsNullOrWhiteSpace(售價_tb.Text) Then ' 如果為空,將其設置為0 售價_tb.Text = "0" End If End Sub Private Sub 進價_tb_LostFocus(sender As Object, e As EventArgs) Handles 進價_tb.LostFocus ' 檢查文本框的值是否為空 If String.IsNullOrWhiteSpace(進價_tb.Text) Then ' 如果為空,將其設置為0 進價_tb.Text = "0" End If End Sub Private Sub 進價_tb_KeyPress(sender As Object, e As KeyPressEventArgs) Handles 進價_tb.KeyPress ' 檢查輸入的字符是否為數字或允許的其他字符(如小數點、負號、刪除鍵) If Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> "." AndAlso e.KeyChar <> "-" AndAlso e.KeyChar <> ChrW(Keys.Back) Then ' 如果輸入的字符不是數字或允許的字符,取消該字符輸入 e.Handled = True End If End Sub Private Sub 現金_tb_Leave(sender As Object, e As EventArgs) Handles 現金_tb.Leave If Not String.IsNullOrEmpty(現金_tb.Text) AndAlso IsNumeric(現金_tb.Text) Then ' 將文本轉換為數字 Dim number As Double = CDbl(現金_tb.Text) ' 格式化數字為千分位 現金_tb.Text = number.ToString("#,##0") Dim 現金, 支票, 信用卡 As Double If Double.TryParse(現金_tb.Text, 現金) AndAlso Double.TryParse(支票_tb.Text, 支票) AndAlso Double.TryParse(信用卡_tb.Text, 信用卡) Then 全部_tb.Text = (現金 + 支票 + 信用卡).ToString() End If End If End Sub Private Sub 現金_tb_LostFocus(sender As Object, e As EventArgs) Handles 現金_tb.LostFocus ' 檢查文本框的值是否為空 If String.IsNullOrWhiteSpace(現金_tb.Text) Then ' 如果為空,將其設置為0 現金_tb.Text = "0" End If End Sub Private Sub 現金_tb_KeyPress(sender As Object, e As KeyPressEventArgs) Handles 現金_tb.KeyPress ' 檢查輸入的字符是否為數字或允許的其他字符(如小數點、負號、刪除鍵) If Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> "." AndAlso e.KeyChar <> "-" AndAlso e.KeyChar <> ChrW(Keys.Back) Then ' 如果輸入的字符不是數字或允許的字符,取消該字符輸入 e.Handled = True End If End Sub Private Sub 信用卡_tb_Leave(sender As Object, e As EventArgs) Handles 信用卡_tb.Leave If Not String.IsNullOrEmpty(信用卡_tb.Text) AndAlso IsNumeric(信用卡_tb.Text) Then ' 將文本轉換為數字 Dim number As Double = CDbl(信用卡_tb.Text) ' 格式化數字為千分位 信用卡_tb.Text = number.ToString("#,##0") Dim 現金, 支票, 信用卡 As Double If Double.TryParse(現金_tb.Text, 現金) AndAlso Double.TryParse(支票_tb.Text, 支票) AndAlso Double.TryParse(信用卡_tb.Text, 信用卡) Then 全部_tb.Text = (現金 + 支票 + 信用卡).ToString() End If End If End Sub Private Sub 信用卡_tb_LostFocus(sender As Object, e As EventArgs) Handles 信用卡_tb.LostFocus ' 檢查文本框的值是否為空 If String.IsNullOrWhiteSpace(信用卡_tb.Text) Then ' 如果為空,將其設置為0 信用卡_tb.Text = "0" End If End Sub Private Sub 信用卡_tb_KeyPress(sender As Object, e As KeyPressEventArgs) Handles 信用卡_tb.KeyPress ' 檢查輸入的字符是否為數字或允許的其他字符(如小數點、負號、刪除鍵) If Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> "." AndAlso e.KeyChar <> "-" AndAlso e.KeyChar <> ChrW(Keys.Back) Then ' 如果輸入的字符不是數字或允許的字符,取消該字符輸入 e.Handled = True End If End Sub Private Sub 賒帳_tb_Leave(sender As Object, e As EventArgs) Handles 賒帳_tb.Leave If Not String.IsNullOrEmpty(賒帳_tb.Text) AndAlso IsNumeric(賒帳_tb.Text) Then ' 將文本轉換為數字 Dim number As Double = CDbl(賒帳_tb.Text) ' 格式化數字為千分位 賒帳_tb.Text = number.ToString("#,##0") End If End Sub Private Sub 賒帳_tb_LostFocus(sender As Object, e As EventArgs) Handles 賒帳_tb.LostFocus ' 檢查文本框的值是否為空 If String.IsNullOrWhiteSpace(賒帳_tb.Text) Then ' 如果為空,將其設置為0 賒帳_tb.Text = "0" End If End Sub Private Sub 賒帳_tb_KeyPress(sender As Object, e As KeyPressEventArgs) Handles 賒帳_tb.KeyPress ' 檢查輸入的字符是否為數字或允許的其他字符(如小數點、負號、刪除鍵) If Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> "." AndAlso e.KeyChar <> "-" AndAlso e.KeyChar <> ChrW(Keys.Back) Then ' 如果輸入的字符不是數字或允許的字符,取消該字符輸入 e.Handled = True End If End Sub Private Sub 支票_tb_Leave(sender As Object, e As EventArgs) Handles 支票_tb.Leave If Not String.IsNullOrEmpty(支票_tb.Text) AndAlso IsNumeric(支票_tb.Text) Then ' 將文本轉換為數字 Dim number As Double = CDbl(支票_tb.Text) ' 格式化數字為千分位 支票_tb.Text = number.ToString("#,##0") Dim 現金, 支票, 信用卡 As Double If Double.TryParse(現金_tb.Text, 現金) AndAlso Double.TryParse(支票_tb.Text, 支票) AndAlso Double.TryParse(信用卡_tb.Text, 信用卡) Then 全部_tb.Text = (現金 + 支票 + 信用卡).ToString() End If End If End Sub Private Sub 支票_tb_LostFocus(sender As Object, e As EventArgs) Handles 支票_tb.LostFocus ' 檢查文本框的值是否為空 If String.IsNullOrWhiteSpace(支票_tb.Text) Then ' 如果為空,將其設置為0 支票_tb.Text = "0" End If End Sub Private Sub 支票_tb_KeyPress(sender As Object, e As KeyPressEventArgs) Handles 支票_tb.KeyPress ' 檢查輸入的字符是否為數字或允許的其他字符(如小數點、負號、刪除鍵) If Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> "." AndAlso e.KeyChar <> "-" AndAlso e.KeyChar <> ChrW(Keys.Back) Then ' 如果輸入的字符不是數字或允許的字符,取消該字符輸入 e.Handled = True End If End Sub Private Sub 修改_bt_Click(sender As Object, e As EventArgs) Handles 修改_bt.Click If 買入車主名稱_tb.Text <> "" And 買入牌照號碼_tb.Text <> "" Then SQL_車輛銷售管理_查詢客戶資料() If dr.Read() Then SQL_車輛銷售管理_修改客戶資料() Else SQL_客戶資料表_最後一筆資料() If dr.Read() Then : 供應商編號_tb.Text = dr("流水號").ToString : Else : 供應商編號_tb.Text = "CL00000" : End If conn.Close() Dim NUM1 As Integer NUM1 = Double.Parse(Strings.Right(供應商編號_tb.Text, 5)) + 1 If NUM1 < 10 Then : 供應商編號_tb.Text = "CL" & "0000" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 供應商編號_tb.Text = "CL" & "000" & NUM1 ElseIf NUM1 > 99 And NUM1 < 1000 Then : 供應商編號_tb.Text = "CL" & "00" & NUM1 ElseIf NUM1 > 999 And NUM1 < 10000 Then : 供應商編號_tb.Text = "CL" & "0" & NUM1 ElseIf NUM1 > 9999 And NUM1 < 100000 Then : 供應商編號_tb.Text = "CL" & NUM1 : End If SQL_車輛銷售管理_新增客戶資料() : conn.Close() End If End If If 賣出車主名稱_tb.Text <> "" And 賣出牌照號碼_tb.Text <> "" Then SQL_車輛銷售管理_查詢客戶資料1() If dr.Read() Then SQL_車輛銷售管理_修改客戶資料1() Else SQL_客戶資料表_最後一筆資料() If dr.Read() Then : 供應商編號_tb.Text = dr("流水號").ToString : Else : 供應商編號_tb.Text = "CL00000" : End If conn.Close() Dim NUM1 As Integer NUM1 = Double.Parse(Strings.Right(供應商編號_tb.Text, 5)) + 1 If NUM1 < 10 Then : 供應商編號_tb.Text = "CL" & "0000" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 供應商編號_tb.Text = "CL" & "000" & NUM1 ElseIf NUM1 > 99 And NUM1 < 1000 Then : 供應商編號_tb.Text = "CL" & "00" & NUM1 ElseIf NUM1 > 999 And NUM1 < 10000 Then : 供應商編號_tb.Text = "CL" & "0" & NUM1 ElseIf NUM1 > 9999 And NUM1 < 100000 Then : 供應商編號_tb.Text = "CL" & NUM1 : End If SQL_車輛銷售管理_新增客戶資料1() : conn.Close() End If End If If 車主名稱_tb.Text <> "" And 車號_tb.Text <> "" Then SQL_車輛銷售管理_查詢客戶資料() If dr.Read() Then SQL_車輛銷售管理_修改客戶資料() Else SQL_客戶資料表_最後一筆資料() If dr.Read() Then : 供應商編號_tb.Text = dr("流水號").ToString : Else : 供應商編號_tb.Text = "CL00000" : End If conn.Close() Dim NUM1 As Integer NUM1 = Double.Parse(Strings.Right(供應商編號_tb.Text, 5)) + 1 If NUM1 < 10 Then : 供應商編號_tb.Text = "CL" & "0000" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 供應商編號_tb.Text = "CL" & "000" & NUM1 ElseIf NUM1 > 99 And NUM1 < 1000 Then : 供應商編號_tb.Text = "CL" & "00" & NUM1 ElseIf NUM1 > 999 And NUM1 < 10000 Then : 供應商編號_tb.Text = "CL" & "0" & NUM1 ElseIf NUM1 > 9999 And NUM1 < 100000 Then : 供應商編號_tb.Text = "CL" & NUM1 : End If SQL_車輛銷售管理_新增客戶資料() : conn.Close() End If End If SQL_車輛銷售管理_控制表修改() : conn.Close() : MsgBox("儲存成功!!") : Set_清單1() If 登入人級別 <> "00" Then If 已交車_cb.Checked = True Then 修改_bt.Enabled = False : 刪除_bt.Enabled = False : 查詢1_bt.Enabled = False : 查詢2_bt.Enabled = False 收支單中新增一筆資料_bt.Enabled = False : 收支單中新增一筆空白資料_bt.Enabled = False : 刪除選中的一筆資料_bt.Enabled = False 申請_bt.Enabled = False Else 修改_bt.Enabled = True : 刪除_bt.Enabled = True : 查詢1_bt.Enabled = True : 查詢2_bt.Enabled = True 收支單中新增一筆資料_bt.Enabled = True : 收支單中新增一筆空白資料_bt.Enabled = True : 刪除選中的一筆資料_bt.Enabled = True 申請_bt.Enabled = True End If End If End Sub Private Sub 收支單中新增一筆空白資料_bt_Click(sender As Object, e As EventArgs) Handles 收支單中新增一筆空白資料_bt.Click If 單號_tb.Text = "" Then MsgBox("未選擇單號!!") Else Set_流水號() : PA = 單號_tb.Text SQL_車輛銷售管理_查詢最後一筆單號項次() : PA = "" If dr.Read() Then : 新項次 = dr("項次") : Else : 新項次 = "00" : End If : conn.Close() NUM1 = Double.Parse(新項次) + 1 If NUM1 < 10 Then : 新項次 = "00" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : 新項次 = "0" & NUM1 : ElseIf NUM1 > 99 Then : 新項次 = NUM1 : End If PA15 = 新項次 SQL_車輛銷售管理_新增明細表() : conn.Close() Set_清單3() MsgBox("明細表新增成功!!") End If End Sub Private Sub 收支單中新增一筆空白資料1_bt_Click(sender As Object, e As EventArgs) Handles 收支單中新增一筆空白資料1_bt.Click For i As Integer = 0 To 明細表1_dgv.Rows.Count - 1 PA1 = 明細表1_dgv.Rows(i).Cells("各項支出名稱").Value.ToString : PA2 = 明細表1_dgv.Rows(i).Cells("數量").Value.ToString : PA3 = 明細表1_dgv.Rows(i).Cells("售價").Value PA4 = 明細表1_dgv.Rows(i).Cells("備註").Value.ToString : PA5 = 明細表1_dgv.Rows(i).Cells("料號").Value.ToString : PA6 = 明細表1_dgv.Rows(i).Cells("項次").Value.ToString PA10 = 明細表1_dgv.Rows(i).Cells("流水號").Value.ToString : PA8 = 明細表1_dgv.Rows(i).Cells("成本").Value.ToString : BL3 = 明細表1_dgv.Rows(i).Cells("已儲存").Value PA7 = 明細表1_dgv.Rows(i).Cells("狀態").Value.ToString SQL_車輛銷售管理_修改明細表() : conn.Close() If PA7 = "物料" Then If BL3 = 0 Then Set_日期格式轉換() Set_流水號1() SQL_車輛銷售管理_新增倉儲明細表() : conn.Close() Else SQL_車輛銷售管理_修改倉儲明細表() : conn.Close() End If End If Next If 單號_tb.Text = "" Then MsgBox("未選擇單號!!") Else Set_流水號() : PA = 單號_tb.Text SQL_車輛銷售管理_查詢最後一筆單號項次() : PA = "" If dr.Read() Then : 新項次 = dr("項次") : Else : 新項次 = "00" : End If : conn.Close() NUM1 = Double.Parse(新項次) + 1 If NUM1 < 10 Then : 新項次 = "00" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : 新項次 = "0" & NUM1 : ElseIf NUM1 > 99 Then : 新項次 = NUM1 : End If PA15 = 新項次 SQL_車輛銷售管理_新增明細表() : conn.Close() Set_清單3() MsgBox("明細表新增成功!!") End If End Sub Private Sub Set_流水號() conn.Close() : dr.Close() Dim NUM1 As Integer For NUM1 = 0 To 999 Dim d As String : Dim f As String Dim selectedDate As DateTime = 選擇日期_dtp.Value Dim y As String = selectedDate.Year.ToString().Substring(2, 2) If selectedDate.Month < 10 Then : d = "0" & selectedDate.Month.ToString() Else : d = selectedDate.Month.ToString() End If If selectedDate.Day < 10 Then : f = "0" & selectedDate.Day.ToString() Else : f = selectedDate.Day.ToString() End If If NUM1 < 10 Then : 新流水1 = "C" & y & d & f & "00" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 新流水1 = "C" & y & d & f & "0" & NUM1 ElseIf NUM1 > 99 Then : 新流水1 = "C" & y & d & f & NUM1 End If : PA19 = 新流水1 SQL_車輛銷售管理_查詢明細表流水號() If dr.Read() Then : conn.Close() : Else : conn.Close() : NUM1 = 999 : End If Next End Sub Private Sub 刪除選中的一筆資料_bt_Click(sender As Object, e As EventArgs) Handles 刪除選中的一筆資料_bt.Click If 流水號_tb.Text = "" Then MsgBox("未選擇需要刪除的資料。") Else TextBox1.Text = "0" SQL_車輛銷售管理_刪除倉儲明細表() : conn.Close() SQL_車輛銷售管理_刪除明細表項次() : conn.Close() Set_清單3() Dim NUM1 As Integer = 0 For i As Integer = 0 To 明細表_dgv.Rows.Count - 1 PA17 = 明細表_dgv.Rows(i).Cells("項次").Value NUM1 += 1 : If NUM1 < 10 Then : 新項次 = "00" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : 新項次 = "0" & NUM1 : ElseIf NUM1 > 99 Then : 新項次 = NUM1 : End If PA18 = 新項次 SQL_車輛銷售管理_修改明細表項次() : conn.Close() Next Set_清單3() : 流水號_tb.Text = "" Dim NUM2, NUM3 As Integer For i As Integer = 0 To 明細表_dgv.Rows.Count - 1 NUM2 += 明細表_dgv.Rows(i).Cells("總售價").Value NUM3 += 明細表_dgv.Rows(i).Cells("總成本").Value Next 支出合計_tb.Text = Strings.Format(Val(NUM2), "#,##0") 總成本_tb.Text = Strings.Format(Val(NUM3), "#,##0") MsgBox("刪除成功。") Dim d1, d2, d4 As Integer Dim d3 As Double Dim s1 As String = 進價_tb.Text Dim s2 As String = 總成本_tb.Text Dim s4 As String = 售價_tb.Text s1 = s1.Replace(",", "") s2 = s2.Replace(",", "") s4 = s4.Replace(",", "") d1 = Integer.Parse(s1) d2 = Integer.Parse(s2) d4 = Integer.Parse(s4) d3 = 利潤率.Value 總利潤_tb.Text = ((d1 + d2) * d3 / 100).ToString("#,##0") If boo1 = True Then 總利潤_tb.Text = (d4 - (d1 + d2)).ToString("#,##0") Else 售價_tb.Text = (d1 + d2 + ((d1 + d2) * d3 / 100)).ToString("#,##0") End If End If End Sub Private Sub 刪除選中的一筆資料1_bt_Click(sender As Object, e As EventArgs) Handles 刪除選中的一筆資料1_bt.Click If 流水號_tb.Text = "" Then MsgBox("未選擇需要刪除的資料。") Else 庫存量1.Text = "0" SQL_車輛銷售管理_刪除倉儲明細表() : conn.Close() SQL_車輛銷售管理_刪除明細表項次() : conn.Close() Set_清單3() Dim NUM1 As Integer = 0 For i As Integer = 0 To 明細表1_dgv.Rows.Count - 1 PA17 = 明細表1_dgv.Rows(i).Cells("項次").Value NUM1 += 1 : If NUM1 < 10 Then : 新項次 = "00" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : 新項次 = "0" & NUM1 : ElseIf NUM1 > 99 Then : 新項次 = NUM1 : End If PA18 = 新項次 SQL_車輛銷售管理_修改明細表項次() : conn.Close() Next Set_清單3() : 流水號_tb.Text = "" MsgBox("刪除成功。") End If End Sub Private Sub 申請_bt_Click(sender As Object, e As EventArgs) Handles 申請_bt.Click For i As Integer = 0 To 明細表_dgv.Rows.Count - 1 PA1 = 明細表_dgv.Rows(i).Cells("各項支出名稱").Value.ToString : PA2 = 明細表_dgv.Rows(i).Cells("數量").Value.ToString : PA3 = 明細表_dgv.Rows(i).Cells("售價").Value PA4 = 明細表_dgv.Rows(i).Cells("備註").Value.ToString : PA5 = 明細表_dgv.Rows(i).Cells("料號").Value.ToString : PA6 = 明細表_dgv.Rows(i).Cells("項次").Value.ToString PA10 = 明細表_dgv.Rows(i).Cells("流水號").Value.ToString : PA8 = 明細表_dgv.Rows(i).Cells("成本").Value.ToString : BL3 = 明細表_dgv.Rows(i).Cells("已儲存").Value PA7 = 明細表_dgv.Rows(i).Cells("狀態").Value.ToString SQL_車輛銷售管理_修改明細表() : conn.Close() If PA7 = "物料" Then If BL3 = 0 Then Set_日期格式轉換() Set_流水號1() SQL_車輛銷售管理_新增倉儲明細表() : conn.Close() End If End If Next : Set_清單3() : MsgBox("儲存成功。") End Sub Private Sub 申請1_bt_Click(sender As Object, e As EventArgs) Handles 申請1_bt.Click For i As Integer = 0 To 明細表1_dgv.Rows.Count - 1 PA1 = 明細表1_dgv.Rows(i).Cells("各項支出名稱").Value.ToString : PA2 = 明細表1_dgv.Rows(i).Cells("數量").Value.ToString : PA3 = 明細表1_dgv.Rows(i).Cells("售價").Value PA4 = 明細表1_dgv.Rows(i).Cells("備註").Value.ToString : PA5 = 明細表1_dgv.Rows(i).Cells("料號").Value.ToString : PA6 = 明細表1_dgv.Rows(i).Cells("項次").Value.ToString PA10 = 明細表1_dgv.Rows(i).Cells("流水號").Value.ToString : PA8 = 明細表1_dgv.Rows(i).Cells("成本").Value.ToString : BL3 = 明細表1_dgv.Rows(i).Cells("已儲存").Value PA7 = 明細表1_dgv.Rows(i).Cells("狀態").Value.ToString SQL_車輛銷售管理_修改明細表() : conn.Close() If PA7 = "物料" Then If BL3 = 0 Then Set_日期格式轉換() Set_流水號1() SQL_車輛銷售管理_新增倉儲明細表() : conn.Close() Else SQL_車輛銷售管理_修改倉儲明細表() : conn.Close() End If End If Next : Set_清單3() : MsgBox("儲存成功。") End Sub Private Sub Set_流水號1() conn.Close() : dr.Close() Dim NUM1 As Integer For NUM1 = 0 To 999 Dim d As String : Dim f As String Dim selectedDate As DateTime = Today() Dim y As String = selectedDate.Year.ToString() If selectedDate.Month < 10 Then : d = "0" & selectedDate.Month.ToString() Else : d = selectedDate.Month.ToString() End If If selectedDate.Day < 10 Then : f = "0" & selectedDate.Day.ToString() Else : f = selectedDate.Day.ToString() End If If NUM1 < 10 Then : 新流水1 = "Z" & y & d & f & "00" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 新流水1 = "Z" & y & d & f & "0" & NUM1 ElseIf NUM1 > 99 Then : 新流水1 = "Z" & y & d & f & NUM1 End If : PA19 = 新流水1 SQL_物料入庫系統_查詢入庫明細流水號() If dr.Read() Then : conn.Close() : Else : conn.Close() : NUM1 = 999 : End If Next End Sub Private Sub Set_清單4() 庫存_dgv.DataSource = Nothing : ds3.Clear() 庫存_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 庫存_dgv.ColumnHeadersHeight = 25 庫存_dgv.AllowUserToAddRows = False 庫存_dgv.RowTemplate.Height = 30 If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If SQL_車輛銷售管理_查詢庫存量() da.Fill(ds3) : 庫存_dgv.DataSource = ds3.Tables(0) : conn.Close() N3 = 0 For i As Integer = 0 To 庫存_dgv.Rows.Count - 1 N3 += 庫存_dgv.Rows(i).Cells("入庫數量").Value : N3 -= 庫存_dgv.Rows(i).Cells("出庫數量").Value Next If 車廠型態 = True Then TextBox1.Text = N3 Else 庫存量1.Text = N3 End If End Sub Private Sub 明細表_dgv_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles 明細表_dgv.CellEnter Dim NUM1, NUM2 As Integer index = e.RowIndex If e.RowIndex = -1 Then : Else 流水號_tb.Text = 明細表_dgv(1, e.RowIndex).Value.ToString 料號1_tb.Text = 明細表_dgv(10, e.RowIndex).Value.ToString If 明細表_dgv(13, e.RowIndex).Value.ToString = "物料" Then Set_清單4() Else TextBox1.Text = "" End If For i As Integer = 0 To 明細表_dgv.Rows.Count - 1 If 明細表_dgv.Rows(i).Cells("數量").Value.ToString <> "" And 明細表_dgv.Rows(i).Cells("售價").Value.ToString <> "" And 明細表_dgv.Rows(i).Cells("成本").Value.ToString <> "" Then 明細表_dgv.Rows(i).Cells("總售價").Value = 明細表_dgv.Rows(i).Cells("數量").Value * 明細表_dgv.Rows(i).Cells("售價").Value 明細表_dgv.Rows(i).Cells("總成本").Value = 明細表_dgv.Rows(i).Cells("數量").Value * 明細表_dgv.Rows(i).Cells("成本").Value NUM1 += 明細表_dgv.Rows(i).Cells("總售價").Value NUM2 += 明細表_dgv.Rows(i).Cells("總成本").Value 明細表_dgv.Rows(i).Cells("利潤").Value = (明細表_dgv.Rows(i).Cells("數量").Value * 明細表_dgv.Rows(i).Cells("售價").Value) - (明細表_dgv.Rows(i).Cells("數量").Value * 明細表_dgv.Rows(i).Cells("成本").Value) End If Next End If 支出合計_tb.Text = Strings.Format(Val(NUM1), "#,##0") 總成本_tb.Text = Strings.Format(Val(NUM2), "#,##0") Dim d1, d2, d4 As Integer Dim d3 As Double Dim s1 As String = 進價_tb.Text Dim s2 As String = 總成本_tb.Text Dim s4 As String = 售價_tb.Text s1 = s1.Replace(",", "") s2 = s2.Replace(",", "") s4 = s4.Replace(",", "") d1 = Integer.Parse(s1) d2 = Integer.Parse(s2) d4 = Integer.Parse(s4) d3 = 利潤率.Value 總利潤_tb.Text = ((d1 + d2) * d3 / 100).ToString("#,##0") If boo1 = True Then 總利潤_tb.Text = (d4 - (d1 + d2)).ToString("#,##0") Else 售價_tb.Text = (d1 + d2 + ((d1 + d2) * d3 / 100)).ToString("#,##0") End If End Sub Private Sub 明細表1_dgv_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles 明細表1_dgv.CellEnter Dim NUM1 As Integer = 0 Dim NUM2 As Integer = 0 index = e.RowIndex If e.RowIndex = -1 Then : Else 流水號_tb.Text = 明細表1_dgv(1, e.RowIndex).Value.ToString 料號1_tb.Text = 明細表1_dgv(10, e.RowIndex).Value.ToString If 明細表1_dgv(13, e.RowIndex).Value.ToString = "物料" Then Set_清單4() Else 庫存量1.Text = "" End If For i As Integer = 0 To 明細表1_dgv.Rows.Count - 1 If 明細表1_dgv.Rows(i).Cells("數量").Value.ToString <> "" And 明細表1_dgv.Rows(i).Cells("售價").Value.ToString <> "" And 明細表1_dgv.Rows(i).Cells("成本").Value.ToString <> "" Then 明細表1_dgv.Rows(i).Cells("總售價").Value = 明細表1_dgv.Rows(i).Cells("數量").Value * 明細表1_dgv.Rows(i).Cells("售價").Value 明細表1_dgv.Rows(i).Cells("總成本").Value = 明細表1_dgv.Rows(i).Cells("數量").Value * 明細表1_dgv.Rows(i).Cells("成本").Value 明細表1_dgv.Rows(i).Cells("利潤").Value = (明細表1_dgv.Rows(i).Cells("數量").Value * 明細表1_dgv.Rows(i).Cells("售價").Value) - (明細表1_dgv.Rows(i).Cells("數量").Value * 明細表1_dgv.Rows(i).Cells("成本").Value) End If If 明細表1_dgv.Rows(i).Cells("狀態").Value <> "承修項目" Then NUM1 += 明細表1_dgv.Rows(i).Cells("總售價").Value Else NUM2 += 明細表1_dgv.Rows(i).Cells("總售價").Value End If Next 零件_tb.Text = Strings.Format(Val(NUM1), "#,##0") 工資_tb.Text = Strings.Format(Val(NUM2), "#,##0") 總計_tb.Text = Strings.Format(Val(NUM1 + NUM2), "#,##0") If 是否收稅_cb.Checked = True Then 稅金_tb.Text = Strings.Format(Val((NUM1 + NUM2) * 0.05), "#,##0") 應收合計_tb.Text = Strings.Format(Val(NUM1 + NUM2 + ((NUM1 + NUM2) * 0.05)), "#,##0") 總計_tb.Text = Strings.Format(Val(NUM1 + NUM2 + ((NUM1 + NUM2) * 0.05)), "#,##0") Else 稅金_tb.Text = "0" 應收合計_tb.Text = Strings.Format(Val(NUM1 + NUM2), "#,##0") End If End If End Sub Private Sub 物料_dgv_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles 物料_dgv.CellClick If e.RowIndex = -1 Then : Else 料號_tb.Text = 物料_dgv(0, e.RowIndex).Value.ToString 品名.Text = 物料_dgv(1, e.RowIndex).Value.ToString 成本.Text = 物料_dgv(5, e.RowIndex).Value.ToString 狀態_tb.Text = 物料_dgv(4, e.RowIndex).Value.ToString End If End Sub Private Sub 流水號_tb_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 流水號_tb.TextChanged ' 檢查流水號_tb 的值是否變化,如果是則清空料號_tb If 流水號_tb.Text <> 上次的流水號 Then 料號_tb.Text = "" End If ' 更新上次的流水號 上次的流水號 = 流水號_tb.Text End Sub Private Sub 類別清單_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 選擇供應商_cb.SelectedIndexChanged Set_清單2() : 料號_tb.Text = "" : 品名.Text = "" : 成本.Text = "" : 狀態_tb.Text = "" End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles 查詢1_bt.Click boo = True : boo2 = False : 連動模組.SetCallingPage("車輛銷售管理") : 連動模組.ShowDialog() : 連動模組.BringToFront() End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles 查詢2_bt.Click boo = False : boo2 = False : 連動模組.SetCallingPage("車輛銷售管理") : 連動模組.ShowDialog() : 連動模組.BringToFront() End Sub Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles Button2.Click boo2 = True : boo = False : 連動模組.SetCallingPage("車輛銷售管理") : 連動模組.ShowDialog() : 連動模組.BringToFront() End Sub Private Sub 收支單中新增一筆資料_bt_Click(sender As Object, e As EventArgs) Handles 收支單中新增一筆資料_bt.Click If 單號_tb.Text = "" Then MsgBox("未選擇單號!!") Else If 料號_tb.Text = "" Or 品名.Text = "" Or 成本.Text = "" Or 狀態_tb.Text = "" Then MsgBox("未選擇物料。") Else Set_流水號() : PA = 單號_tb.Text SQL_車輛銷售管理_查詢最後一筆單號項次() : PA = "" If dr.Read() Then : 新項次 = dr("項次") : Else : 新項次 = "00" : End If : conn.Close() NUM1 = Double.Parse(新項次) + 1 If NUM1 < 10 Then : 新項次 = "00" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : 新項次 = "0" & NUM1 : ElseIf NUM1 > 99 Then : 新項次 = NUM1 : End If PA15 = 新項次 SQL_車輛銷售管理_新增明細表1() : conn.Close() Set_清單3() MsgBox("明細表新增成功!!") End If End If End Sub Private Sub 收支單中新增一筆資料1_bt_Click(sender As Object, e As EventArgs) Handles 收支單中新增一筆資料1_bt.Click For i As Integer = 0 To 明細表1_dgv.Rows.Count - 1 PA1 = 明細表1_dgv.Rows(i).Cells("各項支出名稱").Value.ToString : PA2 = 明細表1_dgv.Rows(i).Cells("數量").Value.ToString : PA3 = 明細表1_dgv.Rows(i).Cells("售價").Value PA4 = 明細表1_dgv.Rows(i).Cells("備註").Value.ToString : PA5 = 明細表1_dgv.Rows(i).Cells("料號").Value.ToString : PA6 = 明細表1_dgv.Rows(i).Cells("項次").Value.ToString PA10 = 明細表1_dgv.Rows(i).Cells("流水號").Value.ToString : PA8 = 明細表1_dgv.Rows(i).Cells("成本").Value.ToString : BL3 = 明細表1_dgv.Rows(i).Cells("已儲存").Value PA7 = 明細表1_dgv.Rows(i).Cells("狀態").Value.ToString SQL_車輛銷售管理_修改明細表() : conn.Close() If PA7 = "物料" Then If BL3 = 0 Then Set_日期格式轉換() Set_流水號1() SQL_車輛銷售管理_新增倉儲明細表() : conn.Close() Else SQL_車輛銷售管理_修改倉儲明細表() : conn.Close() End If End If Next If 單號_tb.Text = "" Then MsgBox("未選擇單號!!") Else If 料號_tb.Text = "" Or 品名.Text = "" Or 成本.Text = "" Then MsgBox("未選擇物料。") Else Set_流水號() : PA = 單號_tb.Text SQL_車輛銷售管理_查詢最後一筆單號項次() : PA = "" If dr.Read() Then : 新項次 = dr("項次") : Else : 新項次 = "00" : End If : conn.Close() NUM1 = Double.Parse(新項次) + 1 If NUM1 < 10 Then : 新項次 = "00" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : 新項次 = "0" & NUM1 : ElseIf NUM1 > 99 Then : 新項次 = NUM1 : End If PA15 = 新項次 SQL_車輛銷售管理_新增明細表1() : conn.Close() Set_清單3() MsgBox("明細表新增成功!!") End If End If End Sub Public Sub ReceiveDataFromPageB(ByVal data As String, ByVal data1 As String, ByVal data2 As String, ByVal data3 As String, ByVal data4 As String) ' 在這裡處理從頁面B接收到的數據,將其設定到頁面A的TextBox中 If boo2 = True Then 車主名稱_tb.Text = data 電話_tb.Text = data1 地址_tb.Text = data2 車號_tb.Text = data3 備註1_tb.Text = data4 SQL_車輛銷售管理_人員明細(data, data3) If dr.Read() Then 車型_tb.Text = dr("廠牌") 年_tb.Text = dr("年份型式") 引擎號碼1_tb.Text = dr("引擎號碼") 輪胎尺寸_tb.Text = dr("買入顏色") End If Else If boo = True Then 買入車主名稱_tb.Text = data 買入車主電話_tb.Text = data1 買入車主地址_tb.Text = data2 買入牌照號碼_tb.Text = data3 Else 賣出車主名稱_tb.Text = data 賣出車主電話_tb.Text = data1 賣出車主地址_tb.Text = data2 買入牌照號碼_tb.Text = data3 End If End If End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If Panel7.Visible = True Then Panel7.Visible = False Else Panel7.Visible = True End If End Sub Private Sub 只顯示未付款_cb_CheckedChanged(sender As Object, e As EventArgs) Handles 只顯示未付款_cb.CheckedChanged Set_清單1() End Sub Private Sub 顯示成本_cb_CheckedChanged(sender As Object, e As EventArgs) Handles 顯示成本_cb.CheckedChanged Set_清單2() End Sub Private Sub 隱藏成本_cb_CheckedChanged(sender As Object, e As EventArgs) Handles 隱藏成本_cb.CheckedChanged Set_清單3() End Sub Private Sub Button3_Click_1(sender As Object, e As EventArgs) Handles Button3.Click SQL_車輛銷售管理_儲存列印資訊() : MsgBox("儲存成功!!") End Sub Private Sub 查詢_bt_MouseEnter(sender As Object, e As EventArgs) Handles 查詢_bt.MouseEnter ToolTip1.SetToolTip(Me.查詢_bt, "查詢單號") End Sub Private Sub 查詢物_bt_MouseEnter(sender As Object, e As EventArgs) Handles 查詢物_bt.MouseEnter ToolTip1.SetToolTip(Me.查詢物_bt, "查詢物料") End Sub Private Sub 新增_bt_MouseEnter(sender As Object, e As EventArgs) Handles 新增_bt.MouseEnter ToolTip1.SetToolTip(Me.新增_bt, "新增準備") End Sub Private Sub 確認新增_bt_MouseEnter(sender As Object, e As EventArgs) Handles 確認新增_bt.MouseEnter ToolTip1.SetToolTip(Me.確認新增_bt, "確認新增") End Sub Private Sub 修改_bt_MouseEnter(sender As Object, e As EventArgs) Handles 修改_bt.MouseEnter ToolTip1.SetToolTip(Me.修改_bt, "修改存檔") End Sub Private Sub 刪除_bt_MouseEnter(sender As Object, e As EventArgs) Handles 刪除_bt.MouseEnter ToolTip1.SetToolTip(Me.刪除_bt, "刪除") End Sub Private Sub 查詢1_bt_MouseEnter(sender As Object, e As EventArgs) Handles 查詢1_bt.MouseEnter ToolTip1.SetToolTip(Me.查詢1_bt, "查詢") End Sub Private Sub 匯出EXCEL_bt_MouseEnter(sender As Object, e As EventArgs) Handles 匯出EXCEL_bt.MouseEnter ToolTip1.SetToolTip(Me.匯出EXCEL_bt, "匯出PDF") End Sub Private Sub 查詢2_bt_MouseEnter(sender As Object, e As EventArgs) Handles 查詢2_bt.MouseEnter ToolTip1.SetToolTip(Me.查詢2_bt, "查詢") End Sub Private Sub 收支單中新增一筆資料_bt_MouseEnter(sender As Object, e As EventArgs) Handles 收支單中新增一筆資料_bt.MouseEnter ToolTip1.SetToolTip(Me.收支單中新增一筆資料_bt, "收支單中新增帶有物料的資料") End Sub Private Sub 收支單中新增一筆空白資料_bt_MouseEnter(sender As Object, e As EventArgs) Handles 收支單中新增一筆空白資料_bt.MouseEnter ToolTip1.SetToolTip(Me.收支單中新增一筆空白資料_bt, "收支單中新增空白的資料") End Sub Private Sub 刪除選中的一筆資料_bt_MouseEnter(sender As Object, e As EventArgs) Handles 刪除選中的一筆資料_bt.MouseEnter ToolTip1.SetToolTip(Me.刪除選中的一筆資料_bt, "刪除選中的一筆資料") End Sub Private Sub 申請_bt_MouseEnter(sender As Object, e As EventArgs) Handles 申請_bt.MouseEnter ToolTip1.SetToolTip(Me.申請_bt, "資料存檔") End Sub Private Sub 收支單中新增一筆資料1_bt_MouseEnter(sender As Object, e As EventArgs) Handles 收支單中新增一筆資料1_bt.MouseEnter ToolTip1.SetToolTip(Me.收支單中新增一筆資料1_bt, "收支單中新增帶有物料的資料") End Sub Private Sub 收支單中新增一筆空白資料1_bt_MouseEnter(sender As Object, e As EventArgs) Handles 收支單中新增一筆空白資料1_bt.MouseEnter ToolTip1.SetToolTip(Me.收支單中新增一筆空白資料1_bt, "收支單中新增空白的資料") End Sub Private Sub 刪除選中的一筆資料1_bt_MouseEnter(sender As Object, e As EventArgs) Handles 刪除選中的一筆資料1_bt.MouseEnter ToolTip1.SetToolTip(Me.刪除選中的一筆資料1_bt, "刪除選中的一筆資料") End Sub Private Sub 申請1_bt_MouseEnter(sender As Object, e As EventArgs) Handles 申請1_bt.MouseEnter ToolTip1.SetToolTip(Me.申請1_bt, "資料存檔") End Sub Private Sub Button3_MouseEnter(sender As Object, e As EventArgs) Handles Button3.MouseEnter ToolTip1.SetToolTip(Me.Button3, "儲存列印資料") End Sub Private Sub Button1_MouseEnter(sender As Object, e As EventArgs) Handles Button1.MouseEnter ToolTip1.SetToolTip(Me.Button1, "編輯列印資料") End Sub Private Sub 匯出EXCEL_bt_Click(sender As Object, e As EventArgs) Handles 匯出EXCEL_bt.Click xlApp = CType(CreateObject("Excel.Application"), Microsoft.Office.Interop.Excel.Application) xlApp.Visible = True xlApp.DisplayAlerts = True xlApp.Application.WindowState = xlMaximized xlBook = xlApp.Workbooks.Add xlSheet = NewMethod(xlBook) xlBook.Activate() xlSheet.Activate() If 車廠型態 = True Then xlSheet.Cells(1, 1) = 公司名稱.Text xlSheet.Cells(2, 1) = "單號 " : xlSheet.Cells(2, 2) = 單號_tb.Text xlSheet.Cells(2, 4) = "廠牌 " : xlSheet.Cells(2, 5) = 廠牌_tb.Text : xlSheet.Cells(3, 1) = "年份型式" xlSheet.Cells(3, 2) = 年分_tb.Text : xlSheet.Cells(3, 4) = "引擎號碼" : xlSheet.Cells(3, 5) = 引擎_tb.Text Dim currentDate As String = 買入日期_dtp.Text If currentDate.Contains("年") And currentDate.Contains("月") And currentDate.Contains("日") Then End If xlSheet.Cells(4, 1) = "買入日期 " : xlSheet.Cells(4, 2) = currentDate : xlSheet.Cells(4, 3) = "牌照號碼" xlSheet.Cells(4, 4) = 買入牌照號碼_tb.Text : xlSheet.Cells(4, 5) = "顏色" : xlSheet.Cells(4, 6) = 買入顏色_tb.Text xlSheet.Cells(5, 1) = "車主名稱 " : xlSheet.Cells(5, 2) = 買入車主名稱_tb.Text Dim phoneNumber1 As String = 買入車主電話_tb.Text xlSheet.Cells(5, 4) = "電話 " : xlSheet.Cells(5, 5) = "'" & phoneNumber1 xlSheet.Cells(6, 1) = "地址 " : xlSheet.Cells(6, 2) = 買入車主地址_tb.Text xlSheet.Cells(7, 1) = "進價 " : xlSheet.Cells(7, 2) = 進價_tb.Text xlSheet.Cells(7, 4) = "經手人 " : xlSheet.Cells(7, 5) = 買入經手人_tb.Text xlSheet.Cells(8, 1) = "各項支出名稱 " : xlSheet.Cells(8, 3) = "數量 " xlSheet.Cells(8, 4) = "金額 " : xlSheet.Cells(8, 5) = "備註 " For i As Integer = 0 To 明細表_dgv.Rows.Count - 1 xlSheet.Cells(i + 9, 1) = 明細表_dgv.Rows(i).Cells("各項支出名稱").Value : xlSheet.Cells(i + 9, 3) = 明細表_dgv.Rows(i).Cells("數量").Value Dim value As Double = Convert.ToDouble(明細表_dgv.Rows(i).Cells("總售價").Value) Dim formattedValue As String = value.ToString("#,##0") xlSheet.Cells(i + 9, 4) = formattedValue : xlSheet.Cells(i + 9, 5) = 明細表_dgv.Rows(i).Cells("備註").Value N2 = 10 + i Next i xlSheet.Cells(N2 + 1, 1) = "物料總支出 " : xlSheet.Cells(N2 + 1, 2) = 支出合計_tb.Text xlSheet.Cells(N2 + 1, 4) = "物料總成本 " : xlSheet.Cells(N2 + 1, 5) = 總成本_tb.Text xlSheet.Cells(N2 + 2, 1) = "賣出日期 " : xlSheet.Cells(N2 + 2, 2) = 賣出日期_dtp.Text : xlSheet.Cells(N2 + 2, 3) = "牌照號碼" xlSheet.Cells(N2 + 2, 4) = 賣出牌照號碼_tb.Text : xlSheet.Cells(N2 + 2, 5) = "顏色" : xlSheet.Cells(N2 + 2, 6) = 賣出顏色_tb.Text xlSheet.Cells(N2 + 3, 1) = "車主名稱 " : xlSheet.Cells(N2 + 3, 2) = 賣出車主名稱_tb.Text Dim phoneNumber2 As String = 賣出車主電話_tb.Text xlSheet.Cells(N2 + 3, 4) = "電話 " : xlSheet.Cells(N2 + 3, 5) = "'" & phoneNumber2 xlSheet.Cells(N2 + 4, 1) = "地址 " : xlSheet.Cells(N2 + 4, 2) = 賣出車主地址_tb.Text xlSheet.Cells(N2 + 5, 1) = "售價 " : xlSheet.Cells(N2 + 5, 2) = 售價_tb.Text xlSheet.Cells(N2 + 5, 4) = "經手人 " : xlSheet.Cells(N2 + 5, 5) = 賣出經手人_tb.Text xlSheet.Cells(N2 + 6, 1) = "備註 " : xlSheet.Cells(N2 + 6, 2) = 備註_tb.Text xlSheet.Cells(N2 + 7, 1) = "檢測日期 " : xlSheet.Cells(N2 + 7, 2) = 檢測日期_dtp.Text BB(xlApp, xlSheet) '未改 Else xlSheet.Cells(1, 1) = 公司名稱.Text xlSheet.Cells(2, 1) = "結 帳 單" xlSheet.Cells(3, 1) = "出險公司: " & 出險公司_tb.Text xlSheet.Cells(3, 5) = "派修單號: " & 單號_tb.Text xlSheet.Cells(4, 1) = "車主: " & 車主名稱_tb.Text : xlSheet.Cells(4, 3) = "車號: " & 車號_tb.Text xlSheet.Cells(4, 5) = "應驗車日: " & 應驗車日_dtp.Text xlSheet.Cells(4, 7) = "入廠日期: " & 入廠日期_dtp.Text xlSheet.Cells(5, 1) = "地址: " & 地址_tb.Text xlSheet.Cells(5, 5) = "車型: " & 車型_tb.Text xlSheet.Cells(5, 7) = "前期未付: 0" xlSheet.Cells(6, 1) = "電話: " & 電話_tb.Text xlSheet.Cells(6, 3) = "進廠里程: " & 里程_tb.Text & "KM" xlSheet.Cells(6, 5) = "保養預示: " & 保養預示_tb.Text & "KM" xlSheet.Cells(6, 7) = "油表 : E \ | | / F" xlSheet.Cells(7, 1) = "承修項目" : xlSheet.Cells(7, 3) = "工資" xlSheet.Cells(7, 4) = "零件名稱" : xlSheet.Cells(7, 6) = "數量" xlSheet.Cells(7, 7) = "單價" : xlSheet.Cells(7, 8) = "總價" Dim a As Integer = 0 Dim b As Integer = 0 For i As Integer = 0 To 明細表1_dgv.Rows.Count - 1 If 明細表1_dgv.Rows(i).Cells("狀態").Value.ToString = "承修項目" Then xlSheet.Cells(a + 8, 1) = 明細表1_dgv.Rows(i).Cells("各項支出名稱").Value Dim value1 As Double = Convert.ToDouble(明細表1_dgv.Rows(i).Cells("總售價").Value) Dim formattedValue1 As String = value1.ToString("#,##0") xlSheet.Cells(a + 8, 3) = formattedValue1 a += 1 Else xlSheet.Cells(b + 8, 4) = 明細表1_dgv.Rows(i).Cells("各項支出名稱").Value xlSheet.Cells(b + 8, 9) = 明細表1_dgv.Rows(i).Cells("各項支出名稱").Value Dim value1 As Double = Convert.ToDouble(明細表1_dgv.Rows(i).Cells("數量").Value) Dim formattedValue1 As String = value1.ToString("F2") xlSheet.Cells(b + 8, 6) = "'" & formattedValue1 Dim value2 As Double = Convert.ToDouble(明細表1_dgv.Rows(i).Cells("售價").Value) Dim formattedValue2 As String = value2.ToString("#,##0") xlSheet.Cells(b + 8, 7) = formattedValue2 Dim value3 As Double = Convert.ToDouble(明細表1_dgv.Rows(i).Cells("總售價").Value) Dim formattedValue3 As String = value3.ToString("#,##0") xlSheet.Cells(b + 8, 8) = formattedValue3 b += 1 End If N2 = i + 8 Next i xlSheet.Cells(N2 + 1, 1) = "工資 " : xlSheet.Cells(N2 + 1, 2) = 工資_tb.Text xlSheet.Cells(N2 + 1, 3) = "零件 " : xlSheet.Cells(N2 + 1, 4) = 零件_tb.Text xlSheet.Cells(N2 + 1, 5) = "總計 " : xlSheet.Cells(N2 + 1, 6) = 總計_tb.Text xlSheet.Cells(N2 + 2, 1) = "稅金5% " : xlSheet.Cells(N2 + 2, 2) = 稅金_tb.Text : xlSheet.Cells(N2 + 2, 3) = "信用卡" xlSheet.Cells(N2 + 2, 4) = 信用卡_tb.Text : xlSheet.Cells(N2 + 2, 5) = "客戶簽名" xlSheet.Cells(N2 + 3, 1) = "應收合計 " : xlSheet.Cells(N2 + 3, 2) = 應收合計_tb.Text xlSheet.Cells(N2 + 3, 3) = "賒帳 " : xlSheet.Cells(N2 + 3, 4) = 賒帳_tb.Text xlSheet.Cells(N2 + 4, 1) = "支票 " : xlSheet.Cells(N2 + 4, 2) = 支票_tb.Text xlSheet.Cells(N2 + 4, 3) = "現金 " : xlSheet.Cells(N2 + 4, 4) = 現金_tb.Text xlSheet.Cells(N2 + 5, 1) = 註解1_tb.Text : xlSheet.Cells(N2 + 5, 6) = 註解2_tb.Text xlSheet.Cells(N2 + 6, 1) = 註解3_tb.Text BB1(xlApp, xlSheet) End If xlApp.Sheets(2).Delete : xlSheet.PageSetup.PrintArea = "" '----轉成PDF----- Dim pdfFolderPath As String = Path.Combine(System.Windows.Forms.Application.StartupPath, "pdf") If Not Directory.Exists(pdfFolderPath) Then Directory.CreateDirectory(pdfFolderPath) End If Dim pdfFilePath As String = Path.Combine(pdfFolderPath, 單號_tb.Text & "-結帳單.pdf") xlBook.Sheets(1).ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, pdfFilePath, XlFixedFormatQuality.xlQualityStandard, True) '-------- xlApp.Cells.Select() : xlApp.Application.WindowState = xlMinimized : xlBook.Close(False) Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet) Runtime.InteropServices.Marshal.ReleaseComObject(xlBook) Runtime.InteropServices.Marshal.ReleaseComObject(xlApp) xlApp.Quit() : xlSheet = Nothing : xlBook = Nothing : xlApp = Nothing : GC.Collect() Try Dim chromePath As String = "C:\Program Files\Google\Chrome\Application\chrome.exe" If System.IO.File.Exists(chromePath) Then Dim process As New Process() process.StartInfo.FileName = "chrome" process.StartInfo.Arguments = """" & pdfFilePath & """" process.Start() Else : Dim edgePath As String = "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" If System.IO.File.Exists(edgePath) Then Dim process As New Process() process.StartInfo.FileName = "msedge" process.StartInfo.Arguments = """" & pdfFilePath & """" process.Start() Else Process.Start(pdfFilePath) End If End If Catch ex As Exception MsgBox("以存檔至桌面 。" & vbCrLf & "檔案名稱:" & 單號_tb.Text & "-結帳單.pdf") End Try End Sub Private Sub BB(ByVal myExcel As Microsoft.Office.Interop.Excel.Application, ByVal xlSheet As Microsoft.Office.Interop.Excel.Worksheet) xlSheet.Cells.Select() With myExcel.Selection.Font .Name = "微軟正黑體" .Size = 12 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ThemeColor = xlThemeColorLight1 .TintAndShade = 0 .ThemeFont = xlThemeFontNone End With 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.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:F1").Select() With myExcel.Selection.Font .Name = "微軟正黑體" .Size = 20 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ThemeColor = xlThemeColorLight1 .TintAndShade = 0 .ThemeFont = xlThemeFontNone End With xlSheet.Columns("A:A").ColumnWidth = 15.5 xlSheet.Columns("B:B").ColumnWidth = 15.5 xlSheet.Columns("C:C").ColumnWidth = 15.5 xlSheet.Columns("D:D").ColumnWidth = 15.5 xlSheet.Columns("E:E").ColumnWidth = 15.5 xlSheet.Columns("F:F").ColumnWidth = 15.5 xlSheet.Range("A1:F1").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("B2:C2").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("E2:F2").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("B3:C3").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("E3:F3").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("B5:C5").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("E5:F5").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("B6:F6").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("B7:C7").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("E7:F7").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("A8:B8").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("E8:F8").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 For i As Integer = 9 To N2 - 1 xlSheet.Range("A" & i & ":B" & i).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("E" & i & ":F" & i).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 Next i xlSheet.Range("A" & N2 & ":F" & N2).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("B" & N2 + 1 & ":C" & N2 + 1).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("E" & N2 + 1 & ":F" & N2 + 1).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("B" & N2 + 3 & ":C" & N2 + 3).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("E" & N2 + 3 & ":F" & N2 + 3).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("B" & N2 + 4 & ":F" & N2 + 4).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("B" & N2 + 5 & ":C" & N2 + 5).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("E" & N2 + 5 & ":F" & N2 + 5).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("B" & N2 + 6 & ":F" & N2 + 6).Select() With myExcel.Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .WrapText = True .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge xlSheet.Range("B" & N2 + 7 & ":F" & N2 + 7).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 For i = 1 To N2 + 6 xlSheet.Rows(i).RowHeight = xlSheet.Rows(i).RowHeight + 5 Next i xlSheet.Rows(N2 + 6).RowHeight = xlSheet.Rows(N2 + 6).RowHeight + 20 xlSheet.Rows(N2 + 7).RowHeight = xlSheet.Rows(N2 + 7).RowHeight + 5 myExcel.Application.PrintCommunication = False With myExcel.ActiveSheet.PageSetup .PrintTitleRows = "" .PrintTitleColumns = "" End With myExcel.Application.PrintCommunication = True myExcel.ActiveSheet.PageSetup.PrintArea = "" myExcel.Application.PrintCommunication = False With myExcel.ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "" .RightHeader = "" .LeftFooter = "" .CenterFooter = "" .RightFooter = "" .LeftMargin = myExcel.Application.InchesToPoints(0.25) .RightMargin = myExcel.Application.InchesToPoints(0.25) .TopMargin = myExcel.Application.InchesToPoints(0.75) .BottomMargin = myExcel.Application.InchesToPoints(0.75) .HeaderMargin = myExcel.Application.InchesToPoints(0.3) .FooterMargin = myExcel.Application.InchesToPoints(0.3) .PrintHeadings = False .PrintGridlines = False .CenterHorizontally = False .CenterVertically = False .Draft = False .FirstPageNumber = xlAutomatic .BlackAndWhite = False .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = False .OddAndEvenPagesHeaderFooter = False .DifferentFirstPageHeaderFooter = False .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True .EvenPage.LeftHeader.Text = "" .EvenPage.CenterHeader.Text = "" .EvenPage.RightHeader.Text = "" .EvenPage.LeftFooter.Text = "" .EvenPage.CenterFooter.Text = "" .EvenPage.RightFooter.Text = "" .FirstPage.LeftHeader.Text = "" .FirstPage.CenterHeader.Text = "" .FirstPage.RightHeader.Text = "" .FirstPage.LeftFooter.Text = "" .FirstPage.CenterFooter.Text = "" .FirstPage.RightFooter.Text = "" End With myExcel.Application.PrintCommunication = True End Sub Private Sub BB1(ByVal myExcel As Microsoft.Office.Interop.Excel.Application, ByVal xlSheet As Microsoft.Office.Interop.Excel.Worksheet) xlSheet.Cells.Select() With myExcel.Selection.Font .Name = "微軟正黑體" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ThemeColor = xlThemeColorLight1 .TintAndShade = 0 .ThemeFont = xlThemeFontNone End With xlSheet.Range("A4:H" & N2 + 6).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:H1").Select() 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("A2:H2").Select() With myExcel.Selection.Font .Name = "微軟正黑體" .Size = 20 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ThemeColor = xlThemeColorLight1 .TintAndShade = 0 .ThemeFont = xlThemeFontNone End With xlSheet.Columns("A:A").ColumnWidth = 14 xlSheet.Columns("B:B").ColumnWidth = 14 xlSheet.Columns("C:C").ColumnWidth = 10 xlSheet.Columns("D:D").ColumnWidth = 13 xlSheet.Columns("E:E").ColumnWidth = 13 xlSheet.Columns("F:F").ColumnWidth = 10 xlSheet.Columns("G:G").ColumnWidth = 11 xlSheet.Columns("H:H").ColumnWidth = 11 xlSheet.Columns("I:I").ColumnWidth = 25 xlSheet.Rows(N2 + 5 & ":" & N2 + 5).RowHeight = 100 xlSheet.Rows(N2 + 6 & ":" & N2 + 6).RowHeight = 35 xlSheet.Range("I:I").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.Range("A1:H1").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("A2:H2").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 myExcel.Selection.Font.Underline = xlUnderlineStyleSingle xlSheet.Range("A3:D3").Select() With myExcel.Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge xlSheet.Range("E3:H3").Select() With myExcel.Selection .HorizontalAlignment = xlRight .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge xlSheet.Range("A4:B4").Select() With myExcel.Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge xlSheet.Range("C4:D4").Select() With myExcel.Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge xlSheet.Range("E4:F4").Select() With myExcel.Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge xlSheet.Range("G4:H4").Select() With myExcel.Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge xlSheet.Range("A5:D5").Select() With myExcel.Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge xlSheet.Range("E5:F5").Select() With myExcel.Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge xlSheet.Range("G5:H5").Select() With myExcel.Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge xlSheet.Range("A6:B6").Select() With myExcel.Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge xlSheet.Range("C6:D6").Select() With myExcel.Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge xlSheet.Range("E6:F6").Select() With myExcel.Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge xlSheet.Range("G6:H6").Select() With myExcel.Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge xlSheet.Range("A7:B7").Select() With myExcel.Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge xlSheet.Range("D7:E7").Select() With myExcel.Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge For i As Integer = 8 To N2 xlSheet.Range("A" & i & ":B" & i).Select() With myExcel.Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge xlSheet.Range("D" & i & ":E" & i).Select() With myExcel.Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlCenter .WrapText = True .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge xlSheet.Rows(i & ":" & i).EntireRow.AutoFit Next i xlSheet.Range("F8:F" & N2).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("F" & N2 + 1 & ":H" & N2 + 1).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("E" & N2 + 2 & ":H" & N2 + 2).Select() With myExcel.Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge xlSheet.Range("E" & N2 + 3 & ":H" & N2 + 4).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("A" & N2 + 5 & ":E" & N2 + 5).Select() With myExcel.Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlCenter .WrapText = True .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge xlSheet.Range("F" & N2 + 5 & ":H" & N2 + 5).Select() With myExcel.Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlCenter .WrapText = True .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge xlSheet.Range("A" & N2 + 6 & ":H" & N2 + 6).Select() With myExcel.Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlCenter .WrapText = True .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With myExcel.Selection.Merge xlSheet.Range("A7:B7,C7,D7:E7,F7,G7,H7,A" & N2 + 1 & ",A" & N2 + 2 & ",A" & N2 + 3 & ",A" & N2 + 4 & ",C" & N2 + 1 & ",C" & N2 + 2 & ",C" & N2 + 3 & ",C" & N2 + 4 & ",E" & N2 + 1 & ",E" & N2 + 2 & ":H" & N2 + 2).Select() With myExcel.Selection .HorizontalAlignment = xlDistributed .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .ShrinkToFit = False .ReadingOrder = xlContext End With xlSheet.Columns("I:I").ColumnWidth = 0 myExcel.Application.PrintCommunication = False With myExcel.ActiveSheet.PageSetup .PrintTitleRows = "" .PrintTitleColumns = "" End With myExcel.Application.PrintCommunication = True myExcel.ActiveSheet.PageSetup.PrintArea = "" myExcel.Application.PrintCommunication = False With myExcel.ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "" .RightHeader = "" .LeftFooter = "" .CenterFooter = "" .RightFooter = "" .LeftMargin = myExcel.Application.InchesToPoints(0.25) .RightMargin = myExcel.Application.InchesToPoints(0.25) .TopMargin = myExcel.Application.InchesToPoints(0.75) .BottomMargin = myExcel.Application.InchesToPoints(0.75) .HeaderMargin = myExcel.Application.InchesToPoints(0.3) .FooterMargin = myExcel.Application.InchesToPoints(0.3) .PrintHeadings = False .PrintGridlines = False .CenterHorizontally = False .CenterVertically = False .Draft = False .FirstPageNumber = xlAutomatic .BlackAndWhite = False .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = False .OddAndEvenPagesHeaderFooter = False .DifferentFirstPageHeaderFooter = False .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True .EvenPage.LeftHeader.Text = "" .EvenPage.CenterHeader.Text = "" .EvenPage.RightHeader.Text = "" .EvenPage.LeftFooter.Text = "" .EvenPage.CenterFooter.Text = "" .EvenPage.RightFooter.Text = "" .FirstPage.LeftHeader.Text = "" .FirstPage.CenterHeader.Text = "" .FirstPage.RightHeader.Text = "" .FirstPage.LeftFooter.Text = "" .FirstPage.CenterFooter.Text = "" .FirstPage.RightFooter.Text = "" End With myExcel.Application.PrintCommunication = True End Sub Private Shared Function NewMethod(xlBook As Microsoft.Office.Interop.Excel.Workbook) As Microsoft.Office.Interop.Excel.Worksheet Return CType(xlBook.Worksheets.Add, Microsoft.Office.Interop.Excel.Worksheet) End Function End Class