Nenhuma descrição
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

合約報價單審核.vb 171KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844
  1. Imports System.IO
  2. Imports Microsoft.Office.Interop.Excel.XlUnderlineStyle
  3. Imports Microsoft.Office.Interop.Excel.Constants
  4. Imports Microsoft.Office.Interop.Excel.XlBordersIndex
  5. Imports Microsoft.Office.Interop.Excel.XlLineStyle
  6. Imports Microsoft.Office.Interop.Excel.XlBorderWeight
  7. Imports Microsoft.Office.Interop.Excel.XlThemeFont
  8. Imports Microsoft.Office.Interop.Excel.XlThemeColor
  9. Imports Microsoft.Office.Interop.Excel.XlWindowState
  10. Imports Microsoft.Office.Interop.Excel
  11. Public Class 合約報價單審核
  12. ReadOnly ds4, ds5, ds6, ds7, ds8, ds9, ds10, ds11, ds12, ds13, ds14, ds15, ds16 As New DataSet
  13. Dim KKK2, 物料規格, ESTR, 目前選擇, 條件選擇 As String
  14. Dim EDR, A1, A2, A3, B2, B3, AA1, AA2, AA3, BB2, BB3, OX1, OY1, OY2, 選取位置, NUM1, DGV_X, DGV_Y, XN1, XN2 As Integer
  15. Dim 啟動運算, 已超出, 放大, 不再動作1, 簽回檔 As Boolean
  16. Dim xlApp As Application : Dim xlBook As Workbook : Dim xlSheet As Worksheet
  17. Private Sub Set_合約報價係數()
  18. 報價係數_dgv.DataSource = Nothing : ds16.Clear()
  19. 報價係數_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  20. 報價係數_dgv.ColumnHeadersHeight = 25 : 報價係數_dgv.AllowUserToAddRows = False
  21. SQL_合約報價係數()
  22. da.Fill(ds16) : 報價係數_dgv.DataSource = ds16.Tables(0) : conn.Close()
  23. 報價係數_dgv.Columns(0).Visible = False : 報價係數_dgv.Columns(1).Visible = False : 報價係數_dgv.Columns(2).FillWeight = 80
  24. 報價係數_dgv.Columns(3).FillWeight = 40 : 報價係數_dgv.Columns(4).FillWeight = 30
  25. 報價係數_dgv.Columns(3).DefaultCellStyle.Format = "#,##0"
  26. 報價係數_dgv.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  27. 報價係數_dgv.Columns(2).ReadOnly = True : 報價係數_dgv.Columns(3).ReadOnly = True : 報價係數_dgv.Columns(4).ReadOnly = True
  28. End Sub
  29. Private Sub Set_合約報價總表()
  30. 報價總表_dgv.DataSource = Nothing : ds15.Clear()
  31. 報價總表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  32. 報價總表_dgv.ColumnHeadersHeight = 40 : 報價總表_dgv.AllowUserToAddRows = False : 報價總表_dgv.RowTemplate.Height = 45
  33. 報價總表_dgv.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True
  34. SQL_合約報價總表() : 啟動運算 = False
  35. da.Fill(ds15) : 報價總表_dgv.DataSource = ds15.Tables(0) : conn.Close()
  36. 報價總表_dgv.Columns(0).Visible = False : 報價總表_dgv.Columns(8).Visible = False
  37. 報價總表_dgv.Columns(0).FillWeight = 50 : 報價總表_dgv.Columns(1).FillWeight = 50 : 報價總表_dgv.Columns(2).FillWeight = 210
  38. 報價總表_dgv.Columns(3).FillWeight = 50 : 報價總表_dgv.Columns(4).FillWeight = 50 : 報價總表_dgv.Columns(5).FillWeight = 80
  39. 報價總表_dgv.Columns(6).FillWeight = 80 : 報價總表_dgv.Columns(7).FillWeight = 90 : 報價總表_dgv.Columns(9).FillWeight = 50
  40. For i As Integer = 4 To 6 : 報價總表_dgv.Columns(i).DefaultCellStyle.Format = "#,##0" : Next
  41. For i As Integer = 4 To 6 : 報價總表_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : Next
  42. For i As Integer = 0 To 7 : 報價總表_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter : Next
  43. 報價總表_dgv.Columns(1).ReadOnly = True : 報價總表_dgv.Columns(2).ReadOnly = True : 報價總表_dgv.Columns(6).ReadOnly = True
  44. 報價總表_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  45. 啟動運算 = True : 報價總表_dgv_自動計算()
  46. If DGV位置1.Value >= 報價總表_dgv.Rows.Count Then : DGV位置1.Value = 報價總表_dgv.Rows.Count - 1 : End If
  47. If DGV位置1.Value > 0 Then : 報價總表_dgv.CurrentCell = 報價總表_dgv.Rows(DGV位置1.Value).Cells(1) : End If
  48. End Sub
  49. Private Sub Set_合約報價明細表格式()
  50. 報價明細表_dgv.Columns(0).FillWeight = 45 : 報價明細表_dgv.Columns(1).FillWeight = 45 : 報價明細表_dgv.Columns(2).FillWeight = 200
  51. 報價明細表_dgv.Columns(3).FillWeight = 45 : 報價明細表_dgv.Columns(4).FillWeight = 45 : 報價明細表_dgv.Columns(5).FillWeight = 100
  52. 報價明細表_dgv.Columns(6).FillWeight = 100 : 報價明細表_dgv.Columns(7).FillWeight = 70 : 報價明細表_dgv.Columns(8).FillWeight = 50
  53. 報價明細表_dgv.Columns(34).FillWeight = 80 : 報價明細表_dgv.Columns(33).FillWeight = 40
  54. 報價明細表_dgv.Columns(42).FillWeight = 20 : 報價明細表_dgv.Columns(43).FillWeight = 20 : 報價明細表_dgv.Columns(44).FillWeight = 20
  55. 報價明細表_dgv.Columns(45).FillWeight = 20 : 報價明細表_dgv.Columns(46).FillWeight = 20 : 報價明細表_dgv.Columns(47).FillWeight = 20
  56. 報價明細表_dgv.Columns(48).FillWeight = 20 : 報價明細表_dgv.Columns(49).FillWeight = 20 : 報價明細表_dgv.Columns(50).FillWeight = 20
  57. If 利潤表_ch.Checked = False Then : 報價明細表_dgv.Columns("S").FillWeight = 20 : Else : 報價明細表_dgv.Columns("S").FillWeight = 40 : End If
  58. End Sub
  59. Private Sub Set_合約報價明細表()
  60. 報價明細表_dgv.DataSource = Nothing : ds14.Clear()
  61. 報價明細表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  62. 報價明細表_dgv.ColumnHeadersHeight = 40 : 報價明細表_dgv.AllowUserToAddRows = False : 報價明細表_dgv.RowTemplate.Height = 45
  63. 報價明細表_dgv.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True
  64. PA = 合約編號_tb.Text : SQL_合約報價明細表()
  65. da.Fill(ds14) : 報價明細表_dgv.DataSource = ds14.Tables(0)
  66. Set_合約報價明細表格式()
  67. Set_報價係數_dgv_下拉式清單1()
  68. For i As Integer = 4 To 6 : 報價明細表_dgv.Columns(i).DefaultCellStyle.Format = "#,##0" : Next
  69. For i As Integer = 9 To 17 : 報價明細表_dgv.Columns(i).DefaultCellStyle.Format = "#,##0" : Next
  70. 報價明細表_dgv.Columns(8).DefaultCellStyle.Format = "#,##0.00"
  71. For i As Integer = 3 To 6 : 報價明細表_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : Next
  72. For i As Integer = 8 To 17 : 報價明細表_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : Next
  73. For i As Integer = 10 To 12 : 報價明細表_dgv.Columns(i).DefaultCellStyle.BackColor = Color.MistyRose : Next
  74. For i As Integer = 14 To 16 : 報價明細表_dgv.Columns(i).DefaultCellStyle.BackColor = Color.MistyRose : Next
  75. If 利潤表_ch.Checked = True Then : Set_報價明細表_dgv_利潤表開啟() : Else : Set_報價明細表_dgv_利潤表關閉() : End If
  76. For I As Integer = 18 To 58 : 報價明細表_dgv.Columns(I).Visible = False : Next
  77. 報價明細表_dgv.Columns(0).Visible = False
  78. 報價明細表_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  79. 報價明細表_dgv.Columns(1).ReadOnly = True : 報價明細表_dgv.Columns(2).ReadOnly = True : 報價明細表_dgv.Columns(4).ReadOnly = True : 報價明細表_dgv.Columns(5).ReadOnly = True
  80. 報價明細表_dgv.Columns(6).ReadOnly = True : 報價明細表_dgv.Columns(10).ReadOnly = True : 報價明細表_dgv.Columns(11).ReadOnly = True : 報價明細表_dgv.Columns(12).ReadOnly = True
  81. 報價明細表_dgv.Columns(14).ReadOnly = True : 報價明細表_dgv.Columns(15).ReadOnly = True : 報價明細表_dgv.Columns(16).ReadOnly = True : 報價明細表_dgv.Columns(17).ReadOnly = True
  82. 報價明細表_dgv_物料顯示() : 啟動運算 = True : 報價明細表_dgv_自動計算()
  83. If DGV位置2.Value >= 報價明細表_dgv.Rows.Count Then : DGV位置2.Value = 報價明細表_dgv.Rows.Count - 1 : End If
  84. If DGV位置2.Value > 0 Then : 報價明細表_dgv.CurrentCell = 報價明細表_dgv.Rows(DGV位置2.Value).Cells(1) : End If
  85. End Sub
  86. Private Sub Set_報價係數_dgv_下拉式清單1()
  87. Dim Col As New DataGridViewComboBoxColumn With {
  88. .FillWeight = 80,
  89. .DataPropertyName = "材料係數"
  90. }
  91. SQL_合約報價係數_下拉()
  92. Col.Items.Clear()
  93. While (dr.Read()) : Col.Items.Add(dr("項目")) : End While : conn.Close()
  94. Col.HeaderText = "係數" : Col.Name = "係數"
  95. 報價明細表_dgv.Columns.Insert(59, Col)
  96. End Sub
  97. Private Sub Set_報價明細表_dgv_利潤表關閉()
  98. If 報價明細表_dgv.Rows.Count > 0 Then
  99. 利潤表_ch.Checked = False : For i As Integer = 8 To 17 : 報價明細表_dgv.Columns(i).Visible = False : Next : 報價明細表_dgv.Columns(33).Visible = False
  100. End If
  101. End Sub
  102. Private Sub Set_報價明細表_dgv_利潤表開啟()
  103. If 報價明細表_dgv.Rows.Count > 0 Then
  104. For I As Integer = 43 To 50 : 報價明細表_dgv.Columns(I).Visible = False : Next
  105. 報價明細表_dgv.Columns(8).Visible = True : 報價明細表_dgv.Columns(17).Visible = True : 報價明細表_dgv.Columns(33).Visible = True : 利潤表_ch.Checked = True
  106. If 工資_ch.Checked = True Then : For i As Integer = 9 To 12 : 報價明細表_dgv.Columns(i).Visible = True : Next
  107. Else : For i As Integer = 9 To 12 : 報價明細表_dgv.Columns(i).Visible = False : Next : End If
  108. If 材料_ch.Checked = True Then : For i As Integer = 13 To 16 : 報價明細表_dgv.Columns(i).Visible = True : Next
  109. Else : For i As Integer = 13 To 16 : 報價明細表_dgv.Columns(i).Visible = False : Next : End If
  110. End If
  111. End Sub
  112. Private Sub Set_合約範例()
  113. 範例文本_dgv.DataSource = Nothing : ds12.Clear()
  114. 範例文本_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  115. 範例文本_dgv.ColumnHeadersHeight = 25 : 範例文本_dgv.AllowUserToAddRows = False
  116. SQL_合約清單_範本()
  117. da.Fill(ds12) : 範例文本_dgv.DataSource = ds12.Tables(0) : conn.Close()
  118. End Sub
  119. Private Sub Set_合約清單()
  120. 合約_dgv.DataSource = Nothing : ds6.Clear()
  121. 合約_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  122. 合約_dgv.ColumnHeadersHeight = 25 : 合約_dgv.AllowUserToAddRows = False
  123. PA = 關鍵字搜尋_tb.Text : PA46 = 合約編號1_cb.Text : PA47 = 工程期1_ch.Text
  124. SQL_合約清單_報價放行用()
  125. da.Fill(ds6) : 合約_dgv.DataSource = ds6.Tables(0) : conn.Close()
  126. 合約_dgv.Columns(0).FillWeight = 130 : 合約_dgv.Columns("工程名稱_中").FillWeight = 280 : 合約_dgv.Columns("簽回").FillWeight = 40
  127. For i As Integer = 1 To 31 : 合約_dgv.Columns(i).Visible = False : Next
  128. For i As Integer = 0 To 合約_dgv.Rows.Count - 1
  129. If IsDBNull(合約_dgv("合約停止", i).Value) = True Then : 合約_dgv("合約停止", i).Value = False : End If
  130. If IsDBNull(合約_dgv("簽回", i).Value) = True Then : 合約_dgv("簽回", i).Value = False : End If
  131. Next
  132. If 放大 = True Then
  133. 合約_dgv.Columns("工程名稱_中").Visible = True
  134. Else
  135. 合約_dgv.Columns("工程名稱_中").Visible = False
  136. End If
  137. End Sub
  138. Private Sub Set_合約試算控制表_查詢()
  139. 試算控制表_dgv.DataSource = Nothing : ds5.Clear()
  140. 試算控制表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  141. 試算控制表_dgv.ColumnHeadersHeight = 25 : 試算控制表_dgv.AllowUserToAddRows = False
  142. SQL_合約試算控制表_查詢()
  143. da.Fill(ds5) : 試算控制表_dgv.DataSource = ds5.Tables(0) : conn.Close()
  144. For i As Integer = 0 To 40 : 合約試算表頭(i) = i & "." : Next
  145. If 試算控制表_dgv.Rows.Count > 0 Then : For i As Integer = 0 To 試算控制表_dgv.Rows.Count - 1 : 合約試算表頭(i + 1) = 試算控制表_dgv("樓層/迴路", i).Value.ToString : Next : End If
  146. Set_試算明細表()
  147. End Sub
  148. Private Sub Set_試算明細表()
  149. Dim DS7 As New DataSet
  150. 試算表_dgv.DataSource = Nothing : DS7.Clear()
  151. 試算表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  152. 試算表_dgv.ColumnHeadersHeight = 120 : 試算表_dgv.AllowUserToAddRows = False : 試算表_dgv.RowTemplate.Height = 45
  153. SQL_合約試算明細表_查詢()
  154. da.Fill(DS7) : 試算表_dgv.DataSource = DS7.Tables(0) : conn.Close()
  155. 試算表_dgv.Columns(0).Frozen = True : 試算表_dgv.Columns(1).Frozen = True : 試算表_dgv.Columns(2).Frozen = True
  156. 試算表_dgv.Columns(0).Visible = False
  157. For I As Integer = 45 To 54 : 試算表_dgv.Columns(I).Visible = False : Next
  158. 試算表_dgv.Columns(1).Width = 100 : 試算表_dgv.Columns(2).Width = 150 : 試算表_dgv.Columns(43).Width = 30 : 試算表_dgv.Columns(44).Width = 50
  159. 試算表_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 試算表_dgv.Columns(44).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  160. 試算表_dgv.Columns(44).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  161. 試算表_dgv.Columns(44).DefaultCellStyle.Format = "#,##0"
  162. If 直接輸入_ch.Checked = False And 使用計算機_ch.Checked = True Then : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnF2
  163. Else : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnEnter : End If
  164. 試算表_dgv.Columns(1).ReadOnly = True : 試算表_dgv.Columns(2).ReadOnly = True : 試算表_dgv.Columns(44).ReadOnly = True
  165. Dim 開始 As Integer = 3 : Dim 結束 As Integer = 42
  166. For I As Integer = 開始 To 結束 : 試算表_dgv.Columns(I).Width = 80
  167. 試算表_dgv.Columns(I).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  168. 試算表_dgv.Columns(I).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  169. 試算表_dgv.Columns(I).DefaultCellStyle.Format = "#,##0.0"
  170. Next
  171. Dim 表頭數 As Integer = 試算控制表_dgv.Rows.Count
  172. If 表頭數 = 0 Then
  173. For I As Integer = 開始 To 結束 : 試算表_dgv.Columns(I).Visible = False : Next
  174. ElseIf 表頭數 > 0 Then
  175. For I As Integer = 開始 To 表頭數 + 2 : 試算表_dgv.Columns(I).Visible = True : Next
  176. For I As Integer = 表頭數 + 3 To 結束 : 試算表_dgv.Columns(I).Visible = False : Next
  177. End If
  178. For i As Integer = 0 To 試算表_dgv.Rows.Count - 1
  179. '-------------------------規格合併呈現----------------------------------------------------------------------------------------------------------------------------------------
  180. If i = 0 Then
  181. PA3 = 試算表_dgv.Rows(i).Cells("規格庫抬頭指定").Value : SQL_規格庫抬頭讀取()
  182. If dr.Read() Then
  183. AAA1 = dr("A1") : AAA2 = dr("A2") : AAA3 = dr("A3") : AAA4 = dr("A4") : AAA5 = dr("A5") : AAA6 = dr("A6") : AAA7 = dr("A7") : AAA8 = dr("A8")
  184. End If : conn.Close()
  185. Else
  186. If 試算表_dgv.Rows(i).Cells("規格庫抬頭指定").Value.ToString <> 試算表_dgv.Rows(i - 1).Cells("規格庫抬頭指定").Value.ToString Then
  187. PA3 = 試算表_dgv.Rows(i).Cells("規格庫抬頭指定").Value : SQL_規格庫抬頭讀取()
  188. If dr.Read() Then
  189. AAA1 = dr("A1") : AAA2 = dr("A2") : AAA3 = dr("A3") : AAA4 = dr("A4") : AAA5 = dr("A5") : AAA6 = dr("A6") : AAA7 = dr("A7") : AAA8 = dr("A8")
  190. End If : conn.Close()
  191. End If
  192. End If
  193. Dim ZA1, ZA2, ZA3, ZA4, ZA5, ZA6, ZA7, ZA8 As String : 物料規格 = ""
  194. If 詳細資料3_ch.Checked = True Then
  195. If 試算表_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then
  196. ZA1 = AAA1 & "=" & 試算表_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If
  197. If 試算表_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then : ZA2 = AAA2 & "=" & 試算表_dgv.Rows(i).Cells("A2").Value
  198. If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If
  199. If 試算表_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then : ZA3 = AAA3 & "=" & 試算表_dgv.Rows(i).Cells("A3").Value
  200. If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If
  201. If 試算表_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then : ZA4 = AAA4 & "=" & 試算表_dgv.Rows(i).Cells("A4").Value
  202. If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If
  203. If 試算表_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then : ZA5 = AAA5 & "=" & 試算表_dgv.Rows(i).Cells("A5").Value
  204. If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If
  205. If 試算表_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then : ZA6 = AAA6 & "=" & 試算表_dgv.Rows(i).Cells("A6").Value
  206. If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If
  207. If 試算表_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then : ZA7 = AAA7 & "=" & 試算表_dgv.Rows(i).Cells("A7").Value
  208. If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If
  209. If 試算表_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then : ZA8 = AAA8 & "=" & 試算表_dgv.Rows(i).Cells("A8").Value
  210. If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If
  211. Else
  212. If 試算表_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then : ZA1 = 試算表_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If
  213. If 試算表_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then
  214. ZA2 = 試算表_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If
  215. If 試算表_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then
  216. ZA3 = 試算表_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If
  217. If 試算表_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then
  218. ZA4 = 試算表_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If
  219. If 試算表_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then
  220. ZA5 = 試算表_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If
  221. If 試算表_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then
  222. ZA6 = 試算表_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If
  223. If 試算表_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then
  224. ZA7 = 試算表_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If
  225. If 試算表_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then
  226. ZA8 = 試算表_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If
  227. End If
  228. 試算表_dgv.Rows(i).Cells("樓層/迴路").Value = 物料規格
  229. Next
  230. End Sub
  231. Private Sub Set_語言()
  232. 語言_dgv.DataSource = Nothing : ds13.Clear()
  233. 語言_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  234. 語言_dgv.ColumnHeadersHeight = 25 : 語言_dgv.AllowUserToAddRows = False
  235. SQL_系統語言導入()
  236. da.Fill(ds13) : 語言_dgv.DataSource = ds13.Tables(0) : conn.Close()
  237. End Sub
  238. Private Sub 語言轉換讀取()
  239. Set_語言() : conn.Close()
  240. For i As Integer = 0 To 語言_dgv.Rows.Count - 1
  241. If 語言_dgv("控件", i).Value.ToString = "物料清單_dgv_單位" Then : 表頭(16) = 語言_dgv("內容", i).Value.ToString : End If
  242. Next
  243. End Sub
  244. Private Sub Set_合約明細1()
  245. 第1期_dgv.DataSource = Nothing : ds7.Clear()
  246. 第1期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  247. 第1期_dgv.ColumnHeadersHeight = 25 : 第1期_dgv.AllowUserToAddRows = False
  248. SQL_合約明細讀取()
  249. da.Fill(ds7) : 第1期_dgv.DataSource = ds7.Tables(0) : conn.Close()
  250. 第1期_dgv.Columns(0).Visible = False : 第1期_dgv.Columns(1).Visible = False : 第1期_dgv.Columns(2).FillWeight = 20 : 第1期_dgv.Columns(3).FillWeight = 140
  251. 第1期_dgv.Columns(4).FillWeight = 20 : 第1期_dgv.Columns(5).FillWeight = 50
  252. 第1期_dgv.Columns(2).ReadOnly = True : 第1期_dgv.Columns(5).ReadOnly = True
  253. 第1期_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  254. 第1期_dgv.Columns(2).DefaultCellStyle.Format = "#,##0" : 第1期_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 第1期_dgv.Columns(5).DefaultCellStyle.Format = "#,##0"
  255. 第1期_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 第1期_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  256. End Sub
  257. Private Sub Set_合約明細2()
  258. 第2期_dgv.DataSource = Nothing : ds8.Clear()
  259. 第2期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  260. 第2期_dgv.ColumnHeadersHeight = 25 : 第2期_dgv.AllowUserToAddRows = False
  261. SQL_合約明細讀取()
  262. da.Fill(ds8) : 第2期_dgv.DataSource = ds8.Tables(0) : conn.Close()
  263. 第2期_dgv.Columns(0).Visible = False : 第2期_dgv.Columns(1).Visible = False : 第2期_dgv.Columns(2).FillWeight = 20 : 第2期_dgv.Columns(3).FillWeight = 140
  264. 第2期_dgv.Columns(4).FillWeight = 20 : 第2期_dgv.Columns(5).FillWeight = 50
  265. 第2期_dgv.Columns(2).ReadOnly = True : 第2期_dgv.Columns(5).ReadOnly = True
  266. 第2期_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  267. 第2期_dgv.Columns(2).DefaultCellStyle.Format = "#,##0" : 第2期_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 第2期_dgv.Columns(5).DefaultCellStyle.Format = "#,##0"
  268. 第2期_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 第2期_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  269. End Sub
  270. Private Sub Set_合約明細3()
  271. 第3期_dgv.DataSource = Nothing : ds9.Clear()
  272. 第3期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  273. 第3期_dgv.ColumnHeadersHeight = 25
  274. 第3期_dgv.AllowUserToAddRows = False
  275. SQL_合約明細讀取()
  276. da.Fill(ds9) : 第3期_dgv.DataSource = ds9.Tables(0) : conn.Close()
  277. 第3期_dgv.Columns(0).Visible = False : 第3期_dgv.Columns(1).Visible = False : 第3期_dgv.Columns(2).FillWeight = 20 : 第3期_dgv.Columns(3).FillWeight = 140
  278. 第3期_dgv.Columns(4).FillWeight = 20 : 第3期_dgv.Columns(5).FillWeight = 50
  279. 第3期_dgv.Columns(2).ReadOnly = True : 第3期_dgv.Columns(5).ReadOnly = True
  280. 第3期_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  281. 第3期_dgv.Columns(2).DefaultCellStyle.Format = "#,##0" : 第3期_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 第3期_dgv.Columns(5).DefaultCellStyle.Format = "#,##0"
  282. 第3期_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 第3期_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  283. End Sub
  284. Private Sub Set_合約明細4()
  285. 第4期_dgv.DataSource = Nothing : ds10.Clear()
  286. 第4期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  287. 第4期_dgv.ColumnHeadersHeight = 25 : 第4期_dgv.AllowUserToAddRows = False
  288. SQL_合約明細讀取()
  289. da.Fill(ds10) : 第4期_dgv.DataSource = ds10.Tables(0) : conn.Close()
  290. 第4期_dgv.Columns(0).Visible = False : 第4期_dgv.Columns(1).Visible = False : 第4期_dgv.Columns(2).FillWeight = 20 : 第4期_dgv.Columns(3).FillWeight = 140
  291. 第4期_dgv.Columns(4).FillWeight = 20 : 第4期_dgv.Columns(5).FillWeight = 50
  292. 第4期_dgv.Columns(2).ReadOnly = True : 第4期_dgv.Columns(5).ReadOnly = True
  293. 第4期_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  294. 第4期_dgv.Columns(2).DefaultCellStyle.Format = "#,##0" : 第4期_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 第4期_dgv.Columns(5).DefaultCellStyle.Format = "#,##0"
  295. 第4期_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 第4期_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  296. End Sub
  297. Private Sub Set_合約明細5()
  298. 第5期_dgv.DataSource = Nothing : ds11.Clear()
  299. 第5期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  300. 第5期_dgv.ColumnHeadersHeight = 25 : 第5期_dgv.AllowUserToAddRows = False
  301. SQL_合約明細讀取()
  302. da.Fill(ds11) : 第5期_dgv.DataSource = ds11.Tables(0) : conn.Close()
  303. 第5期_dgv.Columns(0).Visible = False : 第5期_dgv.Columns(1).Visible = False : 第5期_dgv.Columns(2).FillWeight = 20 : 第5期_dgv.Columns(3).FillWeight = 140
  304. 第5期_dgv.Columns(4).FillWeight = 20 : 第5期_dgv.Columns(5).FillWeight = 50
  305. 第5期_dgv.Columns(2).ReadOnly = True : 第5期_dgv.Columns(5).ReadOnly = True
  306. 第5期_dgv.Columns(2).DefaultCellStyle.Format = "#,##0" : 第5期_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 第5期_dgv.Columns(5).DefaultCellStyle.Format = "#,##0"
  307. 第5期_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 第5期_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  308. End Sub
  309. 'Private Sub 係數表下拉清單1()
  310. ' SQL_合約係數表下拉1() : 係數項目_cb.Items.Clear() : While (dr.Read()) : 係數項目_cb.Items.Add(dr("項目")) : End While : conn.Close()
  311. 'End Sub
  312. 'Private Sub 係數表下拉清單2()
  313. ' SQL_合約係數表下拉2() : 係數單位_cb.Items.Clear() : While (dr.Read()) : 係數單位_cb.Items.Add(dr("單位")) : End While : conn.Close()
  314. 'End Sub
  315. Private Sub 合約試算分下拉清單()
  316. PA = 合約編號_tb.Text : SQL_合約試算分表查詢() : 試算表_cb.Items.Clear() : While (dr.Read()) : 試算表_cb.Items.Add(dr("試算表")) : End While : conn.Close()
  317. End Sub
  318. Private Sub 合約試算控制下拉清單()
  319. PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : SQL_合約試算控制表查詢() : 樓層_迴路_cb.Items.Clear() : While (dr.Read()) : 樓層_迴路_cb.Items.Add(dr("樓層/迴路")) : End While : conn.Close()
  320. End Sub
  321. 'Private Sub 群組碼_cb_語轉_下拉表單資料載入()
  322. ' SQL_群組碼_語轉_下拉清單() : 新群組1_cb.Items.Clear() : While (dr.Read()) : 新群組1_cb.Items.Add(dr("群組")) : End While : conn.Close()
  323. 'End Sub
  324. Private Sub 群組編碼_cb_下拉表單資料載入()
  325. SQL_群組碼_下拉清單() : 群組編碼_cb.Items.Clear() : While (dr.Read()) : 群組編碼_cb.Items.Add(dr("群組碼")) : End While : conn.Close()
  326. End Sub
  327. Private Sub 合約種類下拉清單讀取()
  328. SQL_合約種類讀取() : 合約種類_cb.Items.Clear() : While (dr.Read()) : 合約種類_cb.Items.Add(dr("中")) : End While : conn.Close()
  329. End Sub
  330. Private Sub 客戶名稱下拉清單讀取()
  331. SQL_客戶名稱讀取() : 客戶名稱_tb.Items.Clear() : While (dr.Read()) : 客戶名稱_tb.Items.Add(dr("客戶名稱")) : End While : conn.Close()
  332. End Sub
  333. Private Sub 我司負責人下拉清單讀取()
  334. SQL負責人B讀取() : 負責人_B_cb.Items.Clear() : While (dr.Read()) : 負責人_B_cb.Items.Add(dr("負責人B")) : End While : conn.Close()
  335. End Sub
  336. Private Sub 甲方條件下拉清單讀取()
  337. SQL合約條件讀取() : 合約編號1_cb.Items.Clear() : 合約編號1_cb.Items.Add("") : While (dr.Read()) : 合約編號1_cb.Items.Add(dr("約號甲方")) : End While : conn.Close()
  338. End Sub
  339. Private Sub 預設資料()
  340. 合約種類_cb.Text = "" : 合約種類_tb.Text = "" : 客戶名稱_tb.Text = "" : 負責人_A_cb.Text = ""
  341. 工程地點_tb.Text = "" : 客戶地址_tb.Text = "" : 工程名稱_中_tb.Text = "" : 工程名稱_英_tb.Text = "" : 負責人_B_cb.Text = "" : CH2.Checked = True : 立約日期_dtp.Value = Today()
  342. 我司地址_tb.Text = "Kawasan Industri Terpadu Indonesia China ( KITIC ) Kav. 42 Lantai 4 Desa Nagasari Kec. Serang Baru Kab. Bekasi – Jawa Barat" : 廠區_中文_tb.Text = ""
  343. NUD3.Value = 0 : 工程款1_nud.Value = 30 : 工程款2_nud.Value = 40 : 工程款3_nud.Value = 20 : 工程款4_nud.Value = 5 : 工程款5_nud.Value = 5 : 工期_nud.Value = 180
  344. 最高扣款_英_bt.Text = "5 (five)%." : 逾期_bt.Text = "0.0005% (萬分之五)" : 頁數_bt.Text = "16"
  345. 最高扣款_bt.Text = "5% (百分之五)" : 逾期_英_bt.Text = "0.0005% (null point null null null five percent)"
  346. Set_合約清單() : 合約種類下拉清單讀取() : 客戶名稱下拉清單讀取() : 我司負責人下拉清單讀取()
  347. 合約種類_cb.SelectedIndex = 0
  348. 第1期_dgv.DataSource = Nothing : ds7.Clear() : 第2期_dgv.DataSource = Nothing : ds8.Clear() : 第3期_dgv.DataSource = Nothing : ds9.Clear()
  349. 第4期_dgv.DataSource = Nothing : ds10.Clear() : 第5期_dgv.DataSource = Nothing : ds11.Clear()
  350. End Sub
  351. Private Sub 預設資料1()
  352. 工程地點_tb.Text = "" : 工程名稱_中_tb.Text = "" : 工程名稱_英_tb.Text = "" : 負責人_B_cb.Text = "" : CH2.Checked = True : 立約日期_dtp.Value = Today()
  353. 我司地址_tb.Text = "Kawasan Industri Terpadu Indonesia China ( KITIC ) Kav. 42 Lantai 4 Desa Nagasari Kec. Serang Baru Kab. Bekasi – Jawa Barat" : 廠區_中文_tb.Text = ""
  354. NUD3.Value = 0 : 工程款1_nud.Value = 30 : 工程款2_nud.Value = 40 : 工程款3_nud.Value = 20 : 工程款4_nud.Value = 5 : 工程款5_nud.Value = 5 : 工期_nud.Value = 180
  355. 最末頁_cb.Text = "16" : 最高扣款_英_bt.Text = "5 (five)%." : 逾期_bt.Text = "0.0005% (萬分之五)" : 頁數_bt.Text = "16"
  356. 最高扣款_bt.Text = "5% (百分之五)" : 逾期_英_bt.Text = "0.0005% (null point null null null five percent)"
  357. Set_合約清單() : 合約種類下拉清單讀取() : 客戶名稱下拉清單讀取() : 我司負責人下拉清單讀取()
  358. 合約種類_cb.SelectedIndex = 0
  359. 第1期_dgv.DataSource = Nothing : ds7.Clear() : 第2期_dgv.DataSource = Nothing : ds8.Clear() : 第3期_dgv.DataSource = Nothing : ds9.Clear()
  360. 第4期_dgv.DataSource = Nothing : ds10.Clear() : 第5期_dgv.DataSource = Nothing : ds11.Clear()
  361. End Sub
  362. Private Sub 合約報價單審核_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  363. Me.MdiParent = HX_PGS_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  364. 介面 = "H401" : 語言轉換讀取()
  365. Me.KeyPreview = True
  366. 合約編號2_tb.Enabled = False : 合約編號3_tb.Enabled = False : CH1.Checked = False : CH2.Checked = True : NUD1.Enabled = False : NUD3.Enabled = True
  367. 直接輸入_ch.Checked = True
  368. 使用計算機_ch.Checked = False : SQL2 = ""
  369. If CInt(登入人級別) <= 3 Then : 合約停止_ch.Enabled = True : Else : 合約停止_ch.Enabled = False : End If
  370. 縮放1_bt.PerformClick() : 不再動作1 = True
  371. AA1 = 合約_dgv.Location.X : AA2 = 錨點2.Location.X : BB2 = 空間3.Location.Y : AA3 = 空間3.Size.Width : BB3 = 空間3.Size.Height
  372. OX1 = 報價係數_dgv.Size.Width : OY1 = 報價係數_dgv.Size.Height : OY2 = 報價明細表_dgv.Size.Height
  373. 預估工資總成本_tb.Text = "0" : 預估材料總成本_tb.Text = "0" : 預估工資總報價_tb.Text = "0" : 預估材料總報價_tb.Text = "0" : 預估利潤_tb.Text = "0"
  374. 總成本_tb.Text = "0" : 總報價_tb.Text = "0" : 利潤比1_tb.Text = "0 %" : 利潤比2_tb.Text = "0 %" : 利潤比3_tb.Text = "0 %" : 利潤比4_tb.Text = "0 %"
  375. 合約報價單_Siz()
  376. End Sub
  377. Private Sub 合約報價單_SizeChanged(sender As Object, e As EventArgs) Handles MyBase.SizeChanged
  378. 合約報價單_Siz()
  379. AA1 = 合約_dgv.Location.X : AA2 = 錨點2.Location.X : BB2 = 空間3.Location.Y
  380. If 合約_dgv.Visible = False Then : AA3 = 空間3.Size.Width : BB3 = 空間3.Size.Height : AA3 -= (AA2 - AA1) : End If
  381. End Sub
  382. Private Sub 合約報價單_Siz()
  383. MyModule1.清單字體大小調整()
  384. 合約_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  385. 報價係數_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", HX_PGS_ERP_SYS.字體_NUD.Value)
  386. 報價總表_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", HX_PGS_ERP_SYS.字體_NUD.Value)
  387. 報價明細表_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", HX_PGS_ERP_SYS.字體_NUD.Value)
  388. End Sub
  389. Private Sub 合約報價單_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
  390. Set_合約清單() : 群組編碼_cb_下拉表單資料載入() : 甲方條件下拉清單讀取()
  391. PA = "範本" : Set_合約範例() : 預設資料()
  392. End Sub
  393. Private Sub 合約報價單_Closing(sender As Object, e As EventArgs) Handles MyBase.Closed
  394. HX_PGS_ERP_SYS.WindowState = 0 : MyModule1.虛擬桌面開啟()
  395. End Sub
  396. Private Sub 登入閒置控制_MouseMove(sender As Object, e As EventArgs) Handles MyBase.MouseMove
  397. timeNow = 0 : HX_PGS_ERP_SYS.Timer1.Enabled = False : HX_PGS_ERP_SYS.Timer1.Enabled = True
  398. End Sub
  399. Private Sub 登入閒置控制_KeyPress(sender As Object, e As EventArgs) Handles MyBase.KeyPress
  400. timeNow = 0 : HX_PGS_ERP_SYS.Timer1.Enabled = False : HX_PGS_ERP_SYS.Timer1.Enabled = True
  401. End Sub
  402. Private Sub 合約讀取()
  403. 試算表_cb.Items.Clear() : 試算表_cb.Text = "試算表1" : 表號_tb.Text = "B01"
  404. '---------合約生成--------------------------------------------------------------------------------------------------------------
  405. 合約種類下拉清單讀取() : 客戶名稱下拉清單讀取() : 我司負責人下拉清單讀取()
  406. If Strings.Left(合約_dgv("合約編號", 選取位置).Value.ToString, 2) = "HX" Then : 合約編號_cb.Text = "HX" : Else : 合約編號_cb.Text = "PGS" : End If
  407. 合約編號1_tb.Text = 合約_dgv("約號甲方", 選取位置).Value.ToString : 合約編號2_tb.Text = 合約_dgv("約號排序", 選取位置).Value.ToString
  408. 合約編號3_tb.Text = 合約_dgv("約號尾序", 選取位置).Value.ToString : 報價說明_tb.Text = 合約_dgv("報價說明", 選取位置).Value.ToString
  409. 客戶名稱_tb.Text = 合約_dgv("客戶名稱", 選取位置).Value.ToString : 負責人_A_cb.Text = 合約_dgv("負責人A", 選取位置).Value.ToString
  410. 工程地點_tb.Text = 合約_dgv("工程地點", 選取位置).Value.ToString : 客戶地址_tb.Text = 合約_dgv("客戶地址", 選取位置).Value.ToString
  411. 工程名稱_中_tb.Text = 合約_dgv("工程名稱_中", 選取位置).Value.ToString : 工程名稱_英_tb.Text = 合約_dgv("工程名稱_英", 選取位置).Value.ToString
  412. 負責人_B_cb.Text = 合約_dgv("負責人B", 選取位置).Value.ToString : 我司地址_tb.Text = 合約_dgv("我司地址", 選取位置).Value.ToString
  413. CH2.Checked = True : NUD3.Value = 合約_dgv("工程總價", 選取位置).Value : 工程款1_nud.Value = 合約_dgv("第一期比例", 選取位置).Value
  414. 工程款2_nud.Value = 合約_dgv("第二期比例", 選取位置).Value : 工程款3_nud.Value = 合約_dgv("第三期比例", 選取位置).Value
  415. 工程款4_nud.Value = 合約_dgv("第四期比例", 選取位置).Value : 工程款5_nud.Value = 合約_dgv("第五期比例", 選取位置).Value
  416. 工期_nud.Value = 合約_dgv("工期", 選取位置).Value : 逾期_bt.Text = 合約_dgv("逾期_中", 選取位置).Value.ToString
  417. 最高扣款_bt.Text = 合約_dgv("最高扣罰_中", 選取位置).Value.ToString : 逾期_英_bt.Text = 合約_dgv("逾期_英", 選取位置).Value.ToString
  418. 最高扣款_英_bt.Text = 合約_dgv("最高扣罰_英", 選取位置).Value.ToString : 減價_bt.Text = 合約_dgv("減價", 選取位置).Value.ToString
  419. 廠區_中文_tb.Text = 合約_dgv("工程廠區", 選取位置).Value.ToString : 最末頁_cb.Text = 合約_dgv("頁數", 選取位置).Value.ToString
  420. 立約日期_dtp.Value = 合約_dgv("立約日期", 選取位置).Value : 合約種類_cb.Text = 合約_dgv("合約種類", 選取位置).Value.ToString
  421. 合約停止_ch.Checked = 合約_dgv("合約停止", 選取位置).Value
  422. 圖片庫 = 合約_dgv("簽回檔圖庫", 選取位置).Value.ToString : 簽回檔 = 合約_dgv("簽回", 選取位置).Value
  423. PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text
  424. PA1 = "1" : Set_合約明細1() : PA1 = "2" : Set_合約明細2() : PA1 = "3" : Set_合約明細3() : PA1 = "4" : Set_合約明細4() : PA1 = "5" : Set_合約明細5()
  425. '---------試算表--------------------------------------------------------------------------------------------------------------
  426. 合約編號_tb.Text = 合約_dgv("合約編號", 選取位置).Value.ToString
  427. PA = 合約_dgv("合約編號", 選取位置).Value.ToString : SQL_合約試算分表查詢()
  428. If dr.Read() Then
  429. 試算表_cb.Items.Clear() : conn.Close() : SQL_合約試算分表查詢() : While (dr.Read()) : 試算表_cb.Items.Add(dr("試算表")) : End While
  430. conn.Close() : 試算表_cb.SelectedIndex = 0 : 表號_tb.Text = "B01" : PA2 = 表號_tb.Text : SQL_合約試算控制表查詢()
  431. If dr.Read() Then
  432. 樓層_迴路_cb.Items.Clear() : conn.Close() : SQL_合約試算控制表查詢() : While (dr.Read()) : 樓層_迴路_cb.Items.Add(dr("樓層/迴路")) : End While : conn.Close()
  433. 樓層_迴路_cb.SelectedIndex = 0 : 表頭_tb.Text = "A01" : Set_合約試算控制表_查詢()
  434. Else
  435. 樓層_迴路_cb.Items.Clear() : 表頭_tb.Text = "" : Set_合約試算控制表_查詢()
  436. End If : conn.Close()
  437. Else
  438. conn.Close() : PA1 = 試算表_cb.Text : PA2 = 表號_tb.Text : SQL_合約試算分表_新增()
  439. End If : conn.Close()
  440. '---------報價單--------------------------------------------------------------------------------------------------------------
  441. 報價單合約編號_tb.Text = 合約_dgv("合約編號", 選取位置).Value.ToString : 報價單客戶名稱_cb.Text = 合約_dgv("客戶名稱", 選取位置).Value.ToString
  442. 報價工程名稱_中_tb.Text = 合約_dgv("工程名稱_中", 選取位置).Value.ToString : 報價工程名稱_英_tb.Text = 合約_dgv("工程名稱_英", 選取位置).Value.ToString
  443. 報價單立約日期_dtp.Value = 合約_dgv("立約日期", 選取位置).Value.ToString
  444. PA = 合約編號_tb.Text
  445. Set_合約報價總表() : Set_合約報價係數() : Set_合約報價明細表() : 報價總表_dgv_自動計算()
  446. If 報價明細表_dgv.Rows.Count = 0 Then : For i As Integer = 1 To 3 : Next : End If
  447. End Sub
  448. Private Sub 合約_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 合約_dgv.CellClick
  449. If e.RowIndex = -1 Then : Else : 選取位置 = e.RowIndex : 合約讀取() : End If : 縮放2_bt.PerformClick() : 縮放1_bt.PerformClick()
  450. End Sub
  451. Private Sub 試算表_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 試算表_dgv.CellClick
  452. If e.RowIndex = -1 Then : Else
  453. If 直接輸入_ch.Checked = False And 使用計算機_ch.Checked = True Then
  454. If e.ColumnIndex > 1 And e.ColumnIndex < 40 Then
  455. 計算機.ShowDialog() : If IsNumeric(PA30) Then : 試算表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = PA30 : 試算表計算() : End If
  456. End If
  457. End If : 料號1_tb.Text = 試算表_dgv.Rows(e.RowIndex).Cells("料號").Value.ToString
  458. PA2 = Strings.StrReverse(Strings.Mid(Strings.StrReverse(試算表_dgv.Rows(e.RowIndex).Cells("料號").Value.ToString), 6, 50)) : SQL_物料圖庫_圖檔讀取一()
  459. While dr.Read() = True
  460. Dim unused As Byte() = New Byte(-1) {}
  461. Dim bytes As Byte() = DirectCast(dr.Item("圖檔"), Byte())
  462. Dim oStream As New MemoryStream(bytes)
  463. 物料圖_pb.Image = Bitmap.FromStream(oStream)
  464. End While : conn.Close() : 物料圖_pb.SizeMode = 4
  465. End If
  466. End Sub
  467. Private Sub 報價係數_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價係數_dgv.CellClick
  468. If e.RowIndex = -1 Then : Else
  469. 係數流水號_tb.Text = 報價係數_dgv.Rows(e.RowIndex).Cells("流水號").Value.ToString
  470. 係數合約號_tb.Text = 報價係數_dgv.Rows(e.RowIndex).Cells("合約號碼").Value.ToString
  471. End If
  472. End Sub
  473. Private Sub 報價總表_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價總表_dgv.CellClick
  474. If e.RowIndex = -1 Then : Else : DGV位置1.Value = e.RowIndex
  475. 總表流水_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("流水號").Value.ToString : 選擇項3_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("排序").Value.ToString()
  476. DGV_X = e.ColumnIndex : DGV_Y = e.RowIndex
  477. If DGV_X = 4 Or DGV_X = 5 Or DGV_X = 6 Then
  478. If 目前選擇 = "寫入資料" Then : X_3_tb.Text = e.ColumnIndex : Y_3_tb.Text = e.RowIndex
  479. Else
  480. If IsDBNull(報價總表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) Then : 報價總表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = 0 : End If
  481. End If
  482. End If
  483. End If
  484. End Sub
  485. Private Sub 報價明細表_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價明細表_dgv.CellClick
  486. If e.RowIndex = -1 Then : Else : DGV位置2.Value = e.RowIndex
  487. 明細表流水_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("流水號").Value.ToString : 選擇項2_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("排序").Value.ToString()
  488. ITEM3_cb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("ITEM").Value.ToString() : 單位2_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("UNIT").Value.ToString()
  489. 料號_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("料號").Value.ToString() : 申請數_nud.Value = 報價明細表_dgv.Rows(e.RowIndex).Cells("QTY").Value.ToString()
  490. 物料圖1_pb.Image = Nothing
  491. If 報價明細表_dgv.Rows(e.RowIndex).Cells("料號原則").Value.ToString = "" Then : Else
  492. PA2 = 報價明細表_dgv.Rows(e.RowIndex).Cells("料號原則").Value.ToString : SQL_物料圖庫_圖檔讀取一()
  493. While dr.Read() = True
  494. Dim unused As Byte() = New Byte(-1) {}
  495. Dim bytes As Byte() = DirectCast(dr.Item("圖檔"), Byte())
  496. Dim oStream As New MemoryStream(bytes)
  497. 物料圖1_pb.Image = Bitmap.FromStream(oStream)
  498. End While : conn.Close() : 物料圖1_pb.SizeMode = 4
  499. End If
  500. DGV_X = e.ColumnIndex : DGV_Y = e.RowIndex
  501. If DGV_X = 4 Or DGV_X = 5 Or DGV_X = 6 Or DGV_X = 8 Or DGV_X = 9 Or DGV_X = 10 Or DGV_X = 11 Or DGV_X = 12 Or DGV_X = 13 Or DGV_X = 14 Or DGV_X = 15 Or DGV_X = 16 Or DGV_X = 17 Then
  502. If 目前選擇 = "寫入資料" Then : X_2_tb.Text = e.ColumnIndex : Y_2_tb.Text = e.RowIndex
  503. Else
  504. If IsDBNull(報價明細表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) Then : 報價明細表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = 0 : End If
  505. End If
  506. End If
  507. End If
  508. End Sub
  509. Private Sub 報價總表_dgv_CellDoubleClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價總表_dgv.CellDoubleClick
  510. If e.RowIndex = -1 Then : Else
  511. 連動編號_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("明細連動").Value.ToString
  512. Me.TabControl1.SelectedTab = Me.工程合約報價明細_tc
  513. Dim 查詢 As Boolean
  514. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  515. If 報價總表_dgv.Rows(e.RowIndex).Cells("DESCRIPTION").Value.ToString() = 報價明細表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString() Then
  516. 報價明細表_dgv.CurrentCell = 報價明細表_dgv.Rows(i).Cells(1) : 查詢 = True : Exit For : Else : 查詢 = False
  517. End If
  518. Next
  519. If 查詢 = False Then
  520. If DGV位置2.Value >= 報價明細表_dgv.Rows.Count Then : DGV位置2.Value = 報價明細表_dgv.Rows.Count - 1 : End If
  521. If DGV位置2.Value > 0 Then : 報價明細表_dgv.CurrentCell = 報價明細表_dgv.Rows(DGV位置2.Value).Cells(1) : End If
  522. End If
  523. End If
  524. End Sub
  525. Private Sub 報價總表_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 報價總表_dgv.CellEndEdit
  526. If 啟動運算 = True Then : 報價總表_dgv_自動計算() : End If
  527. End Sub
  528. Private Sub 報價明細表_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 報價明細表_dgv.CellEndEdit
  529. If 啟動運算 = True Then : 報價明細表_dgv_物料顯示() : 報價明細表_dgv_自動計算() : 報價總表_dgv_自動計算() : End If
  530. End Sub
  531. Private Sub 試算表_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 試算表_dgv.CellEnter
  532. 試算表計算()
  533. End Sub
  534. Private Sub 試算表計算()
  535. For i As Integer = 0 To 試算表_dgv.Rows.Count - 1
  536. If 試算表_dgv.Rows(i).Cells("係數").Value = False Then
  537. 試算表_dgv.Rows(i).Cells("Total").Value = 試算表_dgv.Rows(i).Cells(3).Value + 試算表_dgv.Rows(i).Cells(4).Value +
  538. 試算表_dgv.Rows(i).Cells(5).Value + 試算表_dgv.Rows(i).Cells(6).Value + 試算表_dgv.Rows(i).Cells(7).Value + 試算表_dgv.Rows(i).Cells(8).Value +
  539. 試算表_dgv.Rows(i).Cells(9).Value + 試算表_dgv.Rows(i).Cells(10).Value + 試算表_dgv.Rows(i).Cells(11).Value + 試算表_dgv.Rows(i).Cells(12).Value +
  540. 試算表_dgv.Rows(i).Cells(13).Value + 試算表_dgv.Rows(i).Cells(14).Value + 試算表_dgv.Rows(i).Cells(15).Value + 試算表_dgv.Rows(i).Cells(16).Value +
  541. 試算表_dgv.Rows(i).Cells(17).Value + 試算表_dgv.Rows(i).Cells(18).Value + 試算表_dgv.Rows(i).Cells(19).Value + 試算表_dgv.Rows(i).Cells(20).Value +
  542. 試算表_dgv.Rows(i).Cells(21).Value + 試算表_dgv.Rows(i).Cells(22).Value + 試算表_dgv.Rows(i).Cells(23).Value + 試算表_dgv.Rows(i).Cells(24).Value +
  543. 試算表_dgv.Rows(i).Cells(25).Value + 試算表_dgv.Rows(i).Cells(26).Value + 試算表_dgv.Rows(i).Cells(27).Value + 試算表_dgv.Rows(i).Cells(28).Value +
  544. 試算表_dgv.Rows(i).Cells(29).Value + 試算表_dgv.Rows(i).Cells(30).Value + 試算表_dgv.Rows(i).Cells(31).Value + 試算表_dgv.Rows(i).Cells(32).Value +
  545. 試算表_dgv.Rows(i).Cells(33).Value + 試算表_dgv.Rows(i).Cells(34).Value + 試算表_dgv.Rows(i).Cells(35).Value + 試算表_dgv.Rows(i).Cells(36).Value +
  546. 試算表_dgv.Rows(i).Cells(37).Value + 試算表_dgv.Rows(i).Cells(38).Value + 試算表_dgv.Rows(i).Cells(39).Value + 試算表_dgv.Rows(i).Cells(40).Value +
  547. 試算表_dgv.Rows(i).Cells(41).Value + 試算表_dgv.Rows(i).Cells(42).Value
  548. Else
  549. 試算表_dgv.Rows(i).Cells("Total").Value = (試算表_dgv.Rows(i).Cells(3).Value + 試算表_dgv.Rows(i).Cells(4).Value +
  550. 試算表_dgv.Rows(i).Cells(5).Value + 試算表_dgv.Rows(i).Cells(6).Value + 試算表_dgv.Rows(i).Cells(7).Value + 試算表_dgv.Rows(i).Cells(8).Value +
  551. 試算表_dgv.Rows(i).Cells(9).Value + 試算表_dgv.Rows(i).Cells(10).Value + 試算表_dgv.Rows(i).Cells(11).Value + 試算表_dgv.Rows(i).Cells(12).Value +
  552. 試算表_dgv.Rows(i).Cells(13).Value + 試算表_dgv.Rows(i).Cells(14).Value + 試算表_dgv.Rows(i).Cells(15).Value + 試算表_dgv.Rows(i).Cells(16).Value +
  553. 試算表_dgv.Rows(i).Cells(17).Value + 試算表_dgv.Rows(i).Cells(18).Value + 試算表_dgv.Rows(i).Cells(19).Value + 試算表_dgv.Rows(i).Cells(20).Value +
  554. 試算表_dgv.Rows(i).Cells(21).Value + 試算表_dgv.Rows(i).Cells(22).Value + 試算表_dgv.Rows(i).Cells(23).Value + 試算表_dgv.Rows(i).Cells(24).Value +
  555. 試算表_dgv.Rows(i).Cells(25).Value + 試算表_dgv.Rows(i).Cells(26).Value + 試算表_dgv.Rows(i).Cells(27).Value + 試算表_dgv.Rows(i).Cells(28).Value +
  556. 試算表_dgv.Rows(i).Cells(29).Value + 試算表_dgv.Rows(i).Cells(30).Value + 試算表_dgv.Rows(i).Cells(31).Value + 試算表_dgv.Rows(i).Cells(32).Value +
  557. 試算表_dgv.Rows(i).Cells(33).Value + 試算表_dgv.Rows(i).Cells(34).Value + 試算表_dgv.Rows(i).Cells(35).Value + 試算表_dgv.Rows(i).Cells(36).Value +
  558. 試算表_dgv.Rows(i).Cells(37).Value + 試算表_dgv.Rows(i).Cells(38).Value + 試算表_dgv.Rows(i).Cells(39).Value + 試算表_dgv.Rows(i).Cells(40).Value +
  559. 試算表_dgv.Rows(i).Cells(41).Value + 試算表_dgv.Rows(i).Cells(42).Value) / 100 * (100 + 係數_nud.Value)
  560. End If
  561. Next i
  562. End Sub
  563. Private Sub 報價總表_dgv_自動計算()
  564. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  565. If 報價總表_dgv.Rows(i).Cells("明細連動").Value.ToString <> "" Then
  566. For ii As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  567. If 報價總表_dgv.Rows(i).Cells("明細連動").Value.ToString = 報價明細表_dgv.Rows(ii).Cells("流水號").Value.ToString Then
  568. 報價總表_dgv.Rows(i).Cells("UNIT PRICE (RP)").Value = 報價明細表_dgv.Rows(ii).Cells("AMOUNT (RP)").Value.ToString : Exit For
  569. End If
  570. Next
  571. End If
  572. Next
  573. Dim 合計, 合計無管, 稅金 As Double : 合計 = 0 : 稅金 = 0
  574. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  575. '---------計算項目-------------------------------------------------------------------------------------------------------------------------------------
  576. If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "*" Or 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "" Or
  577. 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "@" Or 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "^" Then : Else
  578. If IsDBNull(報價總表_dgv.Rows(i).Cells("QTY").Value) Then : 報價總表_dgv.Rows(i).Cells("QTY").Value = 0 : End If
  579. If IsDBNull(報價總表_dgv.Rows(i).Cells("UNIT PRICE (RP)").Value) Then : 報價總表_dgv.Rows(i).Cells("UNIT PRICE (RP)").Value = 0 : End If
  580. 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value = CLng(報價總表_dgv.Rows(i).Cells("QTY").Value) * CLng(報價總表_dgv.Rows(i).Cells("UNIT PRICE (RP)").Value)
  581. End If
  582. '---------管理費加總-------------------------------------------------------------------------------------------------------------------------------------
  583. If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "*" And 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "@" And
  584. 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "^" Then : 合計無管 += 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value
  585. End If
  586. If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 0%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value = CLng(合計無管 * 0)
  587. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 1%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value = CLng(合計無管 * 0.01)
  588. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 2%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value = CLng(合計無管 * 0.02)
  589. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 3%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value = CLng(合計無管 * 0.03)
  590. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 4%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value = CLng(合計無管 * 0.04)
  591. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 5%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value = CLng(合計無管 * 0.05)
  592. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 6%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value = CLng(合計無管 * 0.06)
  593. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 7%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value = CLng(合計無管 * 0.07)
  594. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 8%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value = CLng(合計無管 * 0.08)
  595. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 9%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value = CLng(合計無管 * 0.09)
  596. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 10%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value = CLng(合計無管 * 0.1)
  597. End If
  598. '---------計算彙總-------------------------------------------------------------------------------------------------------------------------------------
  599. If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "*" And 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "@" Then
  600. 合計 += 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value
  601. End If
  602. If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "合 計 Total" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value = 合計 : End If
  603. If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "稅金 10% Tax" Then
  604. 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value = CLng(合計 * 0.1) : 稅金 = 合計 * 0.1 : 稅額顯示_lb.Text = "PPN 10%稅額 = Rp. "
  605. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "稅金 11% Tax" Then
  606. 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value = CLng(合計 * 0.11) : 稅金 = 合計 * 0.11 : 稅額顯示_lb.Text = "PPN 11%稅額 = Rp. "
  607. End If
  608. If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "總計 Grand Total" Then
  609. 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value = CLng(合計 + Fix(稅金))
  610. If Strings.Right(報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value.ToString, 3) = "001" Then
  611. 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value = CLng(報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value) - 1
  612. ElseIf Strings.Right(報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value.ToString, 3) = "999" Then
  613. 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value = CLng(報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value) + 1
  614. End If
  615. NUD3.Value = CLng(報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value)
  616. End If
  617. '------------數字為0隱藏-----------------------------------------------------------------------------------------------
  618. If IsDBNull(報價總表_dgv.Rows(i).Cells(4).Value) Then : 報價總表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.White : Else
  619. If 報價總表_dgv.Rows(i).Cells(4).Value = 0 Then : 報價總表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.White
  620. Else : 報價總表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.Black : End If : End If
  621. If IsDBNull(報價總表_dgv.Rows(i).Cells(5).Value) Then : 報價總表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.White : Else
  622. If 報價總表_dgv.Rows(i).Cells(5).Value = 0 Then : 報價總表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.White
  623. Else : 報價總表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.Black : End If : End If
  624. If IsDBNull(報價總表_dgv.Rows(i).Cells(6).Value) Then : 報價總表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.White : Else
  625. If 報價總表_dgv.Rows(i).Cells(6).Value = 0 Then : 報價總表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.White
  626. Else : 報價總表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.Black : End If : End If
  627. Next
  628. '------------彙總計算-----------------------------------------------------------------------------------------------
  629. Dim 折讓 As Long = 0
  630. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  631. If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "折讓 Discount" Then
  632. 折讓 += CLng(報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value)
  633. End If
  634. Next
  635. 預估利潤_tb.Text = Strings.Format(CLng(總報價_tb.Text) - (CLng(總成本_tb.Text) - 折讓), "#,##0")
  636. If (CLng(總報價_tb.Text) + 折讓) = 0 Then : 利潤比4_tb.Text = "0 %" : Else
  637. 利潤比4_tb.Text = Strings.Format((1 - ((CLng(總成本_tb.Text)) / (CLng(總報價_tb.Text) + 折讓))) * 100, "#,##0") & " %"
  638. End If
  639. End Sub
  640. Private Sub 報價明細表_dgv_物料顯示()
  641. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  642. If 報價明細表_dgv.Rows(i).Cells("料號").Value.ToString = "" Then
  643. 報價明細表_dgv.Rows(i).Cells("D1").Value = False : 報價明細表_dgv.Rows(i).Cells("D2").Value = False
  644. 報價明細表_dgv.Rows(i).Cells("D3").Value = False : 報價明細表_dgv.Rows(i).Cells("D4").Value = False
  645. 報價明細表_dgv.Rows(i).Cells("D5").Value = False : 報價明細表_dgv.Rows(i).Cells("D6").Value = False
  646. 報價明細表_dgv.Rows(i).Cells("D7").Value = False : 報價明細表_dgv.Rows(i).Cells("D8").Value = False
  647. End If
  648. If 報價明細表_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then
  649. If 報價明細表_dgv.Rows(i).Cells("預設").Value = True Then
  650. 報價明細表_dgv.Rows(i).Cells("D1").Value = 報價明細表_dgv.Rows(i).Cells("S1").Value : 報價明細表_dgv.Rows(i).Cells("D2").Value = 報價明細表_dgv.Rows(i).Cells("S2").Value
  651. 報價明細表_dgv.Rows(i).Cells("D3").Value = 報價明細表_dgv.Rows(i).Cells("S3").Value : 報價明細表_dgv.Rows(i).Cells("D4").Value = 報價明細表_dgv.Rows(i).Cells("S4").Value
  652. 報價明細表_dgv.Rows(i).Cells("D5").Value = 報價明細表_dgv.Rows(i).Cells("S5").Value : 報價明細表_dgv.Rows(i).Cells("D6").Value = 報價明細表_dgv.Rows(i).Cells("S6").Value
  653. 報價明細表_dgv.Rows(i).Cells("D7").Value = 報價明細表_dgv.Rows(i).Cells("S7").Value : 報價明細表_dgv.Rows(i).Cells("D8").Value = 報價明細表_dgv.Rows(i).Cells("S8").Value
  654. End If
  655. Dim ZA1, ZA2, ZA3, ZA4, ZA5, ZA6, ZA7, ZA8 As String : 物料規格 = ""
  656. If 詳細資料2_ch.Checked = True Then
  657. If 報價明細表_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D1").Value = True Then
  658. ZA1 = 報價明細表_dgv.Rows(i).Cells("AA1").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If : End If
  659. If 報價明細表_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D2").Value = True Then
  660. ZA2 = 報價明細表_dgv.Rows(i).Cells("AA2").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then
  661. 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If : End If
  662. If 報價明細表_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D3").Value = True Then
  663. ZA3 = 報價明細表_dgv.Rows(i).Cells("AA3").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then
  664. 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If : End If
  665. If 報價明細表_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D4").Value = True Then
  666. ZA4 = 報價明細表_dgv.Rows(i).Cells("AA4").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then
  667. 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If : End If
  668. If 報價明細表_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D5").Value = True Then
  669. ZA5 = 報價明細表_dgv.Rows(i).Cells("AA5").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then
  670. 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If : End If
  671. If 報價明細表_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D6").Value = True Then
  672. ZA6 = 報價明細表_dgv.Rows(i).Cells("AA6").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then
  673. 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If : End If
  674. If 報價明細表_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D7").Value = True Then
  675. ZA7 = 報價明細表_dgv.Rows(i).Cells("AA7").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then
  676. 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If : End If
  677. If 報價明細表_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D8").Value = True Then
  678. ZA8 = 報價明細表_dgv.Rows(i).Cells("AA8").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then
  679. 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If : End If
  680. Else
  681. If 報價明細表_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D1").Value = True Then
  682. ZA1 = 報價明細表_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If : End If
  683. If 報價明細表_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D2").Value = True Then
  684. ZA2 = 報價明細表_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If : End If
  685. If 報價明細表_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D3").Value = True Then
  686. ZA3 = 報價明細表_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If : End If
  687. If 報價明細表_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D4").Value = True Then
  688. ZA4 = 報價明細表_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If : End If
  689. If 報價明細表_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D5").Value = True Then
  690. ZA5 = 報價明細表_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If : End If
  691. If 報價明細表_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D6").Value = True Then
  692. ZA6 = 報價明細表_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If : End If
  693. If 報價明細表_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D7").Value = True Then
  694. ZA7 = 報價明細表_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If : End If
  695. If 報價明細表_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D8").Value = True Then
  696. ZA8 = 報價明細表_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If : End If
  697. End If
  698. If 報價明細表_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then
  699. 報價明細表_dgv.Rows(i).Cells("DESCRIPTION").Value = 報價明細表_dgv.Rows(i).Cells("品名").Value.ToString & " " & 物料規格
  700. End If
  701. End If : 報價明細表_dgv.Rows(i).Cells("預設").Value = False
  702. Next
  703. End Sub
  704. Private Sub 報價明細表_dgv_自動計算()
  705. Dim 合計, 利潤, 工資係數, 工資成本, 工資利潤, 材料係數, 材料成本, 材料利潤 As Double : 合計 = 0 : 工資係數 = 0
  706. For i As Integer = 0 To 報價係數_dgv.Rows.Count - 1
  707. If 報價係數_dgv.Rows(i).Cells("項目").Value.ToString = "工資利潤" Then : 工資係數 = 報價係數_dgv.Rows(i).Cells("係數").Value.ToString : Exit For : End If
  708. Next
  709. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  710. 報價明細表_dgv.Rows(i).Cells("QTY").Value = 報價明細表_dgv.Rows(i).Cells("實際數量").Value.ToString
  711. '------------------------------------工資計算-----------------------------------------------------------------------------------------------------------
  712. 報價明細表_dgv.Rows(i).Cells("工資成本後價").Value = 報價明細表_dgv.Rows(i).Cells("實際數量").Value * 報價明細表_dgv.Rows(i).Cells("工資成本單價").Value
  713. If 報價明細表_dgv.Rows(i).Cells("不計").Value = False Then
  714. 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value = 報價明細表_dgv.Rows(i).Cells("工資成本單價").Value * 工資係數 / 100
  715. Else : 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value = 0 : End If
  716. 報價明細表_dgv.Rows(i).Cells("工資報價後價").Value = 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value * 報價明細表_dgv.Rows(i).Cells("QTY").Value
  717. '------------------------------------材料計算-----------------------------------------------------------------------------------------------------------
  718. 報價明細表_dgv.Rows(i).Cells("材料成本後價").Value = 報價明細表_dgv.Rows(i).Cells("實際數量").Value * 報價明細表_dgv.Rows(i).Cells("材料成本單價").Value
  719. If 報價明細表_dgv.Rows(i).Cells("材料係數").Value.ToString = "" Then : 材料係數 = 100 : Else : 材料係數 = 100
  720. For ii As Integer = 0 To 報價係數_dgv.Rows.Count - 1
  721. If 報價係數_dgv.Rows(ii).Cells("項目").Value.ToString = 報價明細表_dgv.Rows(i).Cells("材料係數").Value.ToString Then
  722. 材料係數 = 報價係數_dgv.Rows(ii).Cells("係數").Value.ToString : Exit For : End If
  723. Next
  724. End If
  725. If 報價明細表_dgv.Rows(i).Cells("不計").Value = False Then
  726. 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value = 報價明細表_dgv.Rows(i).Cells("材料成本單價").Value * 材料係數 / 100
  727. Else : 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value = 0 : End If
  728. 報價明細表_dgv.Rows(i).Cells("材料報價後價").Value = 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value * 報價明細表_dgv.Rows(i).Cells("QTY").Value
  729. 報價明細表_dgv.Rows(i).Cells("利潤").Value = 報價明細表_dgv.Rows(i).Cells("材料報價後價").Value + 報價明細表_dgv.Rows(i).Cells("工資報價後價").Value -
  730. 報價明細表_dgv.Rows(i).Cells("材料成本後價").Value - 報價明細表_dgv.Rows(i).Cells("工資成本後價").Value
  731. '------------------------------------報價單呈現-----------------------------------------------------------------------------------------------------------
  732. If 報價明細表_dgv.Rows(i).Cells("不計").Value = False Then
  733. 報價明細表_dgv.Rows(i).Cells("UNIT PRICE (RP)").Value = 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value + 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value
  734. 報價明細表_dgv.Rows(i).Cells("AMOUNT (RP)").Value = 報價明細表_dgv.Rows(i).Cells("UNIT PRICE (RP)").Value * 報價明細表_dgv.Rows(i).Cells("QTY").Value
  735. Else
  736. 報價明細表_dgv.Rows(i).Cells("UNIT PRICE (RP)").Value = 0 : 報價明細表_dgv.Rows(i).Cells("AMOUNT (RP)").Value = 0
  737. End If
  738. '------------------------------------報價合計計算-----------------------------------------------------------------------------------------------------------
  739. If 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "*" Then
  740. 合計 += 報價明細表_dgv.Rows(i).Cells("AMOUNT (RP)").Value : 利潤 += 報價明細表_dgv.Rows(i).Cells("利潤").Value
  741. 工資成本 += 報價明細表_dgv.Rows(i).Cells("工資成本後價").Value : 工資利潤 += 報價明細表_dgv.Rows(i).Cells("工資報價後價").Value
  742. 材料成本 += 報價明細表_dgv.Rows(i).Cells("材料成本後價").Value : 材料利潤 += 報價明細表_dgv.Rows(i).Cells("材料報價後價").Value
  743. End If
  744. If 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString = "*" Then
  745. 報價明細表_dgv.Rows(i).Cells("AMOUNT (RP)").Value = 合計 : 合計 = 0 : 報價明細表_dgv.Rows(i).Cells("利潤").Value = 利潤 : 利潤 = 0
  746. 報價明細表_dgv.Rows(i).Cells("工資成本後價").Value = 工資成本 : 工資成本 = 0 : 報價明細表_dgv.Rows(i).Cells("工資報價後價").Value = 工資利潤 : 工資利潤 = 0
  747. 報價明細表_dgv.Rows(i).Cells("材料成本後價").Value = 材料成本 : 材料成本 = 0 : 報價明細表_dgv.Rows(i).Cells("材料報價後價").Value = 材料利潤 : 材料利潤 = 0
  748. End If
  749. '------------數字為0隱藏-----------------------------------------------------------------------------------------------
  750. If IsDBNull(報價明細表_dgv.Rows(i).Cells(4).Value) Then : 報價明細表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.White : Else
  751. If 報價明細表_dgv.Rows(i).Cells(4).Value = 0 Then : 報價明細表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.White
  752. Else : 報價明細表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.Black : End If : End If
  753. If IsDBNull(報價明細表_dgv.Rows(i).Cells(5).Value) Then : 報價明細表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.White : Else
  754. If 報價明細表_dgv.Rows(i).Cells(5).Value = 0 Then : 報價明細表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.White
  755. Else : 報價明細表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.Black : End If : End If
  756. If IsDBNull(報價明細表_dgv.Rows(i).Cells(6).Value) Then : 報價明細表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.White : Else
  757. If 報價明細表_dgv.Rows(i).Cells(6).Value = 0 Then : 報價明細表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.White
  758. Else : 報價明細表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.Black : End If : End If
  759. Next
  760. 工資成本 = 0 : 材料成本 = 0 : 工資利潤 = 0 : 材料利潤 = 0
  761. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  762. If 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString = "*" Then
  763. 工資成本 += CLng(報價明細表_dgv.Rows(i).Cells("工資成本後價").Value)
  764. 材料成本 += CLng(報價明細表_dgv.Rows(i).Cells("材料成本後價").Value)
  765. 工資利潤 += CLng(報價明細表_dgv.Rows(i).Cells("工資報價後價").Value)
  766. 材料利潤 += CLng(報價明細表_dgv.Rows(i).Cells("材料報價後價").Value)
  767. End If
  768. Next
  769. 預估工資總成本_tb.Text = Strings.Format(工資成本, "#,##0") : 預估材料總成本_tb.Text = Strings.Format(材料成本, "#,##0") : 預估工資總報價_tb.Text = Strings.Format(工資利潤, "#,##0")
  770. 預估材料總報價_tb.Text = Strings.Format(材料利潤, "#,##0") ': 預估利潤_tb.Text = Strings.Format((材料利潤 + 工資利潤) - (材料成本 + 工資成本), "#,##0")
  771. 總成本_tb.Text = Strings.Format(工資成本 + 材料成本, "#,##0") : 總報價_tb.Text = Strings.Format(工資利潤 + 材料利潤, "#,##0")
  772. If 工資利潤 = 0 Then : 利潤比1_tb.Text = "0 %" : Else
  773. 利潤比1_tb.Text = Strings.Format((1 - ((工資成本) / (工資利潤))) * 100, "#,##0") & " %"
  774. End If
  775. If 材料利潤 = 0 Then : 利潤比2_tb.Text = "0 %" : Else
  776. 利潤比2_tb.Text = Strings.Format((1 - ((材料成本) / (材料利潤))) * 100, "#,##0") & " %"
  777. End If
  778. If (材料利潤 + 工資利潤) = 0 Then : 利潤比3_tb.Text = "0 %" : Else
  779. 利潤比3_tb.Text = Strings.Format((1 - ((材料成本 + 工資成本) / (材料利潤 + 工資利潤))) * 100, "#,##0") & " %"
  780. End If
  781. End Sub
  782. Private Sub 報價總表_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 報價總表_dgv.MouseUp
  783. 'If 明細_dgv.SelectedCells.Count = 1 Then : MsgBox(明細_dgv.SelectedCells(0).ColumnIndex & " " & 明細_dgv.SelectedCells(0).RowIndex) : End If
  784. If 報價總表_dgv.SelectedCells.Count = 1 Then : 已超出 = False : End If
  785. If 報價總表_dgv.SelectedCells.Count > 0 Then
  786. If 報價總表_dgv.SelectedCells(0).ColumnIndex = 4 Or 報價總表_dgv.SelectedCells(0).ColumnIndex = 5 Or 報價總表_dgv.SelectedCells(0).ColumnIndex = 6 Then
  787. If 已超出 = False Then
  788. Dim x As Double = 0
  789. For i As Integer = 0 To 報價總表_dgv.SelectedCells.Count - 1
  790. Dim 變數 As String = "" : Dim 取變數 As String
  791. 取變數 = 報價總表_dgv.Rows(報價總表_dgv.SelectedCells.Item(i).RowIndex).Cells(報價總表_dgv.SelectedCells.Item(i).ColumnIndex).Value
  792. For ii As Integer = 1 To Len(取變數)
  793. If ii = 1 Then : 變數 = Strings.Left(取變數, ii) : Else : If Strings.Mid(取變數, ii, 1) <> "," Then : 變數 &= Strings.Mid(取變數, ii, 1) : End If : End If
  794. Next : x += Val(變數)
  795. Next i : HX_PGS_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(x, "#,##0")
  796. Else : HX_PGS_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(0, "#,##0")
  797. End If
  798. Else : 已超出 = True : HX_PGS_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(0, "#,##0")
  799. End If
  800. End If
  801. End Sub
  802. Private Sub 報價明細表_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 報價明細表_dgv.MouseUp
  803. 'If 明細_dgv.SelectedCells.Count = 1 Then : MsgBox(明細_dgv.SelectedCells(0).ColumnIndex & " " & 明細_dgv.SelectedCells(0).RowIndex) : End If
  804. If 報價明細表_dgv.SelectedCells.Count = 1 Then : 已超出 = False : End If
  805. If 報價明細表_dgv.SelectedCells.Count > 0 Then
  806. If 報價明細表_dgv.SelectedCells(0).ColumnIndex = 4 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 5 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 6 Or
  807. 報價明細表_dgv.SelectedCells(0).ColumnIndex = 8 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 9 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 10 Or
  808. 報價明細表_dgv.SelectedCells(0).ColumnIndex = 11 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 12 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 13 Or
  809. 報價明細表_dgv.SelectedCells(0).ColumnIndex = 14 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 15 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 16 Or
  810. 報價明細表_dgv.SelectedCells(0).ColumnIndex = 17 Then
  811. If 已超出 = False Then
  812. Dim x As Double = 0
  813. For i As Integer = 0 To 報價明細表_dgv.SelectedCells.Count - 1
  814. Dim 變數 As String = "" : Dim 取變數 As String
  815. 取變數 = 報價明細表_dgv.Rows(報價明細表_dgv.SelectedCells.Item(i).RowIndex).Cells(報價明細表_dgv.SelectedCells.Item(i).ColumnIndex).Value
  816. For ii As Integer = 1 To Len(取變數)
  817. If ii = 1 Then : 變數 = Strings.Left(取變數, ii) : Else : If Strings.Mid(取變數, ii, 1) <> "," Then : 變數 &= Strings.Mid(取變數, ii, 1) : End If : End If
  818. Next : x += Val(變數)
  819. Next i : HX_PGS_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(x, "#,##0")
  820. Else : HX_PGS_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(0, "#,##0")
  821. End If
  822. Else : 已超出 = True : HX_PGS_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(0, "#,##0")
  823. End If
  824. End If
  825. End Sub
  826. Private Sub 第1期_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 第1期_dgv.CellEnter
  827. If Not IsNumeric(第1期_dgv.Rows(e.RowIndex).Cells("比例").Value) Then
  828. If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值!!") : Else : MsgBox("Input bidang harus numerik!!") : End If
  829. 第1期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第1期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  830. Else
  831. Dim nn As Integer
  832. For i As Integer = 0 To 第1期_dgv.Rows.Count - 1 : nn += 第1期_dgv.Rows(i).Cells("比例").Value : Next
  833. If nn > 工程款1_nud.Value Then
  834. Dim SS As String
  835. If 系統語言 = "繁體中文" Then : SS = "第一期的細項比例不可大於 " : Else : SS = "Proporsi detail fase pertama tidak boleh lebih dari " : End If
  836. MsgBox(SS & Strings.Format(工程款1_nud.Value, "#,##0.00") & " % !!")
  837. 第1期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第1期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  838. Else
  839. For i As Integer = 0 To 第1期_dgv.Rows.Count - 1
  840. 第1期_dgv.Rows(i).Cells("金額").Value = 第1期_dgv.Rows(i).Cells("比例").Value * 金額1_und.Value / 工程款1_nud.Value
  841. Next i
  842. End If
  843. End If
  844. End Sub
  845. Private Sub 第2期_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 第2期_dgv.CellEnter
  846. If Not IsNumeric(第2期_dgv.Rows(e.RowIndex).Cells("比例").Value) Then
  847. If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值!!") : Else : MsgBox("Input bidang harus numerik!!") : End If
  848. 第2期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第2期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  849. Else
  850. Dim nn As Integer
  851. For i As Integer = 0 To 第2期_dgv.Rows.Count - 1 : nn += 第2期_dgv.Rows(i).Cells("比例").Value : Next
  852. If nn > 工程款2_nud.Value Then
  853. Dim SS As String
  854. If 系統語言 = "繁體中文" Then : SS = "第二期的細項比例不可大於 " : Else : SS = "Proporsi detail fase kedua tidak boleh lebih besar dari " : End If
  855. MsgBox(SS & Strings.Format(工程款2_nud.Value, "#,##0.00") & " % !!")
  856. 第2期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第2期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  857. Else
  858. For i As Integer = 0 To 第2期_dgv.Rows.Count - 1
  859. 第2期_dgv.Rows(i).Cells("金額").Value = 第2期_dgv.Rows(i).Cells("比例").Value * 金額2_und.Value / 工程款2_nud.Value
  860. Next i
  861. End If
  862. End If
  863. End Sub
  864. Private Sub 第3期_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 第3期_dgv.CellEnter
  865. If Not IsNumeric(第3期_dgv.Rows(e.RowIndex).Cells("比例").Value) Then
  866. If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值!!") : Else : MsgBox("Input bidang harus numerik!!") : End If
  867. 第3期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第3期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  868. Else
  869. Dim nn As Integer
  870. For i As Integer = 0 To 第3期_dgv.Rows.Count - 1 : nn += 第3期_dgv.Rows(i).Cells("比例").Value : Next
  871. If nn > 工程款3_nud.Value Then
  872. Dim SS As String
  873. If 系統語言 = "繁體中文" Then : SS = "第三期的細項比例不可大於 " : Else : SS = "Proporsi rincian periode ketiga tidak boleh lebih besar dari " : End If
  874. MsgBox(SS & Strings.Format(工程款3_nud.Value, "#,##0.00") & " % !!")
  875. 第3期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第3期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  876. Else
  877. For i As Integer = 0 To 第3期_dgv.Rows.Count - 1
  878. 第3期_dgv.Rows(i).Cells("金額").Value = 第3期_dgv.Rows(i).Cells("比例").Value * 金額3_und.Value / 工程款3_nud.Value
  879. Next i
  880. End If
  881. End If
  882. End Sub
  883. Private Sub 第4期_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 第4期_dgv.CellEnter
  884. If Not IsNumeric(第4期_dgv.Rows(e.RowIndex).Cells("比例").Value) Then
  885. If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值!!") : Else : MsgBox("Input bidang harus numerik!!") : End If
  886. 第4期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第4期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  887. Else
  888. Dim nn As Integer
  889. For i As Integer = 0 To 第4期_dgv.Rows.Count - 1 : nn += 第4期_dgv.Rows(i).Cells("比例").Value : Next
  890. If nn > 工程款4_nud.Value Then
  891. Dim SS As String
  892. If 系統語言 = "繁體中文" Then : SS = "第四期的細項比例不可大於 " : Else : SS = "Proporsi rincian periode ke-4 tidak boleh lebih besar dari " : End If
  893. MsgBox(SS & Strings.Format(工程款4_nud.Value, "#,##0.00") & " % !!")
  894. 第4期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第4期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  895. Else
  896. For i As Integer = 0 To 第4期_dgv.Rows.Count - 1
  897. 第4期_dgv.Rows(i).Cells("金額").Value = 第4期_dgv.Rows(i).Cells("比例").Value * 金額4_und.Value / 工程款4_nud.Value
  898. Next i
  899. End If
  900. End If
  901. End Sub
  902. Private Sub 第5期_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 第5期_dgv.CellEnter
  903. If Not IsNumeric(第5期_dgv.Rows(e.RowIndex).Cells("比例").Value) Then
  904. If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值!!") : Else : MsgBox("Input bidang harus numerik!!") : End If
  905. 第5期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第5期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  906. Else
  907. Dim nn As Integer
  908. For i As Integer = 0 To 第5期_dgv.Rows.Count - 1 : nn += 第5期_dgv.Rows(i).Cells("比例").Value : Next
  909. If nn > 工程款5_nud.Value Then
  910. Dim SS As String
  911. If 系統語言 = "繁體中文" Then : SS = "第五期的細項比例不可大於 " : Else : SS = "Proporsi rincian periode kelima tidak boleh lebih besar dari " : End If
  912. MsgBox(SS & Strings.Format(工程款5_nud.Value, "#,##0.00") & " % !!")
  913. 第5期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第5期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  914. Else
  915. For i As Integer = 0 To 第5期_dgv.Rows.Count - 1
  916. 第5期_dgv.Rows(i).Cells("金額").Value = 第5期_dgv.Rows(i).Cells("比例").Value * 金額5_und.Value / 工程款5_nud.Value
  917. Next i
  918. End If
  919. End If
  920. End Sub
  921. Private Sub 第1期_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 第1期_dgv.CellClick
  922. If e.RowIndex = -1 Then : Else : 明細選項_bt.Text = 第1期_dgv("細項", e.RowIndex).Value.ToString : 明細選項_bt.Text = Strings.Format(Val(明細選項_bt.Text), "#,##0") : End If
  923. End Sub
  924. Private Sub 第2期_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 第2期_dgv.CellClick
  925. If e.RowIndex = -1 Then : Else : 明細選項_bt.Text = 第2期_dgv("細項", e.RowIndex).Value.ToString : 明細選項_bt.Text = Strings.Format(Val(明細選項_bt.Text), "#,##0") : End If
  926. End Sub
  927. Private Sub 第3期_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 第3期_dgv.CellClick
  928. If e.RowIndex = -1 Then : Else : 明細選項_bt.Text = 第3期_dgv("細項", e.RowIndex).Value.ToString : 明細選項_bt.Text = Strings.Format(Val(明細選項_bt.Text), "#,##0") : End If
  929. End Sub
  930. Private Sub 第4期_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 第4期_dgv.CellClick
  931. If e.RowIndex = -1 Then : Else : 明細選項_bt.Text = 第4期_dgv("細項", e.RowIndex).Value.ToString : 明細選項_bt.Text = Strings.Format(Val(明細選項_bt.Text), "#,##0") : End If
  932. End Sub
  933. Private Sub 第5期_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 第5期_dgv.CellClick
  934. If e.RowIndex = -1 Then : Else : 明細選項_bt.Text = 第5期_dgv("細項", e.RowIndex).Value.ToString : 明細選項_bt.Text = Strings.Format(Val(明細選項_bt.Text), "#,##0") : End If
  935. End Sub
  936. '-----------------建立合約資料功能-------------------------------------------------------------------------------------------------------------------------------
  937. Private Sub 群組編碼_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 群組編碼_cb.SelectedIndexChanged
  938. 群組碼_tb.Text = 群組編碼_cb.Text
  939. End Sub
  940. Private Sub 合約種類_cb_SelectedIndexChanged_1(sender As Object, e As EventArgs) Handles 合約種類_cb.SelectedIndexChanged
  941. PA10 = 合約種類_cb.Text : SQL_合約種類英文讀取() : If dr.Read() Then : 合約種類_tb.Text = dr("英") : End If : conn.Close()
  942. End Sub
  943. Private Sub 選擇公司_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 選擇公司_cb.SelectedIndexChanged
  944. If 選擇公司_cb.Text = "PT HONG XHE INDUSTRIAL" Then : 合約編號_cb.Text = "HX" : Else : 合約編號_cb.Text = "PGS" : End If
  945. End Sub
  946. Private Sub 合約編號_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合約編號_cb.SelectedIndexChanged
  947. If 合約編號_cb.Text = "HX" Then : 選擇公司_cb.Text = "PT HONG XHE INDUSTRIAL" : Else : 選擇公司_cb.Text = "PT PUNCAK GEMILANG SEMESTA" : End If
  948. End Sub
  949. Private Sub 查詢_bt_Click(sender As Object, e As EventArgs) Handles 查詢_bt.Click
  950. PA = 關鍵字搜尋_tb.Text : Set_合約清單()
  951. End Sub
  952. Private Sub NUD3_ValueChanged(sender As Object, e As EventArgs) Handles NUD3.ValueChanged
  953. If CH2.Checked = True Then
  954. If 稅額顯示_lb.Text = "PPN 10%稅額 = Rp. " Then : NUD2.Value = NUD3.Value / 110 * 10 : Else : NUD2.Value = NUD3.Value / 111 * 11 : End If
  955. NUD1.Value = NUD3.Value - NUD2.Value
  956. 金額1_und.Value = NUD3.Value / 100 * 工程款1_nud.Value : 金額2_und.Value = NUD3.Value / 100 * 工程款2_nud.Value
  957. 金額3_und.Value = NUD3.Value / 100 * 工程款3_nud.Value : 金額4_und.Value = NUD3.Value / 100 * 工程款4_nud.Value
  958. 金額5_und.Value = NUD3.Value / 100 * 工程款5_nud.Value
  959. 金額6_und.Value = 金額1_und.Value + 金額2_und.Value + 金額3_und.Value + 金額4_und.Value + 金額5_und.Value
  960. End If
  961. End Sub
  962. Private Sub NUD1_ValueChanged(sender As Object, e As EventArgs) Handles NUD1.ValueChanged
  963. If CH1.Checked = True Then
  964. If 稅額顯示_lb.Text = "PPN 10%稅額 = Rp. " Then : NUD2.Value = NUD1.Value / 100 * 10 : Else : NUD2.Value = NUD1.Value / 111 * 11 : End If
  965. NUD3.Value = NUD1.Value + NUD2.Value
  966. 金額1_und.Value = NUD3.Value / 100 * 工程款1_nud.Value : 金額2_und.Value = NUD3.Value / 100 * 工程款2_nud.Value
  967. 金額3_und.Value = NUD3.Value / 100 * 工程款3_nud.Value : 金額4_und.Value = NUD3.Value / 100 * 工程款4_nud.Value
  968. 金額5_und.Value = NUD3.Value / 100 * 工程款5_nud.Value
  969. 金額6_und.Value = 金額1_und.Value + 金額2_und.Value + 金額3_und.Value + 金額4_und.Value + 金額5_und.Value
  970. End If
  971. End Sub
  972. Private Sub CH1_CheckedChanged(sender As Object, e As EventArgs) Handles CH1.Click
  973. CH1.Checked = True : CH2.Checked = False : NUD1.Enabled = True : NUD3.Enabled = False
  974. End Sub
  975. Private Sub CH2_CheckedChanged(sender As Object, e As EventArgs) Handles CH2.Click
  976. CH1.Checked = False : CH2.Checked = True : NUD1.Enabled = False : NUD3.Enabled = True
  977. End Sub
  978. Private Sub 工程款1_nud_ValueChanged(sender As Object, e As EventArgs) Handles 工程款1_nud.ValueChanged
  979. 工程款6_nud.Value = 工程款1_nud.Value + 工程款2_nud.Value + 工程款3_nud.Value + 工程款4_nud.Value + 工程款5_nud.Value
  980. 金額1_und.Value = NUD3.Value / 100 * 工程款1_nud.Value : 金額6_und.Value = 金額1_und.Value + 金額2_und.Value + 金額3_und.Value + 金額4_und.Value + 金額5_und.Value
  981. End Sub
  982. Private Sub 工程款2_nud_ValueChanged(sender As Object, e As EventArgs) Handles 工程款2_nud.ValueChanged
  983. 工程款6_nud.Value = 工程款1_nud.Value + 工程款2_nud.Value + 工程款3_nud.Value + 工程款4_nud.Value + 工程款5_nud.Value
  984. 金額2_und.Value = NUD3.Value / 100 * 工程款2_nud.Value : 金額6_und.Value = 金額1_und.Value + 金額2_und.Value + 金額3_und.Value + 金額4_und.Value + 金額5_und.Value
  985. End Sub
  986. Private Sub 工程款3_nud_ValueChanged(sender As Object, e As EventArgs) Handles 工程款3_nud.ValueChanged
  987. 工程款6_nud.Value = 工程款1_nud.Value + 工程款2_nud.Value + 工程款3_nud.Value + 工程款4_nud.Value + 工程款5_nud.Value
  988. 金額3_und.Value = NUD3.Value / 100 * 工程款3_nud.Value : 金額6_und.Value = 金額1_und.Value + 金額2_und.Value + 金額3_und.Value + 金額4_und.Value + 金額5_und.Value
  989. End Sub
  990. Private Sub 工程款4_nud_ValueChanged(sender As Object, e As EventArgs) Handles 工程款4_nud.ValueChanged
  991. 工程款6_nud.Value = 工程款1_nud.Value + 工程款2_nud.Value + 工程款3_nud.Value + 工程款4_nud.Value + 工程款5_nud.Value
  992. 金額4_und.Value = NUD3.Value / 100 * 工程款4_nud.Value : 金額6_und.Value = 金額1_und.Value + 金額2_und.Value + 金額3_und.Value + 金額4_und.Value + 金額5_und.Value
  993. End Sub
  994. Private Sub 工程款5_nud_ValueChanged(sender As Object, e As EventArgs) Handles 工程款5_nud.ValueChanged
  995. 工程款6_nud.Value = 工程款1_nud.Value + 工程款2_nud.Value + 工程款3_nud.Value + 工程款4_nud.Value + 工程款5_nud.Value
  996. 金額5_und.Value = NUD3.Value / 100 * 工程款5_nud.Value : 金額6_und.Value = 金額1_und.Value + 金額2_und.Value + 金額3_und.Value + 金額4_und.Value + 金額5_und.Value
  997. End Sub
  998. Private Sub 放行_bt_Click(sender As Object, e As EventArgs) Handles 放行_bt.Click
  999. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If : Else
  1000. PA = 合約編號_tb.Text : SQL_合約清單_報價放行_存檔()
  1001. If 系統語言 = "繁體中文" Then : MsgBox("合約 " & 合約編號_tb.Text & " 放行成功!!!!") : Else : MsgBox("kontrak " & 合約編號_tb.Text & " Rilis dengan sukses!!!!") : End If
  1002. Set_合約清單()
  1003. End If : conn.Close()
  1004. End Sub
  1005. Private Sub 存檔_tb_Click(sender As Object, e As EventArgs) Handles 存檔_tb.Click
  1006. Dim 合約編號條件 As Boolean = True
  1007. If 合約編號_cb.Text = "" Then
  1008. If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇我方公司!!") : Else : MsgBox("Silakan pilih perusahaan kami!!") : End If : 合約編號條件 = False : End If
  1009. If 合約編號1_tb.Text = "" Then
  1010. If 系統語言 = "繁體中文" Then : MsgBox("沒有甲方公司英文縮寫!!") : Else : MsgBox("Silakan masukkan singkatan dari perusahaan Pihak A!!") : End If : 合約編號條件 = False : Else
  1011. Dim d As Int32
  1012. For index = 0 To 合約編號1_tb.Text.Length - 1
  1013. d = Asc(合約編號1_tb.Text(index))
  1014. Dim 可能不行 As Boolean = False
  1015. If (d < 65 Or d > 90) Then : 可能不行 = True : End If 'c變數若在65~90是大寫的英文字母
  1016. If 可能不行 = True Then
  1017. If (d < 97 Or d > 122) Then : 可能不行 = True : Else : 可能不行 = False : End If 'c變數若在97~122是小寫的英文字母
  1018. If 可能不行 = True Then '然後查表, c變數若在48~57, 表示它是數字,
  1019. If (d < 48 Or d > 57) Then
  1020. If 系統語言 = "繁體中文" Then : MsgBox("甲方公司簡稱需要英文或是數字,不可以是中文或其他符號!!")
  1021. Else : MsgBox("Singkatan dari perusahaan Pihak A harus dalam bahasa Inggris atau angka, bukan dalam bahasa Cina atau simbol lainnya!!") : End If
  1022. 合約編號條件 = False : Exit For : End If
  1023. End If
  1024. End If
  1025. Next
  1026. End If
  1027. If 合約編號2_tb.Text = "" Then
  1028. If 系統語言 = "繁體中文" Then : MsgBox("沒有立約日期!!") : Else : MsgBox("Tidak ada tanggal kontrak!!") : End If : 合約編號條件 = False : End If
  1029. Dim c As Int32 '然後查表, c變數若在48~57, 表示它是數字,
  1030. For index = 0 To 合約編號2_tb.Text.Length - 1
  1031. c = Asc(合約編號2_tb.Text(index))
  1032. If c < 48 Or c > 57 Then
  1033. If 系統語言 = "繁體中文" Then : MsgBox("立約日期只能是數字!!") : Else : MsgBox("Tanggal perjanjian hanya bisa berupa angka!!") : End If : 合約編號條件 = False : Exit For : Else
  1034. If Len(合約編號2_tb.Text) <> 6 Then
  1035. If 系統語言 = "繁體中文" Then : MsgBox("立約日期的格式為YYMMDD (年兩位,月兩位,日兩位),數字規格不符!!")
  1036. Else : MsgBox("Format tanggal kontrak adalah YYMMDD (dua digit untuk tahun, dua digit untuk bulan, dan dua digit untuk hari), dan spesifikasi numerik tidak cocok!!") : End If
  1037. 合約編號條件 = False : Exit For : End If
  1038. End If
  1039. Next
  1040. If 合約編號3_tb.Text = "" Then
  1041. If 系統語言 = "繁體中文" Then : MsgBox("沒有合約序號!!") : Else : MsgBox("Tidak ada nomor kontrak!!") : End If : 合約編號條件 = False
  1042. ElseIf IsNumeric(合約編號3_tb.Text) = False Then
  1043. If 系統語言 = "繁體中文" Then : MsgBox("序號只能是數字!!") : Else : MsgBox("Nomor seri hanya bisa berupa angka!!") : End If : 合約編號條件 = False
  1044. End If
  1045. If 合約編號條件 = False Then : Else
  1046. If 工程款6_nud.Value <> 100 Then
  1047. If 系統語言 = "繁體中文" Then : MsgBox("工程款估驗 不等於 100%!!") : Else : MsgBox("Penilaian biaya proyek tidak sama dengan 100%!!") : End If
  1048. Else
  1049. Dim AN1, AN2, AN3, AN4, AN5 As Integer
  1050. Dim STST1 As String = "" : Dim STST2 As String = "" : Dim STST3 As String = "" : Dim STST4 As String = "" : Dim STST5 As String = ""
  1051. Dim SS1, SS2, SS3, SS4, SS5 As String
  1052. If 系統語言 = "繁體中文" Then
  1053. SS1 = "第一期工程款細項不吻合!!" : SS2 = "第二期工程款細項不吻合!!" : SS3 = "第三期工程款細項不吻合!!" : SS4 = "第四期工程款細項不吻合!!" : SS5 = "第五期工程款細項不吻合!!"
  1054. Else
  1055. SS1 = "Detail proyek fase 1 tidak cocok!!" : SS2 = "Detail proyek fase 2 tidak cocok!!" : SS3 = "Detail proyek fase 3 tidak cocok!!"
  1056. SS4 = "Detail proyek fase 4 tidak cocok!!" : SS5 = "Detail proyek fase 5 tidak cocok!!"
  1057. End If
  1058. For I As Integer = 0 To 第1期_dgv.Rows.Count - 1 : AN1 += 第1期_dgv.Rows(I).Cells("比例").Value : Next
  1059. For I As Integer = 0 To 第2期_dgv.Rows.Count - 1 : AN2 += 第2期_dgv.Rows(I).Cells("比例").Value : Next
  1060. For I As Integer = 0 To 第3期_dgv.Rows.Count - 1 : AN3 += 第3期_dgv.Rows(I).Cells("比例").Value : Next
  1061. For I As Integer = 0 To 第4期_dgv.Rows.Count - 1 : AN4 += 第4期_dgv.Rows(I).Cells("比例").Value : Next
  1062. For I As Integer = 0 To 第5期_dgv.Rows.Count - 1 : AN5 += 第5期_dgv.Rows(I).Cells("比例").Value : Next
  1063. If AN1 <> 工程款1_nud.Value And 第1期_dgv.Rows.Count > 0 Then : STST1 = SS1 : End If
  1064. If AN2 <> 工程款2_nud.Value And 第2期_dgv.Rows.Count > 0 Then : STST2 = SS2 : End If
  1065. If AN3 <> 工程款3_nud.Value And 第3期_dgv.Rows.Count > 0 Then : STST3 = SS3 : End If
  1066. If AN4 <> 工程款4_nud.Value And 第4期_dgv.Rows.Count > 0 Then : STST4 = SS4 : End If
  1067. If AN5 <> 工程款5_nud.Value And 第5期_dgv.Rows.Count > 0 Then : STST5 = SS5 : End If
  1068. If STST1 <> "" Or STST2 <> "" Or STST3 <> "" Or STST4 <> "" Or STST5 <> "" Then
  1069. MsgBox(STST1 & vbCrLf &
  1070. STST2 & vbCrLf &
  1071. STST3 & vbCrLf &
  1072. STST4 & vbCrLf &
  1073. STST5)
  1074. Else
  1075. PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text : 合約編號_tb.Text = PA
  1076. SQL_合約查詢()
  1077. If dr.Read() Then
  1078. Dim SS As String
  1079. If 系統語言 = "繁體中文" Then : SS = "系統內已有相同單號,請問是否存檔(會覆蓋舊資料)?"
  1080. Else : SS = "Nomor pelacakan yang sama sudah ada di sistem, apakah Anda ingin mengarsipkannya (data lama akan ditimpa)?" : End If
  1081. Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel)
  1082. If aa = MsgBoxResult.Ok Then : 合約存檔() : End If
  1083. End If
  1084. PA = 合約編號_tb.Text : Set_合約報價總表() : Set_合約報價係數() : Set_合約報價明細表()
  1085. End If
  1086. End If
  1087. End If
  1088. End Sub
  1089. Private Sub 合約存檔()
  1090. '-----判斷是否新增客戶資料-----------------------
  1091. PA30 = 合約編號1_tb.Text : Dim 供應商編號 As String : SQL_客戶資料讀取()
  1092. If dr.Read() Then
  1093. If 負責人_A_cb.Text <> dr("負責人").ToString And 負責人_A_cb.Text <> "" And dr("負責人").ToString <> "" Then
  1094. Dim SS As String
  1095. If 系統語言 = "繁體中文" Then : SS = "合約上的負責人與系統中的資料不吻合,是否要更新系統中的負責人資料?"
  1096. Else : SS = "Penanggung jawab kontrak tidak sesuai dengan informasi dalam sistem. Apakah Anda ingin memperbarui penanggung jawab dalam sistem?" : End If
  1097. Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel) '對話框(3)
  1098. If aa = MsgBoxResult.Ok Then : PA43 = 負責人_A_cb.Text : PA42 = 客戶名稱_tb.Text : conn.Close() : SQL_客戶資料表_修改負責人() : End If
  1099. ElseIf 負責人_A_cb.Text <> "" And dr("負責人").ToString = "" Then
  1100. PA43 = 負責人_A_cb.Text : PA42 = 客戶名稱_tb.Text : conn.Close() : SQL_客戶資料表_修改負責人()
  1101. End If
  1102. Else
  1103. conn.Close() : SQL_客戶資料表_最後一筆資料()
  1104. If dr.Read() Then : 供應商編號 = dr("流水號").ToString : Else : 供應商編號 = "CL000" : End If
  1105. conn.Close() : Dim NUM1 As Integer
  1106. NUM1 = Double.Parse(Strings.Right(供應商編號, 3)) + 1
  1107. If NUM1 < 10 Then : 供應商編號 = "CL" & "00" & NUM1
  1108. ElseIf NUM1 > 9 And NUM1 < 100 Then : 供應商編號 = "CL" & "0" & NUM1
  1109. ElseIf NUM1 > 99 Then : 供應商編號 = "CL" & NUM1 : End If
  1110. PA29 = 供應商編號 : PA41 = 合約編號1_tb.Text : PA40 = 客戶名稱_tb.Text : PA39 = 客戶地址_tb.Text : PA38 = 負責人_A_cb.Text
  1111. SQL_合約系統中新增客戶資料() : conn.Close()
  1112. End If : conn.Close()
  1113. PA37 = 合約種類_cb.Text : PA36 = 合約種類_tb.Text
  1114. SQL_合約種類查詢() : If dr.Read() Then : Else : SQL_合約種類新增() : conn.Close() : End If : conn.Close()
  1115. PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text
  1116. PA36 = 客戶名稱_tb.Text : PA35 = 負責人_A_cb.Text : PA34 = 工程地點_tb.Text : PA33 = 客戶地址_tb.Text : PA32 = 工程名稱_中_tb.Text : PA31 = 工程名稱_英_tb.Text
  1117. PA30 = 選擇公司_cb.Text : PA29 = 負責人_B_cb.Text : PA28 = 我司地址_tb.Text : PA27 = NUD3.Value : PA26 = 工程款1_nud.Value : PA25 = 工程款2_nud.Value
  1118. PA24 = 工程款3_nud.Value : PA23 = 工程款4_nud.Value : PA22 = 工程款5_nud.Value : PA21 = 工期_nud.Value : PA20 = 逾期_bt.Text : PA19 = 最高扣款_bt.Text
  1119. PA18 = 逾期_英_bt.Text : PA17 = 最高扣款_英_bt.Text : PA16 = 減價_bt.Text : PA15 = 廠區_中文_tb.Text : PA14 = 頁數_bt.Text : PA12 = 合約種類_cb.Text
  1120. PA13 = Strings.Format(立約日期_dtp.Value, "yyyy/MM/dd") : PA44 = 合約編號2_tb.Text : PA45 = 合約編號3_tb.Text : PA46 = 合約編號1_tb.Text : PA47 = 工程期_ch.Text
  1121. BL1 = 合約停止_ch.Checked
  1122. SQL_合約查詢() : If dr.Read() Then : SQL_合約修改2() : conn.Close() : Else : End If
  1123. 合約明細存檔() : PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text
  1124. If 系統語言 = "繁體中文" Then : MsgBox("存檔完成,合約清單鎖定解除!!") : Else : MsgBox("Arsip selesai, dan kunci daftar kontrak dilepaskan!!") : End If
  1125. Set_合約清單() : 合約_dgv.Enabled = True
  1126. End Sub
  1127. Private Sub 合約明細存檔()
  1128. For i As Integer = 0 To 第1期_dgv.Rows.Count - 1
  1129. PA1 = "1" : PA2 = 第1期_dgv.Rows(i).Cells("細項").Value : PA3 = 第1期_dgv.Rows(i).Cells("內容").Value
  1130. NU1 = 第1期_dgv.Rows(i).Cells("比例").Value : NU2 = 第1期_dgv.Rows(i).Cells("金額").Value : SQL_合約明細修改()
  1131. Next
  1132. For i As Integer = 0 To 第2期_dgv.Rows.Count - 1
  1133. PA1 = "2" : PA2 = 第2期_dgv.Rows(i).Cells("細項").Value : PA3 = 第2期_dgv.Rows(i).Cells("內容").Value
  1134. NU1 = 第2期_dgv.Rows(i).Cells("比例").Value : NU2 = 第2期_dgv.Rows(i).Cells("金額").Value : SQL_合約明細修改()
  1135. Next
  1136. For i As Integer = 0 To 第3期_dgv.Rows.Count - 1
  1137. PA1 = "3" : PA2 = 第3期_dgv.Rows(i).Cells("細項").Value : PA3 = 第3期_dgv.Rows(i).Cells("內容").Value
  1138. NU1 = 第3期_dgv.Rows(i).Cells("比例").Value : NU2 = 第3期_dgv.Rows(i).Cells("金額").Value : SQL_合約明細修改()
  1139. Next
  1140. For i As Integer = 0 To 第4期_dgv.Rows.Count - 1
  1141. PA1 = "4" : PA2 = 第4期_dgv.Rows(i).Cells("細項").Value : PA3 = 第4期_dgv.Rows(i).Cells("內容").Value
  1142. NU1 = 第4期_dgv.Rows(i).Cells("比例").Value : NU2 = 第4期_dgv.Rows(i).Cells("金額").Value : SQL_合約明細修改()
  1143. Next
  1144. For i As Integer = 0 To 第5期_dgv.Rows.Count - 1
  1145. PA1 = "5" : PA2 = 第5期_dgv.Rows(i).Cells("細項").Value : PA3 = 第5期_dgv.Rows(i).Cells("內容").Value
  1146. NU1 = 第5期_dgv.Rows(i).Cells("比例").Value : NU2 = 第5期_dgv.Rows(i).Cells("金額").Value : SQL_合約明細修改()
  1147. Next
  1148. End Sub
  1149. Private Sub 合約編號1_tb_TextChanged(sender As Object, e As EventArgs) Handles 合約編號1_tb.TextChanged
  1150. PA30 = 合約編號1_tb.Text : SQL_客戶資料讀取()
  1151. If dr.Read() Then : 客戶名稱_tb.Text = dr("客戶名稱") : 負責人_A_cb.Text = dr("負責人") : 客戶地址_tb.Text = dr("地址") : End If : conn.Close()
  1152. End Sub
  1153. '-----------------合約報價總表-------------------------------------------------------------------------------------------------------------------------------
  1154. Private Sub 總表範例新增()
  1155. SQL_合約報價總表_最後一筆資料()
  1156. If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("流水號").ToString, 9)) : Else : EDR = 0 : End If
  1157. conn.Close() : EDR += 1
  1158. If EDR < 10 Then : ESTR = "GT" & "00000000" & EDR : ElseIf EDR > 9 And EDR < 100 Then : ESTR = "GT" & "0000000" & EDR
  1159. ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "GT" & "000000" & EDR : ElseIf EDR > 999 And EDR < 10000 Then : ESTR = "GT" & "00000" & EDR
  1160. ElseIf EDR > 9999 And EDR < 100000 Then : ESTR = "GT" & "0000" & EDR : ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "GT" & "000" & EDR
  1161. ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "GT" & "00" & EDR : ElseIf EDR > 9999999 And EDR < 10000000 Then : ESTR = "GT" & "0" & EDR
  1162. ElseIf EDR > 99999999 Then : ESTR = "GT" & EDR : End If : PA9 = ESTR
  1163. PA10 = ""
  1164. SQL_合約報價總表_最後一筆排序()
  1165. If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "00" : End If : conn.Close() : NUM1 = Double.Parse(PA1) + 1
  1166. If NUM1 < 10 Then : PA1 = "00" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : PA1 = "0" & NUM1 : ElseIf NUM1 > 99 Then : PA1 = NUM1 : End If
  1167. SQL_合約報價總表_新增資料()
  1168. End Sub
  1169. Private Sub 報價總表存檔()
  1170. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  1171. PA1 = 報價總表_dgv.Rows(i).Cells("排序").Value.ToString : PA2 = 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString : PA3 = 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString
  1172. PA4 = 報價總表_dgv.Rows(i).Cells("UNIT").Value.ToString : PA5 = 報價總表_dgv.Rows(i).Cells("QTY").Value.ToString : PA6 = 報價總表_dgv.Rows(i).Cells("UNIT PRICE (RP)").Value.ToString
  1173. PA7 = 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value.ToString : PA8 = 報價總表_dgv.Rows(i).Cells("REMARKS").Value.ToString : PA9 = 報價總表_dgv.Rows(i).Cells("流水號").Value.ToString
  1174. PA10 = 報價總表_dgv.Rows(i).Cells("明細連動").Value.ToString
  1175. SQL_合約報價總表_存檔()
  1176. Next
  1177. SQL_合約修改_報價說明()
  1178. End Sub
  1179. Private Sub 報價總表存檔按鈕()
  1180. If 報價總表_dgv.Rows.Count = 0 Then : Else
  1181. 報價總表存檔() : PA37 = 合約種類_cb.Text : PA36 = 合約種類_tb.Text : PA = 合約編號_tb.Text
  1182. PA36 = 客戶名稱_tb.Text : PA35 = 負責人_A_cb.Text : PA34 = 工程地點_tb.Text : PA33 = 客戶地址_tb.Text : PA32 = 工程名稱_中_tb.Text : PA31 = 工程名稱_英_tb.Text
  1183. PA30 = 選擇公司_cb.Text : PA29 = 負責人_B_cb.Text : PA28 = 我司地址_tb.Text : PA27 = NUD3.Value : PA26 = 工程款1_nud.Value : PA25 = 工程款2_nud.Value
  1184. PA24 = 工程款3_nud.Value : PA23 = 工程款4_nud.Value : PA22 = 工程款5_nud.Value : PA21 = 工期_nud.Value : PA20 = 逾期_bt.Text : PA19 = 最高扣款_bt.Text
  1185. PA18 = 逾期_英_bt.Text : PA17 = 最高扣款_英_bt.Text : PA16 = 減價_bt.Text : PA15 = 廠區_中文_tb.Text : PA14 = 頁數_bt.Text : PA12 = 合約種類_cb.Text
  1186. PA13 = Strings.Format(立約日期_dtp.Value, "yyyy/MM/dd") : PA44 = 合約編號2_tb.Text : PA45 = 合約編號3_tb.Text : PA46 = 合約編號1_tb.Text : PA47 = 工程期_ch.Text
  1187. BL1 = 合約停止_ch.Checked
  1188. SQL_合約修改2() : Set_合約報價總表() : Set_合約清單()
  1189. End If
  1190. End Sub
  1191. '-----------------合約報價明細表-------------------------------------------------------------------------------------------------------------------------------
  1192. Private Sub 報價明細表存檔()
  1193. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  1194. PA1 = 報價明細表_dgv.Rows(i).Cells("排序").Value.ToString : PA2 = 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString
  1195. PA3 = 報價明細表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString : PA4 = 報價明細表_dgv.Rows(i).Cells("UNIT").Value.ToString
  1196. PA5 = 報價明細表_dgv.Rows(i).Cells("QTY").Value.ToString : PA6 = 報價明細表_dgv.Rows(i).Cells("UNIT PRICE (RP)").Value.ToString
  1197. PA7 = 報價明細表_dgv.Rows(i).Cells("AMOUNT (RP)").Value.ToString : PA8 = 報價明細表_dgv.Rows(i).Cells("REMARKS").Value.ToString
  1198. PA9 = 報價明細表_dgv.Rows(i).Cells("流水號").Value.ToString : PA10 = 報價明細表_dgv.Rows(i).Cells("實際數量").Value.ToString
  1199. PA11 = 報價明細表_dgv.Rows(i).Cells("工資成本單價").Value.ToString : PA12 = 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value.ToString
  1200. PA13 = 報價明細表_dgv.Rows(i).Cells("材料成本單價").Value.ToString : PA14 = 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value.ToString
  1201. PA15 = 報價明細表_dgv.Rows(i).Cells("料號").Value.ToString : BL = 報價明細表_dgv.Rows(i).Cells("不計").Value
  1202. PA16 = 報價明細表_dgv.Rows(i).Cells("材料係數").Value.ToString : BL1 = 報價明細表_dgv.Rows(i).Cells("D1").Value
  1203. BL2 = 報價明細表_dgv.Rows(i).Cells("D2").Value : BL3 = 報價明細表_dgv.Rows(i).Cells("D3").Value : BL4 = 報價明細表_dgv.Rows(i).Cells("D4").Value
  1204. BL5 = 報價明細表_dgv.Rows(i).Cells("D5").Value : BL6 = 報價明細表_dgv.Rows(i).Cells("D6").Value : BL7 = 報價明細表_dgv.Rows(i).Cells("D7").Value
  1205. BL8 = 報價明細表_dgv.Rows(i).Cells("D8").Value
  1206. SQL_合約報價明細表_存檔()
  1207. Next
  1208. '-----------------預估利潤存檔-------------------------------------------------------------------------------------------------------------------------------
  1209. If 預估工資總成本_tb.Text = "" Then : 預估工資總成本_tb.Text = "0" : End If
  1210. PA37 = 預估工資總成本_tb.Text
  1211. 預估利潤存檔()
  1212. End Sub
  1213. '-----------------合約試算表功能-------------------------------------------------------------------------------------------------------------------------------
  1214. Private Sub 試算表_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 試算表_cb.SelectedIndexChanged
  1215. PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA3 = 試算表_cb.Text : SQL_合約試算分表重複查詢()
  1216. If dr.Read() Then : 係數_nud.Value = dr("係數") : 表號_tb.Text = dr("表號").ToString : End If : 合約試算控制下拉清單()
  1217. End Sub
  1218. Private Sub 樓層_迴路_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 樓層_迴路_cb.SelectedIndexChanged
  1219. PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA4 = 樓層_迴路_cb.Text : SQL_合約試算控制表重複查詢() : If dr.Read() Then : 表頭_tb.Text = dr("表頭") : End If
  1220. End Sub
  1221. Private Sub 表號_tb_TextChanged(sender As Object, e As EventArgs) Handles 表號_tb.TextChanged
  1222. PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : Set_合約試算控制表_查詢()
  1223. End Sub
  1224. Private Sub 新增試算表_bt_Click(sender As Object, e As EventArgs) Handles 新增試算表_bt.Click
  1225. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If : Else
  1226. PA = 合約編號_tb.Text : PA3 = 試算表_cb.Text : SQL_合約試算分表重複查詢()
  1227. If dr.Read() Then : If 系統語言 = "繁體中文" Then : MsgBox("[試算表]名稱重複,請重新輸入!!") : Else : MsgBox("[Spreadsheet] Nama duplikat, silakan masukkan kembali!!") : End If : Else
  1228. '------生成表號---------------------------------------------------------------------------------------
  1229. Dim 表號 As String : PA = 合約編號_tb.Text
  1230. conn.Close() : SQL_合約試算分表_最後一筆資料()
  1231. If dr.Read() Then : 表號 = dr("表號").ToString : Else : 表號 = "B00" : End If : conn.Close()
  1232. Dim NUM1 As Integer
  1233. NUM1 = Double.Parse(Strings.Right(表號, 2)) + 1
  1234. If NUM1 < 10 Then : 表號 = "B" & "0" & NUM1
  1235. ElseIf NUM1 > 9 And NUM1 < 100 Then : 表號 = "B" & NUM1 : End If
  1236. '------新增試算表---------------------------------------------------------------------------------------
  1237. 表號_tb.Text = 表號 : PA1 = 試算表_cb.Text : PA2 = 表號_tb.Text : SQL_合約試算分表_新增()
  1238. '------重新載入下拉清單---------------------------------------------------------------------------------------
  1239. 合約試算分下拉清單() : If 系統語言 = "繁體中文" Then : MsgBox("新增完成!!") : Else : MsgBox("Tambahkan selesai!!") : End If
  1240. End If : conn.Close()
  1241. End If
  1242. End Sub
  1243. Private Sub 修改試算表名稱_bt_Click(sender As Object, e As EventArgs) Handles 修改試算表名稱_bt.Click
  1244. PA = 合約編號_tb.Text : PA3 = 試算表_cb.Text : SQL_合約試算分表重複查詢()
  1245. If dr.Read() Then : If 系統語言 = "繁體中文" Then : MsgBox("[試算表]名稱重複,請重新輸入!!") : Else : MsgBox("[Spreadsheet] Nama duplikat, silakan masukkan kembali!!") : End If : Else
  1246. PA = 合約編號_tb.Text : PA1 = 試算表_cb.Text : PA2 = 表號_tb.Text : SQL_合約試算分表_試算表修改()
  1247. '------重新載入下拉清單---------------------------------------------------------------------------------------
  1248. 合約試算分下拉清單() : If 系統語言 = "繁體中文" Then : MsgBox("修改完成!!") : Else : MsgBox("Modifikasi selesai!!") : End If
  1249. End If : conn.Close()
  1250. End Sub
  1251. Private Sub 新增物件_bt_Click(sender As Object, e As EventArgs) Handles 新增物件_bt.Click
  1252. If 試算控制表_dgv.Rows.Count = 40 Then
  1253. If 系統語言 = "繁體中文" Then : MsgBox("單一試算表內最多只能建立40個[樓層/迴路]!!") : Else : MsgBox("Maksimal 40 [lantai/sirkuit] dapat dibuat dalam satu spreadsheet!!") : End If : Else
  1254. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If : Else
  1255. PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA4 = 樓層_迴路_cb.Text : SQL_合約試算控制表重複查詢()
  1256. If dr.Read() Then
  1257. If 系統語言 = "繁體中文" Then : MsgBox("[樓層/迴路]名稱重複,請重新輸入!!") : Else : MsgBox("Nama [Lantai/Sirkuit] digandakan, silakan masuk kembali!!") : End If : Else
  1258. '------生成表號---------------------------------------------------------------------------------------
  1259. Dim 表頭 As String : PA = 合約編號_tb.Text : PA2 = 表號_tb.Text
  1260. conn.Close() : SQL_合約試算控制表_最後一筆資料()
  1261. If dr.Read() Then : 表頭 = dr("表頭").ToString : Else : 表頭 = "A00" : End If : conn.Close()
  1262. Dim NUM1 As Integer
  1263. NUM1 = Double.Parse(Strings.Right(表頭, 2)) + 1
  1264. If NUM1 < 10 Then : 表頭 = "A" & "0" & NUM1
  1265. ElseIf NUM1 > 9 And NUM1 < 100 Then : 表頭 = "A" & NUM1 : End If
  1266. '------新增試算表---------------------------------------------------------------------------------------
  1267. 表頭_tb.Text = 表頭 : PA4 = 樓層_迴路_cb.Text : PA2 = 表號_tb.Text : PA5 = 表頭_tb.Text : SQL_合約試算控制表_新增()
  1268. '------重新載入下拉清單---------------------------------------------------------------------------------------
  1269. 合約試算控制下拉清單() : Set_合約試算控制表_查詢() : If 系統語言 = "繁體中文" Then : MsgBox("新增完成!!") : Else : MsgBox("Tambahkan selesai!!") : End If
  1270. End If : conn.Close()
  1271. End If
  1272. End If
  1273. End Sub
  1274. Private Sub 修改樓層_迴圈_bt_Click(sender As Object, e As EventArgs) Handles 修改樓層_迴圈_bt.Click
  1275. PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA4 = 樓層_迴路_cb.Text : SQL_合約試算控制表重複查詢()
  1276. If dr.Read() Then
  1277. If 系統語言 = "繁體中文" Then : MsgBox("[樓層/迴路]名稱重複,請重新輸入!!") : Else : MsgBox("Nama [Lantai/Sirkuit] digandakan, silakan masuk kembali!!") : End If : Else
  1278. PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA4 = 樓層_迴路_cb.Text : PA5 = 表頭_tb.Text : SQL_合約試算控制表_樓層迴路修改()
  1279. '------重新載入下拉清單---------------------------------------------------------------------------------------
  1280. 合約試算控制下拉清單() : Set_合約試算控制表_查詢() : If 系統語言 = "繁體中文" Then : MsgBox("修改完成!!") : Else : MsgBox("Modifikasi selesai!!") : End If
  1281. End If : conn.Close()
  1282. End Sub
  1283. Private Sub 材料加入1_bt_Click(sender As Object, e As EventArgs) Handles 材料加入1_bt.Click
  1284. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If : Else
  1285. If 樓層_迴路_cb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("[樓層/迴路]沒有選擇!!") : Else : MsgBox("[lantai/sirkuit] tidak dipilih!!") : End If : Else
  1286. If 料號1_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇物料!!") : Else : MsgBox("Tidak ada bahan yang dipilih!!") : End If : Else
  1287. 存檔() : PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA6 = 料號1_tb.Text : SQL_合約試算明細表重複查詢()
  1288. If dr.Read() Then
  1289. If 系統語言 = "繁體中文" Then : MsgBox("要加入試算表的物料重複,請重新輸入!!")
  1290. Else : MsgBox("Untuk menambahkan duplikat item ke neraca saldo, silakan masukkan kembali!!") : End If
  1291. Else : conn.Close() : SQL_合約試算明細表_新增物料() : Set_試算明細表() : End If : conn.Close()
  1292. End If
  1293. End If
  1294. End If
  1295. End Sub
  1296. Private Sub 直接輸入_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 直接輸入_ch.Click
  1297. 直接輸入_ch.Checked = True : 使用計算機_ch.Checked = False
  1298. If 直接輸入_ch.Checked = False And 使用計算機_ch.Checked = True Then : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnF2
  1299. Else : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnEnter : End If
  1300. End Sub
  1301. Private Sub 使用計算機_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 使用計算機_ch.Click
  1302. 直接輸入_ch.Checked = False : 使用計算機_ch.Checked = True
  1303. If 直接輸入_ch.Checked = False And 使用計算機_ch.Checked = True Then : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnF2
  1304. Else : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnEnter : End If
  1305. End Sub
  1306. Private Sub 存檔()
  1307. If 合約編號_tb.Text = "" Or 表號_tb.Text = "" Then
  1308. If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If
  1309. Else
  1310. PA = 合約編號_tb.Text : PA1 = 表號_tb.Text
  1311. For i As Integer = 0 To 試算表_dgv.Rows.Count - 1
  1312. PA43 = 試算表_dgv.Rows(i).Cells(0).Value : PA2 = 試算表_dgv.Rows(i).Cells(3).Value : PA3 = 試算表_dgv.Rows(i).Cells(4).Value : PA4 = 試算表_dgv.Rows(i).Cells(5).Value
  1313. PA5 = 試算表_dgv.Rows(i).Cells(6).Value : PA6 = 試算表_dgv.Rows(i).Cells(7).Value : PA7 = 試算表_dgv.Rows(i).Cells(8).Value : PA8 = 試算表_dgv.Rows(i).Cells(9).Value
  1314. PA9 = 試算表_dgv.Rows(i).Cells(10).Value : PA10 = 試算表_dgv.Rows(i).Cells(11).Value : PA11 = 試算表_dgv.Rows(i).Cells(12).Value : PA12 = 試算表_dgv.Rows(i).Cells(13).Value
  1315. PA13 = 試算表_dgv.Rows(i).Cells(14).Value : PA14 = 試算表_dgv.Rows(i).Cells(15).Value : PA15 = 試算表_dgv.Rows(i).Cells(16).Value : PA16 = 試算表_dgv.Rows(i).Cells(17).Value
  1316. PA17 = 試算表_dgv.Rows(i).Cells(18).Value : PA18 = 試算表_dgv.Rows(i).Cells(19).Value : PA19 = 試算表_dgv.Rows(i).Cells(20).Value : PA20 = 試算表_dgv.Rows(i).Cells(21).Value
  1317. PA21 = 試算表_dgv.Rows(i).Cells(22).Value : PA22 = 試算表_dgv.Rows(i).Cells(23).Value : PA23 = 試算表_dgv.Rows(i).Cells(24).Value : PA24 = 試算表_dgv.Rows(i).Cells(25).Value
  1318. PA25 = 試算表_dgv.Rows(i).Cells(26).Value : PA26 = 試算表_dgv.Rows(i).Cells(27).Value : PA27 = 試算表_dgv.Rows(i).Cells(28).Value : PA28 = 試算表_dgv.Rows(i).Cells(29).Value
  1319. PA29 = 試算表_dgv.Rows(i).Cells(30).Value : PA30 = 試算表_dgv.Rows(i).Cells(31).Value : PA31 = 試算表_dgv.Rows(i).Cells(32).Value : PA32 = 試算表_dgv.Rows(i).Cells(33).Value
  1320. PA33 = 試算表_dgv.Rows(i).Cells(34).Value : PA34 = 試算表_dgv.Rows(i).Cells(35).Value : PA35 = 試算表_dgv.Rows(i).Cells(36).Value : PA36 = 試算表_dgv.Rows(i).Cells(37).Value
  1321. PA37 = 試算表_dgv.Rows(i).Cells(38).Value : PA38 = 試算表_dgv.Rows(i).Cells(39).Value : PA39 = 試算表_dgv.Rows(i).Cells(40).Value : PA40 = 試算表_dgv.Rows(i).Cells(41).Value
  1322. PA41 = 試算表_dgv.Rows(i).Cells(42).Value : BL1 = 試算表_dgv.Rows(i).Cells(43).Value : PA42 = 試算表_dgv.Rows(i).Cells(44).Value
  1323. SQL_合約試算明細表_修改()
  1324. Next i
  1325. End If
  1326. End Sub
  1327. Private Sub 存檔_bt_Click(sender As Object, e As EventArgs) Handles 存檔_bt.Click
  1328. 存檔() : If 系統語言 = "繁體中文" Then : MsgBox("存檔完成!!") : Else : MsgBox("Arsip selesai!!") : End If
  1329. End Sub
  1330. Private Sub 刪除1_bt_Click(sender As Object, e As EventArgs) Handles 刪除1_bt.Click
  1331. Dim SS As String
  1332. If 系統語言 = "繁體中文" Then : SS = "是否要刪除這筆資料?" : Else : SS = "Apakah Anda ingin menghapus data ini?" : End If
  1333. Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel) '對話框(3)
  1334. If aa = MsgBoxResult.Ok Then
  1335. PA = 合約編號_tb.Text : PA1 = 表號_tb.Text : PA43 = 料號1_tb.Text : PA2 = 表號_tb.Text : SQL_合約試算明細表_刪除()
  1336. If 系統語言 = "繁體中文" Then : MsgBox("刪除完成!!") : Else : MsgBox("Hapus selesai!!") : End If : Set_試算明細表()
  1337. End If
  1338. End Sub
  1339. '-----------------預估利潤存檔-------------------------------------------------------------------------------------------------------------------------------
  1340. Private Sub 預估利潤存檔()
  1341. If 預估利潤_tb.Text = "" Or 預估利潤_tb.Text = "0" Or 利潤比3_tb.Text = "0 %" Then : Else
  1342. If 預估工資總成本_tb.Text = "" Then : 預估工資總成本_tb.Text = "0" : End If : If 預估工資總報價_tb.Text = "" Then : 預估工資總報價_tb.Text = "0" : End If
  1343. If 利潤比1_tb.Text = "" Then : 利潤比1_tb.Text = "0 %" : End If : If 預估材料總成本_tb.Text = "" Then : 預估材料總成本_tb.Text = "0" : End If
  1344. If 預估材料總報價_tb.Text = "" Then : 預估材料總報價_tb.Text = "0" : End If : If 利潤比2_tb.Text = "" Then : 利潤比2_tb.Text = "0 %" : End If
  1345. If 總成本_tb.Text = "" Then : 總成本_tb.Text = "0" : End If : If 總報價_tb.Text = "" Then : 總報價_tb.Text = "0" : End If
  1346. If 利潤比3_tb.Text = "" Then : 利潤比3_tb.Text = "0 %" : End If : If 利潤比4_tb.Text = "" Then : 利潤比4_tb.Text = "0 %" : End If
  1347. If 預估利潤_tb.Text = "" Then : 預估利潤_tb.Text = "0" : End If
  1348. PA37 = 預估工資總成本_tb.Text : PA38 = 預估工資總報價_tb.Text : PA39 = Replace(Replace(利潤比1_tb.Text, " ", ""), "%", "")
  1349. PA40 = 預估材料總成本_tb.Text : PA41 = 預估材料總報價_tb.Text : PA42 = Replace(Replace(利潤比2_tb.Text, " ", ""), "%", "") : PA47 = 預估利潤_tb.Text
  1350. PA43 = 總成本_tb.Text : PA44 = 總報價_tb.Text : PA45 = Replace(Replace(利潤比3_tb.Text, " ", ""), "%", "") : PA46 = Replace(Replace(利潤比4_tb.Text, " ", ""), "%", "")
  1351. SQL_合約控制表預估利潤存檔()
  1352. End If
  1353. End Sub
  1354. '---------------------其他雜項功能--------------------------------------------------------------------------------------------------------------------------
  1355. Private Sub 合約編號1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合約編號1_cb.SelectedIndexChanged
  1356. 條件選擇 = 合約編號1_cb.Text : Set_合約清單()
  1357. End Sub
  1358. Private Sub 工程期1_ch_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 工程期1_ch.SelectedIndexChanged
  1359. 條件選擇 = 合約編號1_cb.Text : Set_合約清單()
  1360. End Sub
  1361. Private Sub 合約編號清單_bt_Click(sender As Object, e As EventArgs) Handles 合約編號清單_bt.Click
  1362. If 合約_dgv.Rows.Count > 2999 Then
  1363. If 系統語言 = "繁體中文" Then : MsgBox("清單數量超過3000個,清通知系統管理員修改程式!!")
  1364. Else : MsgBox("Jumlah daftar melebihi 3000, dan administrator sistem diberitahu untuk memodifikasi program!!") : End If : Else
  1365. For I As Integer = 0 To 3000 : PPBB(I) = "" : Next
  1366. For I As Integer = 0 To 合約_dgv.Rows.Count - 1 : PPBB(I) = 合約_dgv("合約編號", I).Value.ToString : NN1 = I : Next
  1367. 下拉清單_1.ShowDialog()
  1368. For I As Integer = 0 To 合約_dgv.Rows.Count - 1 : If PPAA = 合約_dgv("合約編號", I).Value.ToString Then : 選取位置 = I : Exit For : End If : Next : 合約讀取()
  1369. End If
  1370. End Sub
  1371. Private Sub 縮放1_bt_Click(sender As Object, e As EventArgs) Handles 縮放1_bt.Click
  1372. If 合約_dgv.Visible = True Then
  1373. AA3 = 空間3.Size.Width : BB3 = 空間3.Size.Height : 合約_dgv.Visible = False
  1374. If 不再動作1 = False Then : 空間3.Location = New System.Drawing.Point(AA1, BB2) : 空間3.Size = New System.Drawing.Point((AA2 - AA1) + AA3, BB3) : End If
  1375. Else
  1376. 合約_dgv.Visible = True : If 不再動作1 = False Then : 空間3.Location = New System.Drawing.Point(AA2, BB2) : 空間3.Size = New System.Drawing.Point(AA3, BB3) : End If
  1377. End If
  1378. End Sub
  1379. Private Sub 縮放2_bt_Click(sender As Object, e As EventArgs) Handles 縮放2_bt.Click
  1380. Dim NX, NY As Integer : NX = 合約_dgv.Size.Width : NY = 合約_dgv.Size.Height
  1381. If 合約_dgv.Visible = False Then : 縮放1_bt.PerformClick() : End If
  1382. If 放大 = True Then
  1383. 合約_dgv.Size = New System.Drawing.Point(NX - 400, NY) : 放大 = False : 合約_dgv.Columns("工程名稱_中").Visible = False
  1384. Else
  1385. 合約_dgv.Size = New System.Drawing.Point(NX + 400, NY) : 放大 = True : 合約_dgv.Columns("工程名稱_中").Visible = True
  1386. End If
  1387. End Sub
  1388. Private Sub 物料圖_pb_Click(sender As Object, e As EventArgs) Handles 物料圖_pb.Click
  1389. If IsNothing(物料圖_pb.Image) = False Then : 圖片傳遞 = 物料圖_pb.Image : 圖片放大視窗.ShowDialog() : End If
  1390. End Sub
  1391. Private Sub 物料圖1_pb_Click(sender As Object, e As EventArgs) Handles 物料圖1_pb.Click
  1392. If IsNothing(物料圖1_pb.Image) = False Then : 圖片傳遞 = 物料圖1_pb.Image : 圖片放大視窗.ShowDialog() : End If
  1393. End Sub
  1394. Private Sub 工資_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 工資_ch.Click
  1395. If 工資_ch.Checked = True Then : 工資_ch.Checked = True : Else : 工資_ch.Checked = False : End If
  1396. If 報價明細表_dgv.Columns(8).Visible = False Then : Set_報價明細表_dgv_利潤表關閉() : Else : Set_報價明細表_dgv_利潤表開啟() : End If
  1397. End Sub
  1398. Private Sub 材料_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 材料_ch.Click
  1399. If 材料_ch.Checked = True Then : 材料_ch.Checked = True : Else : 材料_ch.Checked = False : End If
  1400. If 報價明細表_dgv.Columns(8).Visible = False Then : Set_報價明細表_dgv_利潤表關閉() : Else : Set_報價明細表_dgv_利潤表開啟() : End If
  1401. End Sub
  1402. Private Sub 利潤表_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 利潤表_ch.Click
  1403. If 利潤表_ch.Checked = True Then : 利潤表_ch.Checked = True : Set_報價明細表_dgv_利潤表開啟() : Else : 利潤表_ch.Checked = False : Set_報價明細表_dgv_利潤表關閉() : End If
  1404. End Sub
  1405. Private Sub 詳細資料2_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 詳細資料2_ch.Click
  1406. If 詳細資料2_ch.Checked = True Then : 詳細資料2_ch.Checked = True : Else : 詳細資料2_ch.Checked = False : End If : Set_合約報價明細表()
  1407. End Sub
  1408. Private Sub 詳細資料3_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 詳細資料3_ch.Click
  1409. If 詳細資料3_ch.Checked = True Then : 詳細資料3_ch.Checked = True : Else : 詳細資料3_ch.Checked = False : End If : Set_試算明細表()
  1410. End Sub
  1411. '----------------------列印成excel---------------------------------------------------------------------------------------------------------
  1412. Private Sub 列印成EXCEL_bt_Click(sender As Object, e As EventArgs) Handles 列印成EXCEL_bt.Click
  1413. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If : Else
  1414. XN1 = 0
  1415. xlApp = CType(CreateObject("Excel.Application"), Application)
  1416. xlApp.Visible = True
  1417. xlApp.DisplayAlerts = True
  1418. xlApp.Application.WindowState = xlMaximized
  1419. xlBook = xlApp.Workbooks.Add
  1420. '----------------------------------------------------------------------------------------------------------------------
  1421. xlSheet = NewMethod(xlBook) : xlApp.Sheets(1).Select : xlApp.Sheets(1).Name = "明細表"
  1422. xlBook.Activate() : xlSheet.Activate()
  1423. xlSheet.Cells(2, 1) = "QUOTATION" : xlSheet.Cells(3, 7) = "NO : " & 合約編號_tb.Text
  1424. xlSheet.Cells(3, 1) = "業主名稱 : " & 客戶名稱_tb.Text : xlSheet.Cells(4, 7) = "Date : " & Strings.Format(Today(), "yyyy/MM/dd")
  1425. xlSheet.Cells(4, 1) = "工程項目 : " & 工程名稱_中_tb.Text & vbCrLf & 工程名稱_英_tb.Text
  1426. xlSheet.Cells(5, 1) = "ITEM" : xlSheet.Cells(5, 2) = "DESCRIPTION" : xlSheet.Cells(5, 3) = "UNIT"
  1427. xlSheet.Cells(5, 4) = "Q'TY" : xlSheet.Cells(5, 9) = "REMARKS"
  1428. If 工材分離_ch.Checked = False Then : xlSheet.Cells(5, 5) = "UNIT PRICE" & vbCrLf & "(RP)" : xlSheet.Cells(5, 7) = "AMOUNT" & vbCrLf & "(RP)" : Else
  1429. xlSheet.Cells(5, 5) = "工資報價單價" & vbCrLf & "Hrga satuan penawaran gaji" : xlSheet.Cells(5, 6) = "工資報價復價" & vbCrLf & "Total harga upah"
  1430. xlSheet.Cells(5, 7) = "材料報價單價" & vbCrLf & "Harga satuan kutipan material" : xlSheet.Cells(5, 8) = "材料報價複價" & vbCrLf & "Harga total kuotasi material"
  1431. End If
  1432. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  1433. If 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString() = "*" Then : Else
  1434. xlSheet.Cells(6 + i, 1) = 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString()
  1435. End If
  1436. xlSheet.Cells(6 + i, 2) = 報價明細表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString()
  1437. xlSheet.Cells(6 + i, 3) = 報價明細表_dgv.Rows(i).Cells("UNIT").Value.ToString()
  1438. If CInt(報價明細表_dgv.Rows(i).Cells("QTY").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 4) = "" : Else
  1439. xlSheet.Cells(6 + i, 4) = 報價明細表_dgv.Rows(i).Cells("QTY").Value.ToString() : End If
  1440. xlSheet.Cells(6 + i, 9) = 報價明細表_dgv.Rows(i).Cells("REMARKS").Value.ToString()
  1441. If 工材分離_ch.Checked = False Then
  1442. If CInt(報價明細表_dgv.Rows(i).Cells("UNIT PRICE (RP)").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 5) = "" : Else
  1443. xlSheet.Cells(6 + i, 5) = 報價明細表_dgv.Rows(i).Cells("UNIT PRICE (RP)").Value.ToString() : End If
  1444. If CInt(報價明細表_dgv.Rows(i).Cells("AMOUNT (RP)").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 7) = "" : Else
  1445. xlSheet.Cells(6 + i, 7) = 報價明細表_dgv.Rows(i).Cells("AMOUNT (RP)").Value.ToString() : End If
  1446. Else
  1447. If CInt(報價明細表_dgv.Rows(i).Cells("工資報價單價").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 5) = "" : Else
  1448. xlSheet.Cells(6 + i, 5) = 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value.ToString() : End If
  1449. If CInt(報價明細表_dgv.Rows(i).Cells("工資報價後價").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 6) = "" : Else
  1450. xlSheet.Cells(6 + i, 6) = 報價明細表_dgv.Rows(i).Cells("工資報價後價").Value.ToString() : End If
  1451. If CInt(報價明細表_dgv.Rows(i).Cells("材料報價單價").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 7) = "" : Else
  1452. xlSheet.Cells(6 + i, 7) = 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value.ToString() : End If
  1453. If CInt(報價明細表_dgv.Rows(i).Cells("材料報價後價").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 8) = "" : Else
  1454. xlSheet.Cells(6 + i, 8) = 報價明細表_dgv.Rows(i).Cells("材料報價後價").Value.ToString() : End If
  1455. End If
  1456. XN2 = 6 + i
  1457. Next
  1458. AA(xlApp, xlSheet)
  1459. If 合約編號_cb.Text = "HX" Then : CC(xlApp, xlSheet) : Else : DD(xlApp, xlSheet) : End If : FF(xlApp, xlSheet)
  1460. '----------------------------------------------------------------------------------------------------------------------
  1461. xlSheet = NewMethod(xlBook) : xlApp.Sheets(1).Select : xlApp.Sheets(1).Name = "報價單"
  1462. xlBook.Activate() : xlSheet.Activate()
  1463. xlSheet.Cells(2, 1) = "QUOTATION" : xlSheet.Cells(4, 6) = "NO : " & 合約編號_tb.Text
  1464. xlSheet.Cells(4, 1) = "業主名稱 : " & 客戶名稱_tb.Text : xlSheet.Cells(5, 6) = "Date : " & Strings.Format(Today(), "yyyy/MM/dd")
  1465. xlSheet.Cells(5, 1) = "工程項目 : " & 工程名稱_中_tb.Text & vbCrLf & 工程名稱_英_tb.Text
  1466. xlSheet.Cells(6, 1) = "ITEM" : xlSheet.Cells(6, 2) = "DESCRIPTION" : xlSheet.Cells(6, 3) = "UNIT" : xlSheet.Cells(6, 5) = "UNIT PRICE" & vbCrLf & "(RP)"
  1467. xlSheet.Cells(6, 6) = "AMOUNT" & vbCrLf & "(RP)" : xlSheet.Cells(6, 4) = "Q'TY" : xlSheet.Cells(6, 7) = "REMARKS"
  1468. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  1469. If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString() = "*" Or 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString() = "@" Or
  1470. 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString() = "^" Then : Else
  1471. xlSheet.Cells(7 + i, 1) = 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString()
  1472. End If
  1473. xlSheet.Cells(7 + i, 2) = 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString()
  1474. xlSheet.Cells(7 + i, 3) = 報價總表_dgv.Rows(i).Cells("UNIT").Value.ToString()
  1475. If CInt(報價總表_dgv.Rows(i).Cells("QTY").Value.ToString()) = 0 Then : xlSheet.Cells(7 + i, 4) = "" : Else
  1476. xlSheet.Cells(7 + i, 4) = 報價總表_dgv.Rows(i).Cells("QTY").Value.ToString() : End If
  1477. If CInt(報價總表_dgv.Rows(i).Cells("UNIT PRICE (RP)").Value.ToString()) = 0 Then : xlSheet.Cells(7 + i, 5) = "" : Else
  1478. xlSheet.Cells(7 + i, 5) = 報價總表_dgv.Rows(i).Cells("UNIT PRICE (RP)").Value.ToString() : End If
  1479. If CInt(報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value.ToString()) = 0 Then : xlSheet.Cells(7 + i, 6) = "" : Else
  1480. xlSheet.Cells(7 + i, 6) = 報價總表_dgv.Rows(i).Cells("AMOUNT (RP)").Value.ToString() : End If
  1481. xlSheet.Cells(7 + i, 7) = 報價總表_dgv.Rows(i).Cells("REMARKS").Value.ToString()
  1482. XN1 = 8 + i
  1483. Next
  1484. xlSheet.Cells(XN1 + 1, 1) = "報價說明Offer descriptions:" : xlSheet.Cells(XN1 + 2, 1) = 報價說明_tb.Text
  1485. xlSheet.Cells(XN1 + 3, 1) = "客戶確認 (簽名,蓋章)" : xlSheet.Cells(XN1 + 3, 3) = "核准" : xlSheet.Cells(XN1 + 3, 7) = "經辦人"
  1486. xlSheet.Cells(XN1 + 4, 1) = "Customer confirmation ( signature ) : " : xlSheet.Cells(XN1 + 4, 3) = "Approved : " : xlSheet.Cells(XN1 + 4, 7) = "報價說明Offer descriptions:"
  1487. xlSheet.Cells(XN1 + 5, 7) = gUserName
  1488. xlSheet.Cells(XN1 + 6, 1) = "_________________________________" : xlSheet.Cells(XN1 + 6, 3) = "_________________________________"
  1489. xlSheet.Cells(XN1 + 6, 7) = "_________________________________"
  1490. BB(xlApp, xlSheet)
  1491. If 合約編號_cb.Text = "HX" Then : CC(xlApp, xlSheet) : Else : DD(xlApp, xlSheet) : End If : FF(xlApp, xlSheet)
  1492. '----------------------------------------------------------------------------------------------------------------------
  1493. xlApp.Sheets(3).Delete
  1494. xlSheet.PageSetup.PrintArea = ""
  1495. xlApp.Cells.Select()
  1496. xlApp.Application.WindowState = xlMinimized
  1497. If 系統語言 = "繁體中文" Then : MsgBox("列印完成!!") : Else : MsgBox("cetak selesai!!") : End If
  1498. End If
  1499. End Sub
  1500. Private Shared Function NewMethod(xlBook As Workbook) As Worksheet
  1501. Return CType(xlBook.Worksheets.Add, Worksheet)
  1502. End Function
  1503. Private Sub AA(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  1504. xlSheet.Cells.Select()
  1505. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  1506. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  1507. xlSheet.Range("A2:I2").Select()
  1508. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 14 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  1509. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  1510. xlSheet.Rows("1:1").Select : myExcel.Selection.RowHeight = 95
  1511. xlSheet.Rows("2:2").Select : myExcel.Selection.RowHeight = 30 : xlSheet.Rows("3:3").Select : myExcel.Selection.RowHeight = 20
  1512. xlSheet.Rows("4:4").Select : myExcel.Selection.RowHeight = 35 : xlSheet.Rows("5:5").Select : myExcel.Selection.RowHeight = 65
  1513. xlSheet.Rows("6:" & XN2).Select : myExcel.Selection.RowHeight = 35
  1514. If 工材分離_ch.Checked = True Then
  1515. xlSheet.Range("E5:H6").Select()
  1516. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 8 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  1517. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  1518. End If
  1519. xlSheet.Range("A5:I5").Select()
  1520. With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorAccent1 : .TintAndShade = 0.799981688894314
  1521. .PatternTintAndShade = 0 : End With
  1522. xlSheet.Range("A4").Select()
  1523. With myExcel.Selection : .HorizontalAlignment = xlGeneral : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1524. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1525. xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 6
  1526. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False
  1527. .ReadingOrder = xlContext : .MergeCells = False : End With
  1528. xlSheet.Columns("C:D").Select : myExcel.Selection.ColumnWidth = 6 : xlSheet.Columns("I:I").Select : myExcel.Selection.ColumnWidth = 40
  1529. xlSheet.Columns("I:I").Select : myExcel.Selection.ColumnWidth = 18.5
  1530. If 工材分離_ch.Checked = False Then
  1531. xlSheet.Columns("G:H").Select : myExcel.Selection.ColumnWidth = 9 : xlSheet.Columns("E:F").Select : myExcel.Selection.ColumnWidth = 9
  1532. xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 50
  1533. Else
  1534. xlSheet.Columns("G:H").Select : myExcel.Selection.ColumnWidth = 13 : xlSheet.Columns("E:F").Select : myExcel.Selection.ColumnWidth = 13
  1535. xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 50
  1536. End If
  1537. xlSheet.Range("A2:I2").Select()
  1538. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1539. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1540. xlSheet.Range("A3:F3").Select()
  1541. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1542. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1543. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1544. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  1545. xlSheet.Range("A4:F4").Select()
  1546. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1547. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1548. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1549. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  1550. xlSheet.Range("G3:I3").Select()
  1551. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1552. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1553. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1554. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  1555. xlSheet.Range("G4:I4").Select()
  1556. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1557. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1558. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1559. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  1560. If 工材分離_ch.Checked = False Then
  1561. xlSheet.Range("E5:F5").Select()
  1562. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1563. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1564. xlSheet.Range("G5:H5").Select()
  1565. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1566. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1567. End If
  1568. xlSheet.Range("C5:H5").Select()
  1569. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1570. .ShrinkToFit = False : .ReadingOrder = xlContext : End With
  1571. For i As Integer = 6 To XN2
  1572. xlSheet.Range("E" & i & ":F" & i).Select()
  1573. If 工材分離_ch.Checked = False Then
  1574. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1575. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge : End If
  1576. xlSheet.Range("G" & i & ":H" & i).Select()
  1577. If 工材分離_ch.Checked = False Then
  1578. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1579. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge : End If
  1580. Next
  1581. xlSheet.Range("E6:H" & XN2).Select()
  1582. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1583. .ShrinkToFit = False : .ReadingOrder = xlContext : End With
  1584. myExcel.Selection.NumberFormatLocal = "#,##0_ "
  1585. xlSheet.Range("C6:D" & XN2).Select()
  1586. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1587. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1588. xlSheet.Range("I6:I" & XN2).Select()
  1589. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1590. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1591. xlSheet.Range("B6:B" & XN2).Select()
  1592. With myExcel.Selection : .HorizontalAlignment = xlGeneral : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  1593. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1594. xlSheet.Range("A5:I5").Select()
  1595. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  1596. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1597. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1598. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1599. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1600. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1601. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1602. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  1603. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1604. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1605. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1606. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1607. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1608. myExcel.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
  1609. xlSheet.Range("A6:I" & XN2).Select()
  1610. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  1611. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1612. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1613. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1614. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1615. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1616. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1617. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  1618. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1619. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1620. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1621. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1622. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1623. xlSheet.Range("J17").Select() : myExcel.ActiveWindow.DisplayGridlines = False
  1624. xlSheet.Range("A4:F4").Select()
  1625. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False
  1626. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  1627. xlSheet.Range("A5:I5").Select()
  1628. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .Orientation = 0
  1629. .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : End With
  1630. xlSheet.Range("A6:I" & XN2).Select()
  1631. With myExcel.Selection : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False
  1632. .ReadingOrder = xlContext : End With
  1633. End Sub
  1634. Private Sub BB(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  1635. xlSheet.Cells.Select()
  1636. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  1637. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  1638. xlSheet.Rows("2:2").Select
  1639. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 14 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  1640. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  1641. xlSheet.Rows("1:1").Select : myExcel.Selection.RowHeight = 95 : xlSheet.Rows("2:2").Select : myExcel.Selection.RowHeight = 30
  1642. xlSheet.Rows("4:4").Select : myExcel.Selection.RowHeight = 20 : xlSheet.Rows("5:5").Select : myExcel.Selection.RowHeight = 35
  1643. xlSheet.Rows("6:6").Select : myExcel.Selection.RowHeight = 40 : xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 6
  1644. xlSheet.Rows("7:" & XN1).Select : myExcel.Selection.RowHeight = 35
  1645. xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 60 : xlSheet.Columns("C:C").Select : myExcel.Selection.ColumnWidth = 6
  1646. xlSheet.Columns("D:D").Select : myExcel.Selection.ColumnWidth = 6 : xlSheet.Columns("E:E").Select : myExcel.Selection.ColumnWidth = 18
  1647. xlSheet.Columns("F:F").Select : myExcel.Selection.ColumnWidth = 18 : xlSheet.Columns("G:G").Select : myExcel.Selection.ColumnWidth = 18.5
  1648. xlSheet.Range("A2:G2").Select()
  1649. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1650. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1651. xlSheet.Range("A4:E4").Select()
  1652. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1653. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1654. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1655. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  1656. xlSheet.Range("A5:E5").Select()
  1657. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1658. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1659. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1660. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  1661. xlSheet.Range("F4:G4").Select()
  1662. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1663. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1664. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1665. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  1666. xlSheet.Range("F5:G5").Select()
  1667. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1668. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1669. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1670. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  1671. xlSheet.Range("A6:A" & XN1 - 1).Select()
  1672. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1673. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1674. xlSheet.Range("C6:D" & XN1 - 1).Select()
  1675. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1676. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1677. xlSheet.Range("E6:F6").Select()
  1678. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1679. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1680. xlSheet.Range("A6:G6").Select()
  1681. With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorLight2
  1682. .TintAndShade = 0.799981688894314 : .PatternTintAndShade = 0 : End With
  1683. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  1684. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1685. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1686. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1687. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1688. With myExcel.Selection.Borders(xlInsideVertical) : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1689. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1690. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  1691. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1692. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1693. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1694. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1695. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1696. myExcel.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
  1697. xlSheet.Range("A7:G" & XN1 - 1).Select()
  1698. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  1699. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1700. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1701. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1702. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1703. With myExcel.Selection.Borders(xlInsideVertical) : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1704. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1705. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  1706. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1707. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1708. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1709. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  1710. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1711. xlSheet.Range("A" & XN1 + 1 & ":G" & XN1 + 1).Select()
  1712. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1713. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1714. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1715. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  1716. xlSheet.Range("A" & XN1 + 2 & ":G" & XN1 + 2).Select()
  1717. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1718. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  1719. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1720. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  1721. xlSheet.Range("A" & XN1 + 1 & ":G" & XN1 + 2).Select()
  1722. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  1723. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1724. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1725. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1726. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  1727. myExcel.Selection.Borders(xlInsideVertical).LineStyle = xlNone : myExcel.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
  1728. xlSheet.Rows(XN1 + 2 & ":" & XN1 + 2).Select : myExcel.Selection.RowHeight = 100
  1729. xlSheet.Rows(XN1 + 3 & ":" & XN1 + 3).Select : myExcel.Selection.RowHeight = 30
  1730. With myExcel.Selection : .HorizontalAlignment = xlGeneral : .VerticalAlignment = xlBottom : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1731. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1732. xlSheet.Rows(XN1 + 5 & ":" & XN1 + 5).Select : myExcel.Selection.RowHeight = 80
  1733. xlSheet.Range("H17").Select() : myExcel.ActiveWindow.DisplayGridlines = False
  1734. xlSheet.Range("E7:F" & XN1 - 1).Select() : myExcel.Selection.NumberFormatLocal = "#,##0_ "
  1735. xlSheet.Range("A5:E5").Select()
  1736. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False
  1737. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  1738. xlSheet.Range("A6:G6").Select()
  1739. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  1740. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  1741. xlSheet.Range("A7:G" & XN1 - 1).Select()
  1742. With myExcel.Selection : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False
  1743. .ReadingOrder = xlContext : .MergeCells = False : End With
  1744. xlSheet.Range("A" & XN1 + 2 & ":G" & XN1 + 2).Select()
  1745. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlTop : .WrapText = True : .Orientation = 0 : .AddIndent = False
  1746. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  1747. End Sub
  1748. Private Sub CC(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  1749. Clipboard.SetDataObject(PictureBox1.Image)
  1750. xlSheet.Range("A1").Select()
  1751. myExcel.ActiveSheet.Pictures.Paste.Select
  1752. myExcel.Selection.ShapeRange.Height = 93
  1753. myExcel.Selection.ShapeRange.IncrementLeft(0)
  1754. myExcel.Selection.ShapeRange.IncrementTop(0)
  1755. End Sub
  1756. Private Sub DD(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  1757. Clipboard.SetDataObject(PictureBox2.Image)
  1758. xlSheet.Range("A1").Select()
  1759. myExcel.ActiveSheet.Pictures.Paste.Select
  1760. myExcel.Selection.ShapeRange.Height = 93
  1761. myExcel.Selection.ShapeRange.IncrementLeft(0)
  1762. myExcel.Selection.ShapeRange.IncrementTop(0)
  1763. End Sub
  1764. Private Sub FF(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  1765. myExcel.Application.PrintCommunication = False : With myExcel.ActiveSheet.PageSetup : .PrintTitleRows = "$1:$5" : .PrintTitleColumns = "" : End With
  1766. myExcel.Application.PrintCommunication = True : myExcel.ActiveSheet.PageSetup.PrintArea = "" : myExcel.Application.PrintCommunication = False
  1767. With myExcel.ActiveSheet.PageSetup : .LeftHeader = "" : .CenterHeader = "" : .RightHeader = "" : .LeftFooter = "" : .CenterFooter = "第 &P 頁,共 &N 頁" : .RightFooter = ""
  1768. .LeftMargin = myExcel.Application.InchesToPoints(0.236220472440945) : .RightMargin = myExcel.Application.InchesToPoints(0.236220472440945)
  1769. .TopMargin = myExcel.Application.InchesToPoints(0.748031496062992) : .BottomMargin = myExcel.Application.InchesToPoints(0.748031496062992)
  1770. .HeaderMargin = myExcel.Application.InchesToPoints(0.31496062992126) : .FooterMargin = myExcel.Application.InchesToPoints(0.31496062992126)
  1771. .PrintHeadings = False : .PrintGridlines = False : .CenterHorizontally = True : .CenterVertically = False : .Draft = False
  1772. .FirstPageNumber = xlAutomatic : .BlackAndWhite = False : .Zoom = False : .FitToPagesWide = 1 : .FitToPagesTall = False : .OddAndEvenPagesHeaderFooter = False
  1773. .DifferentFirstPageHeaderFooter = False : .ScaleWithDocHeaderFooter = True : .AlignMarginsHeaderFooter = True
  1774. .EvenPage.LeftHeader.Text = "" : .EvenPage.CenterHeader.Text = "" : .EvenPage.RightHeader.Text = "" : .EvenPage.LeftFooter.Text = ""
  1775. .EvenPage.CenterFooter.Text = "" : .EvenPage.RightFooter.Text = "" : .FirstPage.LeftHeader.Text = "" : .FirstPage.CenterHeader.Text = ""
  1776. .FirstPage.RightHeader.Text = "" : .FirstPage.LeftFooter.Text = "" : .FirstPage.CenterFooter.Text = "" : .FirstPage.RightFooter.Text = ""
  1777. End With : myExcel.Application.PrintCommunication = True
  1778. End Sub
  1779. End Class