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