Aucune description
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

合約報價單.vb 346KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776
  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. Dim ds1 As New DataSet : 主管_dgv.DataSource = Nothing : ds1.Clear()
  19. 主管_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  20. 主管_dgv.ColumnHeadersHeight = 25
  21. 主管_dgv.AllowUserToAddRows = False
  22. 主管_dgv.RowTemplate.Height = 45
  23. SQL_系統組織結構圖_單位主管1()
  24. da.Fill(ds1) : 主管_dgv.DataSource = ds1.Tables(0) : conn.Close()
  25. 主管_dgv.Columns(0).FillWeight = 100 : 主管_dgv.Columns(1).FillWeight = 50 : 主管_dgv.Columns(2).FillWeight = 150
  26. End Sub
  27. Private Sub Set_合約清單1()
  28. Dim ds6 As New DataSet
  29. 合約1_dgv.DataSource = Nothing : ds6.Clear()
  30. 合約1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  31. 合約1_dgv.ColumnHeadersHeight = 25 : 合約1_dgv.AllowUserToAddRows = False
  32. PA = 關鍵字搜尋1_tb.Text : PA46 = 合約編號2_cb.Text
  33. SQL_合約清單_報價用()
  34. da.Fill(ds6) : 合約1_dgv.DataSource = ds6.Tables(0) : conn.Close()
  35. 合約1_dgv.Columns(0).FillWeight = 130 : 合約1_dgv.Columns("工程名稱_中").FillWeight = 280 : 合約1_dgv.Columns("簽回").FillWeight = 40 : 合約1_dgv.Columns("審核通過").FillWeight = 40
  36. 合約1_dgv.Columns("停止").FillWeight = 40
  37. For i As Integer = 1 To 38 : 合約1_dgv.Columns(i).Visible = False : Next
  38. For i As Integer = 0 To 合約1_dgv.Rows.Count - 1
  39. If IsDBNull(合約1_dgv("停止", i).Value) = True Then : 合約1_dgv("停止", i).Value = False : End If
  40. If IsDBNull(合約1_dgv("簽回", i).Value) = True Then : 合約1_dgv("簽回", i).Value = False : End If
  41. Next
  42. 合約1_dgv.Columns("工程名稱_中").Visible = True
  43. End Sub
  44. Private Sub Set_合約報價明細表1()
  45. Dim ds14 As New DataSet
  46. 報價明細表2_dgv.DataSource = Nothing : ds14.Clear() : 報價明細表2_dgv.Columns.Clear()
  47. 報價明細表2_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  48. 報價明細表2_dgv.ColumnHeadersHeight = 40 : 報價明細表2_dgv.AllowUserToAddRows = False : 報價明細表2_dgv.RowTemplate.Height = 45
  49. 報價明細表2_dgv.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True
  50. PA = 合約編號_1_tb.Text : SQL_合約報價明細表()
  51. da.Fill(ds14) : 報價明細表2_dgv.DataSource = ds14.Tables(0) : conn.Close()
  52. 報價明細表2_dgv.Columns(0).FillWeight = 50 : 報價明細表2_dgv.Columns(1).FillWeight = 50 : 報價明細表2_dgv.Columns(2).FillWeight = 200
  53. 報價明細表2_dgv.Columns(3).FillWeight = 50 : 報價明細表2_dgv.Columns(4).FillWeight = 50 : 報價明細表2_dgv.Columns(5).FillWeight = 80
  54. 報價明細表2_dgv.Columns(6).FillWeight = 80 : 報價明細表2_dgv.Columns(7).FillWeight = 100 : 報價明細表2_dgv.Columns(8).FillWeight = 50
  55. 報價明細表2_dgv.Columns(34).FillWeight = 80 : 報價明細表2_dgv.Columns(33).FillWeight = 40 : 報價明細表2_dgv.Columns(6).FillWeight = 50
  56. 報價明細表2_dgv.Columns(42).FillWeight = 20 : 報價明細表2_dgv.Columns(43).FillWeight = 20 : 報價明細表2_dgv.Columns(44).FillWeight = 20
  57. 報價明細表2_dgv.Columns(45).FillWeight = 20 : 報價明細表2_dgv.Columns(46).FillWeight = 20 : 報價明細表2_dgv.Columns(47).FillWeight = 20
  58. 報價明細表2_dgv.Columns(48).FillWeight = 20 : 報價明細表2_dgv.Columns(49).FillWeight = 20 : 報價明細表2_dgv.Columns(50).FillWeight = 20
  59. 報價明細表2_dgv.Columns(50).FillWeight = 20 : 報價明細表2_dgv.Columns("料號").FillWeight = 30 : 報價明細表2_dgv.Columns("S").Visible = False
  60. For I As Integer = 0 To 58 : 報價明細表2_dgv.Columns(I).Visible = False : Next
  61. 報價明細表2_dgv.Columns("QTY").DefaultCellStyle.Format = "#,##0"
  62. 報價明細表2_dgv.Columns("UNIT").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  63. 報價明細表2_dgv.Columns("QTY").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  64. 報價明細表2_dgv.Columns("ITEM").Visible = True : 報價明細表2_dgv.Columns("DESCRIPTION").Visible = True : 報價明細表2_dgv.Columns("UNIT").Visible = True
  65. 報價明細表2_dgv.Columns("QTY").Visible = True : 報價明細表2_dgv.Columns("料號").Visible = True
  66. 報價明細表2_dgv.Columns("ITEM").ReadOnly = True : 報價明細表2_dgv.Columns("DESCRIPTION").ReadOnly = True : 報價明細表2_dgv.Columns("UNIT").ReadOnly = True
  67. 報價明細表2_dgv.Columns("QTY").ReadOnly = True : 報價明細表2_dgv.Columns("料號").ReadOnly = True
  68. Set_報價係數_dgv_勾選項()
  69. 報價明細表2_dgv.Columns("選擇").FillWeight = 30
  70. For i As Integer = 0 To 報價明細表2_dgv.Rows.Count - 1
  71. If 報價明細表2_dgv.Rows(i).Cells("料號").Value.ToString = "" Then
  72. 報價明細表2_dgv.Rows(i).Cells("D1").Value = False : 報價明細表2_dgv.Rows(i).Cells("D2").Value = False
  73. 報價明細表2_dgv.Rows(i).Cells("D3").Value = False : 報價明細表2_dgv.Rows(i).Cells("D4").Value = False
  74. 報價明細表2_dgv.Rows(i).Cells("D5").Value = False : 報價明細表2_dgv.Rows(i).Cells("D6").Value = False
  75. 報價明細表2_dgv.Rows(i).Cells("D7").Value = False : 報價明細表2_dgv.Rows(i).Cells("D8").Value = False
  76. End If
  77. If 報價明細表2_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then
  78. If 報價明細表2_dgv.Rows(i).Cells("預設").Value = True Then
  79. 報價明細表2_dgv.Rows(i).Cells("D1").Value = 報價明細表2_dgv.Rows(i).Cells("S1").Value : 報價明細表2_dgv.Rows(i).Cells("D2").Value = 報價明細表2_dgv.Rows(i).Cells("S2").Value
  80. 報價明細表2_dgv.Rows(i).Cells("D3").Value = 報價明細表2_dgv.Rows(i).Cells("S3").Value : 報價明細表2_dgv.Rows(i).Cells("D4").Value = 報價明細表2_dgv.Rows(i).Cells("S4").Value
  81. 報價明細表2_dgv.Rows(i).Cells("D5").Value = 報價明細表2_dgv.Rows(i).Cells("S5").Value : 報價明細表2_dgv.Rows(i).Cells("D6").Value = 報價明細表2_dgv.Rows(i).Cells("S6").Value
  82. 報價明細表2_dgv.Rows(i).Cells("D7").Value = 報價明細表2_dgv.Rows(i).Cells("S7").Value : 報價明細表2_dgv.Rows(i).Cells("D8").Value = 報價明細表2_dgv.Rows(i).Cells("S8").Value
  83. End If
  84. Dim ZA1, ZA2, ZA3, ZA4, ZA5, ZA6, ZA7, ZA8 As String : 物料規格 = ""
  85. If 詳細資料_ch.Checked = True Then
  86. If 報價明細表2_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D1").Value = True Then
  87. ZA1 = 報價明細表2_dgv.Rows(i).Cells("AA1").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If : End If
  88. If 報價明細表2_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D2").Value = True Then
  89. ZA2 = 報價明細表2_dgv.Rows(i).Cells("AA2").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then
  90. 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If : End If
  91. If 報價明細表2_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D3").Value = True Then
  92. ZA3 = 報價明細表2_dgv.Rows(i).Cells("AA3").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then
  93. 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If : End If
  94. If 報價明細表2_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D4").Value = True Then
  95. ZA4 = 報價明細表2_dgv.Rows(i).Cells("AA4").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then
  96. 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If : End If
  97. If 報價明細表2_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D5").Value = True Then
  98. ZA5 = 報價明細表2_dgv.Rows(i).Cells("AA5").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then
  99. 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If : End If
  100. If 報價明細表2_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D6").Value = True Then
  101. ZA6 = 報價明細表2_dgv.Rows(i).Cells("AA6").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then
  102. 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If : End If
  103. If 報價明細表2_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D7").Value = True Then
  104. ZA7 = 報價明細表2_dgv.Rows(i).Cells("AA7").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then
  105. 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If : End If
  106. If 報價明細表2_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D8").Value = True Then
  107. ZA8 = 報價明細表2_dgv.Rows(i).Cells("AA8").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then
  108. 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If : End If
  109. Else
  110. If 報價明細表2_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D1").Value = True Then
  111. ZA1 = 報價明細表2_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If : End If
  112. If 報價明細表2_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D2").Value = True Then
  113. ZA2 = 報價明細表2_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If : End If
  114. If 報價明細表2_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D3").Value = True Then
  115. ZA3 = 報價明細表2_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If : End If
  116. If 報價明細表2_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D4").Value = True Then
  117. ZA4 = 報價明細表2_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If : End If
  118. If 報價明細表2_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D5").Value = True Then
  119. ZA5 = 報價明細表2_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If : End If
  120. If 報價明細表2_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D6").Value = True Then
  121. ZA6 = 報價明細表2_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If : End If
  122. If 報價明細表2_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D7").Value = True Then
  123. ZA7 = 報價明細表2_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If : End If
  124. If 報價明細表2_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D8").Value = True Then
  125. ZA8 = 報價明細表2_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If : End If
  126. End If
  127. If 報價明細表2_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then
  128. 報價明細表2_dgv.Rows(i).Cells("DESCRIPTION").Value = 報價明細表2_dgv.Rows(i).Cells("品名").Value.ToString & " " & 物料規格
  129. End If
  130. End If : 報價明細表2_dgv.Rows(i).Cells("預設").Value = False
  131. Next
  132. End Sub
  133. Private Sub Set_報價係數_dgv_勾選項()
  134. Dim Col As New DataGridViewCheckBoxColumn With {
  135. .FillWeight = 30,
  136. .DataPropertyName = "選擇"
  137. }
  138. Col.HeaderText = "選擇" : Col.Name = "選擇"
  139. 報價明細表2_dgv.Columns.Insert(0, Col)
  140. End Sub
  141. Private Sub Set_合約文件圖庫資料庫狀態()
  142. Dim ds9 As New DataSet : 圖庫清單_dgv.DataSource = Nothing : ds9.Clear()
  143. 圖庫清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  144. 圖庫清單_dgv.ColumnHeadersHeight = 25
  145. 圖庫清單_dgv.AllowUserToAddRows = False
  146. 表頭(165) = "資料庫" : 表頭(166) = "狀態"
  147. SQL_工程文件資料庫管理查詢()
  148. da.Fill(ds9) : 圖庫清單_dgv.DataSource = ds9.Tables(0) : conn.Close()
  149. 圖庫清單_dgv.Columns(0).FillWeight = 100 : 圖庫清單_dgv.Columns(1).FillWeight = 20
  150. End Sub
  151. Private Sub Set_BOM表控制()
  152. Dim ds6 As New DataSet
  153. BOM表控制_dgv.DataSource = Nothing : ds6.Clear()
  154. BOM表控制_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  155. BOM表控制_dgv.ColumnHeadersHeight = 25 : BOM表控制_dgv.AllowUserToAddRows = False : BOM表控制_dgv.RowTemplate.Height = 45
  156. SQL_BOM表控制1()
  157. da.Fill(ds6) : BOM表控制_dgv.DataSource = ds6.Tables(0) : conn.Close()
  158. BOM表控制_dgv.Columns(0).FillWeight = 15 : BOM表控制_dgv.Columns(1).FillWeight = 100 : BOM表控制_dgv.Columns(2).Visible = False
  159. BOM表控制_dgv.Columns(0).ReadOnly = True : BOM表控制_dgv.Columns(1).ReadOnly = True
  160. For i As Integer = 0 To BOM表控制_dgv.Rows.Count - 1 : BOM表控制_dgv.Rows(i).Cells("項次").Value = i + 1 : Next
  161. End Sub
  162. Private Sub Set_BOM表明細()
  163. Dim ds6 As New DataSet
  164. BOM表明細_dgv.DataSource = Nothing : ds6.Clear()
  165. BOM表明細_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  166. BOM表明細_dgv.ColumnHeadersHeight = 25 : BOM表明細_dgv.AllowUserToAddRows = False : BOM表明細_dgv.RowTemplate.Height = 45
  167. SQL_BOM表明細()
  168. da.Fill(ds6) : BOM表明細_dgv.DataSource = ds6.Tables(0) : conn.Close()
  169. BOM表明細_dgv.Columns(0).FillWeight = 30 : BOM表明細_dgv.Columns(0).Visible = False : BOM表明細_dgv.Columns(1).FillWeight = 30
  170. BOM表明細_dgv.Columns(2).FillWeight = 250 : BOM表明細_dgv.Columns(3).FillWeight = 30 : BOM表明細_dgv.Columns(4).FillWeight = 30
  171. BOM表明細_dgv.Columns(5).FillWeight = 30 : BOM表明細_dgv.Columns(6).Visible = False
  172. For i As Integer = 7 To 34 : BOM表明細_dgv.Columns(i).Visible = False : Next
  173. BOM表明細_dgv.Columns("數量").DefaultCellStyle.Format = "#,##0"
  174. BOM表明細_dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  175. BOM表明細_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  176. For i As Integer = 0 To 5 : BOM表明細_dgv.Columns(i).ReadOnly = True : Next
  177. For i As Integer = 3 To 4 : BOM表明細_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : Next
  178. For i As Integer = 0 To BOM表明細_dgv.Rows.Count - 1
  179. BOM表明細_dgv.Rows(i).Cells("項次").Value = i + 1
  180. If BOM表明細_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then
  181. Dim ZA1, ZA2, ZA3, ZA4, ZA5, ZA6, ZA7, ZA8 As String : 物料規格 = ""
  182. If 詳細資料1_ch.Checked = True Then
  183. If BOM表明細_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then
  184. ZA1 = BOM表明細_dgv.Rows(i).Cells("AA1").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If
  185. If BOM表明細_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then
  186. ZA2 = BOM表明細_dgv.Rows(i).Cells("AA2").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A2").Value
  187. If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If
  188. If BOM表明細_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then
  189. ZA3 = BOM表明細_dgv.Rows(i).Cells("AA3").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A3").Value
  190. If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If
  191. If BOM表明細_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then
  192. ZA4 = BOM表明細_dgv.Rows(i).Cells("AA4").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A4").Value
  193. If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If
  194. If BOM表明細_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then
  195. ZA5 = BOM表明細_dgv.Rows(i).Cells("AA5").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A5").Value
  196. If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If
  197. If BOM表明細_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then
  198. ZA6 = BOM表明細_dgv.Rows(i).Cells("AA6").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A6").Value
  199. If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If
  200. If BOM表明細_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then
  201. ZA7 = BOM表明細_dgv.Rows(i).Cells("AA7").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A7").Value
  202. If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If
  203. If BOM表明細_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then
  204. ZA8 = BOM表明細_dgv.Rows(i).Cells("AA8").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A8").Value
  205. If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If
  206. Else
  207. If BOM表明細_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then
  208. ZA1 = BOM表明細_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If
  209. If BOM表明細_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then
  210. ZA2 = BOM表明細_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If
  211. If BOM表明細_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then
  212. ZA3 = BOM表明細_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If
  213. If BOM表明細_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then
  214. ZA4 = BOM表明細_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If
  215. If BOM表明細_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then
  216. ZA5 = BOM表明細_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If
  217. If BOM表明細_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then
  218. ZA6 = BOM表明細_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If
  219. If BOM表明細_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then
  220. ZA7 = BOM表明細_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If
  221. If BOM表明細_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then
  222. ZA8 = BOM表明細_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If
  223. End If
  224. If BOM表明細_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then
  225. BOM表明細_dgv.Rows(i).Cells("項目").Value = BOM表明細_dgv.Rows(i).Cells("品名").Value.ToString & " " & 物料規格
  226. End If
  227. End If
  228. Next
  229. End Sub
  230. Private Sub Set_合約報價係數()
  231. Dim ds16 As New DataSet
  232. 報價係數_dgv.DataSource = Nothing : ds16.Clear()
  233. 報價係數_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  234. 報價係數_dgv.ColumnHeadersHeight = 25 : 報價係數_dgv.AllowUserToAddRows = False
  235. 報價係數1_dgv.DataSource = Nothing : ds16.Clear()
  236. 報價係數1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  237. 報價係數1_dgv.ColumnHeadersHeight = 25 : 報價係數1_dgv.AllowUserToAddRows = False
  238. SQL_合約報價係數()
  239. da.Fill(ds16) : 報價係數_dgv.DataSource = ds16.Tables(0) : 報價係數1_dgv.DataSource = ds16.Tables(0) : conn.Close()
  240. 報價係數_dgv.Columns(0).Visible = False : 報價係數_dgv.Columns(1).Visible = False : 報價係數_dgv.Columns(2).FillWeight = 80
  241. 報價係數_dgv.Columns(3).FillWeight = 40 : 報價係數_dgv.Columns(4).FillWeight = 30
  242. 報價係數_dgv.Columns(3).DefaultCellStyle.Format = "#,##0"
  243. 報價係數_dgv.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  244. 報價係數_dgv.Columns(2).ReadOnly = True : 報價係數_dgv.Columns(3).ReadOnly = True : 報價係數_dgv.Columns(4).ReadOnly = True
  245. 報價係數1_dgv.Columns(0).Visible = False : 報價係數1_dgv.Columns(1).Visible = False : 報價係數1_dgv.Columns(2).FillWeight = 80
  246. 報價係數1_dgv.Columns(3).FillWeight = 40 : 報價係數1_dgv.Columns(4).FillWeight = 30
  247. 報價係數1_dgv.Columns(3).DefaultCellStyle.Format = "#,##0"
  248. 報價係數1_dgv.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  249. 報價係數1_dgv.Columns(2).ReadOnly = True : 報價係數1_dgv.Columns(3).ReadOnly = True : 報價係數1_dgv.Columns(4).ReadOnly = True
  250. End Sub
  251. Private Sub Set_合約報價總表()
  252. Dim ds15 As New DataSet
  253. 報價總表_dgv.DataSource = Nothing : ds15.Clear()
  254. 報價總表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  255. 報價總表_dgv.ColumnHeadersHeight = 40 : 報價總表_dgv.AllowUserToAddRows = False : 報價總表_dgv.RowTemplate.Height = 45
  256. 報價總表_dgv.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True
  257. SQL_合約報價總表() : 啟動運算 = False
  258. da.Fill(ds15) : 報價總表_dgv.DataSource = ds15.Tables(0) : conn.Close()
  259. 報價總表_dgv.Columns(0).Visible = False : 報價總表_dgv.Columns(8).Visible = False
  260. 報價總表_dgv.Columns(0).FillWeight = 50 : 報價總表_dgv.Columns(1).FillWeight = 50 : 報價總表_dgv.Columns(2).FillWeight = 210
  261. 報價總表_dgv.Columns(3).FillWeight = 50 : 報價總表_dgv.Columns(4).FillWeight = 50 : 報價總表_dgv.Columns(5).FillWeight = 80
  262. 報價總表_dgv.Columns(6).FillWeight = 80 : 報價總表_dgv.Columns(7).FillWeight = 90 : 報價總表_dgv.Columns(9).FillWeight = 50
  263. For i As Integer = 4 To 6 : 報價總表_dgv.Columns(i).DefaultCellStyle.Format = "#,##0" : Next
  264. For i As Integer = 4 To 6 : 報價總表_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : Next
  265. For i As Integer = 0 To 7 : 報價總表_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter : Next
  266. '報價總表_dgv.Columns(1).ReadOnly = True
  267. 報價總表_dgv.Columns(2).ReadOnly = True : 報價總表_dgv.Columns(6).ReadOnly = True
  268. 報價總表_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  269. 啟動運算 = True : 報價總表_dgv_自動計算()
  270. If DGV位置1.Value >= 報價總表_dgv.Rows.Count Then : DGV位置1.Value = 報價總表_dgv.Rows.Count - 1 : End If
  271. If DGV位置1.Value > 0 Then : 報價總表_dgv.CurrentCell = 報價總表_dgv.Rows(DGV位置1.Value).Cells(1) : End If
  272. End Sub
  273. Private Sub Set_合約報價明細表格式()
  274. 報價明細表_dgv.Columns(0).FillWeight = 45 : 報價明細表_dgv.Columns(1).FillWeight = 45 : 報價明細表_dgv.Columns(2).FillWeight = 200
  275. 報價明細表_dgv.Columns(3).FillWeight = 45 : 報價明細表_dgv.Columns(4).FillWeight = 45 : 報價明細表_dgv.Columns(5).FillWeight = 100
  276. 報價明細表_dgv.Columns(6).FillWeight = 100 : 報價明細表_dgv.Columns(7).FillWeight = 70 : 報價明細表_dgv.Columns(8).FillWeight = 50
  277. 報價明細表_dgv.Columns(34).FillWeight = 80 : 報價明細表_dgv.Columns(33).FillWeight = 40
  278. 報價明細表_dgv.Columns(42).FillWeight = 20 : 報價明細表_dgv.Columns(43).FillWeight = 20 : 報價明細表_dgv.Columns(44).FillWeight = 20
  279. 報價明細表_dgv.Columns(45).FillWeight = 20 : 報價明細表_dgv.Columns(46).FillWeight = 20 : 報價明細表_dgv.Columns(47).FillWeight = 20
  280. 報價明細表_dgv.Columns(48).FillWeight = 20 : 報價明細表_dgv.Columns(49).FillWeight = 20 : 報價明細表_dgv.Columns(50).FillWeight = 20
  281. If 利潤表_ch.Checked = False Then : 報價明細表_dgv.Columns("S").FillWeight = 20 : Else : 報價明細表_dgv.Columns("S").FillWeight = 40 : End If
  282. End Sub
  283. Private Sub Set_合約報價明細表()
  284. Dim ds14 As New DataSet
  285. 報價明細表_dgv.DataSource = Nothing : ds14.Clear()
  286. 報價明細表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  287. 報價明細表_dgv.ColumnHeadersHeight = 40 : 報價明細表_dgv.AllowUserToAddRows = False : 報價明細表_dgv.RowTemplate.Height = 45
  288. 報價明細表_dgv.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True
  289. 報價明細表1_dgv.DataSource = Nothing : ds14.Clear()
  290. 報價明細表1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  291. 報價明細表1_dgv.ColumnHeadersHeight = 40 : 報價明細表1_dgv.AllowUserToAddRows = False : 報價明細表1_dgv.RowTemplate.Height = 45
  292. 報價明細表1_dgv.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True
  293. PA = 合約編號_tb.Text : SQL_合約報價明細表()
  294. da.Fill(ds14) : 報價明細表_dgv.DataSource = ds14.Tables(0) : 報價明細表1_dgv.DataSource = ds14.Tables(0) : conn.Close()
  295. 報價明細表1_dgv.Columns("流水號").FillWeight = 50 : 報價明細表1_dgv.Columns(6).FillWeight = 60 : 報價明細表1_dgv.Columns(2).FillWeight = 200
  296. 報價明細表1_dgv.Columns(1).FillWeight = 40
  297. Set_報價係數_dgv_下拉式清單1()
  298. For i As Integer = 4 To 6 : 報價明細表_dgv.Columns(i).DefaultCellStyle.Format = "#,##0" : Next
  299. For i As Integer = 9 To 17 : 報價明細表_dgv.Columns(i).DefaultCellStyle.Format = "#,##0" : Next
  300. 報價明細表1_dgv.Columns(6).DefaultCellStyle.Format = "#,##0"
  301. 報價明細表_dgv.Columns(8).DefaultCellStyle.Format = "#,##0.00"
  302. For i As Integer = 3 To 6 : 報價明細表_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : Next
  303. For i As Integer = 8 To 17 : 報價明細表_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : Next
  304. 報價明細表1_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  305. For i As Integer = 10 To 12 : 報價明細表_dgv.Columns(i).DefaultCellStyle.BackColor = Color.MistyRose : Next
  306. For i As Integer = 14 To 16 : 報價明細表_dgv.Columns(i).DefaultCellStyle.BackColor = Color.MistyRose : Next
  307. If 利潤表_ch.Checked = True Then : Set_報價明細表_dgv_利潤表開啟() : Else : Set_報價明細表_dgv_利潤表關閉() : End If
  308. For i As Integer = 0 To 58 : 報價明細表1_dgv.Columns(i).Visible = False : Next
  309. For I As Integer = 18 To 58 : 報價明細表_dgv.Columns(I).Visible = False : Next
  310. 報價明細表_dgv.Columns(0).Visible = False : 報價明細表1_dgv.Columns(1).Visible = True : 報價明細表1_dgv.Columns(2).Visible = True : 報價明細表1_dgv.Columns(6).Visible = True
  311. 報價明細表1_dgv.Columns("流水號").Visible = True
  312. 報價明細表_dgv.EditMode = DataGridViewEditMode.EditOnEnter : 報價明細表1_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  313. '報價明細表_dgv.Columns(1).ReadOnly = True
  314. 報價明細表_dgv.Columns(2).ReadOnly = True : 報價明細表_dgv.Columns(4).ReadOnly = True : 報價明細表_dgv.Columns(5).ReadOnly = True
  315. 報價明細表_dgv.Columns(6).ReadOnly = True : 報價明細表_dgv.Columns(10).ReadOnly = True : 報價明細表_dgv.Columns(11).ReadOnly = True : 報價明細表_dgv.Columns(12).ReadOnly = True
  316. 報價明細表_dgv.Columns(14).ReadOnly = True : 報價明細表_dgv.Columns(15).ReadOnly = True : 報價明細表_dgv.Columns(16).ReadOnly = True : 報價明細表_dgv.Columns(17).ReadOnly = True
  317. 報價明細表1_dgv.Columns(1).ReadOnly = True : 報價明細表1_dgv.Columns(2).ReadOnly = True : 報價明細表1_dgv.Columns(4).ReadOnly = True : 報價明細表1_dgv.Columns(5).ReadOnly = True
  318. 報價明細表1_dgv.Columns(6).ReadOnly = True : 報價明細表1_dgv.Columns(10).ReadOnly = True : 報價明細表1_dgv.Columns(11).ReadOnly = True : 報價明細表1_dgv.Columns(12).ReadOnly = True
  319. 報價明細表1_dgv.Columns(14).ReadOnly = True : 報價明細表1_dgv.Columns(15).ReadOnly = True : 報價明細表1_dgv.Columns(16).ReadOnly = True : 報價明細表1_dgv.Columns(17).ReadOnly = True
  320. 報價明細表_dgv_物料顯示() : 啟動運算 = True : 報價明細表_dgv_自動計算()
  321. If DGV位置2.Value >= 報價明細表_dgv.Rows.Count Then : DGV位置2.Value = 報價明細表_dgv.Rows.Count - 1 : End If
  322. If DGV位置2.Value > 0 Then : 報價明細表_dgv.CurrentCell = 報價明細表_dgv.Rows(DGV位置2.Value).Cells(1) : End If
  323. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 : 報價明細表_dgv.Rows(i).Cells("S").Value = False : Next
  324. Set_合約報價明細表格式()
  325. End Sub
  326. Private Sub Set_報價係數_dgv_下拉式清單1()
  327. Dim Col As New DataGridViewComboBoxColumn With {
  328. .FillWeight = 60,
  329. .DataPropertyName = "材料係數"
  330. }
  331. SQL_合約報價係數_下拉()
  332. Col.Items.Clear()
  333. While (dr.Read()) : Col.Items.Add(dr("項目")) : End While : conn.Close()
  334. Col.HeaderText = "係數" : Col.Name = "係數"
  335. 報價明細表_dgv.Columns.Insert(60, Col)
  336. End Sub
  337. Private Sub Set_報價明細表_dgv_利潤表關閉()
  338. If 報價明細表_dgv.Rows.Count > 0 Then
  339. 利潤表_ch.Checked = False : For i As Integer = 8 To 17 : 報價明細表_dgv.Columns(i).Visible = False : Next
  340. 報價明細表_dgv.Columns(33).Visible = False : 報價明細表_dgv.Columns(7).Visible = True : 報價明細表_dgv.Columns(4).Visible = True
  341. End If
  342. End Sub
  343. Private Sub Set_報價明細表_dgv_利潤表開啟()
  344. If 報價明細表_dgv.Rows.Count > 0 Then
  345. For I As Integer = 43 To 50 : 報價明細表_dgv.Columns(I).Visible = False : Next
  346. 報價明細表_dgv.Columns(8).Visible = True : 報價明細表_dgv.Columns(17).Visible = True : 報價明細表_dgv.Columns(33).Visible = True
  347. 報價明細表_dgv.Columns(7).Visible = False : 報價明細表_dgv.Columns(4).Visible = False : 利潤表_ch.Checked = True
  348. If 工資_ch.Checked = True Then : For i As Integer = 9 To 12 : 報價明細表_dgv.Columns(i).Visible = True : Next
  349. Else : For i As Integer = 9 To 12 : 報價明細表_dgv.Columns(i).Visible = False : Next : End If
  350. If 材料_ch.Checked = True Then : For i As Integer = 13 To 16 : 報價明細表_dgv.Columns(i).Visible = True : Next
  351. Else : For i As Integer = 13 To 16 : 報價明細表_dgv.Columns(i).Visible = False : Next : End If
  352. End If
  353. End Sub
  354. Private Sub Set_合約範例()
  355. Dim ds12 As New DataSet
  356. 範例文本_dgv.DataSource = Nothing : ds12.Clear()
  357. 範例文本_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  358. 範例文本_dgv.ColumnHeadersHeight = 25 : 範例文本_dgv.AllowUserToAddRows = False
  359. SQL_合約清單_範本()
  360. da.Fill(ds12) : 範例文本_dgv.DataSource = ds12.Tables(0) : conn.Close()
  361. End Sub
  362. Private Sub Set_合約清單()
  363. Dim ds6 As New DataSet
  364. 合約_dgv.DataSource = Nothing : ds6.Clear()
  365. 合約_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  366. 合約_dgv.ColumnHeadersHeight = 25 : 合約_dgv.AllowUserToAddRows = False
  367. PA = 關鍵字搜尋_tb.Text : PA46 = 合約編號1_cb.Text : PA47 = 工程期1_ch.Text
  368. SQL_合約清單_報價用()
  369. da.Fill(ds6) : 合約_dgv.DataSource = ds6.Tables(0) : conn.Close()
  370. 合約_dgv.Columns(0).FillWeight = 130 : 合約_dgv.Columns("工程名稱_中").FillWeight = 280 : 合約_dgv.Columns("簽回").FillWeight = 40 : 合約_dgv.Columns("審核通過").FillWeight = 40
  371. 合約_dgv.Columns("停止").FillWeight = 40
  372. For i As Integer = 1 To 38 : 合約_dgv.Columns(i).Visible = False : Next
  373. For i As Integer = 0 To 合約_dgv.Rows.Count - 1
  374. If IsDBNull(合約_dgv("停止", i).Value) = True Then : 合約_dgv("停止", i).Value = False : End If
  375. If IsDBNull(合約_dgv("簽回", i).Value) = True Then : 合約_dgv("簽回", i).Value = False : End If
  376. Next
  377. If 放大 = True Then
  378. 合約_dgv.Columns("工程名稱_中").Visible = True : 合約_dgv.Columns("審核通過").Visible = True : 合約_dgv.Columns("停止").Visible = True
  379. Else
  380. 合約_dgv.Columns("工程名稱_中").Visible = False : 合約_dgv.Columns("審核通過").Visible = False : 合約_dgv.Columns("停止").Visible = False
  381. End If
  382. End Sub
  383. Private Sub Set_合約試算控制表_查詢()
  384. Dim ds5 As New DataSet
  385. 試算控制表_dgv.DataSource = Nothing : ds5.Clear()
  386. 試算控制表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  387. 試算控制表_dgv.ColumnHeadersHeight = 25 : 試算控制表_dgv.AllowUserToAddRows = False
  388. SQL_合約試算控制表_查詢()
  389. da.Fill(ds5) : 試算控制表_dgv.DataSource = ds5.Tables(0) : conn.Close()
  390. For i As Integer = 0 To 40 : 合約試算表頭(i) = i & "." : Next
  391. 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
  392. Set_試算明細表()
  393. End Sub
  394. Private Sub Set_試算明細表()
  395. Dim DS7 As New DataSet
  396. 試算表_dgv.DataSource = Nothing : DS7.Clear()
  397. 試算表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  398. 試算表_dgv.ColumnHeadersHeight = 120 : 試算表_dgv.AllowUserToAddRows = False : 試算表_dgv.RowTemplate.Height = 45
  399. SQL_合約試算明細表_查詢()
  400. da.Fill(DS7) : 試算表_dgv.DataSource = DS7.Tables(0) : conn.Close()
  401. 試算表_dgv.Columns(0).Frozen = True : 試算表_dgv.Columns(1).Frozen = True : 試算表_dgv.Columns(2).Frozen = True
  402. 試算表_dgv.Columns(0).Visible = False
  403. For I As Integer = 45 To 54 : 試算表_dgv.Columns(I).Visible = False : Next
  404. 試算表_dgv.Columns(1).Width = 100 : 試算表_dgv.Columns(2).Width = 150 : 試算表_dgv.Columns(43).Width = 30 : 試算表_dgv.Columns(44).Width = 50
  405. 試算表_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 試算表_dgv.Columns(44).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  406. 試算表_dgv.Columns(44).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  407. 試算表_dgv.Columns(44).DefaultCellStyle.Format = "#,##0"
  408. If 直接輸入_ch.Checked = False And 使用計算機_ch.Checked = True Then : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnF2
  409. Else : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnEnter : End If
  410. 試算表_dgv.Columns(1).ReadOnly = True : 試算表_dgv.Columns(2).ReadOnly = True : 試算表_dgv.Columns(44).ReadOnly = True
  411. Dim 開始 As Integer = 3 : Dim 結束 As Integer = 42
  412. For I As Integer = 開始 To 結束 : 試算表_dgv.Columns(I).Width = 80
  413. 試算表_dgv.Columns(I).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  414. 試算表_dgv.Columns(I).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  415. 試算表_dgv.Columns(I).DefaultCellStyle.Format = "#,##0.0"
  416. Next
  417. Dim 表頭數 As Integer = 試算控制表_dgv.Rows.Count
  418. If 表頭數 = 0 Then
  419. For I As Integer = 開始 To 結束 : 試算表_dgv.Columns(I).Visible = False : Next
  420. ElseIf 表頭數 > 0 Then
  421. For I As Integer = 開始 To 表頭數 + 2 : 試算表_dgv.Columns(I).Visible = True : Next
  422. For I As Integer = 表頭數 + 3 To 結束 : 試算表_dgv.Columns(I).Visible = False : Next
  423. End If
  424. For i As Integer = 0 To 試算表_dgv.Rows.Count - 1
  425. '-------------------------規格合併呈現----------------------------------------------------------------------------------------------------------------------------------------
  426. If i = 0 Then
  427. PA3 = 試算表_dgv.Rows(i).Cells("規格庫抬頭指定").Value : SQL_規格庫抬頭讀取()
  428. If dr.Read() Then
  429. AAA1 = dr("A1") : AAA2 = dr("A2") : AAA3 = dr("A3") : AAA4 = dr("A4") : AAA5 = dr("A5") : AAA6 = dr("A6") : AAA7 = dr("A7") : AAA8 = dr("A8")
  430. End If : conn.Close()
  431. Else
  432. If 試算表_dgv.Rows(i).Cells("規格庫抬頭指定").Value.ToString <> 試算表_dgv.Rows(i - 1).Cells("規格庫抬頭指定").Value.ToString Then
  433. PA3 = 試算表_dgv.Rows(i).Cells("規格庫抬頭指定").Value : SQL_規格庫抬頭讀取()
  434. If dr.Read() Then
  435. AAA1 = dr("A1") : AAA2 = dr("A2") : AAA3 = dr("A3") : AAA4 = dr("A4") : AAA5 = dr("A5") : AAA6 = dr("A6") : AAA7 = dr("A7") : AAA8 = dr("A8")
  436. End If : conn.Close()
  437. End If
  438. End If
  439. Dim ZA1, ZA2, ZA3, ZA4, ZA5, ZA6, ZA7, ZA8 As String : 物料規格 = ""
  440. If 詳細資料3_ch.Checked = True Then
  441. If 試算表_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then
  442. ZA1 = AAA1 & "=" & 試算表_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If
  443. If 試算表_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then : ZA2 = AAA2 & "=" & 試算表_dgv.Rows(i).Cells("A2").Value
  444. If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If
  445. If 試算表_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then : ZA3 = AAA3 & "=" & 試算表_dgv.Rows(i).Cells("A3").Value
  446. If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If
  447. If 試算表_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then : ZA4 = AAA4 & "=" & 試算表_dgv.Rows(i).Cells("A4").Value
  448. If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If
  449. If 試算表_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then : ZA5 = AAA5 & "=" & 試算表_dgv.Rows(i).Cells("A5").Value
  450. If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If
  451. If 試算表_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then : ZA6 = AAA6 & "=" & 試算表_dgv.Rows(i).Cells("A6").Value
  452. If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If
  453. If 試算表_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then : ZA7 = AAA7 & "=" & 試算表_dgv.Rows(i).Cells("A7").Value
  454. If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If
  455. If 試算表_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then : ZA8 = AAA8 & "=" & 試算表_dgv.Rows(i).Cells("A8").Value
  456. If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If
  457. Else
  458. If 試算表_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then : ZA1 = 試算表_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If
  459. If 試算表_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then
  460. ZA2 = 試算表_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If
  461. If 試算表_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then
  462. ZA3 = 試算表_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If
  463. If 試算表_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then
  464. ZA4 = 試算表_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If
  465. If 試算表_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then
  466. ZA5 = 試算表_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If
  467. If 試算表_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then
  468. ZA6 = 試算表_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If
  469. If 試算表_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then
  470. ZA7 = 試算表_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If
  471. If 試算表_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then
  472. ZA8 = 試算表_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If
  473. End If
  474. 試算表_dgv.Rows(i).Cells("樓層/迴路").Value = 物料規格
  475. Next
  476. End Sub
  477. Private Sub Set_語言()
  478. 語言_dgv.DataSource = Nothing : ds13.Clear()
  479. 語言_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  480. 語言_dgv.ColumnHeadersHeight = 25 : 語言_dgv.AllowUserToAddRows = False
  481. SQL_系統語言導入()
  482. da.Fill(ds13) : 語言_dgv.DataSource = ds13.Tables(0) : conn.Close()
  483. End Sub
  484. Private Sub 語言轉換讀取()
  485. Set_語言() : conn.Close()
  486. For i As Integer = 0 To 語言_dgv.Rows.Count - 1
  487. If 語言_dgv("控件", i).Value.ToString = "物料清單_dgv_單位" Then : 表頭(16) = 語言_dgv("內容", i).Value.ToString : End If
  488. Next
  489. End Sub
  490. Private Sub Set_DGV1載入前設定()
  491. Dim ds4 As New DataSet
  492. 物料清單_dgv.DataSource = Nothing : ds4.Clear()
  493. 物料清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  494. 物料清單_dgv.ColumnHeadersHeight = 25 : 物料清單_dgv.AllowUserToAddRows = False
  495. If 小間距_ch.Checked = False And 中間距_ch.Checked = False And 大間距_ch.Checked = True Then : 物料清單_dgv.RowTemplate.Height = 65
  496. ElseIf 小間距_ch.Checked = False And 中間距_ch.Checked = True And 大間距_ch.Checked = False Then : 物料清單_dgv.RowTemplate.Height = 45
  497. ElseIf 小間距_ch.Checked = True And 中間距_ch.Checked = False And 大間距_ch.Checked = False Then : 物料清單_dgv.RowTemplate.Height = 25
  498. End If : ConnOpen()
  499. End Sub
  500. Private Sub Set_清單1()
  501. PA1 = 群組碼_tb.Text : Set_DGV1載入前設定() : SQL_合約試算分表_物料清單一() : Set_DG1載入後設定()
  502. End Sub
  503. Private Sub Set_DG1載入後設定()
  504. CmdSet_For_DGV() : da.Fill(ds4) : 物料清單_dgv.DataSource = ds4.Tables(0) : conn.Close()
  505. 物料清單_dgv.Columns(0).Visible = False : 物料清單_dgv.Columns(1).FillWeight = 80 : 物料清單_dgv.Columns(2).FillWeight = 175 : 物料清單_dgv.Columns(3).Visible = False
  506. 物料清單_dgv.Columns(4).Visible = False : 物料清單_dgv.Columns(5).FillWeight = 45
  507. 物料清單_dgv.Columns(0).ReadOnly = True : 物料清單_dgv.Columns(1).ReadOnly = True : 物料清單_dgv.Columns(2).ReadOnly = True
  508. For i As Integer = 0 To 物料清單_dgv.Rows.Count - 1 : 物料清單_dgv(0, i).Value = i + 1 : Next
  509. If 低網速模式 = False Then
  510. 物料清單_dgv.Columns(6).FillWeight = 50 : 物料清單_dgv.Columns(6).Visible = True
  511. Dim mycol As DataGridViewImageColumn = 物料清單_dgv.Columns("圖檔") : mycol.ImageLayout = DataGridViewImageCellLayout.Zoom
  512. Else
  513. If 物料清單_dgv.Columns.Count = 7 Then : 物料清單_dgv.Columns(6).Visible = False : End If
  514. End If
  515. End Sub
  516. Private Sub Set_合約明細1()
  517. 第1期_dgv.DataSource = Nothing : ds7.Clear()
  518. 第1期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  519. 第1期_dgv.ColumnHeadersHeight = 25 : 第1期_dgv.AllowUserToAddRows = False
  520. SQL_合約明細讀取()
  521. da.Fill(ds7) : 第1期_dgv.DataSource = ds7.Tables(0) : conn.Close()
  522. 第1期_dgv.Columns(0).Visible = False : 第1期_dgv.Columns(1).Visible = False : 第1期_dgv.Columns(2).FillWeight = 20 : 第1期_dgv.Columns(3).FillWeight = 140
  523. 第1期_dgv.Columns(4).FillWeight = 20 : 第1期_dgv.Columns(5).FillWeight = 50
  524. 第1期_dgv.Columns(2).ReadOnly = True : 第1期_dgv.Columns(5).ReadOnly = True
  525. 第1期_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  526. 第1期_dgv.Columns(2).DefaultCellStyle.Format = "#,##0" : 第1期_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 第1期_dgv.Columns(5).DefaultCellStyle.Format = "#,##0"
  527. 第1期_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 第1期_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  528. End Sub
  529. Private Sub Set_合約明細2()
  530. 第2期_dgv.DataSource = Nothing : ds8.Clear()
  531. 第2期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  532. 第2期_dgv.ColumnHeadersHeight = 25 : 第2期_dgv.AllowUserToAddRows = False
  533. SQL_合約明細讀取()
  534. da.Fill(ds8) : 第2期_dgv.DataSource = ds8.Tables(0) : conn.Close()
  535. 第2期_dgv.Columns(0).Visible = False : 第2期_dgv.Columns(1).Visible = False : 第2期_dgv.Columns(2).FillWeight = 20 : 第2期_dgv.Columns(3).FillWeight = 140
  536. 第2期_dgv.Columns(4).FillWeight = 20 : 第2期_dgv.Columns(5).FillWeight = 50
  537. 第2期_dgv.Columns(2).ReadOnly = True : 第2期_dgv.Columns(5).ReadOnly = True
  538. 第2期_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  539. 第2期_dgv.Columns(2).DefaultCellStyle.Format = "#,##0" : 第2期_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 第2期_dgv.Columns(5).DefaultCellStyle.Format = "#,##0"
  540. 第2期_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 第2期_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  541. End Sub
  542. Private Sub Set_合約明細3()
  543. 第3期_dgv.DataSource = Nothing : ds9.Clear()
  544. 第3期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  545. 第3期_dgv.ColumnHeadersHeight = 25
  546. 第3期_dgv.AllowUserToAddRows = False
  547. SQL_合約明細讀取()
  548. da.Fill(ds9) : 第3期_dgv.DataSource = ds9.Tables(0) : conn.Close()
  549. 第3期_dgv.Columns(0).Visible = False : 第3期_dgv.Columns(1).Visible = False : 第3期_dgv.Columns(2).FillWeight = 20 : 第3期_dgv.Columns(3).FillWeight = 140
  550. 第3期_dgv.Columns(4).FillWeight = 20 : 第3期_dgv.Columns(5).FillWeight = 50
  551. 第3期_dgv.Columns(2).ReadOnly = True : 第3期_dgv.Columns(5).ReadOnly = True
  552. 第3期_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  553. 第3期_dgv.Columns(2).DefaultCellStyle.Format = "#,##0" : 第3期_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 第3期_dgv.Columns(5).DefaultCellStyle.Format = "#,##0"
  554. 第3期_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 第3期_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  555. End Sub
  556. Private Sub Set_合約明細4()
  557. 第4期_dgv.DataSource = Nothing : ds10.Clear()
  558. 第4期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  559. 第4期_dgv.ColumnHeadersHeight = 25 : 第4期_dgv.AllowUserToAddRows = False
  560. SQL_合約明細讀取()
  561. da.Fill(ds10) : 第4期_dgv.DataSource = ds10.Tables(0) : conn.Close()
  562. 第4期_dgv.Columns(0).Visible = False : 第4期_dgv.Columns(1).Visible = False : 第4期_dgv.Columns(2).FillWeight = 20 : 第4期_dgv.Columns(3).FillWeight = 140
  563. 第4期_dgv.Columns(4).FillWeight = 20 : 第4期_dgv.Columns(5).FillWeight = 50
  564. 第4期_dgv.Columns(2).ReadOnly = True : 第4期_dgv.Columns(5).ReadOnly = True
  565. 第4期_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  566. 第4期_dgv.Columns(2).DefaultCellStyle.Format = "#,##0" : 第4期_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 第4期_dgv.Columns(5).DefaultCellStyle.Format = "#,##0"
  567. 第4期_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 第4期_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  568. End Sub
  569. Private Sub Set_合約明細5()
  570. 第5期_dgv.DataSource = Nothing : ds11.Clear()
  571. 第5期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  572. 第5期_dgv.ColumnHeadersHeight = 25 : 第5期_dgv.AllowUserToAddRows = False
  573. SQL_合約明細讀取()
  574. da.Fill(ds11) : 第5期_dgv.DataSource = ds11.Tables(0) : conn.Close()
  575. 第5期_dgv.Columns(0).Visible = False : 第5期_dgv.Columns(1).Visible = False : 第5期_dgv.Columns(2).FillWeight = 20 : 第5期_dgv.Columns(3).FillWeight = 140
  576. 第5期_dgv.Columns(4).FillWeight = 20 : 第5期_dgv.Columns(5).FillWeight = 50
  577. 第5期_dgv.Columns(2).ReadOnly = True : 第5期_dgv.Columns(5).ReadOnly = True
  578. 第5期_dgv.Columns(2).DefaultCellStyle.Format = "#,##0" : 第5期_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 第5期_dgv.Columns(5).DefaultCellStyle.Format = "#,##0"
  579. 第5期_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 第5期_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  580. End Sub
  581. Private Sub 係數表下拉清單1()
  582. SQL_合約係數表下拉1() : 係數項目_cb.Items.Clear() : While (dr.Read()) : 係數項目_cb.Items.Add(dr("項目")) : End While : conn.Close()
  583. End Sub
  584. Private Sub 係數表下拉清單2()
  585. SQL_合約係數表下拉2() : 係數單位_cb.Items.Clear() : While (dr.Read()) : 係數單位_cb.Items.Add(dr("單位")) : End While : conn.Close()
  586. End Sub
  587. Private Sub 合約試算分下拉清單()
  588. PA = 合約編號_tb.Text : SQL_合約試算分表查詢() : 試算表_cb.Items.Clear() : While (dr.Read()) : 試算表_cb.Items.Add(dr("試算表")) : End While : conn.Close()
  589. End Sub
  590. Private Sub 合約試算控制下拉清單()
  591. PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : SQL_合約試算控制表查詢() : 樓層_迴路_cb.Items.Clear() : While (dr.Read()) : 樓層_迴路_cb.Items.Add(dr("樓層/迴路")) : End While : conn.Close()
  592. End Sub
  593. Private Sub 群組碼_cb_語轉_下拉表單資料載入()
  594. SQL_群組碼_語轉_下拉清單() : 新群組1_cb.Items.Clear() : While (dr.Read()) : 新群組1_cb.Items.Add(dr("群組")) : End While : conn.Close()
  595. End Sub
  596. Private Sub 群組編碼_cb_下拉表單資料載入()
  597. SQL_群組碼_下拉清單() : 群組編碼_cb.Items.Clear() : While (dr.Read()) : 群組編碼_cb.Items.Add(dr("群組碼")) : End While : conn.Close()
  598. End Sub
  599. Private Sub 合約種類下拉清單讀取()
  600. SQL_合約種類讀取() : 合約種類_cb.Items.Clear() : While (dr.Read()) : 合約種類_cb.Items.Add(dr("中")) : End While : conn.Close()
  601. End Sub
  602. Private Sub 客戶名稱下拉清單讀取()
  603. SQL_客戶名稱讀取() : 客戶名稱_tb.Items.Clear() : While (dr.Read()) : 客戶名稱_tb.Items.Add(dr("客戶名稱")) : End While : conn.Close()
  604. End Sub
  605. Private Sub 我司負責人下拉清單讀取()
  606. SQL負責人B讀取() : 負責人_B_cb.Items.Clear() : While (dr.Read()) : 負責人_B_cb.Items.Add(dr("負責人B")) : End While : conn.Close()
  607. End Sub
  608. Private Sub 甲方條件下拉清單讀取()
  609. SQL合約條件讀取() : 合約編號1_cb.Items.Clear() : 合約編號1_cb.Items.Add("") : 合約編號2_cb.Items.Clear() : 合約編號2_cb.Items.Add("")
  610. 甲方_cb.Items.Clear() : 甲方_cb.Items.Add("")
  611. While (dr.Read()) : 合約編號1_cb.Items.Add(dr("約號甲方")) : 合約編號2_cb.Items.Add(dr("約號甲方")) : 甲方_cb.Items.Add(dr("約號甲方")) : End While : conn.Close()
  612. End Sub
  613. Private Sub 預設資料()
  614. 合約種類_cb.Text = "" : 合約種類_tb.Text = "" : 客戶名稱_tb.Text = "" : 負責人_A_cb.Text = ""
  615. 工程地點_tb.Text = "" : 客戶地址_tb.Text = "" : 工程名稱_中_tb.Text = "" : 工程名稱_英_tb.Text = "" : 負責人_B_cb.Text = "" : CH2.Checked = True : 立約日期_dtp.Value = Today()
  616. 我司地址_tb.Text = "Kawasan Industri Terpadu Indonesia China ( KITIC ) Kav. 42 Lantai 4 Desa Nagasari Kec. Serang Baru Kab. Bekasi – Jawa Barat" : 廠區_中文_tb.Text = ""
  617. 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
  618. 最高扣款_英_bt.Text = "5 (five)%." : 逾期_bt.Text = "0.0005% (萬分之五)" : 頁數_bt.Text = "16"
  619. 最高扣款_bt.Text = "5% (百分之五)" : 逾期_英_bt.Text = "0.0005% (null point null null null five percent)"
  620. Set_合約清單() : 合約種類下拉清單讀取() : 客戶名稱下拉清單讀取() : 我司負責人下拉清單讀取()
  621. 合約種類_cb.SelectedIndex = 0
  622. 第1期_dgv.DataSource = Nothing : ds7.Clear() : 第2期_dgv.DataSource = Nothing : ds8.Clear() : 第3期_dgv.DataSource = Nothing : ds9.Clear()
  623. 第4期_dgv.DataSource = Nothing : ds10.Clear() : 第5期_dgv.DataSource = Nothing : ds11.Clear()
  624. End Sub
  625. Private Sub 預設資料1()
  626. 工程地點_tb.Text = "" : 工程名稱_中_tb.Text = "" : 工程名稱_英_tb.Text = "" : 負責人_B_cb.Text = "" : CH2.Checked = True : 立約日期_dtp.Value = Today()
  627. 我司地址_tb.Text = "Kawasan Industri Terpadu Indonesia China ( KITIC ) Kav. 42 Lantai 4 Desa Nagasari Kec. Serang Baru Kab. Bekasi – Jawa Barat" : 廠區_中文_tb.Text = ""
  628. 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
  629. 最末頁_cb.Text = "16" : 最高扣款_英_bt.Text = "5 (five)%." : 逾期_bt.Text = "0.0005% (萬分之五)" : 頁數_bt.Text = "16"
  630. 最高扣款_bt.Text = "5% (百分之五)" : 逾期_英_bt.Text = "0.0005% (null point null null null five percent)"
  631. Set_合約清單() : 合約種類下拉清單讀取() : 客戶名稱下拉清單讀取() : 我司負責人下拉清單讀取()
  632. 合約種類_cb.SelectedIndex = 0
  633. 第1期_dgv.DataSource = Nothing : ds7.Clear() : 第2期_dgv.DataSource = Nothing : ds8.Clear() : 第3期_dgv.DataSource = Nothing : ds9.Clear()
  634. 第4期_dgv.DataSource = Nothing : ds10.Clear() : 第5期_dgv.DataSource = Nothing : ds11.Clear()
  635. End Sub
  636. Private Sub 合約報價單_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  637. Me.MdiParent = HX_PGS_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  638. 介面 = "H401" : 語言轉換讀取()
  639. Me.KeyPreview = True
  640. 合約編號2_tb.Enabled = False : 合約編號3_tb.Enabled = False : CH1.Checked = False : CH2.Checked = True : NUD1.Enabled = False : NUD3.Enabled = True : 合約_lb.Text = "合約"
  641. 小間距_ch.Checked = True : 視窗1_pl.Visible = False : 視窗2_pl.Visible = False : 視窗3_pl.Visible = False : 視窗4_pl.Visible = False : 直接輸入_ch.Checked = True
  642. 物料_p.Visible = False : BOM_p.Visible = True : 合約_p.Visible = False
  643. 使用計算機_ch.Checked = False : SQL2 = ""
  644. If CInt(登入人級別) <= 5 Then : 合約停止_ch.Enabled = True : 刪除合約_bt.Enabled = True : Else : 合約停止_ch.Enabled = False : 刪除合約_bt.Enabled = False : End If
  645. 縮放1_bt.PerformClick() : 物料清單_dgv.BringToFront() : Panel1.SendToBack() : 縮放_bt.PerformClick() : 不再動作1 = True
  646. A1 = 空間1.Location.X : A2 = 錨點1.Location.X : B2 = 空間2.Location.Y : A3 = 空間2.Size.Width : B3 = 空間2.Size.Height
  647. AA1 = 合約_dgv.Location.X : AA2 = 錨點2.Location.X : BB2 = 空間3.Location.Y : AA3 = 空間3.Size.Width : BB3 = 空間3.Size.Height
  648. OX1 = 報價係數_dgv.Size.Width : OY1 = 報價係數_dgv.Size.Height : OY2 = 報價明細表_dgv.Size.Height
  649. 中文大寫3_ch.Checked = False : 中文小寫3_ch.Checked = True
  650. ITEM4_cb.Items.Clear() : ITEM4_cb.Items.Add("") : ITEM4_cb.Items.Add("一") : ITEM4_cb.Items.Add("二") : ITEM4_cb.Items.Add("三") : ITEM4_cb.Items.Add("四")
  651. ITEM4_cb.Items.Add("五") : ITEM4_cb.Items.Add("六") : ITEM4_cb.Items.Add("七") : ITEM4_cb.Items.Add("八") : ITEM4_cb.Items.Add("九") : ITEM4_cb.Items.Add("十")
  652. ITEM4_cb.Items.Add("十一") : ITEM4_cb.Items.Add("十二") : ITEM4_cb.Items.Add("十三") : ITEM4_cb.Items.Add("十四") : ITEM4_cb.Items.Add("十五") : ITEM4_cb.Items.Add("十六")
  653. ITEM4_cb.Items.Add("十七") : ITEM4_cb.Items.Add("十八") : ITEM4_cb.Items.Add("十九") : ITEM4_cb.Items.Add("二十")
  654. 預估工資總成本_tb.Text = "0" : 預估材料總成本_tb.Text = "0" : 預估工資總報價_tb.Text = "0" : 預估材料總報價_tb.Text = "0" : 預估利潤_tb.Text = "0"
  655. 總成本_tb.Text = "0" : 總報價_tb.Text = "0" : 利潤比1_tb.Text = "0 %" : 利潤比2_tb.Text = "0 %" : 利潤比3_tb.Text = "0 %" : 利潤比4_tb.Text = "0 %"
  656. 未折價前_tb.Text = "0" : 報價小計_tb.Text = "0" : 折讓比例_nud.Value = "0" : 歸零位數_nud.Value = "0" : 稅前歸零_ch.Checked = False : 稅後歸零_ch.Checked = False
  657. 歸零數_tb.Visible = False
  658. If 美金_ch.Checked = True Then : 幣別 = " (USD)" : ElseIf 台幣_ch.Checked = True Then : 幣別 = " (TWD)"
  659. ElseIf 人民幣_ch.Checked = True Then : 幣別 = " (RMB)" : ElseIf 印尼盾_ch.Checked = True Then : 幣別 = " (RP)" : End If
  660. If CInt(登入人級別) <= 3 Then : Else : 美金_ch.Visible = False : 台幣_ch.Visible = False : 人民幣_ch.Visible = False : 印尼盾_ch.Visible = False : End If
  661. 合約報價單_Siz()
  662. End Sub
  663. Private Sub 合約報價單_SizeChanged(sender As Object, e As EventArgs) Handles MyBase.SizeChanged
  664. 合約報價單_Siz()
  665. A1 = 空間1.Location.X : A2 = 錨點1.Location.X : B2 = 空間2.Location.Y
  666. AA1 = 合約_dgv.Location.X : AA2 = 錨點2.Location.X : BB2 = 空間3.Location.Y
  667. If 空間1.Visible = False Then : A3 = 空間2.Size.Width : B3 = 空間2.Size.Height : A3 -= (A2 - A1) : End If
  668. If 合約_dgv.Visible = False Then : AA3 = 空間3.Size.Width : BB3 = 空間3.Size.Height : AA3 -= (AA2 - AA1) : End If
  669. End Sub
  670. Private Sub 合約報價單_Siz()
  671. MyModule1.清單字體大小調整()
  672. 合約_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  673. 合約1_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  674. 報價係數_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  675. 報價總表_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  676. 報價明細表_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  677. BOM表控制_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  678. BOM表明細_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  679. 報價明細表1_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  680. 報價明細表2_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  681. End Sub
  682. Private Sub 合約報價單_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
  683. Set_合約清單1() : Set_合約清單() : 群組碼_cb_語轉_下拉表單資料載入() : 群組編碼_cb_下拉表單資料載入() : 係數表下拉清單1() : 係數表下拉清單2() : 甲方條件下拉清單讀取() : Set_BOM表控制()
  684. 新群組1_cb.SelectedIndex = 0 : PA = "範本" : Set_合約範例() : 預設資料() : Set_合約文件圖庫資料庫狀態()
  685. End Sub
  686. Private Sub 合約報價單_Closing(sender As Object, e As EventArgs) Handles MyBase.Closed
  687. HX_PGS_ERP_SYS.WindowState = 0 : MyModule1.虛擬桌面開啟()
  688. End Sub
  689. Private Sub 登入閒置控制_MouseMove(sender As Object, e As EventArgs) Handles MyBase.MouseMove
  690. timeNow = 0 : HX_PGS_ERP_SYS.Timer1.Enabled = False : HX_PGS_ERP_SYS.Timer1.Enabled = True
  691. End Sub
  692. Private Sub 登入閒置控制_KeyPress(sender As Object, e As EventArgs) Handles MyBase.KeyPress
  693. timeNow = 0 : HX_PGS_ERP_SYS.Timer1.Enabled = False : HX_PGS_ERP_SYS.Timer1.Enabled = True
  694. End Sub
  695. Private Sub Form_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
  696. If e.Control And e.KeyCode = Keys.S Then
  697. If TabControl1.SelectedIndex = 0 Then : 報價總表存檔_bt.PerformClick()
  698. ElseIf TabControl1.SelectedIndex <> 0 Then : 報價明細表存檔_bt.PerformClick() : End If
  699. End If
  700. If e.KeyCode = Keys.F1 Then
  701. If TabControl1.SelectedIndex = 0 Then : If 鍵盤鎖定1_ch.Checked = True Then : 鍵盤鎖定1_ch.Checked = False : Else : 鍵盤鎖定1_ch.Checked = True : End If
  702. ElseIf TabControl1.SelectedIndex <> 0 Then : If 鍵盤鎖定2_ch.Checked = True Then : 鍵盤鎖定2_ch.Checked = False : Else : 鍵盤鎖定2_ch.Checked = True : End If : End If
  703. End If
  704. If TabControl1.SelectedIndex = 0 Then
  705. If 鍵盤鎖定1_ch.Checked = True Then
  706. Select Case e.KeyCode
  707. Case Keys.NumPad1 : Me.ActiveControl = A1_bt : A1_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  708. Case Keys.NumPad2 : Me.ActiveControl = A2_bt : A2_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  709. Case Keys.NumPad3 : Me.ActiveControl = A3_bt : A3_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  710. Case Keys.NumPad4 : Me.ActiveControl = A4_bt : A4_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  711. Case Keys.NumPad5 : Me.ActiveControl = A5_bt : A5_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  712. Case Keys.NumPad6 : Me.ActiveControl = A6_bt : A6_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  713. Case Keys.NumPad7 : Me.ActiveControl = A7_bt : A7_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  714. Case Keys.NumPad8 : Me.ActiveControl = A8_bt : A8_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  715. Case Keys.NumPad9 : Me.ActiveControl = A9_bt : A9_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  716. Case Keys.NumPad0 : Me.ActiveControl = A0_bt : A0_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  717. Case Keys.Decimal : Me.ActiveControl = 小數點_bt : 小數點_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  718. Case Keys.D1 : Me.ActiveControl = A1_bt : A1_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  719. Case Keys.D2 : Me.ActiveControl = A2_bt : A2_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  720. Case Keys.D3 : Me.ActiveControl = A3_bt : A3_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  721. Case Keys.D4 : Me.ActiveControl = A4_bt : A4_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  722. Case Keys.D5 : Me.ActiveControl = A5_bt : A5_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  723. Case Keys.D6 : Me.ActiveControl = A6_bt : A6_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  724. Case Keys.D7 : Me.ActiveControl = A7_bt : A7_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  725. Case Keys.D8 : Me.ActiveControl = A8_bt : A8_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  726. Case Keys.D9 : Me.ActiveControl = A9_bt : A9_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  727. Case Keys.D0 : Me.ActiveControl = A0_bt : A0_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  728. Case Keys.OemPeriod : Me.ActiveControl = 小數點_bt : 小數點_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  729. Case Keys.Delete : Me.ActiveControl = 倒退_bt : 倒退_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  730. Case Keys.Multiply : Me.ActiveControl = 乘_bt : 乘_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  731. Case Keys.Subtract : Me.ActiveControl = 減_bt : 減_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  732. Case Keys.OemMinus : Me.ActiveControl = 減_bt : 減_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  733. Case Keys.Add : Me.ActiveControl = 加_bt : 加_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  734. Case Keys.Oemplus : Me.ActiveControl = 加_bt : 加_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  735. Case Keys.Oem2 : Me.ActiveControl = 除_bt : 除_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  736. Case Keys.Divide : Me.ActiveControl = 除_bt : 除_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  737. Case Keys.Back : Me.ActiveControl = 倒退_bt : 倒退_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  738. Case Keys.Return : Me.ActiveControl = 倒退_bt : 倒退_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  739. Case Keys.Escape : Me.ActiveControl = 清除_bt : 清除_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  740. End Select
  741. End If
  742. ElseIf TabControl1.SelectedIndex <> 0 Then
  743. If 鍵盤鎖定2_ch.Checked = True Then
  744. Select Case e.KeyCode
  745. Case Keys.NumPad1 : Me.ActiveControl = A1_bt : A1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  746. Case Keys.NumPad2 : Me.ActiveControl = A2_bt : A2_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  747. Case Keys.NumPad3 : Me.ActiveControl = A3_bt : A3_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  748. Case Keys.NumPad4 : Me.ActiveControl = A4_bt : A4_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  749. Case Keys.NumPad5 : Me.ActiveControl = A5_bt : A5_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  750. Case Keys.NumPad6 : Me.ActiveControl = A6_bt : A6_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  751. Case Keys.NumPad7 : Me.ActiveControl = A7_bt : A7_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  752. Case Keys.NumPad8 : Me.ActiveControl = A8_bt : A8_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  753. Case Keys.NumPad9 : Me.ActiveControl = A9_bt : A9_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  754. Case Keys.NumPad0 : Me.ActiveControl = A0_bt : A0_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  755. Case Keys.Decimal : Me.ActiveControl = 小數點1_bt : 小數點1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  756. Case Keys.D1 : Me.ActiveControl = A1_bt : A1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  757. Case Keys.D2 : Me.ActiveControl = A2_bt : A2_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  758. Case Keys.D3 : Me.ActiveControl = A3_bt : A3_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  759. Case Keys.D4 : Me.ActiveControl = A4_bt : A4_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  760. Case Keys.D5 : Me.ActiveControl = A5_bt : A5_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  761. Case Keys.D6 : Me.ActiveControl = A6_bt : A6_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  762. Case Keys.D7 : Me.ActiveControl = A7_bt : A7_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  763. Case Keys.D8 : Me.ActiveControl = A8_bt : A8_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  764. Case Keys.D9 : Me.ActiveControl = A9_bt : A9_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  765. Case Keys.D0 : Me.ActiveControl = A0_bt : A0_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  766. Case Keys.OemPeriod : Me.ActiveControl = 小數點1_bt : 小數點1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  767. Case Keys.Delete : Me.ActiveControl = 倒退1_bt : 倒退1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  768. Case Keys.Multiply : Me.ActiveControl = 乘1_bt : 乘1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  769. Case Keys.Subtract : Me.ActiveControl = 減1_bt : 減1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  770. Case Keys.OemMinus : Me.ActiveControl = 減1_bt : 減1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  771. Case Keys.Add : Me.ActiveControl = 加1_bt : 加1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  772. Case Keys.Oemplus : Me.ActiveControl = 加1_bt : 加1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  773. Case Keys.Oem2 : Me.ActiveControl = 除1_bt : 除1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  774. Case Keys.Divide : Me.ActiveControl = 除1_bt : 除1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  775. Case Keys.Back : Me.ActiveControl = 倒退1_bt : 倒退1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  776. Case Keys.Return : Me.ActiveControl = 倒退1_bt : 倒退1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  777. Case Keys.Escape : Me.ActiveControl = 清除1_bt : 清除1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  778. End Select
  779. End If
  780. End If
  781. End Sub
  782. Private Sub 報價明細表2_dgv_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles 報價明細表2_dgv.CellClick
  783. If e.RowIndex = -1 Then : Else
  784. If 報價明細表2_dgv.Rows(e.RowIndex).Cells("選擇").Value = True Then
  785. 報價明細表2_dgv.Rows(e.RowIndex).Cells("選擇").Value = False
  786. Else
  787. 報價明細表2_dgv.Rows(e.RowIndex).Cells("選擇").Value = True
  788. End If
  789. 物料圖1_pb.Image = Nothing
  790. If 報價明細表2_dgv.Rows(e.RowIndex).Cells("料號原則").Value.ToString = "" Then : Else
  791. PA2 = 報價明細表2_dgv.Rows(e.RowIndex).Cells("料號原則").Value.ToString : SQL_物料圖庫_圖檔讀取一()
  792. While dr.Read() = True
  793. Dim unused As Byte() = New Byte(-1) {}
  794. Dim bytes As Byte() = DirectCast(dr.Item("圖檔"), Byte())
  795. Dim oStream As New MemoryStream(bytes)
  796. 物料圖1_pb.Image = Bitmap.FromStream(oStream)
  797. End While : conn.Close() : 物料圖1_pb.SizeMode = 4
  798. End If
  799. '------------數字為0隱藏-----------------------------------------------------------------------------------------------
  800. For i As Integer = 0 To 報價明細表2_dgv.Rows.Count - 1
  801. If IsDBNull(報價明細表2_dgv.Rows(i).Cells("QTY").Value) Then : 報價明細表2_dgv.Rows(i).Cells("QTY").Style.ForeColor = Color.White : Else
  802. If 報價明細表2_dgv.Rows(i).Cells("QTY").Value = 0 Then : 報價明細表2_dgv.Rows(i).Cells("QTY").Style.ForeColor = Color.White
  803. Else : 報價明細表2_dgv.Rows(i).Cells("QTY").Style.ForeColor = Color.Black : End If : End If
  804. Next
  805. If 報價明細表2_dgv.Rows(e.RowIndex).Cells("選擇").Value = True Then
  806. 報價明細表2_dgv.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.LightGreen
  807. Else : 報價明細表2_dgv.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.White : End If
  808. End If
  809. End Sub
  810. Private Sub 合約1_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 合約1_dgv.CellClick
  811. If e.RowIndex = -1 Then : Else
  812. 合約編號_1_tb.Text = 合約1_dgv.Rows(e.RowIndex).Cells("合約編號").Value : Set_合約報價明細表1()
  813. If 放大 = True Then : 縮放2_bt.PerformClick() : End If
  814. End If
  815. End Sub
  816. Private Sub BOM表控制_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles BOM表控制_dgv.CellClick
  817. If e.RowIndex = -1 Then : Else
  818. 主項目_tb.Text = BOM表控制_dgv.Rows(e.RowIndex).Cells("項目").Value.ToString : 項目流水_tb.Text = BOM表控制_dgv.Rows(e.RowIndex).Cells("流水號").Value.ToString
  819. PA = 項目流水_tb.Text : Set_BOM表明細()
  820. End If
  821. End Sub
  822. Private Sub BOM表明細_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles BOM表明細_dgv.CellClick
  823. If e.RowIndex = -1 Then : Else
  824. 物料圖1_pb.Image = Nothing
  825. If BOM表明細_dgv.Rows(e.RowIndex).Cells("料號原則").Value.ToString = "" Then : Else
  826. PA2 = BOM表明細_dgv.Rows(e.RowIndex).Cells("料號原則").Value.ToString : SQL_物料圖庫_圖檔讀取一()
  827. While dr.Read() = True
  828. Dim unused As Byte() = New Byte(-1) {}
  829. Dim bytes As Byte() = DirectCast(dr.Item("圖檔"), Byte())
  830. Dim oStream As New MemoryStream(bytes)
  831. 物料圖1_pb.Image = Bitmap.FromStream(oStream)
  832. End While : conn.Close() : 物料圖1_pb.SizeMode = 4
  833. End If
  834. End If
  835. End Sub
  836. Private Sub 合約讀取()
  837. 試算表_cb.Items.Clear() : 試算表_cb.Text = "試算表1" : 表號_tb.Text = "B01"
  838. '---------合約生成--------------------------------------------------------------------------------------------------------------
  839. 合約種類下拉清單讀取() : 客戶名稱下拉清單讀取() : 我司負責人下拉清單讀取()
  840. If Strings.Left(合約_dgv("合約編號", 選取位置).Value.ToString, 2) = "HX" Then : 合約編號_cb.Text = "HX" : Else : 合約編號_cb.Text = "PGS" : End If
  841. 合約編號1_tb.Text = 合約_dgv("約號甲方", 選取位置).Value.ToString : 合約編號2_tb.Text = 合約_dgv("約號排序", 選取位置).Value.ToString
  842. 合約編號3_tb.Text = 合約_dgv("約號尾序", 選取位置).Value.ToString : 報價說明_tb.Text = 合約_dgv("報價說明", 選取位置).Value.ToString
  843. 客戶名稱_tb.Text = 合約_dgv("客戶名稱", 選取位置).Value.ToString : 負責人_A_cb.Text = 合約_dgv("負責人A", 選取位置).Value.ToString
  844. 工程地點_tb.Text = 合約_dgv("工程地點", 選取位置).Value.ToString : 客戶地址_tb.Text = 合約_dgv("客戶地址", 選取位置).Value.ToString
  845. 工程名稱_中_tb.Text = 合約_dgv("工程名稱_中", 選取位置).Value.ToString : 工程名稱_英_tb.Text = 合約_dgv("工程名稱_英", 選取位置).Value.ToString
  846. 負責人_B_cb.Text = 合約_dgv("負責人B", 選取位置).Value.ToString : 我司地址_tb.Text = 合約_dgv("我司地址", 選取位置).Value.ToString
  847. CH2.Checked = True : NUD3.Value = 合約_dgv("工程總價", 選取位置).Value : 工程款1_nud.Value = 合約_dgv("第一期比例", 選取位置).Value
  848. 工程款2_nud.Value = 合約_dgv("第二期比例", 選取位置).Value : 工程款3_nud.Value = 合約_dgv("第三期比例", 選取位置).Value
  849. 工程款4_nud.Value = 合約_dgv("第四期比例", 選取位置).Value : 工程款5_nud.Value = 合約_dgv("第五期比例", 選取位置).Value
  850. 工期_nud.Value = 合約_dgv("工期", 選取位置).Value : 逾期_bt.Text = 合約_dgv("逾期_中", 選取位置).Value.ToString
  851. 最高扣款_bt.Text = 合約_dgv("最高扣罰_中", 選取位置).Value.ToString : 逾期_英_bt.Text = 合約_dgv("逾期_英", 選取位置).Value.ToString
  852. 最高扣款_英_bt.Text = 合約_dgv("最高扣罰_英", 選取位置).Value.ToString : 減價_bt.Text = 合約_dgv("減價", 選取位置).Value.ToString
  853. 廠區_中文_tb.Text = 合約_dgv("工程廠區", 選取位置).Value.ToString : 最末頁_cb.Text = 合約_dgv("頁數", 選取位置).Value.ToString
  854. 立約日期_dtp.Value = 合約_dgv("立約日期", 選取位置).Value : 合約種類_cb.Text = 合約_dgv("合約種類", 選取位置).Value.ToString
  855. 合約停止_ch.Checked = 合約_dgv("停止", 選取位置).Value
  856. If 合約_dgv("幣別", 選取位置).Value.ToString = "美金" Then : 美金_ch.Checked = True : 台幣_ch.Checked = False : 人民幣_ch.Checked = False : 印尼盾_ch.Checked = False
  857. ElseIf 合約_dgv("幣別", 選取位置).Value.ToString = "台幣" Then : 美金_ch.Checked = False : 台幣_ch.Checked = True : 人民幣_ch.Checked = False : 印尼盾_ch.Checked = False
  858. ElseIf 合約_dgv("幣別", 選取位置).Value.ToString = "人民幣" Then : 美金_ch.Checked = False : 台幣_ch.Checked = False : 人民幣_ch.Checked = True : 印尼盾_ch.Checked = False
  859. ElseIf 合約_dgv("幣別", 選取位置).Value.ToString = "印尼盾" Then : 美金_ch.Checked = False : 台幣_ch.Checked = False : 人民幣_ch.Checked = False : 印尼盾_ch.Checked = True
  860. End If
  861. 折讓比例_nud.Value = 合約_dgv("折讓比例", 選取位置).Value : 歸零位數_nud.Value = 合約_dgv("歸零位數", 選取位置).Value
  862. 稅前歸零_ch.Checked = 合約_dgv("稅前歸零", 選取位置).Value : 稅後歸零_ch.Checked = 合約_dgv("稅後歸零", 選取位置).Value
  863. 圖片庫 = 合約_dgv("簽回檔圖庫", 選取位置).Value.ToString : 簽回檔 = 合約_dgv("簽回", 選取位置).Value
  864. PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text
  865. PA1 = "1" : Set_合約明細1() : PA1 = "2" : Set_合約明細2() : PA1 = "3" : Set_合約明細3() : PA1 = "4" : Set_合約明細4() : PA1 = "5" : Set_合約明細5()
  866. '---------試算表--------------------------------------------------------------------------------------------------------------
  867. 合約編號_tb.Text = 合約_dgv("合約編號", 選取位置).Value.ToString
  868. PA = 合約_dgv("合約編號", 選取位置).Value.ToString : SQL_合約試算分表查詢()
  869. If dr.Read() Then
  870. 試算表_cb.Items.Clear() : conn.Close() : SQL_合約試算分表查詢() : While (dr.Read()) : 試算表_cb.Items.Add(dr("試算表")) : End While
  871. conn.Close() : 試算表_cb.SelectedIndex = 0 : 表號_tb.Text = "B01" : PA2 = 表號_tb.Text : SQL_合約試算控制表查詢()
  872. If dr.Read() Then
  873. 樓層_迴路_cb.Items.Clear() : conn.Close() : SQL_合約試算控制表查詢() : While (dr.Read()) : 樓層_迴路_cb.Items.Add(dr("樓層/迴路")) : End While : conn.Close()
  874. 樓層_迴路_cb.SelectedIndex = 0 : 表頭_tb.Text = "A01" : Set_合約試算控制表_查詢()
  875. Else
  876. 樓層_迴路_cb.Items.Clear() : 表頭_tb.Text = "" : Set_合約試算控制表_查詢()
  877. End If : conn.Close()
  878. Else
  879. conn.Close() : PA1 = 試算表_cb.Text : PA2 = 表號_tb.Text : SQL_合約試算分表_新增()
  880. End If : conn.Close()
  881. '---------報價單--------------------------------------------------------------------------------------------------------------
  882. 報價單合約編號_tb.Text = 合約_dgv("合約編號", 選取位置).Value.ToString : 報價單客戶名稱_cb.Text = 合約_dgv("客戶名稱", 選取位置).Value.ToString
  883. 報價工程名稱_中_tb.Text = 合約_dgv("工程名稱_中", 選取位置).Value.ToString : 報價工程名稱_英_tb.Text = 合約_dgv("工程名稱_英", 選取位置).Value.ToString
  884. 報價單立約日期_dtp.Value = 合約_dgv("立約日期", 選取位置).Value.ToString
  885. PA = 合約編號_tb.Text : 合約_lb.Text = "合約"
  886. Set_合約報價總表() : Set_合約報價係數() : Set_合約報價明細表() : 報價總表_dgv_自動計算()
  887. If 報價明細表_dgv.Rows.Count = 0 Then : For i As Integer = 1 To 3 : 新增資料2_bt.PerformClick() : Next : End If
  888. End Sub
  889. Private Sub 合約_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 合約_dgv.CellClick
  890. If e.RowIndex = -1 Then : Else : 選取位置 = e.RowIndex : 合約讀取() : End If : 縮放2_bt.PerformClick() : 縮放1_bt.PerformClick()
  891. End Sub
  892. Private Sub 試算表_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 試算表_dgv.CellClick
  893. If e.RowIndex = -1 Then : Else
  894. If 直接輸入_ch.Checked = False And 使用計算機_ch.Checked = True Then
  895. If e.ColumnIndex > 1 And e.ColumnIndex < 40 Then
  896. 計算機.ShowDialog() : If IsNumeric(PA30) Then : 試算表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = PA30 : 試算表計算() : End If
  897. End If
  898. End If : 料號1_tb.Text = 試算表_dgv.Rows(e.RowIndex).Cells("料號").Value.ToString
  899. PA2 = Strings.StrReverse(Strings.Mid(Strings.StrReverse(試算表_dgv.Rows(e.RowIndex).Cells("料號").Value.ToString), 6, 50)) : SQL_物料圖庫_圖檔讀取一()
  900. While dr.Read() = True
  901. Dim unused As Byte() = New Byte(-1) {}
  902. Dim bytes As Byte() = DirectCast(dr.Item("圖檔"), Byte())
  903. Dim oStream As New MemoryStream(bytes)
  904. 物料圖_pb.Image = Bitmap.FromStream(oStream)
  905. End While : conn.Close() : 物料圖_pb.SizeMode = 4
  906. End If
  907. End Sub
  908. Private Sub 物料清單_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 物料清單_dgv.CellClick
  909. If e.RowIndex = -1 Then : Else
  910. PA = 物料清單_dgv(1, e.RowIndex).Value.ToString
  911. PA1 = 物料清單_dgv.Rows(e.RowIndex).Cells("群組碼").Value : PA2 = 物料清單_dgv.Rows(e.RowIndex).Cells("料號原則").Value
  912. SQL_物料圖庫_圖檔讀取()
  913. While dr.Read() = True
  914. Dim unused As Byte() = New Byte(-1) {}
  915. Dim bytes As Byte() = DirectCast(dr.Item("圖檔"), Byte())
  916. Dim oStream As New MemoryStream(bytes)
  917. 物料圖_pb.Image = Bitmap.FromStream(oStream)
  918. 物料圖1_pb.Image = Bitmap.FromStream(oStream)
  919. End While : conn.Close() : 物料圖_pb.SizeMode = 4 : 物料圖1_pb.SizeMode = 4
  920. '------------------------------------------------------------------------------------------------------------------------------------------
  921. SQL_建築物料請購單申請_物料規格讀取()
  922. If dr.Read() Then : KKK2 = dr("規格庫編號") : PA3 = dr("規格庫抬頭指定") : PA4 = dr("群組碼") : End If : conn.Close()
  923. '------------------------------------------------------------------------------------------------------------------------------------------
  924. SQL_規格庫抬頭讀取()
  925. If dr.Read() Then : AAA1 = dr("A1") : AAA2 = dr("A2") : AAA3 = dr("A3") : AAA4 = dr("A4") : AAA5 = dr("A5") : AAA6 = dr("A6") : AAA7 = dr("A7") : AAA8 = dr("A8") : End If
  926. conn.Close()
  927. '------------------------------------------------------------------------------------------------------------------------------------------
  928. Dim ds3 As New DataSet
  929. 物料規格_dgv.DataSource = Nothing : ds3.Clear()
  930. 物料規格_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  931. 物料規格_dgv.ColumnHeadersHeight = 25 : 物料規格_dgv.AllowUserToAddRows = False : 物料規格_dgv.RowTemplate.Height = 20
  932. If KKK2 = "SQLB03" Then : SQL_物料規格_SQLB03() : ElseIf KKK2 = "SQLB04" Then : SQL_物料規格_SQLB04() : ElseIf KKK2 = "SQLB05" Then : SQL_物料規格_SQLB05()
  933. ElseIf KKK2 = "SQLB06" Then : SQL_物料規格_SQLB06() : ElseIf KKK2 = "SQLB07" Then : SQL_物料規格_SQLB07() : ElseIf KKK2 = "SQLB08" Then : SQL_物料規格_SQLB08() : End If
  934. da.Fill(ds3) : 物料規格_dgv.DataSource = ds3.Tables(0) : conn.Close() : 料號1_tb.Text = ""
  935. 物料規格_dgv.Columns(0).Visible = False : 物料規格_dgv.Columns(1).Visible = False : 物料規格_dgv.Columns(3).Visible = False
  936. 物料規格_dgv.Columns(2).Width = 17 : 物料規格_dgv.Columns(12).Visible = False : 物料規格_dgv.Columns(13).Visible = False : 物料規格_dgv.Columns(14).Visible = False
  937. 物料規格_dgv.Columns(15).Visible = False
  938. If KKK2 = "SQLB03" Then
  939. 物料規格_dgv.Columns(7).Visible = False : 物料規格_dgv.Columns(8).Visible = False : 物料規格_dgv.Columns(9).Visible = False : 物料規格_dgv.Columns(10).Visible = False
  940. 物料規格_dgv.Columns(11).Visible = False
  941. 物料規格_dgv.Columns(4).FillWeight = 213 : 物料規格_dgv.Columns(5).FillWeight = 213 : 物料規格_dgv.Columns(6).FillWeight = 214
  942. ElseIf KKK2 = "SQLB04" Then
  943. 物料規格_dgv.Columns(7).Visible = True : 物料規格_dgv.Columns(8).Visible = False : 物料規格_dgv.Columns(9).Visible = False : 物料規格_dgv.Columns(10).Visible = False
  944. 物料規格_dgv.Columns(11).Visible = False
  945. 物料規格_dgv.Columns(4).FillWeight = 160 : 物料規格_dgv.Columns(5).FillWeight = 160 : 物料規格_dgv.Columns(6).FillWeight = 160 : 物料規格_dgv.Columns(7).FillWeight = 160
  946. ElseIf KKK2 = "SQLB05" Then
  947. 物料規格_dgv.Columns(7).Visible = True : 物料規格_dgv.Columns(8).Visible = True : 物料規格_dgv.Columns(9).Visible = False : 物料規格_dgv.Columns(10).Visible = False
  948. 物料規格_dgv.Columns(11).Visible = False
  949. 物料規格_dgv.Columns(4).FillWeight = 128 : 物料規格_dgv.Columns(5).FillWeight = 128 : 物料規格_dgv.Columns(6).FillWeight = 128 : 物料規格_dgv.Columns(7).FillWeight = 128
  950. 物料規格_dgv.Columns(8).FillWeight = 128
  951. ElseIf KKK2 = "SQLB06" Then
  952. 物料規格_dgv.Columns(7).Visible = True : 物料規格_dgv.Columns(8).Visible = True : 物料規格_dgv.Columns(9).Visible = True : 物料規格_dgv.Columns(10).Visible = False
  953. 物料規格_dgv.Columns(11).Visible = False
  954. 物料規格_dgv.Columns(4).FillWeight = 106 : 物料規格_dgv.Columns(5).FillWeight = 107 : 物料規格_dgv.Columns(6).FillWeight = 106 : 物料規格_dgv.Columns(7).FillWeight = 107
  955. 物料規格_dgv.Columns(8).FillWeight = 106 : 物料規格_dgv.Columns(9).FillWeight = 108
  956. ElseIf KKK2 = "SQLB07" Then
  957. 物料規格_dgv.Columns(7).Visible = True : 物料規格_dgv.Columns(8).Visible = True : 物料規格_dgv.Columns(9).Visible = True : 物料規格_dgv.Columns(10).Visible = True
  958. 物料規格_dgv.Columns(11).Visible = False
  959. 物料規格_dgv.Columns(4).FillWeight = 91 : 物料規格_dgv.Columns(5).FillWeight = 92 : 物料規格_dgv.Columns(6).FillWeight = 91 : 物料規格_dgv.Columns(7).FillWeight = 92
  960. 物料規格_dgv.Columns(8).FillWeight = 91 : 物料規格_dgv.Columns(9).FillWeight = 92 : 物料規格_dgv.Columns(10).FillWeight = 91
  961. ElseIf KKK2 = "SQLB08" Then
  962. 物料規格_dgv.Columns(7).Visible = True : 物料規格_dgv.Columns(8).Visible = True : 物料規格_dgv.Columns(9).Visible = True : 物料規格_dgv.Columns(10).Visible = True
  963. 物料規格_dgv.Columns(11).Visible = True
  964. 物料規格_dgv.Columns(4).FillWeight = 80 : 物料規格_dgv.Columns(5).FillWeight = 80 : 物料規格_dgv.Columns(6).FillWeight = 80 : 物料規格_dgv.Columns(7).FillWeight = 80
  965. 物料規格_dgv.Columns(8).FillWeight = 80 : 物料規格_dgv.Columns(9).FillWeight = 80 : 物料規格_dgv.Columns(10).FillWeight = 80 : 物料規格_dgv.Columns(11).FillWeight = 80
  966. End If
  967. 物料規格_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  968. For i As Integer = 0 To 11 : 物料規格_dgv.Columns(i).ReadOnly = True : Next
  969. For i As Integer = 0 To 物料規格_dgv.Rows.Count - 1
  970. 物料規格_dgv.Rows(i).Cells("No").Value = i + 1 : 物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value = 0
  971. If Not IsNumeric(物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value) Then
  972. If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值!!") : Else : MsgBox("Input bidang harus numerik!!") : End If
  973. ElseIf Val(物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value) > 0 Then : 物料規格_dgv.Rows(i).Cells("Pilih").Value = True
  974. ElseIf Val(物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value) <= 0 Then : 物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value = "0"
  975. 物料規格_dgv.Rows(i).Cells("Pilih").Value = False
  976. End If
  977. Next i
  978. End If
  979. End Sub
  980. Private Sub 報價係數_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價係數_dgv.CellClick
  981. If e.RowIndex = -1 Then : Else
  982. 係數項目_cb.Text = 報價係數_dgv.Rows(e.RowIndex).Cells("項目").Value.ToString : 係數單位_cb.Text = 報價係數_dgv.Rows(e.RowIndex).Cells("單位").Value.ToString
  983. 係數_nup.Value = 報價係數_dgv.Rows(e.RowIndex).Cells("係數").Value : 係數流水號_tb.Text = 報價係數_dgv.Rows(e.RowIndex).Cells("流水號").Value.ToString
  984. 係數合約號_tb.Text = 報價係數_dgv.Rows(e.RowIndex).Cells("合約號碼").Value.ToString
  985. End If
  986. End Sub
  987. Private Sub 物料規格_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 物料規格_dgv.CellClick
  988. If e.RowIndex = -1 Then : Else
  989. 料號1_tb.Text = 物料規格_dgv.Rows(e.RowIndex).Cells("Nomor_Bagian").Value.ToString : 料號_tb.Text = 物料規格_dgv.Rows(e.RowIndex).Cells("Nomor_Bagian").Value.ToString
  990. PA47 = 料號_tb.Text : SQL_採購單價查詢()
  991. If dr.Read Then : 最後採購日_tb.Text = Strings.Left(dr("採購日"), 4) & "/" & Strings.Mid(dr("採購日"), 5, 2) & "/" & Strings.Right(dr("採購日"), 2)
  992. 歷史單價_tb.Text = Strings.Format(CInt(dr("單價").ToString), "#,##0") : Else : 最後採購日_tb.Text = "" : 歷史單價_tb.Text = "0"
  993. End If
  994. End If
  995. End Sub
  996. Private Sub 報價總表_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價總表_dgv.CellClick
  997. If e.RowIndex = -1 Then : Else : DGV位置1.Value = e.RowIndex
  998. 總表流水_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("流水號").Value.ToString : ITEM1_cb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("ITEM").Value.ToString()
  999. 單位_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("UNIT").Value.ToString() : 備註_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("REMARKS").Value.ToString()
  1000. 內容_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("DESCRIPTION").Value.ToString() : 選擇項_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("排序").Value.ToString()
  1001. 合計項_cb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("DESCRIPTION").Value.ToString() : 選擇項3_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("排序").Value.ToString()
  1002. If 合計項_cb.Text = 內容_tb.Text Then : Else : 合計項_cb.Text = "" : End If
  1003. DGV_X = e.ColumnIndex : DGV_Y = e.RowIndex : 選擇項_tb.Text = e.RowIndex
  1004. If DGV_X = 4 Or DGV_X = 5 Or DGV_X = 6 Then
  1005. If 目前選擇 = "寫入資料" Then : X_3_tb.Text = e.ColumnIndex : Y_3_tb.Text = e.RowIndex
  1006. Else
  1007. If IsDBNull(報價總表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) Then : 報價總表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = 0 : End If
  1008. 數值2_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value
  1009. End If
  1010. End If
  1011. End If
  1012. End Sub
  1013. Private Sub 報價明細表_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價明細表_dgv.CellClick
  1014. If e.RowIndex = -1 Then : Else : DGV位置2.Value = e.RowIndex
  1015. If 啟用批量選擇_ch.Checked = True Then
  1016. If 報價明細表_dgv("S", e.RowIndex).Value = True Then
  1017. 報價明細表_dgv("S", e.RowIndex).Value = False : 報價明細表_dgv.Rows(e.RowIndex).DefaultCellStyle.ForeColor = Color.Black
  1018. Else
  1019. 報價明細表_dgv("S", e.RowIndex).Value = True : 報價明細表_dgv.Rows(e.RowIndex).DefaultCellStyle.ForeColor = Color.Red
  1020. End If
  1021. End If
  1022. 明細表流水_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("流水號").Value.ToString : ITEM2_cb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("ITEM").Value.ToString()
  1023. 單位1_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("UNIT").Value.ToString() : 備註1_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("REMARKS").Value.ToString()
  1024. 內容1_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("DESCRIPTION").Value.ToString() : 選擇項2_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("排序").Value.ToString()
  1025. 合計項1_cb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("DESCRIPTION").Value.ToString() : ITEM3_cb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("ITEM").Value.ToString()
  1026. 料號_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("料號").Value.ToString() : 申請數_nud.Value = 報價明細表_dgv.Rows(e.RowIndex).Cells("QTY").Value.ToString()
  1027. 單位2_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("UNIT").Value.ToString()
  1028. 物料圖1_pb.Image = Nothing
  1029. If 報價明細表_dgv.Rows(e.RowIndex).Cells("料號原則").Value.ToString = "" Then : Else
  1030. PA2 = 報價明細表_dgv.Rows(e.RowIndex).Cells("料號原則").Value.ToString : SQL_物料圖庫_圖檔讀取一()
  1031. While dr.Read() = True
  1032. Dim unused As Byte() = New Byte(-1) {}
  1033. Dim bytes As Byte() = DirectCast(dr.Item("圖檔"), Byte())
  1034. Dim oStream As New MemoryStream(bytes)
  1035. 物料圖1_pb.Image = Bitmap.FromStream(oStream)
  1036. End While : conn.Close() : 物料圖1_pb.SizeMode = 4
  1037. End If
  1038. If 合計項1_cb.Text = 內容1_tb.Text Then : Else : 合計項1_cb.Text = "" : End If
  1039. DGV_X = e.ColumnIndex : DGV_Y = e.RowIndex : 選擇項1_tb.Text = e.RowIndex
  1040. 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
  1041. If 目前選擇 = "寫入資料" Then : X_2_tb.Text = e.ColumnIndex : Y_2_tb.Text = e.RowIndex
  1042. Else
  1043. If IsDBNull(報價明細表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) Then : 報價明細表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = 0 : End If
  1044. 數值4_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value
  1045. End If
  1046. End If
  1047. End If
  1048. End Sub
  1049. Private Sub 報價係數1_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價係數1_dgv.CellClick
  1050. If e.RowIndex = -1 Then : Else
  1051. If IsDBNull(報價係數1_dgv.Rows(e.RowIndex).Cells(3).Value) Then : 數值4_tb.Text = 0 : Else : 數值4_tb.Text = 報價係數1_dgv.Rows(e.RowIndex).Cells(3).Value : End If
  1052. End If
  1053. End Sub
  1054. Private Sub 報價明細表1_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價明細表1_dgv.CellClick
  1055. If e.RowIndex = -1 Then : Else
  1056. If IsDBNull(報價明細表1_dgv.Rows(e.RowIndex).Cells(6).Value) Then : 數值2_tb.Text = 0 : Else : 數值2_tb.Text = 報價明細表1_dgv.Rows(e.RowIndex).Cells(6).Value : End If
  1057. ITEM1_cb.Text = 報價明細表1_dgv.Rows(e.RowIndex).Cells("ITEM").Value.ToString() : 內容_tb.Text = 報價明細表1_dgv.Rows(e.RowIndex).Cells("DESCRIPTION").Value.ToString()
  1058. 單位_tb.Text = 報價明細表1_dgv.Rows(e.RowIndex).Cells("UNIT").Value.ToString() : 連動編號_tb.Text = ""
  1059. End If
  1060. End Sub
  1061. Private Sub 報價明細表1_dgv_CellDoubleClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價明細表1_dgv.CellDoubleClick
  1062. If e.RowIndex = -1 Then : Else
  1063. 報價總表_dgv.Rows(DGV位置1.Value).Cells("明細連動").Value = 報價明細表1_dgv.Rows(e.RowIndex).Cells("流水號").Value.ToString()
  1064. End If
  1065. End Sub
  1066. Private Sub 報價總表_dgv_CellDoubleClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價總表_dgv.CellDoubleClick
  1067. If e.RowIndex = -1 Then : Else
  1068. If 視窗2_pl.Visible = True Then
  1069. DGV_X = e.ColumnIndex : DGV_Y = e.RowIndex : 選擇項_tb.Text = e.RowIndex
  1070. If DGV_X = 4 Or DGV_X = 5 Or DGV_X = 6 Then
  1071. 報價總表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = NUD_03.Value : 清除_bt.PerformClick() : Me.ActiveControl = 等於_bt
  1072. End If
  1073. End If
  1074. 連動編號_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("明細連動").Value.ToString
  1075. Me.TabControl1.SelectedTab = Me.工程合約報價明細_tc
  1076. Dim 查詢 As Boolean
  1077. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  1078. If 報價總表_dgv.Rows(e.RowIndex).Cells("DESCRIPTION").Value.ToString() = 報價明細表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString() Then
  1079. 報價明細表_dgv.CurrentCell = 報價明細表_dgv.Rows(i).Cells(1) : 查詢 = True : Exit For : Else : 查詢 = False
  1080. End If
  1081. Next
  1082. If 查詢 = False Then
  1083. If DGV位置2.Value >= 報價明細表_dgv.Rows.Count Then : DGV位置2.Value = 報價明細表_dgv.Rows.Count - 1 : End If
  1084. If DGV位置2.Value > 0 Then : 報價明細表_dgv.CurrentCell = 報價明細表_dgv.Rows(DGV位置2.Value).Cells(1) : End If
  1085. End If
  1086. End If
  1087. End Sub
  1088. Private Sub 報價明細表_dgv_CellDoubleClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價明細表_dgv.CellDoubleClick
  1089. If e.RowIndex = -1 Then : Else
  1090. If 視窗3_pl.Visible = True Then
  1091. DGV_X = e.ColumnIndex : DGV_Y = e.RowIndex : 選擇項1_tb.Text = e.RowIndex
  1092. If DGV_X = 4 Or DGV_X = 5 Or DGV_X = 6 Or DGV_X = 8 Or DGV_X = 9 Or DGV_X = 13 Then
  1093. 報價明細表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = NUD_06.Value : 清除1_bt.PerformClick() : Me.ActiveControl = 等於1_bt
  1094. End If
  1095. End If
  1096. End If
  1097. End Sub
  1098. Private Sub 報價總表_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 報價總表_dgv.CellEndEdit
  1099. If 啟動運算 = True Then : 報價總表_dgv_自動計算() : End If
  1100. End Sub
  1101. Private Sub 報價明細表_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 報價明細表_dgv.CellEndEdit
  1102. If 啟動運算 = True Then : 報價明細表_dgv_物料顯示() : 報價明細表_dgv_自動計算() : 報價總表_dgv_自動計算() : End If
  1103. End Sub
  1104. Private Sub 試算表_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 試算表_dgv.CellEnter
  1105. 試算表計算()
  1106. End Sub
  1107. Private Sub 物料規格_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 物料規格_dgv.CellEnter
  1108. For i As Integer = 0 To 物料規格_dgv.Rows.Count - 1
  1109. If Not IsNumeric(物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value) Then
  1110. If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值!!") : Else : MsgBox("Input bidang harus numerik!!") : End If
  1111. 物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value = "0" : 物料規格_dgv.Rows(i).Cells("Pilih").Value = False
  1112. ElseIf Val(物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value) > 0 Then : 物料規格_dgv.Rows(i).Cells("Pilih").Value = True
  1113. ElseIf Val(物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value) <= 0 Then : 物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value = "0"
  1114. 物料規格_dgv.Rows(i).Cells("Pilih").Value = False
  1115. End If
  1116. Next i
  1117. End Sub
  1118. Private Sub 試算表計算()
  1119. For i As Integer = 0 To 試算表_dgv.Rows.Count - 1
  1120. If 試算表_dgv.Rows(i).Cells("係數").Value = False Then
  1121. 試算表_dgv.Rows(i).Cells("Total").Value = 試算表_dgv.Rows(i).Cells(3).Value + 試算表_dgv.Rows(i).Cells(4).Value +
  1122. 試算表_dgv.Rows(i).Cells(5).Value + 試算表_dgv.Rows(i).Cells(6).Value + 試算表_dgv.Rows(i).Cells(7).Value + 試算表_dgv.Rows(i).Cells(8).Value +
  1123. 試算表_dgv.Rows(i).Cells(9).Value + 試算表_dgv.Rows(i).Cells(10).Value + 試算表_dgv.Rows(i).Cells(11).Value + 試算表_dgv.Rows(i).Cells(12).Value +
  1124. 試算表_dgv.Rows(i).Cells(13).Value + 試算表_dgv.Rows(i).Cells(14).Value + 試算表_dgv.Rows(i).Cells(15).Value + 試算表_dgv.Rows(i).Cells(16).Value +
  1125. 試算表_dgv.Rows(i).Cells(17).Value + 試算表_dgv.Rows(i).Cells(18).Value + 試算表_dgv.Rows(i).Cells(19).Value + 試算表_dgv.Rows(i).Cells(20).Value +
  1126. 試算表_dgv.Rows(i).Cells(21).Value + 試算表_dgv.Rows(i).Cells(22).Value + 試算表_dgv.Rows(i).Cells(23).Value + 試算表_dgv.Rows(i).Cells(24).Value +
  1127. 試算表_dgv.Rows(i).Cells(25).Value + 試算表_dgv.Rows(i).Cells(26).Value + 試算表_dgv.Rows(i).Cells(27).Value + 試算表_dgv.Rows(i).Cells(28).Value +
  1128. 試算表_dgv.Rows(i).Cells(29).Value + 試算表_dgv.Rows(i).Cells(30).Value + 試算表_dgv.Rows(i).Cells(31).Value + 試算表_dgv.Rows(i).Cells(32).Value +
  1129. 試算表_dgv.Rows(i).Cells(33).Value + 試算表_dgv.Rows(i).Cells(34).Value + 試算表_dgv.Rows(i).Cells(35).Value + 試算表_dgv.Rows(i).Cells(36).Value +
  1130. 試算表_dgv.Rows(i).Cells(37).Value + 試算表_dgv.Rows(i).Cells(38).Value + 試算表_dgv.Rows(i).Cells(39).Value + 試算表_dgv.Rows(i).Cells(40).Value +
  1131. 試算表_dgv.Rows(i).Cells(41).Value + 試算表_dgv.Rows(i).Cells(42).Value
  1132. Else
  1133. 試算表_dgv.Rows(i).Cells("Total").Value = (試算表_dgv.Rows(i).Cells(3).Value + 試算表_dgv.Rows(i).Cells(4).Value +
  1134. 試算表_dgv.Rows(i).Cells(5).Value + 試算表_dgv.Rows(i).Cells(6).Value + 試算表_dgv.Rows(i).Cells(7).Value + 試算表_dgv.Rows(i).Cells(8).Value +
  1135. 試算表_dgv.Rows(i).Cells(9).Value + 試算表_dgv.Rows(i).Cells(10).Value + 試算表_dgv.Rows(i).Cells(11).Value + 試算表_dgv.Rows(i).Cells(12).Value +
  1136. 試算表_dgv.Rows(i).Cells(13).Value + 試算表_dgv.Rows(i).Cells(14).Value + 試算表_dgv.Rows(i).Cells(15).Value + 試算表_dgv.Rows(i).Cells(16).Value +
  1137. 試算表_dgv.Rows(i).Cells(17).Value + 試算表_dgv.Rows(i).Cells(18).Value + 試算表_dgv.Rows(i).Cells(19).Value + 試算表_dgv.Rows(i).Cells(20).Value +
  1138. 試算表_dgv.Rows(i).Cells(21).Value + 試算表_dgv.Rows(i).Cells(22).Value + 試算表_dgv.Rows(i).Cells(23).Value + 試算表_dgv.Rows(i).Cells(24).Value +
  1139. 試算表_dgv.Rows(i).Cells(25).Value + 試算表_dgv.Rows(i).Cells(26).Value + 試算表_dgv.Rows(i).Cells(27).Value + 試算表_dgv.Rows(i).Cells(28).Value +
  1140. 試算表_dgv.Rows(i).Cells(29).Value + 試算表_dgv.Rows(i).Cells(30).Value + 試算表_dgv.Rows(i).Cells(31).Value + 試算表_dgv.Rows(i).Cells(32).Value +
  1141. 試算表_dgv.Rows(i).Cells(33).Value + 試算表_dgv.Rows(i).Cells(34).Value + 試算表_dgv.Rows(i).Cells(35).Value + 試算表_dgv.Rows(i).Cells(36).Value +
  1142. 試算表_dgv.Rows(i).Cells(37).Value + 試算表_dgv.Rows(i).Cells(38).Value + 試算表_dgv.Rows(i).Cells(39).Value + 試算表_dgv.Rows(i).Cells(40).Value +
  1143. 試算表_dgv.Rows(i).Cells(41).Value + 試算表_dgv.Rows(i).Cells(42).Value) / 100 * (100 + 係數_nud.Value)
  1144. End If
  1145. Next i
  1146. End Sub
  1147. Private Sub 報價總表_dgv_自動計算()
  1148. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  1149. If 報價總表_dgv.Rows(i).Cells("明細連動").Value.ToString <> "" Then
  1150. For ii As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  1151. If 報價總表_dgv.Rows(i).Cells("明細連動").Value.ToString = 報價明細表_dgv.Rows(ii).Cells("流水號").Value.ToString Then
  1152. 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value = 報價明細表_dgv.Rows(ii).Cells("AMOUNT" & 幣別).Value.ToString : Exit For
  1153. End If
  1154. Next
  1155. End If
  1156. Next
  1157. Dim 合計, 合計無管, 稅金 As Double : 合計 = 0 : 稅金 = 0
  1158. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  1159. '---------計算項目-------------------------------------------------------------------------------------------------------------------------------------
  1160. If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "*" Or 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "" Or
  1161. 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "@" Or 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "^" Then : Else
  1162. If IsDBNull(報價總表_dgv.Rows(i).Cells("QTY").Value) Then : 報價總表_dgv.Rows(i).Cells("QTY").Value = 0 : End If
  1163. If IsDBNull(報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value) Then : 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value = 0 : End If
  1164. 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(報價總表_dgv.Rows(i).Cells("QTY").Value) * CLng(報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value)
  1165. End If
  1166. '---------管理費加總-------------------------------------------------------------------------------------------------------------------------------------
  1167. If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "*" And 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "@" And
  1168. 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "^" And 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString <> "折讓 Discount" Then
  1169. 合計無管 += 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value
  1170. End If
  1171. If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 0%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0)
  1172. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 1%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.01)
  1173. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 2%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.02)
  1174. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 3%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.03)
  1175. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 4%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.04)
  1176. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 5%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.05)
  1177. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 6%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.06)
  1178. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 7%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.07)
  1179. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 8%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.08)
  1180. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 9%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.09)
  1181. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 10%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.1)
  1182. End If
  1183. '---------計算彙總-------------------------------------------------------------------------------------------------------------------------------------
  1184. If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "*" And 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "@" Then
  1185. 合計 += 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value
  1186. End If
  1187. If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "合 計 Total" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = 合計 : End If
  1188. If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "稅金 10% Tax" Then
  1189. 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計 * 0.1) : 稅金 = 合計 * 0.1 : 稅額顯示_lb.Text = "PPN 10%稅額 = Rp. "
  1190. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "稅金 11% Tax" Then
  1191. 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計 * 0.11) : 稅金 = 合計 * 0.11 : 稅額顯示_lb.Text = "PPN 11%稅額 = Rp. "
  1192. End If
  1193. If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "總計 Grand Total" Then
  1194. 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計 + Fix(稅金))
  1195. If Strings.Right(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString, 3) = "001" Then
  1196. 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value) - 1
  1197. ElseIf Strings.Right(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString, 3) = "999" Then
  1198. 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value) + 1
  1199. End If
  1200. NUD3.Value = CLng(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value)
  1201. End If
  1202. '------------數字為0隱藏-----------------------------------------------------------------------------------------------
  1203. If IsDBNull(報價總表_dgv.Rows(i).Cells(4).Value) Then : 報價總表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.White : Else
  1204. If 報價總表_dgv.Rows(i).Cells(4).Value = 0 Then : 報價總表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.White
  1205. Else : 報價總表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.Black : End If : End If
  1206. If IsDBNull(報價總表_dgv.Rows(i).Cells(5).Value) Then : 報價總表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.White : Else
  1207. If 報價總表_dgv.Rows(i).Cells(5).Value = 0 Then : 報價總表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.White
  1208. Else : 報價總表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.Black : End If : End If
  1209. If IsDBNull(報價總表_dgv.Rows(i).Cells(6).Value) Then : 報價總表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.White : Else
  1210. If 報價總表_dgv.Rows(i).Cells(6).Value = 0 Then : 報價總表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.White
  1211. Else : 報價總表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.Black : End If : End If
  1212. Next
  1213. '------------彙總計算-----------------------------------------------------------------------------------------------
  1214. Dim 折讓 As Long = 0 : 未折價前_tb.Text = "0" : 報價小計_tb.Text = "0"
  1215. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  1216. If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "*" Or 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "@" Or
  1217. 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "折讓 Discount" Then : Else
  1218. 未折價前_tb.Text = CLng(未折價前_tb.Text) + CLng(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value)
  1219. End If
  1220. If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "*" Or 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "@" Then : Else
  1221. 報價小計_tb.Text = CLng(報價小計_tb.Text) + CLng(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value)
  1222. End If
  1223. If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "折讓 Discount" Then
  1224. 折讓 += CLng(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value)
  1225. End If
  1226. Next
  1227. 預估利潤_tb.Text = Strings.Format(CLng(總報價_tb.Text) - (CLng(總成本_tb.Text) - 折讓), "#,##0")
  1228. If (CLng(總報價_tb.Text) + 折讓) = 0 Then : 利潤比4_tb.Text = "0 %" : Else
  1229. 利潤比4_tb.Text = Strings.Format((1 - ((CLng(總成本_tb.Text)) / (CLng(總報價_tb.Text) + 折讓))) * 100, "#,##0") & " %"
  1230. End If
  1231. 未折價前_tb.Text = Strings.Format(CLng(未折價前_tb.Text), "#,##0") : 報價小計_tb.Text = Strings.Format(CLng(報價小計_tb.Text), "#,##0")
  1232. End Sub
  1233. Private Sub 報價明細表_dgv_物料顯示()
  1234. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  1235. If 報價明細表_dgv.Rows(i).Cells("料號").Value.ToString = "" Then
  1236. 報價明細表_dgv.Rows(i).Cells("D1").Value = False : 報價明細表_dgv.Rows(i).Cells("D2").Value = False
  1237. 報價明細表_dgv.Rows(i).Cells("D3").Value = False : 報價明細表_dgv.Rows(i).Cells("D4").Value = False
  1238. 報價明細表_dgv.Rows(i).Cells("D5").Value = False : 報價明細表_dgv.Rows(i).Cells("D6").Value = False
  1239. 報價明細表_dgv.Rows(i).Cells("D7").Value = False : 報價明細表_dgv.Rows(i).Cells("D8").Value = False
  1240. End If
  1241. If 報價明細表_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then
  1242. If 報價明細表_dgv.Rows(i).Cells("預設").Value = True Then
  1243. 報價明細表_dgv.Rows(i).Cells("D1").Value = 報價明細表_dgv.Rows(i).Cells("S1").Value : 報價明細表_dgv.Rows(i).Cells("D2").Value = 報價明細表_dgv.Rows(i).Cells("S2").Value
  1244. 報價明細表_dgv.Rows(i).Cells("D3").Value = 報價明細表_dgv.Rows(i).Cells("S3").Value : 報價明細表_dgv.Rows(i).Cells("D4").Value = 報價明細表_dgv.Rows(i).Cells("S4").Value
  1245. 報價明細表_dgv.Rows(i).Cells("D5").Value = 報價明細表_dgv.Rows(i).Cells("S5").Value : 報價明細表_dgv.Rows(i).Cells("D6").Value = 報價明細表_dgv.Rows(i).Cells("S6").Value
  1246. 報價明細表_dgv.Rows(i).Cells("D7").Value = 報價明細表_dgv.Rows(i).Cells("S7").Value : 報價明細表_dgv.Rows(i).Cells("D8").Value = 報價明細表_dgv.Rows(i).Cells("S8").Value
  1247. End If
  1248. Dim ZA1, ZA2, ZA3, ZA4, ZA5, ZA6, ZA7, ZA8 As String : 物料規格 = ""
  1249. If 詳細資料2_ch.Checked = True Then
  1250. If 報價明細表_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D1").Value = True Then
  1251. ZA1 = 報價明細表_dgv.Rows(i).Cells("AA1").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If : End If
  1252. If 報價明細表_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D2").Value = True Then
  1253. ZA2 = 報價明細表_dgv.Rows(i).Cells("AA2").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then
  1254. 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If : End If
  1255. If 報價明細表_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D3").Value = True Then
  1256. ZA3 = 報價明細表_dgv.Rows(i).Cells("AA3").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then
  1257. 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If : End If
  1258. If 報價明細表_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D4").Value = True Then
  1259. ZA4 = 報價明細表_dgv.Rows(i).Cells("AA4").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then
  1260. 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If : End If
  1261. If 報價明細表_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D5").Value = True Then
  1262. ZA5 = 報價明細表_dgv.Rows(i).Cells("AA5").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then
  1263. 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If : End If
  1264. If 報價明細表_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D6").Value = True Then
  1265. ZA6 = 報價明細表_dgv.Rows(i).Cells("AA6").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then
  1266. 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If : End If
  1267. If 報價明細表_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D7").Value = True Then
  1268. ZA7 = 報價明細表_dgv.Rows(i).Cells("AA7").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then
  1269. 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If : End If
  1270. If 報價明細表_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D8").Value = True Then
  1271. ZA8 = 報價明細表_dgv.Rows(i).Cells("AA8").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then
  1272. 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If : End If
  1273. Else
  1274. If 報價明細表_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D1").Value = True Then
  1275. ZA1 = 報價明細表_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If : End If
  1276. If 報價明細表_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D2").Value = True Then
  1277. ZA2 = 報價明細表_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If : End If
  1278. If 報價明細表_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D3").Value = True Then
  1279. ZA3 = 報價明細表_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If : End If
  1280. If 報價明細表_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D4").Value = True Then
  1281. ZA4 = 報價明細表_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If : End If
  1282. If 報價明細表_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D5").Value = True Then
  1283. ZA5 = 報價明細表_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If : End If
  1284. If 報價明細表_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D6").Value = True Then
  1285. ZA6 = 報價明細表_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If : End If
  1286. If 報價明細表_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D7").Value = True Then
  1287. ZA7 = 報價明細表_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If : End If
  1288. If 報價明細表_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D8").Value = True Then
  1289. ZA8 = 報價明細表_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If : End If
  1290. End If
  1291. If 報價明細表_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then
  1292. 報價明細表_dgv.Rows(i).Cells("DESCRIPTION").Value = 報價明細表_dgv.Rows(i).Cells("品名").Value.ToString & " " & 物料規格
  1293. End If
  1294. End If : 報價明細表_dgv.Rows(i).Cells("預設").Value = False
  1295. Next
  1296. End Sub
  1297. Private Sub 報價明細表_dgv_自動計算()
  1298. Dim 合計, 利潤, 工資係數, 工資成本, 工資利潤, 材料係數, 材料成本, 材料利潤 As Double : 合計 = 0 : 工資係數 = 0
  1299. For i As Integer = 0 To 報價係數_dgv.Rows.Count - 1
  1300. If 報價係數_dgv.Rows(i).Cells("項目").Value.ToString = "工資利潤" Then : 工資係數 = 報價係數_dgv.Rows(i).Cells("係數").Value.ToString : Exit For : End If
  1301. Next
  1302. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  1303. 報價明細表_dgv.Rows(i).Cells("QTY").Value = 報價明細表_dgv.Rows(i).Cells("實際數量").Value.ToString
  1304. '------------------------------------工資計算-----------------------------------------------------------------------------------------------------------
  1305. 報價明細表_dgv.Rows(i).Cells("工資成本後價").Value = 報價明細表_dgv.Rows(i).Cells("實際數量").Value * 報價明細表_dgv.Rows(i).Cells("工資成本單價").Value
  1306. If 報價明細表_dgv.Rows(i).Cells("不計").Value = False Then
  1307. 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value = 報價明細表_dgv.Rows(i).Cells("工資成本單價").Value * 工資係數 / 100
  1308. Else : 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value = 0 : End If
  1309. 報價明細表_dgv.Rows(i).Cells("工資報價後價").Value = 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value * 報價明細表_dgv.Rows(i).Cells("QTY").Value
  1310. '------------------------------------材料計算-----------------------------------------------------------------------------------------------------------
  1311. 報價明細表_dgv.Rows(i).Cells("材料成本後價").Value = 報價明細表_dgv.Rows(i).Cells("實際數量").Value * 報價明細表_dgv.Rows(i).Cells("材料成本單價").Value
  1312. If 報價明細表_dgv.Rows(i).Cells("材料係數").Value.ToString = "" Then : 材料係數 = 100 : Else : 材料係數 = 100
  1313. For ii As Integer = 0 To 報價係數_dgv.Rows.Count - 1
  1314. If 報價係數_dgv.Rows(ii).Cells("項目").Value.ToString = 報價明細表_dgv.Rows(i).Cells("材料係數").Value.ToString Then
  1315. 材料係數 = 報價係數_dgv.Rows(ii).Cells("係數").Value.ToString : Exit For : End If
  1316. Next
  1317. End If
  1318. If 報價明細表_dgv.Rows(i).Cells("不計").Value = False Then
  1319. 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value = 報價明細表_dgv.Rows(i).Cells("材料成本單價").Value * 材料係數 / 100
  1320. Else : 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value = 0 : End If
  1321. 報價明細表_dgv.Rows(i).Cells("材料報價後價").Value = 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value * 報價明細表_dgv.Rows(i).Cells("QTY").Value
  1322. 報價明細表_dgv.Rows(i).Cells("利潤").Value = 報價明細表_dgv.Rows(i).Cells("材料報價後價").Value + 報價明細表_dgv.Rows(i).Cells("工資報價後價").Value -
  1323. 報價明細表_dgv.Rows(i).Cells("材料成本後價").Value - 報價明細表_dgv.Rows(i).Cells("工資成本後價").Value
  1324. '------------------------------------報價單呈現-----------------------------------------------------------------------------------------------------------
  1325. If 報價明細表_dgv.Rows(i).Cells("不計").Value = False Then
  1326. 報價明細表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value = 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value + 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value
  1327. 報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = 報價明細表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value * 報價明細表_dgv.Rows(i).Cells("QTY").Value
  1328. Else
  1329. 報價明細表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value = 0 : 報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = 0
  1330. End If
  1331. '------------------------------------報價合計計算-----------------------------------------------------------------------------------------------------------
  1332. If 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "*" Then
  1333. 合計 += 報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value : 利潤 += 報價明細表_dgv.Rows(i).Cells("利潤").Value
  1334. 工資成本 += 報價明細表_dgv.Rows(i).Cells("工資成本後價").Value : 工資利潤 += 報價明細表_dgv.Rows(i).Cells("工資報價後價").Value
  1335. 材料成本 += 報價明細表_dgv.Rows(i).Cells("材料成本後價").Value : 材料利潤 += 報價明細表_dgv.Rows(i).Cells("材料報價後價").Value
  1336. End If
  1337. If 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString = "*" Then
  1338. 報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = 合計 : 合計 = 0 : 報價明細表_dgv.Rows(i).Cells("利潤").Value = 利潤 : 利潤 = 0
  1339. 報價明細表_dgv.Rows(i).Cells("工資成本後價").Value = 工資成本 : 工資成本 = 0 : 報價明細表_dgv.Rows(i).Cells("工資報價後價").Value = 工資利潤 : 工資利潤 = 0
  1340. 報價明細表_dgv.Rows(i).Cells("材料成本後價").Value = 材料成本 : 材料成本 = 0 : 報價明細表_dgv.Rows(i).Cells("材料報價後價").Value = 材料利潤 : 材料利潤 = 0
  1341. End If
  1342. '------------數字為0隱藏-----------------------------------------------------------------------------------------------
  1343. If IsDBNull(報價明細表_dgv.Rows(i).Cells(4).Value) Then : 報價明細表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.White : Else
  1344. If 報價明細表_dgv.Rows(i).Cells(4).Value.ToString = "" Then : Else
  1345. If 報價明細表_dgv.Rows(i).Cells(4).Value = 0 Then : 報價明細表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.White
  1346. Else : 報價明細表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.Black : End If : End If
  1347. End If
  1348. If IsDBNull(報價明細表_dgv.Rows(i).Cells(5).Value) Then : 報價明細表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.White : Else
  1349. If 報價明細表_dgv.Rows(i).Cells(5).Value.ToString = "" Then : Else
  1350. If 報價明細表_dgv.Rows(i).Cells(5).Value = 0 Then : 報價明細表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.White
  1351. Else : 報價明細表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.Black : End If : End If
  1352. End If
  1353. If IsDBNull(報價明細表_dgv.Rows(i).Cells(6).Value) Then : 報價明細表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.White : Else
  1354. If 報價明細表_dgv.Rows(i).Cells(6).Value.ToString = "" Then : Else
  1355. If 報價明細表_dgv.Rows(i).Cells(6).Value = 0 Then : 報價明細表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.White
  1356. Else : 報價明細表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.Black : End If
  1357. End If
  1358. End If
  1359. Next
  1360. 工資成本 = 0 : 材料成本 = 0 : 工資利潤 = 0 : 材料利潤 = 0
  1361. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  1362. If 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString = "*" Then
  1363. 工資成本 += CLng(報價明細表_dgv.Rows(i).Cells("工資成本後價").Value)
  1364. 材料成本 += CLng(報價明細表_dgv.Rows(i).Cells("材料成本後價").Value)
  1365. 工資利潤 += CLng(報價明細表_dgv.Rows(i).Cells("工資報價後價").Value)
  1366. 材料利潤 += CLng(報價明細表_dgv.Rows(i).Cells("材料報價後價").Value)
  1367. End If
  1368. Next
  1369. 預估工資總成本_tb.Text = Strings.Format(工資成本, "#,##0") : 預估材料總成本_tb.Text = Strings.Format(材料成本, "#,##0") : 預估工資總報價_tb.Text = Strings.Format(工資利潤, "#,##0")
  1370. 預估材料總報價_tb.Text = Strings.Format(材料利潤, "#,##0")
  1371. 總成本_tb.Text = Strings.Format(工資成本 + 材料成本, "#,##0") : 總報價_tb.Text = Strings.Format(工資利潤 + 材料利潤, "#,##0")
  1372. If 工資利潤 = 0 Then : 利潤比1_tb.Text = "0 %" : Else
  1373. 利潤比1_tb.Text = Strings.Format((1 - ((工資成本) / (工資利潤))) * 100, "#,##0") & " %"
  1374. End If
  1375. If 材料利潤 = 0 Then : 利潤比2_tb.Text = "0 %" : Else
  1376. 利潤比2_tb.Text = Strings.Format((1 - ((材料成本) / (材料利潤))) * 100, "#,##0") & " %"
  1377. End If
  1378. If (材料利潤 + 工資利潤) = 0 Then : 利潤比3_tb.Text = "0 %" : Else
  1379. 利潤比3_tb.Text = Strings.Format((1 - ((材料成本 + 工資成本) / (材料利潤 + 工資利潤))) * 100, "#,##0") & " %"
  1380. End If
  1381. End Sub
  1382. Private Sub 報價總表_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 報價總表_dgv.MouseUp
  1383. 'If 明細_dgv.SelectedCells.Count = 1 Then : MsgBox(明細_dgv.SelectedCells(0).ColumnIndex & " " & 明細_dgv.SelectedCells(0).RowIndex) : End If
  1384. If 報價總表_dgv.SelectedCells.Count = 1 Then : 已超出 = False : End If
  1385. If 報價總表_dgv.SelectedCells.Count > 0 Then
  1386. If 報價總表_dgv.SelectedCells(0).ColumnIndex = 4 Or 報價總表_dgv.SelectedCells(0).ColumnIndex = 5 Or 報價總表_dgv.SelectedCells(0).ColumnIndex = 6 Then
  1387. If 已超出 = False Then
  1388. Dim x As Double = 0
  1389. For i As Integer = 0 To 報價總表_dgv.SelectedCells.Count - 1
  1390. Dim 變數 As String = "" : Dim 取變數 As String
  1391. 取變數 = 報價總表_dgv.Rows(報價總表_dgv.SelectedCells.Item(i).RowIndex).Cells(報價總表_dgv.SelectedCells.Item(i).ColumnIndex).Value
  1392. For ii As Integer = 1 To Len(取變數)
  1393. If ii = 1 Then : 變數 = Strings.Left(取變數, ii) : Else : If Strings.Mid(取變數, ii, 1) <> "," Then : 變數 &= Strings.Mid(取變數, ii, 1) : End If : End If
  1394. Next : x += Val(變數)
  1395. Next i : HX_PGS_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(x, "#,##0")
  1396. Else : HX_PGS_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(0, "#,##0")
  1397. End If
  1398. Else : 已超出 = True : HX_PGS_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(0, "#,##0")
  1399. End If
  1400. End If
  1401. End Sub
  1402. Private Sub 報價明細表_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 報價明細表_dgv.MouseUp
  1403. 'If 明細_dgv.SelectedCells.Count = 1 Then : MsgBox(明細_dgv.SelectedCells(0).ColumnIndex & " " & 明細_dgv.SelectedCells(0).RowIndex) : End If
  1404. If 報價明細表_dgv.SelectedCells.Count = 1 Then : 已超出 = False : End If
  1405. If 報價明細表_dgv.SelectedCells.Count > 0 Then
  1406. If 報價明細表_dgv.SelectedCells(0).ColumnIndex = 4 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 5 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 6 Or
  1407. 報價明細表_dgv.SelectedCells(0).ColumnIndex = 8 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 9 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 10 Or
  1408. 報價明細表_dgv.SelectedCells(0).ColumnIndex = 11 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 12 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 13 Or
  1409. 報價明細表_dgv.SelectedCells(0).ColumnIndex = 14 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 15 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 16 Or
  1410. 報價明細表_dgv.SelectedCells(0).ColumnIndex = 17 Then
  1411. If 已超出 = False Then
  1412. Dim x As Double = 0
  1413. For i As Integer = 0 To 報價明細表_dgv.SelectedCells.Count - 1
  1414. Dim 變數 As String = "" : Dim 取變數 As String
  1415. 取變數 = 報價明細表_dgv.Rows(報價明細表_dgv.SelectedCells.Item(i).RowIndex).Cells(報價明細表_dgv.SelectedCells.Item(i).ColumnIndex).Value
  1416. For ii As Integer = 1 To Len(取變數)
  1417. If ii = 1 Then : 變數 = Strings.Left(取變數, ii) : Else : If Strings.Mid(取變數, ii, 1) <> "," Then : 變數 &= Strings.Mid(取變數, ii, 1) : End If : End If
  1418. Next : x += Val(變數)
  1419. Next i : HX_PGS_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(x, "#,##0")
  1420. Else : HX_PGS_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(0, "#,##0")
  1421. End If
  1422. Else : 已超出 = True : HX_PGS_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(0, "#,##0")
  1423. End If
  1424. End If
  1425. End Sub
  1426. Private Sub 第1期_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 第1期_dgv.CellEnter
  1427. If Not IsNumeric(第1期_dgv.Rows(e.RowIndex).Cells("比例").Value) Then
  1428. If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值!!") : Else : MsgBox("Input bidang harus numerik!!") : End If
  1429. 第1期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第1期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  1430. Else
  1431. Dim nn As Integer
  1432. For i As Integer = 0 To 第1期_dgv.Rows.Count - 1 : nn += 第1期_dgv.Rows(i).Cells("比例").Value : Next
  1433. If nn > 工程款1_nud.Value Then
  1434. Dim SS As String
  1435. If 系統語言 = "繁體中文" Then : SS = "第一期的細項比例不可大於 " : Else : SS = "Proporsi detail fase pertama tidak boleh lebih dari " : End If
  1436. MsgBox(SS & Strings.Format(工程款1_nud.Value, "#,##0.00") & " % !!")
  1437. 第1期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第1期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  1438. Else
  1439. For i As Integer = 0 To 第1期_dgv.Rows.Count - 1
  1440. 第1期_dgv.Rows(i).Cells("金額").Value = 第1期_dgv.Rows(i).Cells("比例").Value * 金額1_und.Value / 工程款1_nud.Value
  1441. Next i
  1442. End If
  1443. End If
  1444. End Sub
  1445. Private Sub 第2期_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 第2期_dgv.CellEnter
  1446. If Not IsNumeric(第2期_dgv.Rows(e.RowIndex).Cells("比例").Value) Then
  1447. If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值!!") : Else : MsgBox("Input bidang harus numerik!!") : End If
  1448. 第2期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第2期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  1449. Else
  1450. Dim nn As Integer
  1451. For i As Integer = 0 To 第2期_dgv.Rows.Count - 1 : nn += 第2期_dgv.Rows(i).Cells("比例").Value : Next
  1452. If nn > 工程款2_nud.Value Then
  1453. Dim SS As String
  1454. If 系統語言 = "繁體中文" Then : SS = "第二期的細項比例不可大於 " : Else : SS = "Proporsi detail fase kedua tidak boleh lebih besar dari " : End If
  1455. MsgBox(SS & Strings.Format(工程款2_nud.Value, "#,##0.00") & " % !!")
  1456. 第2期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第2期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  1457. Else
  1458. For i As Integer = 0 To 第2期_dgv.Rows.Count - 1
  1459. 第2期_dgv.Rows(i).Cells("金額").Value = 第2期_dgv.Rows(i).Cells("比例").Value * 金額2_und.Value / 工程款2_nud.Value
  1460. Next i
  1461. End If
  1462. End If
  1463. End Sub
  1464. Private Sub 第3期_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 第3期_dgv.CellEnter
  1465. If Not IsNumeric(第3期_dgv.Rows(e.RowIndex).Cells("比例").Value) Then
  1466. If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值!!") : Else : MsgBox("Input bidang harus numerik!!") : End If
  1467. 第3期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第3期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  1468. Else
  1469. Dim nn As Integer
  1470. For i As Integer = 0 To 第3期_dgv.Rows.Count - 1 : nn += 第3期_dgv.Rows(i).Cells("比例").Value : Next
  1471. If nn > 工程款3_nud.Value Then
  1472. Dim SS As String
  1473. If 系統語言 = "繁體中文" Then : SS = "第三期的細項比例不可大於 " : Else : SS = "Proporsi rincian periode ketiga tidak boleh lebih besar dari " : End If
  1474. MsgBox(SS & Strings.Format(工程款3_nud.Value, "#,##0.00") & " % !!")
  1475. 第3期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第3期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  1476. Else
  1477. For i As Integer = 0 To 第3期_dgv.Rows.Count - 1
  1478. 第3期_dgv.Rows(i).Cells("金額").Value = 第3期_dgv.Rows(i).Cells("比例").Value * 金額3_und.Value / 工程款3_nud.Value
  1479. Next i
  1480. End If
  1481. End If
  1482. End Sub
  1483. Private Sub 第4期_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 第4期_dgv.CellEnter
  1484. If Not IsNumeric(第4期_dgv.Rows(e.RowIndex).Cells("比例").Value) Then
  1485. If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值!!") : Else : MsgBox("Input bidang harus numerik!!") : End If
  1486. 第4期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第4期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  1487. Else
  1488. Dim nn As Integer
  1489. For i As Integer = 0 To 第4期_dgv.Rows.Count - 1 : nn += 第4期_dgv.Rows(i).Cells("比例").Value : Next
  1490. If nn > 工程款4_nud.Value Then
  1491. Dim SS As String
  1492. If 系統語言 = "繁體中文" Then : SS = "第四期的細項比例不可大於 " : Else : SS = "Proporsi rincian periode ke-4 tidak boleh lebih besar dari " : End If
  1493. MsgBox(SS & Strings.Format(工程款4_nud.Value, "#,##0.00") & " % !!")
  1494. 第4期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第4期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  1495. Else
  1496. For i As Integer = 0 To 第4期_dgv.Rows.Count - 1
  1497. 第4期_dgv.Rows(i).Cells("金額").Value = 第4期_dgv.Rows(i).Cells("比例").Value * 金額4_und.Value / 工程款4_nud.Value
  1498. Next i
  1499. End If
  1500. End If
  1501. End Sub
  1502. Private Sub 第5期_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 第5期_dgv.CellEnter
  1503. If Not IsNumeric(第5期_dgv.Rows(e.RowIndex).Cells("比例").Value) Then
  1504. If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值!!") : Else : MsgBox("Input bidang harus numerik!!") : End If
  1505. 第5期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第5期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  1506. Else
  1507. Dim nn As Integer
  1508. For i As Integer = 0 To 第5期_dgv.Rows.Count - 1 : nn += 第5期_dgv.Rows(i).Cells("比例").Value : Next
  1509. If nn > 工程款5_nud.Value Then
  1510. Dim SS As String
  1511. If 系統語言 = "繁體中文" Then : SS = "第五期的細項比例不可大於 " : Else : SS = "Proporsi rincian periode kelima tidak boleh lebih besar dari " : End If
  1512. MsgBox(SS & Strings.Format(工程款5_nud.Value, "#,##0.00") & " % !!")
  1513. 第5期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第5期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  1514. Else
  1515. For i As Integer = 0 To 第5期_dgv.Rows.Count - 1
  1516. 第5期_dgv.Rows(i).Cells("金額").Value = 第5期_dgv.Rows(i).Cells("比例").Value * 金額5_und.Value / 工程款5_nud.Value
  1517. Next i
  1518. End If
  1519. End If
  1520. End Sub
  1521. Private Sub 第1期_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 第1期_dgv.CellClick
  1522. If e.RowIndex = -1 Then : Else : 明細選項_bt.Text = 第1期_dgv("細項", e.RowIndex).Value.ToString : 明細選項_bt.Text = Strings.Format(Val(明細選項_bt.Text), "#,##0") : End If
  1523. End Sub
  1524. Private Sub 第2期_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 第2期_dgv.CellClick
  1525. If e.RowIndex = -1 Then : Else : 明細選項_bt.Text = 第2期_dgv("細項", e.RowIndex).Value.ToString : 明細選項_bt.Text = Strings.Format(Val(明細選項_bt.Text), "#,##0") : End If
  1526. End Sub
  1527. Private Sub 第3期_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 第3期_dgv.CellClick
  1528. If e.RowIndex = -1 Then : Else : 明細選項_bt.Text = 第3期_dgv("細項", e.RowIndex).Value.ToString : 明細選項_bt.Text = Strings.Format(Val(明細選項_bt.Text), "#,##0") : End If
  1529. End Sub
  1530. Private Sub 第4期_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 第4期_dgv.CellClick
  1531. If e.RowIndex = -1 Then : Else : 明細選項_bt.Text = 第4期_dgv("細項", e.RowIndex).Value.ToString : 明細選項_bt.Text = Strings.Format(Val(明細選項_bt.Text), "#,##0") : End If
  1532. End Sub
  1533. Private Sub 第5期_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 第5期_dgv.CellClick
  1534. If e.RowIndex = -1 Then : Else : 明細選項_bt.Text = 第5期_dgv("細項", e.RowIndex).Value.ToString : 明細選項_bt.Text = Strings.Format(Val(明細選項_bt.Text), "#,##0") : End If
  1535. End Sub
  1536. '-----------------建立合約資料功能-------------------------------------------------------------------------------------------------------------------------------
  1537. Private Sub 群組編碼_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 群組編碼_cb.SelectedIndexChanged
  1538. 群組碼_tb.Text = 群組編碼_cb.Text : Set_清單1()
  1539. End Sub
  1540. Private Sub 新群組1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 新群組1_cb.SelectedIndexChanged
  1541. PA = 新群組1_cb.Text : SQL_群組碼_語轉_選擇() : If dr.Read Then : 群組編碼_cb.Text = dr("群組碼").ToString : End If : PA = ""
  1542. End Sub
  1543. Private Sub 合約種類_cb_SelectedIndexChanged_1(sender As Object, e As EventArgs) Handles 合約種類_cb.SelectedIndexChanged
  1544. PA10 = 合約種類_cb.Text : SQL_合約種類英文讀取() : If dr.Read() Then : 合約種類_tb.Text = dr("英") : End If : conn.Close()
  1545. End Sub
  1546. Private Sub 選擇公司_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 選擇公司_cb.SelectedIndexChanged
  1547. If 選擇公司_cb.Text = "PT HONG XHE INDUSTRIAL" Then : 合約編號_cb.Text = "HX" : Else : 合約編號_cb.Text = "PGS" : End If
  1548. End Sub
  1549. Private Sub 合約編號_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合約編號_cb.SelectedIndexChanged
  1550. If 合約編號_cb.Text = "HX" Then : 選擇公司_cb.Text = "PT HONG XHE INDUSTRIAL" : Else : 選擇公司_cb.Text = "PT PUNCAK GEMILANG SEMESTA" : End If
  1551. End Sub
  1552. Private Sub 查詢_bt_Click(sender As Object, e As EventArgs) Handles 查詢_bt.Click
  1553. PA = 關鍵字搜尋_tb.Text : Set_合約清單()
  1554. End Sub
  1555. Private Sub NUD3_ValueChanged(sender As Object, e As EventArgs) Handles NUD3.ValueChanged
  1556. If CH2.Checked = True Then
  1557. If 稅額顯示_lb.Text = "PPN 10%稅額 = Rp. " Then : NUD2.Value = NUD3.Value / 110 * 10
  1558. ElseIf 稅額顯示_lb.Text = "PPN 11%稅額 = Rp. " Then : NUD2.Value = NUD3.Value / 111 * 11
  1559. End If
  1560. NUD1.Value = NUD3.Value - NUD2.Value
  1561. 金額1_und.Value = NUD3.Value / 100 * 工程款1_nud.Value : 金額2_und.Value = NUD3.Value / 100 * 工程款2_nud.Value
  1562. 金額3_und.Value = NUD3.Value / 100 * 工程款3_nud.Value : 金額4_und.Value = NUD3.Value / 100 * 工程款4_nud.Value
  1563. 金額5_und.Value = NUD3.Value / 100 * 工程款5_nud.Value
  1564. 金額6_und.Value = 金額1_und.Value + 金額2_und.Value + 金額3_und.Value + 金額4_und.Value + 金額5_und.Value
  1565. End If
  1566. End Sub
  1567. Private Sub NUD1_ValueChanged(sender As Object, e As EventArgs) Handles NUD1.ValueChanged
  1568. If CH1.Checked = True Then
  1569. If 稅額顯示_lb.Text = "PPN 10%稅額 = Rp. " Then : NUD2.Value = NUD1.Value / 100 * 10
  1570. ElseIf 稅額顯示_lb.Text = "PPN 11%稅額 = Rp. " Then : NUD2.Value = NUD1.Value / 100 * 11
  1571. End If
  1572. NUD3.Value = NUD1.Value + NUD2.Value
  1573. 金額1_und.Value = NUD3.Value / 100 * 工程款1_nud.Value : 金額2_und.Value = NUD3.Value / 100 * 工程款2_nud.Value
  1574. 金額3_und.Value = NUD3.Value / 100 * 工程款3_nud.Value : 金額4_und.Value = NUD3.Value / 100 * 工程款4_nud.Value
  1575. 金額5_und.Value = NUD3.Value / 100 * 工程款5_nud.Value
  1576. 金額6_und.Value = 金額1_und.Value + 金額2_und.Value + 金額3_und.Value + 金額4_und.Value + 金額5_und.Value
  1577. End If
  1578. End Sub
  1579. Private Sub CH1_CheckedChanged(sender As Object, e As EventArgs) Handles CH1.Click
  1580. CH1.Checked = True : CH2.Checked = False : NUD1.Enabled = True : NUD3.Enabled = False
  1581. End Sub
  1582. Private Sub CH2_CheckedChanged(sender As Object, e As EventArgs) Handles CH2.Click
  1583. CH1.Checked = False : CH2.Checked = True : NUD1.Enabled = False : NUD3.Enabled = True
  1584. End Sub
  1585. Private Sub 工程款1_nud_ValueChanged(sender As Object, e As EventArgs) Handles 工程款1_nud.ValueChanged
  1586. 工程款6_nud.Value = 工程款1_nud.Value + 工程款2_nud.Value + 工程款3_nud.Value + 工程款4_nud.Value + 工程款5_nud.Value
  1587. 金額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
  1588. End Sub
  1589. Private Sub 工程款2_nud_ValueChanged(sender As Object, e As EventArgs) Handles 工程款2_nud.ValueChanged
  1590. 工程款6_nud.Value = 工程款1_nud.Value + 工程款2_nud.Value + 工程款3_nud.Value + 工程款4_nud.Value + 工程款5_nud.Value
  1591. 金額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
  1592. End Sub
  1593. Private Sub 工程款3_nud_ValueChanged(sender As Object, e As EventArgs) Handles 工程款3_nud.ValueChanged
  1594. 工程款6_nud.Value = 工程款1_nud.Value + 工程款2_nud.Value + 工程款3_nud.Value + 工程款4_nud.Value + 工程款5_nud.Value
  1595. 金額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
  1596. End Sub
  1597. Private Sub 工程款4_nud_ValueChanged(sender As Object, e As EventArgs) Handles 工程款4_nud.ValueChanged
  1598. 工程款6_nud.Value = 工程款1_nud.Value + 工程款2_nud.Value + 工程款3_nud.Value + 工程款4_nud.Value + 工程款5_nud.Value
  1599. 金額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
  1600. End Sub
  1601. Private Sub 工程款5_nud_ValueChanged(sender As Object, e As EventArgs) Handles 工程款5_nud.ValueChanged
  1602. 工程款6_nud.Value = 工程款1_nud.Value + 工程款2_nud.Value + 工程款3_nud.Value + 工程款4_nud.Value + 工程款5_nud.Value
  1603. 金額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
  1604. End Sub
  1605. Private Sub 自動讀取_bt_Click(sender As Object, e As EventArgs) Handles 自動讀取_bt.Click
  1606. If 客戶名稱_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("請先選擇客戶名稱!!") : Else : MsgBox("Silakan pilih nama pelanggan terlebih dahulu!!") : End If : Else
  1607. If 系統語言 = "繁體中文" Then : MsgBox("進入編輯狀態,合約清單已鎖定不可選擇,鎖定狀態在合約存檔後解除!!")
  1608. Else : MsgBox("Masuk ke status edit, daftar kontrak sudah terkunci dan tidak bisa dipilih, status terkunci akan dilepas setelah kontrak diarsipkan!!") : End If
  1609. 合約_dgv.Enabled = False
  1610. PA30 = 合約編號1_tb.Text : SQL_客戶資料讀取() : If dr.Read() Then : 合約編號1_tb.Text = dr("簡稱") : End If : conn.Close()
  1611. If 合約編號_cb.Text = "" Or 合約編號1_tb.Text = "" Then
  1612. If 系統語言 = "繁體中文" Then : MsgBox("資訊不夠,無法生成合約編號!!") : Else : MsgBox("Informasi tidak cukup untuk menghasilkan nomor kontrak!!") : End If
  1613. Else
  1614. 合約編號2_tb.Enabled = False : 合約編號3_tb.Enabled = False
  1615. PA = Strings.Mid(Strings.Format(Today(), "yyyy/MM/dd"), 3, 2) & Strings.Mid(Strings.Format(Today(), "yyyy/MM/dd"), 6, 2) & Strings.Right(Strings.Format(Today(), "yyyy/MM/dd"), 2)
  1616. SQL_合約流水號_最後一筆資料()
  1617. If dr.Read() Then
  1618. If Val(Strings.Right(dr("合約編號").ToString, 2)) > 9 Then : EDR = Strings.Right(dr("合約編號").ToString, 2) : Else : EDR = Strings.Right(dr("合約編號").ToString, 1) : End If
  1619. End If : conn.Close() : EDR += 1 : 合約編號2_tb.Text = PA : 合約編號3_tb.Text = EDR : 預設資料1()
  1620. End If
  1621. End If
  1622. End Sub
  1623. Private Sub 手動輸入_bt_Click(sender As Object, e As EventArgs) Handles 手動輸入_bt.Click
  1624. If 系統語言 = "繁體中文" Then : MsgBox("進入編輯狀態,合約清單已鎖定不可選擇,鎖定狀態在合約存檔後解除!!")
  1625. Else : MsgBox("Masuk ke status edit, daftar kontrak sudah terkunci dan tidak bisa dipilih, status terkunci akan dilepas setelah kontrak diarsipkan!!") : End If
  1626. 合約_dgv.Enabled = False : 合約編號2_tb.Enabled = True : 合約編號3_tb.Enabled = True : 預設資料1()
  1627. End Sub
  1628. Private Sub 刪除合約_bt_Click(sender As Object, e As EventArgs) Handles 刪除合約_bt.Click
  1629. Dim SS As String
  1630. If 系統語言 = "繁體中文" Then : SS = "是否要刪除這筆資料?" : Else : SS = "Apakah Anda ingin menghapus data ini?" : End If
  1631. Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel)
  1632. If aa = MsgBoxResult.Ok Then
  1633. Dim SS1 As String
  1634. If 系統語言 = "繁體中文" Then : SS1 = "確定刪除資料請輸入 [YES] !!" : Else : SS1 = "Silakan masukkan [YES] untuk mengonfirmasi penghapusan data!!" : End If
  1635. Dim SSA As String = InputBox(SS1)
  1636. If SSA = "YES" Then
  1637. PA = 合約編號_tb.Text
  1638. SQL_合約刪除() : SQL_合約本文刪除_依合約() : SQL_合約明細刪除_全部() : SQL_合約附錄刪除_全部() : SQL_合約總表刪除_全部() : SQL_合約報價明細刪除_全部()
  1639. SQL_合約報價係數刪除_全部() : SQL_合約試算分表刪除() : SQL_合約試算控制表刪除() : SQL_合約試算明細表刪除() : SQL_合約請款刪除_全部()
  1640. If 系統語言 = "繁體中文" Then : MsgBox("刪除完成!!") : Else : MsgBox("Hapus selesai!!") : End If
  1641. Set_合約報價總表() : Set_合約報價係數() : Set_合約報價明細表() : Set_合約清單()
  1642. End If
  1643. End If
  1644. End Sub
  1645. Private Sub 存檔_tb_Click(sender As Object, e As EventArgs) Handles 存檔_tb.Click
  1646. Dim 合約編號條件 As Boolean = True
  1647. If 合約編號_cb.Text = "" Then
  1648. If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇我方公司!!") : Else : MsgBox("Silakan pilih perusahaan kami!!") : End If : 合約編號條件 = False : End If
  1649. If 合約編號1_tb.Text = "" Then
  1650. If 系統語言 = "繁體中文" Then : MsgBox("沒有甲方公司英文縮寫!!") : Else : MsgBox("Silakan masukkan singkatan dari perusahaan Pihak A!!") : End If : 合約編號條件 = False : Else
  1651. Dim d As Int32
  1652. For index = 0 To 合約編號1_tb.Text.Length - 1
  1653. d = Asc(合約編號1_tb.Text(index))
  1654. Dim 可能不行 As Boolean = False
  1655. If (d < 65 Or d > 90) Then : 可能不行 = True : End If 'c變數若在65~90是大寫的英文字母
  1656. If 可能不行 = True Then
  1657. If (d < 97 Or d > 122) Then : 可能不行 = True : Else : 可能不行 = False : End If 'c變數若在97~122是小寫的英文字母
  1658. If 可能不行 = True Then '然後查表, c變數若在48~57, 表示它是數字,
  1659. If (d < 48 Or d > 57) Then
  1660. If 系統語言 = "繁體中文" Then : MsgBox("甲方公司簡稱需要英文或是數字,不可以是中文或其他符號!!")
  1661. Else : MsgBox("Singkatan dari perusahaan Pihak A harus dalam bahasa Inggris atau angka, bukan dalam bahasa Cina atau simbol lainnya!!") : End If
  1662. 合約編號條件 = False : Exit For : End If
  1663. End If
  1664. End If
  1665. Next
  1666. End If
  1667. If 合約編號2_tb.Text = "" Then
  1668. If 系統語言 = "繁體中文" Then : MsgBox("沒有立約日期!!") : Else : MsgBox("Tidak ada tanggal kontrak!!") : End If : 合約編號條件 = False : End If
  1669. Dim c As Int32 '然後查表, c變數若在48~57, 表示它是數字,
  1670. For index = 0 To 合約編號2_tb.Text.Length - 1
  1671. c = Asc(合約編號2_tb.Text(index))
  1672. If c < 48 Or c > 57 Then
  1673. If 系統語言 = "繁體中文" Then : MsgBox("立約日期只能是數字!!") : Else : MsgBox("Tanggal perjanjian hanya bisa berupa angka!!")
  1674. End If : 合約編號條件 = False : Exit For : Else
  1675. If Len(合約編號2_tb.Text) <> 6 Then
  1676. If 系統語言 = "繁體中文" Then : MsgBox("立約日期的格式為YYMMDD (年兩位,月兩位,日兩位),數字規格不符!!")
  1677. Else : MsgBox("Format tanggal kontrak adalah YYMMDD (dua digit untuk tahun, dua digit untuk bulan, dan dua " &
  1678. "digit untuk hari), dan spesifikasi numerik tidak cocok!!") : End If
  1679. 合約編號條件 = False : Exit For : End If
  1680. End If
  1681. Next
  1682. If 合約編號3_tb.Text = "" Then
  1683. If 系統語言 = "繁體中文" Then : MsgBox("沒有合約序號!!") : Else : MsgBox("Tidak ada nomor kontrak!!") : End If : 合約編號條件 = False
  1684. ElseIf IsNumeric(合約編號3_tb.Text) = False Then
  1685. If 系統語言 = "繁體中文" Then : MsgBox("序號只能是數字!!") : Else : MsgBox("Nomor seri hanya bisa berupa angka!!") : End If : 合約編號條件 = False
  1686. End If
  1687. If 合約編號條件 = False Then : Else
  1688. If 工程款6_nud.Value <> 100 Then
  1689. If 系統語言 = "繁體中文" Then : MsgBox("工程款估驗 不等於 100%!!") : Else : MsgBox("Penilaian biaya proyek tidak sama dengan 100%!!") : End If
  1690. Else
  1691. Dim AN1, AN2, AN3, AN4, AN5 As Integer
  1692. Dim STST1 As String = "" : Dim STST2 As String = "" : Dim STST3 As String = "" : Dim STST4 As String = "" : Dim STST5 As String = ""
  1693. Dim SS1, SS2, SS3, SS4, SS5 As String
  1694. If 系統語言 = "繁體中文" Then
  1695. SS1 = "第一期工程款細項不吻合!!" : SS2 = "第二期工程款細項不吻合!!" : SS3 = "第三期工程款細項不吻合!!"
  1696. SS4 = "第四期工程款細項不吻合!!" : SS5 = "第五期工程款細項不吻合!!"
  1697. Else
  1698. SS1 = "Detail proyek fase 1 tidak cocok!!" : SS2 = "Detail proyek fase 2 tidak cocok!!" : SS3 = "Detail proyek fase 3 tidak cocok!!"
  1699. SS4 = "Detail proyek fase 4 tidak cocok!!" : SS5 = "Detail proyek fase 5 tidak cocok!!"
  1700. End If
  1701. For I As Integer = 0 To 第1期_dgv.Rows.Count - 1 : AN1 += 第1期_dgv.Rows(I).Cells("比例").Value : Next
  1702. For I As Integer = 0 To 第2期_dgv.Rows.Count - 1 : AN2 += 第2期_dgv.Rows(I).Cells("比例").Value : Next
  1703. For I As Integer = 0 To 第3期_dgv.Rows.Count - 1 : AN3 += 第3期_dgv.Rows(I).Cells("比例").Value : Next
  1704. For I As Integer = 0 To 第4期_dgv.Rows.Count - 1 : AN4 += 第4期_dgv.Rows(I).Cells("比例").Value : Next
  1705. For I As Integer = 0 To 第5期_dgv.Rows.Count - 1 : AN5 += 第5期_dgv.Rows(I).Cells("比例").Value : Next
  1706. If AN1 <> 工程款1_nud.Value And 第1期_dgv.Rows.Count > 0 Then : STST1 = SS1 : End If
  1707. If AN2 <> 工程款2_nud.Value And 第2期_dgv.Rows.Count > 0 Then : STST2 = SS2 : End If
  1708. If AN3 <> 工程款3_nud.Value And 第3期_dgv.Rows.Count > 0 Then : STST3 = SS3 : End If
  1709. If AN4 <> 工程款4_nud.Value And 第4期_dgv.Rows.Count > 0 Then : STST4 = SS4 : End If
  1710. If AN5 <> 工程款5_nud.Value And 第5期_dgv.Rows.Count > 0 Then : STST5 = SS5 : End If
  1711. If STST1 <> "" Or STST2 <> "" Or STST3 <> "" Or STST4 <> "" Or STST5 <> "" Then
  1712. MsgBox(STST1 & vbCrLf &
  1713. STST2 & vbCrLf &
  1714. STST3 & vbCrLf &
  1715. STST4 & vbCrLf &
  1716. STST5)
  1717. Else
  1718. PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text : 合約編號_tb.Text = PA
  1719. SQL_合約查詢()
  1720. If dr.Read() Then
  1721. Dim SS As String
  1722. If 系統語言 = "繁體中文" Then : SS = "系統內已有相同單號,請問是否存檔(會覆蓋舊資料)?"
  1723. Else : SS = "Nomor pelacakan yang sama sudah ada di sistem, apakah Anda ingin mengarsipkannya (data lama akan ditimpa)?" : End If
  1724. Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel) : If aa = MsgBoxResult.Ok Then : 合約存檔() : End If
  1725. Else
  1726. 合約編號_tb.Text = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text
  1727. 報價單合約編號_tb.Text = 合約編號_tb.Text : 報價單客戶名稱_cb.Text = 客戶名稱_tb.Text
  1728. 報價單立約日期_dtp.Value = 立約日期_dtp.Value : 報價工程名稱_中_tb.Text = 工程名稱_中_tb.Text
  1729. 報價工程名稱_英_tb.Text = 工程名稱_英_tb.Text
  1730. 合約存檔()
  1731. End If
  1732. If 複製報價 = False Then
  1733. PA = 合約編號_tb.Text : 合約_lb.Text = "合約"
  1734. Set_合約報價總表() : Set_合約報價係數() : Set_合約報價明細表()
  1735. PA = 合約編號_tb.Text
  1736. If 報價明細表_dgv.Rows.Count = 0 Then : For i As Integer = 1 To 3 : 新增資料2() : Next : End If : Set_合約報價明細表()
  1737. '------比對總表無資料時開基本條例-------------------------------------------------
  1738. 總表範例_bt.PerformClick() : 甲方條件下拉清單讀取() : 合約編號1_cb.Text = 條件選擇
  1739. End If
  1740. End If
  1741. End If
  1742. End If
  1743. End Sub
  1744. Private Sub 新增資料2()
  1745. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If : Else
  1746. 資料數 = 報價明細表_dgv.Rows.Count * 2 : 進度條視窗.Show() : 報價明細表存檔()
  1747. PA = 合約編號_tb.Text : PA2 = "" : PA3 = "" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = "" : PA10 = "" : PA11 = "" : PA12 = "" : PA13 = ""
  1748. PA14 = "" : PA15 = "" : PA16 = "" : BL = False : BL1 = False : BL2 = False : BL3 = False : BL4 = False : BL5 = False : BL6 = False : BL7 = False
  1749. BL8 = False : BL9 = True : 明細表新增資料() : MyModule1.計算顯示3()
  1750. End If
  1751. End Sub
  1752. Private Sub 合約存檔()
  1753. '-----判斷是否新增客戶資料-----------------------
  1754. PA30 = 合約編號1_tb.Text : Dim 供應商編號 As String : SQL_客戶資料讀取()
  1755. If dr.Read() Then
  1756. If 負責人_A_cb.Text <> dr("負責人").ToString And 負責人_A_cb.Text <> "" And dr("負責人").ToString <> "" Then
  1757. Dim SS As String
  1758. If 系統語言 = "繁體中文" Then : SS = "合約上的負責人與系統中的資料不吻合,是否要更新系統中的負責人資料?"
  1759. Else : SS = "Penanggung jawab kontrak tidak sesuai dengan informasi dalam sistem. Apakah Anda ingin memperbarui penanggung jawab dalam sistem?" : End If
  1760. Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel)
  1761. If aa = MsgBoxResult.Ok Then : PA43 = 負責人_A_cb.Text : PA42 = 客戶名稱_tb.Text : conn.Close() : SQL_客戶資料表_修改負責人() : End If
  1762. ElseIf 負責人_A_cb.Text <> "" And dr("負責人").ToString = "" Then
  1763. PA43 = 負責人_A_cb.Text : PA42 = 客戶名稱_tb.Text : conn.Close() : SQL_客戶資料表_修改負責人()
  1764. End If
  1765. Else
  1766. conn.Close() : SQL_客戶資料表_最後一筆資料()
  1767. If dr.Read() Then : 供應商編號 = dr("流水號").ToString : Else : 供應商編號 = "CL000" : End If
  1768. conn.Close() : Dim NUM1 As Integer
  1769. NUM1 = Double.Parse(Strings.Right(供應商編號, 3)) + 1
  1770. If NUM1 < 10 Then : 供應商編號 = "CL" & "00" & NUM1
  1771. ElseIf NUM1 > 9 And NUM1 < 100 Then : 供應商編號 = "CL" & "0" & NUM1
  1772. ElseIf NUM1 > 99 Then : 供應商編號 = "CL" & NUM1 : End If
  1773. PA29 = 供應商編號 : PA41 = 合約編號1_tb.Text : PA40 = 客戶名稱_tb.Text : PA39 = 客戶地址_tb.Text : PA38 = 負責人_A_cb.Text
  1774. SQL_合約系統中新增客戶資料() : conn.Close()
  1775. End If : conn.Close()
  1776. PA37 = 合約種類_cb.Text : PA36 = 合約種類_tb.Text
  1777. SQL_合約種類查詢() : If dr.Read() Then : Else : SQL_合約種類新增() : conn.Close() : End If : conn.Close()
  1778. PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text
  1779. PA36 = 客戶名稱_tb.Text : PA35 = 負責人_A_cb.Text : PA34 = 工程地點_tb.Text : PA33 = 客戶地址_tb.Text : PA32 = 工程名稱_中_tb.Text : PA31 = 工程名稱_英_tb.Text
  1780. PA30 = 選擇公司_cb.Text : PA29 = 負責人_B_cb.Text : PA28 = 我司地址_tb.Text : PA27 = NUD3.Value : PA26 = 工程款1_nud.Value : PA25 = 工程款2_nud.Value
  1781. PA24 = 工程款3_nud.Value : PA23 = 工程款4_nud.Value : PA22 = 工程款5_nud.Value : PA21 = 工期_nud.Value : PA20 = 逾期_bt.Text : PA19 = 最高扣款_bt.Text
  1782. PA18 = 逾期_英_bt.Text : PA17 = 最高扣款_英_bt.Text : PA16 = 減價_bt.Text : PA15 = 廠區_中文_tb.Text : PA14 = 頁數_bt.Text : PA12 = 合約種類_cb.Text
  1783. PA13 = Strings.Format(立約日期_dtp.Value, "yyyy/MM/dd") : PA44 = 合約編號2_tb.Text : PA45 = 合約編號3_tb.Text : PA46 = 合約編號1_tb.Text : PA47 = 工程期_ch.Text
  1784. BL1 = 合約停止_ch.Checked : PA10 = 折讓比例_nud.Value : PA9 = 歸零位數_nud.Value : BL2 = 稅前歸零_ch.Checked : BL3 = 稅後歸零_ch.Checked
  1785. If 美金_ch.Checked = True Then : PA11 = "美金" : ElseIf 台幣_ch.Checked = True Then : PA11 = "台幣"
  1786. ElseIf 人民幣_ch.Checked = True Then : PA11 = "人民幣" : ElseIf 印尼盾_ch.Checked = True Then : PA11 = "印尼盾" : End If
  1787. SQL_合約查詢() : If dr.Read() Then : SQL_合約修改1() : conn.Close() : Else : SQL_合約新增() : conn.Close() : End If
  1788. 合約明細存檔() : PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text
  1789. If 系統語言 = "繁體中文" Then : MsgBox("存檔完成,合約清單鎖定解除!!") : Else : MsgBox("Arsip selesai, dan kunci daftar kontrak dilepaskan!!") : End If
  1790. Set_合約清單() : 合約_dgv.Enabled = True
  1791. End Sub
  1792. Private Sub 合約明細存檔()
  1793. For i As Integer = 0 To 第1期_dgv.Rows.Count - 1
  1794. PA1 = "1" : PA2 = 第1期_dgv.Rows(i).Cells("細項").Value : PA3 = 第1期_dgv.Rows(i).Cells("內容").Value
  1795. NU1 = 第1期_dgv.Rows(i).Cells("比例").Value : NU2 = 第1期_dgv.Rows(i).Cells("金額").Value : SQL_合約明細修改()
  1796. Next
  1797. For i As Integer = 0 To 第2期_dgv.Rows.Count - 1
  1798. PA1 = "2" : PA2 = 第2期_dgv.Rows(i).Cells("細項").Value : PA3 = 第2期_dgv.Rows(i).Cells("內容").Value
  1799. NU1 = 第2期_dgv.Rows(i).Cells("比例").Value : NU2 = 第2期_dgv.Rows(i).Cells("金額").Value : SQL_合約明細修改()
  1800. Next
  1801. For i As Integer = 0 To 第3期_dgv.Rows.Count - 1
  1802. PA1 = "3" : PA2 = 第3期_dgv.Rows(i).Cells("細項").Value : PA3 = 第3期_dgv.Rows(i).Cells("內容").Value
  1803. NU1 = 第3期_dgv.Rows(i).Cells("比例").Value : NU2 = 第3期_dgv.Rows(i).Cells("金額").Value : SQL_合約明細修改()
  1804. Next
  1805. For i As Integer = 0 To 第4期_dgv.Rows.Count - 1
  1806. PA1 = "4" : PA2 = 第4期_dgv.Rows(i).Cells("細項").Value : PA3 = 第4期_dgv.Rows(i).Cells("內容").Value
  1807. NU1 = 第4期_dgv.Rows(i).Cells("比例").Value : NU2 = 第4期_dgv.Rows(i).Cells("金額").Value : SQL_合約明細修改()
  1808. Next
  1809. For i As Integer = 0 To 第5期_dgv.Rows.Count - 1
  1810. PA1 = "5" : PA2 = 第5期_dgv.Rows(i).Cells("細項").Value : PA3 = 第5期_dgv.Rows(i).Cells("內容").Value
  1811. NU1 = 第5期_dgv.Rows(i).Cells("比例").Value : NU2 = 第5期_dgv.Rows(i).Cells("金額").Value : SQL_合約明細修改()
  1812. Next
  1813. End Sub
  1814. Private Sub 新增資料_bt_Click(sender As Object, e As EventArgs) Handles 新增資料_bt.Click
  1815. If 合約編號_cb.Text = "" Or 合約編號1_tb.Text = "" Then
  1816. If 系統語言 = "繁體中文" Then : MsgBox("資訊不夠,無法生成明細!!") : Else : MsgBox("Tidak cukup informasi untuk menghasilkan detail!!") : End If : Else
  1817. If 工程款6_nud.Value <> 100 Then
  1818. If 系統語言 = "繁體中文" Then : MsgBox("工程款估驗 不等於 100%!!") : Else : MsgBox("Penilaian biaya proyek tidak sama dengan 100%!!") : End If : Else
  1819. PA = 合約編號_tb.Text : 合約明細存檔()
  1820. Dim SS As String
  1821. If 系統語言 = "繁體中文" Then : SS = "合約工期款項細分不可大於10筆!!" : Else : SS = "Pembagian pembayaran durasi kontrak tidak boleh lebih dari 10 !!" : End If
  1822. If TabControl1.SelectedIndex = 0 Then
  1823. If 第1期_dgv.Rows.Count = 10 Then : MsgBox(SS) : Else : PA1 = "1" : PA2 = 第1期_dgv.Rows.Count + 1 : SQL_合約明細新增() : End If
  1824. ElseIf TabControl1.SelectedIndex = 1 Then
  1825. If 第2期_dgv.Rows.Count = 10 Then : MsgBox(SS) : Else : PA1 = "2" : PA2 = 第2期_dgv.Rows.Count + 1 : SQL_合約明細新增() : End If
  1826. ElseIf TabControl1.SelectedIndex = 2 Then
  1827. If 第3期_dgv.Rows.Count = 10 Then : MsgBox(SS) : Else : PA1 = "3" : PA2 = 第3期_dgv.Rows.Count + 1 : SQL_合約明細新增() : End If
  1828. ElseIf TabControl1.SelectedIndex = 3 Then
  1829. If 第4期_dgv.Rows.Count = 10 Then : MsgBox(SS) : Else : PA1 = "4" : PA2 = 第4期_dgv.Rows.Count + 1 : SQL_合約明細新增() : End If
  1830. ElseIf TabControl1.SelectedIndex = 4 Then
  1831. If 第5期_dgv.Rows.Count = 10 Then : MsgBox(SS) : Else : PA1 = "5" : PA2 = 第5期_dgv.Rows.Count + 1 : SQL_合約明細新增() : End If
  1832. End If
  1833. PA = 合約編號_tb.Text
  1834. PA1 = "1" : Set_合約明細1() : PA1 = "2" : Set_合約明細2() : PA1 = "3" : Set_合約明細3() : PA1 = "4" : Set_合約明細4() : PA1 = "5" : Set_合約明細5()
  1835. If 系統語言 = "繁體中文" Then : MsgBox("新增完成!!") : Else : MsgBox("Tambahkan selesai!!") : End If
  1836. End If
  1837. End If
  1838. End Sub
  1839. Private Sub 刪除資料_bt_Click(sender As Object, e As EventArgs) Handles 刪除資料_bt.Click
  1840. If 合約編號_cb.Text = "" Or 合約編號1_tb.Text = "" Or 明細選項_bt.Text = "" Then
  1841. If 系統語言 = "繁體中文" Then : MsgBox("資訊不夠,無法刪除明細!!") : Else : MsgBox("Tidak cukup informasi untuk menghapus detail!!") : End If : Else
  1842. If 工程款6_nud.Value <> 100 Then
  1843. If 系統語言 = "繁體中文" Then : MsgBox("工程款估驗 不等於 100%!!") : Else : MsgBox("Penilaian biaya proyek tidak sama dengan 100%!!") : End If : Else
  1844. PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text : 合約明細存檔()
  1845. If TabControl1.SelectedIndex = 0 Then : PA1 = "1" : PA2 = 明細選項_bt.Text : SQL_合約明細刪除()
  1846. ElseIf TabControl1.SelectedIndex = 1 Then : PA1 = "2" : PA2 = 明細選項_bt.Text : SQL_合約明細刪除()
  1847. ElseIf TabControl1.SelectedIndex = 2 Then : PA1 = "3" : PA2 = 明細選項_bt.Text : SQL_合約明細刪除()
  1848. ElseIf TabControl1.SelectedIndex = 3 Then : PA1 = "4" : PA2 = 明細選項_bt.Text : SQL_合約明細刪除()
  1849. ElseIf TabControl1.SelectedIndex = 4 Then : PA1 = "5" : PA2 = 明細選項_bt.Text : SQL_合約明細刪除()
  1850. End If
  1851. PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text
  1852. PA1 = "1" : Set_合約明細1() : PA1 = "2" : Set_合約明細2() : PA1 = "3" : Set_合約明細3() : PA1 = "4" : Set_合約明細4() : PA1 = "5" : Set_合約明細5()
  1853. If 系統語言 = "繁體中文" Then : MsgBox("刪除完成!!") : Else : MsgBox("Hapus selesai!!") : End If
  1854. End If
  1855. End If
  1856. End Sub
  1857. Private Sub 合約編號1_tb_TextChanged(sender As Object, e As EventArgs) Handles 合約編號1_tb.TextChanged
  1858. PA30 = 合約編號1_tb.Text : SQL_客戶資料讀取()
  1859. If dr.Read() Then : 客戶名稱_tb.Text = dr("客戶名稱") : 負責人_A_cb.Text = dr("負責人") : 客戶地址_tb.Text = dr("地址") : End If : conn.Close()
  1860. End Sub
  1861. '-----------------合約報價總表-------------------------------------------------------------------------------------------------------------------------------
  1862. Private Sub 合約報價總表_最後一筆資料()
  1863. SQL_合約報價總表_最後一筆資料()
  1864. If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("流水號").ToString, 9)) : Else : EDR = 0 : End If : conn.Close() : EDR += 1
  1865. If EDR < 10 Then : ESTR = "GT" & "00000000" & EDR : ElseIf EDR > 9 And EDR < 100 Then : ESTR = "GT" & "0000000" & EDR
  1866. ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "GT" & "000000" & EDR : ElseIf EDR > 999 And EDR < 10000 Then : ESTR = "GT" & "00000" & EDR
  1867. ElseIf EDR > 9999 And EDR < 100000 Then : ESTR = "GT" & "0000" & EDR : ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "GT" & "000" & EDR
  1868. ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "GT" & "00" & EDR : ElseIf EDR > 9999999 And EDR < 10000000 Then : ESTR = "GT" & "0" & EDR
  1869. ElseIf EDR > 99999999 Then : ESTR = "GT" & EDR : End If : PA9 = ESTR
  1870. End Sub
  1871. Private Sub 總表範例新增()
  1872. 合約報價總表_最後一筆資料() : PA10 = ""
  1873. SQL_合約報價總表_最後一筆排序()
  1874. If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "00" : End If : conn.Close() : NUM1 = Double.Parse(PA1) + 1
  1875. 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
  1876. SQL_合約報價總表_新增資料()
  1877. End Sub
  1878. Private Sub 總表範例_bt_Click(sender As Object, e As EventArgs) Handles 總表範例_bt.Click
  1879. If 報價總表_dgv.Rows.Count = 0 Then
  1880. For I As Integer = 1 To 5
  1881. PA = 合約編號_tb.Text
  1882. If I = 1 Then : PA2 = "" : PA3 = ""
  1883. ElseIf I = 2 Then : PA2 = "#" : PA3 = "管理費 7%" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = ""
  1884. ElseIf I = 3 Then : PA2 = "^" : PA3 = "折讓 Discount" : PA4 = "" : PA5 = "1" : PA6 = "0" : PA7 = "0" : PA8 = ""
  1885. ElseIf I = 4 Then : PA2 = "*" : PA3 = "稅金 11% Tax" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = ""
  1886. ElseIf I = 5 Then : PA2 = "@" : PA3 = "總計 Grand Total" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = ""
  1887. End If : 總表範例新增()
  1888. Next
  1889. Set_合約報價總表()
  1890. Else
  1891. Dim 新開1 As Boolean = True : Dim 新開2 As Boolean = True : Dim 新開3 As Boolean = True : Dim 新開4 As Boolean = True
  1892. For I As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  1893. If 報價總表_dgv.Rows(I).Cells("ITEM").Value.ToString = "^" And Strings.Left(報價總表_dgv.Rows(I).Cells("DESCRIPTION").Value.ToString, 2) = "管理" Then
  1894. 新開1 = False : Exit For : End If : Next
  1895. For I As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  1896. If 報價總表_dgv.Rows(I).Cells("ITEM").Value.ToString = "*" And Strings.Left(報價總表_dgv.Rows(I).Cells("DESCRIPTION").Value.ToString, 2) = "稅金" Then
  1897. 新開2 = False : Exit For : End If : Next
  1898. For I As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  1899. If 報價總表_dgv.Rows(I).Cells("ITEM").Value.ToString = "@" And Strings.Left(報價總表_dgv.Rows(I).Cells("DESCRIPTION").Value.ToString, 2) = "總計" Then
  1900. 新開3 = False : Exit For : End If : Next
  1901. For I As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  1902. If 報價總表_dgv.Rows(I).Cells("ITEM").Value.ToString = "#" And Strings.Left(報價總表_dgv.Rows(I).Cells("DESCRIPTION").Value.ToString, 2) = "折讓" Then
  1903. 新開4 = False : Exit For : End If : Next
  1904. If 新開1 = True Or 新開2 = True Or 新開3 = True Then : PA = 合約編號_tb.Text : PA2 = "" : PA3 = "" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = ""
  1905. 總表範例新增() : End If
  1906. If 新開1 = True Then : PA = 合約編號_tb.Text : PA2 = "^" : PA3 = "管理費 7%" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = ""
  1907. 總表範例新增() : End If
  1908. If 新開4 = True Then : PA = 合約編號_tb.Text : PA2 = "#" : PA3 = "折讓 Discount" : PA4 = "" : PA5 = "1" : PA6 = "0" : PA7 = "0" : PA8 = ""
  1909. 總表範例新增() : End If
  1910. If 新開2 = True Then : PA = 合約編號_tb.Text : PA2 = "*" : PA3 = "稅金 11% Tax" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = ""
  1911. 總表範例新增() : End If
  1912. If 新開3 = True Then : PA = 合約編號_tb.Text : PA2 = "@" : PA3 = "總計 Grand Total" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = ""
  1913. 總表範例新增() : End If : Set_合約報價總表()
  1914. End If
  1915. End Sub
  1916. Private Sub 報價總表存檔()
  1917. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  1918. PA1 = 報價總表_dgv.Rows(i).Cells("排序").Value.ToString : PA2 = 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString : PA3 = 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString
  1919. PA4 = 報價總表_dgv.Rows(i).Cells("UNIT").Value.ToString : PA5 = 報價總表_dgv.Rows(i).Cells("QTY").Value.ToString : PA6 = 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString
  1920. PA7 = 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString : PA8 = 報價總表_dgv.Rows(i).Cells("REMARKS").Value.ToString : PA9 = 報價總表_dgv.Rows(i).Cells("流水號").Value.ToString
  1921. PA10 = 報價總表_dgv.Rows(i).Cells("明細連動").Value.ToString
  1922. SQL_合約報價總表_存檔()
  1923. Next
  1924. SQL_合約修改_報價說明()
  1925. End Sub
  1926. Private Sub 新增資料1_bt_Click(sender As Object, e As EventArgs) Handles 新增資料1_bt.Click
  1927. If 合約編號_tb.Text = "" Then
  1928. If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If : Else
  1929. Dim SS As String
  1930. If 系統語言 = "繁體中文" Then : SS = "請輸入要新增幾行空白欄未!! (請輸入數字)!!"
  1931. Else : SS = "PHarap masukkan beberapa bidang kosong untuk ditambahkan!! (Silakan masukkan nomor)" : End If
  1932. PA20 = InputBox(SS)
  1933. If IsNumeric(PA20) = False Then
  1934. If 系統語言 = "繁體中文" Then : MsgBox("你輸入的不是數字!!") : Else : MsgBox("yang kamu masukkan bukan angka!!") : End If : Else
  1935. 報價總表存檔()
  1936. For ia As Integer = 1 To PA20
  1937. PA = 合約編號_tb.Text : PA2 = "" : PA3 = "" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = ""
  1938. 合約報價總表_最後一筆資料()
  1939. PA10 = ""
  1940. If 選擇項_tb.Text = "" Then
  1941. SQL_合約報價總表_最後一筆排序()
  1942. If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "00" : End If : conn.Close() : NUM1 = Double.Parse(PA1) + 1
  1943. 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
  1944. Else
  1945. PA1 = 選擇項3_tb.Text & "-1"
  1946. End If
  1947. SQL_合約報價總表_新增資料()
  1948. Next
  1949. Set_合約報價總表()
  1950. For I As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  1951. If I < 10 Then : 報價總表_dgv.Rows(I).Cells("排序").Value = "00" & I
  1952. ElseIf I > 9 And I < 100 Then : 報價總表_dgv.Rows(I).Cells("排序").Value = "0" & I
  1953. ElseIf I > 99 Then : 報價總表_dgv.Rows(I).Cells("排序").Value = I
  1954. End If
  1955. Next : 報價總表存檔()
  1956. End If
  1957. End If
  1958. End Sub
  1959. Private Sub 報價總表存檔按鈕()
  1960. If 報價總表_dgv.Rows.Count = 0 Then : Else
  1961. 報價總表存檔() : PA37 = 合約種類_cb.Text : PA36 = 合約種類_tb.Text : PA = 合約編號_tb.Text
  1962. PA36 = 客戶名稱_tb.Text : PA35 = 負責人_A_cb.Text : PA34 = 工程地點_tb.Text : PA33 = 客戶地址_tb.Text : PA32 = 工程名稱_中_tb.Text : PA31 = 工程名稱_英_tb.Text
  1963. PA30 = 選擇公司_cb.Text : PA29 = 負責人_B_cb.Text : PA28 = 我司地址_tb.Text : PA27 = NUD3.Value : PA26 = 工程款1_nud.Value : PA25 = 工程款2_nud.Value
  1964. PA24 = 工程款3_nud.Value : PA23 = 工程款4_nud.Value : PA22 = 工程款5_nud.Value : PA21 = 工期_nud.Value : PA20 = 逾期_bt.Text : PA19 = 最高扣款_bt.Text
  1965. PA18 = 逾期_英_bt.Text : PA17 = 最高扣款_英_bt.Text : PA16 = 減價_bt.Text : PA15 = 廠區_中文_tb.Text : PA14 = 頁數_bt.Text : PA12 = 合約種類_cb.Text
  1966. PA13 = Strings.Format(立約日期_dtp.Value, "yyyy/MM/dd") : PA44 = 合約編號2_tb.Text : PA45 = 合約編號3_tb.Text : PA46 = 合約編號1_tb.Text : PA47 = 工程期_ch.Text
  1967. BL1 = 合約停止_ch.Checked : PA10 = 折讓比例_nud.Value : PA9 = 歸零位數_nud.Value : BL2 = 稅前歸零_ch.Checked : BL3 = 稅後歸零_ch.Checked
  1968. If 美金_ch.Checked = True Then : PA11 = "美金" : ElseIf 台幣_ch.Checked = True Then : PA11 = "台幣"
  1969. ElseIf 人民幣_ch.Checked = True Then : PA11 = "人民幣" : ElseIf 印尼盾_ch.Checked = True Then : PA11 = "印尼盾" : End If
  1970. SQL_合約修改1() : Set_合約報價總表() : Set_合約清單()
  1971. End If
  1972. End Sub
  1973. Private Sub 報價總表存檔_bt_Click(sender As Object, e As EventArgs) Handles 報價總表存檔_bt.Click
  1974. If 報價總表_dgv.Rows.Count = 0 Then
  1975. If 系統語言 = "繁體中文" Then : MsgBox("沒有可以存檔的資料!!") : Else : MsgBox("Tidak ada data untuk diarsipkan!!") : End If : Else
  1976. 資料數 = 報價明細表_dgv.Rows.Count : 進度條視窗.Show()
  1977. 報價總表存檔按鈕() : 報價明細表存檔() : Set_合約報價明細表() : 預估利潤存檔() : MyModule1.計算顯示3()
  1978. If 系統語言 = "繁體中文" Then : MsgBox("存檔完成!!") : Else : MsgBox("Arsip selesai!!") : End If
  1979. End If
  1980. End Sub
  1981. Private Sub 總表選擇刪除_bt_Click(sender As Object, e As EventArgs) Handles 總表選擇刪除_bt.Click
  1982. If 總表流水_tb.Text = "" Then
  1983. If 系統語言 = "繁體中文" Then : MsgBox("請先選擇要刪除的資料是哪一筆!!") : Else : MsgBox("Silakan pilih data mana yang akan dihapus terlebih dahulu!!") : End If
  1984. Else : 報價總表存檔() : PA9 = 總表流水_tb.Text : SQL_合約報價總表_刪除資料() : Set_合約報價總表() : End If
  1985. End Sub
  1986. Private Sub 排序1_bt_Click(sender As Object, e As EventArgs) Handles 排序1_bt.Click
  1987. If 報價總表_dgv.Rows.Count > 0 Then
  1988. If 報價總表_dgv.Columns(0).Visible = False Then : 報價總表_dgv.Columns(0).Visible = True : Else : 報價總表_dgv.Columns(0).Visible = False : End If
  1989. End If
  1990. End Sub
  1991. Private Sub 稅前歸零_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 稅前歸零_ch.Click
  1992. If 稅前歸零_ch.Checked = False And 稅後歸零_ch.Checked = False Then : 稅前歸零_ch.Checked = False : 稅後歸零_ch.Checked = False
  1993. ElseIf 稅前歸零_ch.Checked = True And 稅後歸零_ch.Checked = False Then : 稅前歸零_ch.Checked = True : 稅後歸零_ch.Checked = False
  1994. ElseIf 稅前歸零_ch.Checked = True And 稅後歸零_ch.Checked = True Then : 稅前歸零_ch.Checked = True : 稅後歸零_ch.Checked = False : End If
  1995. End Sub
  1996. Private Sub 稅後歸零_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 稅後歸零_ch.Click
  1997. If 稅前歸零_ch.Checked = False And 稅後歸零_ch.Checked = False Then : 稅前歸零_ch.Checked = False : 稅後歸零_ch.Checked = False
  1998. ElseIf 稅前歸零_ch.Checked = True And 稅後歸零_ch.Checked = False Then : 稅前歸零_ch.Checked = False : 稅後歸零_ch.Checked = True
  1999. ElseIf 稅前歸零_ch.Checked = True And 稅後歸零_ch.Checked = True Then : 稅前歸零_ch.Checked = False : 稅後歸零_ch.Checked = True : End If
  2000. End Sub
  2001. Private Sub 折價計算_bt_Click(sender As Object, e As EventArgs) Handles 折價計算_bt.Click
  2002. If 歸零位數_nud.Value >= Len(CLng(未折價前_tb.Text)) - 1 Then
  2003. If 系統語言 = "繁體中文" Then : MsgBox("歸零位數帶大,報價會出錯!!") : Else : MsgBox("Jika angka nol terlalu besar, kutipan akan salah!!") : End If
  2004. Else
  2005. Dim DD, 歸零前, 歸零後 As Long
  2006. '----------------------折讓計算-------------------------------------------------------------------------------------------
  2007. If 折讓比例_nud.Value > 0 Then
  2008. DD = CLng(未折價前_tb.Text) / 100 * 折讓比例_nud.Value * -1
  2009. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  2010. If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "折讓 Discount" Then
  2011. 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value = DD : Exit For
  2012. End If
  2013. Next
  2014. End If : 報價總表_dgv_自動計算()
  2015. '----------------------歸零位數_nud-------------------------------------------------------------------------------------------
  2016. If 歸零位數_nud.Value > 0 Then
  2017. If 稅前歸零_ch.Checked = True Then
  2018. 歸零數_tb.Text = Strings.Right(CLng(報價小計_tb.Text), 歸零位數_nud.Value)
  2019. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  2020. If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "折讓 Discount" Then
  2021. 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value = DD - CLng(歸零數_tb.Text) : Exit For
  2022. End If
  2023. Next
  2024. ElseIf 稅後歸零_ch.Checked = True Then
  2025. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  2026. If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "@" Then
  2027. 歸零前 = CLng(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString) : Exit For
  2028. End If
  2029. Next
  2030. 歸零數_tb.Text = Strings.Right(歸零前, 歸零位數_nud.Value) : 歸零後 = 歸零前 - CLng(歸零數_tb.Text)
  2031. If 稅額顯示_lb.Text = "PPN 10%稅額 = Rp. " Then : DD = CLng(報價小計_tb.Text) - (歸零後 / 110 * 100)
  2032. ElseIf 稅額顯示_lb.Text = "PPN 11%稅額 = Rp. " Then : DD = CLng(報價小計_tb.Text) - (歸零後 / 111 * 100) : End If
  2033. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  2034. If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "折讓 Discount" Then
  2035. 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value = CLng(報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString) - DD : Exit For
  2036. End If
  2037. Next
  2038. End If
  2039. End If : 報價總表_dgv_自動計算()
  2040. End If
  2041. End Sub
  2042. Private Sub 美金_ch_Click(sender As Object, e As EventArgs) Handles 美金_ch.Click
  2043. 美金_ch.Checked = True : 台幣_ch.Checked = False : 人民幣_ch.Checked = False : 印尼盾_ch.Checked = False
  2044. End Sub
  2045. Private Sub 台幣_ch_Click(sender As Object, e As EventArgs) Handles 台幣_ch.Click
  2046. 美金_ch.Checked = False : 台幣_ch.Checked = True : 人民幣_ch.Checked = False : 印尼盾_ch.Checked = False
  2047. End Sub
  2048. Private Sub 人民幣_ch_Click(sender As Object, e As EventArgs) Handles 人民幣_ch.Click
  2049. 美金_ch.Checked = False : 台幣_ch.Checked = False : 人民幣_ch.Checked = True : 印尼盾_ch.Checked = False
  2050. End Sub
  2051. Private Sub 印尼盾_ch_Click(sender As Object, e As EventArgs) Handles 印尼盾_ch.Click
  2052. 美金_ch.Checked = False : 台幣_ch.Checked = False : 人民幣_ch.Checked = False : 印尼盾_ch.Checked = True
  2053. End Sub
  2054. Private Sub 美金_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 美金_ch.CheckedChanged
  2055. If 美金_ch.Checked = True Then : 幣別 = " (USD)" : ElseIf 台幣_ch.Checked = True Then : 幣別 = " (TWD)"
  2056. ElseIf 人民幣_ch.Checked = True Then : 幣別 = " (RMB)" : ElseIf 印尼盾_ch.Checked = True Then : 幣別 = " (RP)" : End If
  2057. End Sub
  2058. Private Sub 台幣_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 台幣_ch.CheckedChanged
  2059. If 美金_ch.Checked = True Then : 幣別 = " (USD)" : ElseIf 台幣_ch.Checked = True Then : 幣別 = " (TWD)"
  2060. ElseIf 人民幣_ch.Checked = True Then : 幣別 = " (RMB)" : ElseIf 印尼盾_ch.Checked = True Then : 幣別 = " (RP)" : End If
  2061. End Sub
  2062. Private Sub 人民幣_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 人民幣_ch.CheckedChanged
  2063. If 美金_ch.Checked = True Then : 幣別 = " (USD)" : ElseIf 台幣_ch.Checked = True Then : 幣別 = " (TWD)"
  2064. ElseIf 人民幣_ch.Checked = True Then : 幣別 = " (RMB)" : ElseIf 印尼盾_ch.Checked = True Then : 幣別 = " (RP)" : End If
  2065. End Sub
  2066. Private Sub 印尼盾_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 印尼盾_ch.CheckedChanged
  2067. If 美金_ch.Checked = True Then : 幣別 = " (USD)" : ElseIf 台幣_ch.Checked = True Then : 幣別 = " (TWD)"
  2068. ElseIf 人民幣_ch.Checked = True Then : 幣別 = " (RMB)" : ElseIf 印尼盾_ch.Checked = True Then : 幣別 = " (RP)" : End If
  2069. End Sub
  2070. '-----------------合約報價總表編輯功能-------------------------------------------------------------------------------------------------------------------------------
  2071. Private Sub 總表編輯()
  2072. If 視窗2_pl.Visible = False Then
  2073. 視窗2_pl.Location = New System.Drawing.Point(123, 58) : 視窗2_pl.Visible = True : 視窗2_pl.Top = True : 視窗2_pl.BringToFront()
  2074. 目前選擇 = "讀取資料" : 座標_lb.Text = 目前選擇
  2075. X_3_tb.Text = "" : Y_3_tb.Text = "" : NUD_01.Value = 0 : NUD_02.Value = 0 : NUD_03.Value = 0
  2076. 中文大寫1_ch.Checked = True : 中文小寫1_ch.Checked = False : 數字1_ch.Checked = False
  2077. ITEM1_cb.Items.Clear() : ITEM1_cb.Items.Add("") : ITEM1_cb.Items.Add("壹") : ITEM1_cb.Items.Add("貳") : ITEM1_cb.Items.Add("參") : ITEM1_cb.Items.Add("肆")
  2078. ITEM1_cb.Items.Add("伍") : ITEM1_cb.Items.Add("陸") : ITEM1_cb.Items.Add("柒") : ITEM1_cb.Items.Add("捌") : ITEM1_cb.Items.Add("玖") : ITEM1_cb.Items.Add("拾")
  2079. ITEM1_cb.Items.Add("拾壹") : ITEM1_cb.Items.Add("拾貳") : ITEM1_cb.Items.Add("拾參") : ITEM1_cb.Items.Add("拾肆") : ITEM1_cb.Items.Add("拾伍") : ITEM1_cb.Items.Add("拾陸")
  2080. ITEM1_cb.Items.Add("拾柒") : ITEM1_cb.Items.Add("拾捌") : ITEM1_cb.Items.Add("拾玖") : ITEM1_cb.Items.Add("貳拾")
  2081. 視窗2_pl.BringToFront()
  2082. Else : 視窗2_pl.Visible = False
  2083. End If
  2084. End Sub
  2085. Private Sub 中文大寫1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中文大寫1_ch.Click
  2086. 中文大寫1_ch.Checked = True : 中文小寫1_ch.Checked = False : 數字1_ch.Checked = False
  2087. ITEM1_cb.Items.Clear() : ITEM1_cb.Items.Add("") : ITEM1_cb.Items.Add("壹") : ITEM1_cb.Items.Add("貳") : ITEM1_cb.Items.Add("參") : ITEM1_cb.Items.Add("肆")
  2088. ITEM1_cb.Items.Add("伍") : ITEM1_cb.Items.Add("陸") : ITEM1_cb.Items.Add("柒") : ITEM1_cb.Items.Add("捌") : ITEM1_cb.Items.Add("玖") : ITEM1_cb.Items.Add("拾")
  2089. ITEM1_cb.Items.Add("拾壹") : ITEM1_cb.Items.Add("拾貳") : ITEM1_cb.Items.Add("拾參") : ITEM1_cb.Items.Add("拾肆") : ITEM1_cb.Items.Add("拾伍") : ITEM1_cb.Items.Add("拾陸")
  2090. ITEM1_cb.Items.Add("拾柒") : ITEM1_cb.Items.Add("拾捌") : ITEM1_cb.Items.Add("拾玖") : ITEM1_cb.Items.Add("貳拾")
  2091. End Sub
  2092. Private Sub 中文小寫1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中文小寫1_ch.Click
  2093. 中文大寫1_ch.Checked = False : 中文小寫1_ch.Checked = True : 數字1_ch.Checked = False
  2094. ITEM1_cb.Items.Clear() : ITEM1_cb.Items.Add("") : ITEM1_cb.Items.Add("一") : ITEM1_cb.Items.Add("二") : ITEM1_cb.Items.Add("三") : ITEM1_cb.Items.Add("四")
  2095. ITEM1_cb.Items.Add("五") : ITEM1_cb.Items.Add("六") : ITEM1_cb.Items.Add("七") : ITEM1_cb.Items.Add("八") : ITEM1_cb.Items.Add("九") : ITEM1_cb.Items.Add("十")
  2096. ITEM1_cb.Items.Add("十一") : ITEM1_cb.Items.Add("十二") : ITEM1_cb.Items.Add("十三") : ITEM1_cb.Items.Add("十四") : ITEM1_cb.Items.Add("十五") : ITEM1_cb.Items.Add("十六")
  2097. ITEM1_cb.Items.Add("十七") : ITEM1_cb.Items.Add("十八") : ITEM1_cb.Items.Add("十九") : ITEM1_cb.Items.Add("二十")
  2098. End Sub
  2099. Private Sub 數字1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 數字1_ch.Click
  2100. 中文大寫1_ch.Checked = False : 中文小寫1_ch.Checked = False : 數字1_ch.Checked = True
  2101. ITEM1_cb.Items.Clear() : ITEM1_cb.Items.Add("") : For I As Integer = 1 To 30 : ITEM1_cb.Items.Add(I) : Next
  2102. End Sub
  2103. Private Sub 合計項_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合計項_cb.SelectedIndexChanged
  2104. 內容_tb.Text = 合計項_cb.Text : ITEM1_cb.Text = "" : 單位_tb.Text = ""
  2105. If 合計項_cb.Text = "合 計 Total" Or 合計項_cb.Text = "稅金 10% Tax" Or 合計項_cb.Text = "稅金 11% Tax" Then : ITEM1_cb.Text = "*"
  2106. ElseIf Strings.Left(合計項_cb.Text, 3) = "管理費" Then : ITEM1_cb.Text = "^"
  2107. ElseIf 合計項_cb.Text = "總計 Grand Total" Then : ITEM1_cb.Text = "@" : End If
  2108. End Sub
  2109. Private Sub 總表編輯_bt_Click(sender As Object, e As EventArgs) Handles 總表編輯_bt.Click
  2110. 總表編輯() : 視窗3_pl.Visible = False : Set_報價明細表_dgv_利潤表關閉()
  2111. End Sub
  2112. Private Sub NUD_01_Click(sender As Object, e As EventArgs) Handles NUD_01.Click
  2113. 目前選擇 = "讀取資料" : 座標_lb.Text = 目前選擇
  2114. End Sub
  2115. Private Sub NUD_02_Click(sender As Object, e As EventArgs) Handles NUD_02.Click
  2116. 目前選擇 = "讀取資料" : 座標_lb.Text = 目前選擇
  2117. End Sub
  2118. Private Sub NUD_03_Click(sender As Object, e As EventArgs) Handles NUD_03.Click
  2119. 目前選擇 = "寫入資料" : 座標_lb.Text = 目前選擇
  2120. End Sub
  2121. Private Sub 選擇_lb_Click(sender As Object, e As EventArgs) Handles 選擇_lb.Click
  2122. 目前選擇 = "寫入資料" : 座標_lb.Text = 目前選擇
  2123. End Sub
  2124. Private Sub 文字資料輸入1_bt_Click(sender As Object, e As EventArgs) Handles 文字資料輸入1_bt.Click
  2125. If 選擇項_tb.Text = "" Then
  2126. If 系統語言 = "繁體中文" Then : MsgBox("請先點選要輸入在總表的哪一行!!") : Else : MsgBox("Silakan klik baris mana yang akan ditulis di tabel ringkasan terlebih dahulu!!") : End If
  2127. Else
  2128. Dim ZX As Integer = 選擇項_tb.Text
  2129. 報價總表_dgv.Rows(ZX).Cells("ITEM").Value = ITEM1_cb.Text : 報價總表_dgv.Rows(ZX).Cells("UNIT").Value = 單位_tb.Text
  2130. 報價總表_dgv.Rows(ZX).Cells("REMARKS").Value = 備註_tb.Text : 報價總表_dgv.Rows(ZX).Cells("DESCRIPTION").Value = 內容_tb.Text
  2131. If IsNumeric(數量_tb.Text) = False Then : 報價總表_dgv.Rows(ZX).Cells("QTY").Value = 0 : Else : 報價總表_dgv.Rows(ZX).Cells("QTY").Value = 數量_tb.Text : End If
  2132. 報價總表_dgv_自動計算() : 數量_tb.Text = "1"
  2133. End If
  2134. End Sub
  2135. Private Sub B1_bt_Click(sender As Object, e As EventArgs) Handles b1_bt.Click
  2136. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 1 : Else : 數值2_tb.Text = 1 : End If
  2137. End Sub
  2138. Private Sub B2_bt_Click(sender As Object, e As EventArgs) Handles b2_bt.Click
  2139. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 2 : Else : 數值2_tb.Text = 2 : End If
  2140. End Sub
  2141. Private Sub B3_bt_Click(sender As Object, e As EventArgs) Handles b3_bt.Click
  2142. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 3 : Else : 數值2_tb.Text = 3 : End If
  2143. End Sub
  2144. Private Sub B4_bt_Click(sender As Object, e As EventArgs) Handles b4_bt.Click
  2145. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 4 : Else : 數值2_tb.Text = 4 : End If
  2146. End Sub
  2147. Private Sub B5_bt_Click(sender As Object, e As EventArgs) Handles b5_bt.Click
  2148. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 5 : Else : 數值2_tb.Text = 5 : End If
  2149. End Sub
  2150. Private Sub B6_bt_Click(sender As Object, e As EventArgs) Handles b6_bt.Click
  2151. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 6 : Else : 數值2_tb.Text = 6 : End If
  2152. End Sub
  2153. Private Sub B7_bt_Click(sender As Object, e As EventArgs) Handles b7_bt.Click
  2154. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 7 : Else : 數值2_tb.Text = 7 : End If
  2155. End Sub
  2156. Private Sub B8_bt_Click(sender As Object, e As EventArgs) Handles b8_bt.Click
  2157. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 8 : Else : 數值2_tb.Text = 8 : End If
  2158. End Sub
  2159. Private Sub B9_bt_Click(sender As Object, e As EventArgs) Handles b9_bt.Click
  2160. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 9 : Else : 數值2_tb.Text = 9 : End If
  2161. End Sub
  2162. Private Sub B0_bt_Click(sender As Object, e As EventArgs) Handles b0_bt.Click
  2163. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 0 : Else : 數值2_tb.Text = 0 : End If
  2164. End Sub
  2165. Private Sub 小數點_bt_Click(sender As Object, e As EventArgs) Handles 小數點_bt.Click
  2166. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & "." : Else : 數值2_tb.Text = "0." : End If
  2167. End Sub
  2168. '----------------------------數字鍵盤---------------------------------------------------------------------------------------------------------------
  2169. Private Sub 倒退_bt_Click(sender As Object, e As EventArgs) Handles 倒退_bt.Click
  2170. Dim SS As Integer
  2171. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = Int(Val(數值2_tb.Text) / 10)
  2172. ElseIf 數值2_tb.Text = "" And 數值1_tb.Text <> "" Then : SS = Len(數值1_tb.Text) : 數值1_tb.Text = Strings.Left(數值1_tb.Text, SS - 1)
  2173. Else : 數值2_tb.Text = "" : End If
  2174. End Sub
  2175. Private Sub 除_bt_Click(sender As Object, e As EventArgs) Handles 除_bt.Click
  2176. 等於_bt.PerformClick()
  2177. If 數值2_tb.Text <> "" And 數值1_tb.Text = "" Then : 數值1_tb.Text = 數值2_tb.Text : 數值2_tb.Text = "" : End If
  2178. If 數值2_tb.Text <> "" And 數值1_tb.Text <> "" Then : 數值1_tb.Text = Val(數值1_tb.Text) / Val(數值2_tb.Text) : 數值2_tb.Text = "" : End If
  2179. 計算式_tb.Text = "/"
  2180. End Sub
  2181. Private Sub 乘_bt_Click(sender As Object, e As EventArgs) Handles 乘_bt.Click
  2182. 等於_bt.PerformClick()
  2183. If 數值2_tb.Text <> "" And 數值1_tb.Text = "" Then : 數值1_tb.Text = 數值2_tb.Text : 數值2_tb.Text = "" : End If
  2184. If 數值2_tb.Text <> "" And 數值1_tb.Text <> "" Then : 數值1_tb.Text = Val(數值2_tb.Text) * Val(數值1_tb.Text) : 數值2_tb.Text = "" : End If
  2185. 計算式_tb.Text = "X"
  2186. End Sub
  2187. Private Sub 加_bt_Click(sender As Object, e As EventArgs) Handles 加_bt.Click
  2188. 等於_bt.PerformClick()
  2189. If 數值2_tb.Text <> "" And 數值1_tb.Text = "" Then : 數值1_tb.Text = 數值2_tb.Text : 數值2_tb.Text = "" : End If
  2190. If 數值2_tb.Text <> "" And 數值1_tb.Text <> "" Then : 數值1_tb.Text = Val(數值2_tb.Text) + Val(數值1_tb.Text) : 數值2_tb.Text = "" : End If
  2191. 計算式_tb.Text = "+"
  2192. End Sub
  2193. Private Sub 減_bt_Click(sender As Object, e As EventArgs) Handles 減_bt.Click
  2194. 等於_bt.PerformClick()
  2195. If 數值2_tb.Text <> "" And 數值1_tb.Text = "" Then : 數值1_tb.Text = 數值2_tb.Text : 數值2_tb.Text = "" : End If
  2196. If 數值2_tb.Text <> "" And 數值1_tb.Text <> "" Then : 數值1_tb.Text = Val(數值1_tb.Text) - Val(數值2_tb.Text) : 數值2_tb.Text = "" : End If
  2197. 計算式_tb.Text = "-"
  2198. End Sub
  2199. Private Sub 清除_bt_Click(sender As Object, e As EventArgs) Handles 清除_bt.Click
  2200. 數值2_tb.Text = "" : 數值1_tb.Text = "" : 計算式_tb.Text = "" : 結果_tb.Text = ""
  2201. End Sub
  2202. Private Sub 數值1_tb_TextChanged(sender As Object, e As EventArgs) Handles 數值1_tb.TextChanged
  2203. 結果_tb.Text = 數值1_tb.Text : If 數值1_tb.Text <> "" Then : NUD_01.Value = 數值1_tb.Text : Else : NUD_01.Value = 0 : End If
  2204. If Val(數值1_tb.Text) > 9.99973000350998E+85 Then
  2205. If 系統語言 = "繁體中文" Then : MsgBox("EFFORT錯誤!結果過大, 請重新點擊AC來重新啟動!!")
  2206. Else : MsgBox("EFFORT error! Hasilnya terlalu besar, silakan klik AC lagi untuk restart!!") : End If
  2207. End If
  2208. End Sub
  2209. Private Sub 計算式_tb_TextChanged(sender As Object, e As EventArgs) Handles 計算式_tb.TextChanged
  2210. 計算1_ch.Text = 計算式_tb.Text
  2211. End Sub
  2212. Private Sub 數值2_tb_TextChanged(sender As Object, e As EventArgs) Handles 數值2_tb.TextChanged
  2213. If 數值2_tb.Text <> "" Then : NUD_02.Value = 數值2_tb.Text : Else : NUD_02.Value = 0 : End If
  2214. End Sub
  2215. Private Sub 結果_tb_TextChanged(sender As Object, e As EventArgs) Handles 結果_tb.TextChanged
  2216. If IsNumeric(結果_tb.Text) Then : If 結果_tb.Text <> "" Then : NUD_03.Value = 結果_tb.Text : Else : NUD_03.Value = 0 : End If : End If
  2217. End Sub
  2218. Private Sub 等於_bt_Click(sender As Object, e As EventArgs) Handles 等於_bt.Click
  2219. If 數值2_tb.Text <> "" And 數值1_tb.Text <> "" Then
  2220. If 計算式_tb.Text = "X" Then : 數值1_tb.Text = Val(數值2_tb.Text) * Val(數值1_tb.Text) : 數值2_tb.Text = "" : End If
  2221. If 計算式_tb.Text = "/" Then : 數值1_tb.Text = Val(數值1_tb.Text) / Val(數值2_tb.Text) : 數值2_tb.Text = "" : End If
  2222. If 計算式_tb.Text = "+" Then : 數值1_tb.Text = Val(數值2_tb.Text) + Val(數值1_tb.Text) : 數值2_tb.Text = "" : End If
  2223. If 計算式_tb.Text = "-" Then : 數值1_tb.Text = Val(數值1_tb.Text) - Val(數值2_tb.Text) : 數值2_tb.Text = "" : End If
  2224. ElseIf 數值2_tb.Text <> "" And 數值1_tb.Text = "" Then
  2225. 結果_tb.Text = 數值2_tb.Text
  2226. Else : End If
  2227. End Sub
  2228. '-----------------合約報價明細表-------------------------------------------------------------------------------------------------------------------------------
  2229. Private Sub 合約報價明細表_最後一筆資料()
  2230. SQL_合約報價明細表_最後一筆資料()
  2231. If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("流水號").ToString, 9)) : Else : EDR = 0 : End If : conn.Close() : EDR += 1
  2232. If EDR < 10 Then : ESTR = "GT" & "00000000" & EDR : ElseIf EDR > 9 And EDR < 100 Then : ESTR = "GT" & "0000000" & EDR
  2233. ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "GT" & "000000" & EDR : ElseIf EDR > 999 And EDR < 10000 Then : ESTR = "GT" & "00000" & EDR
  2234. ElseIf EDR > 9999 And EDR < 100000 Then : ESTR = "GT" & "0000" & EDR : ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "GT" & "000" & EDR
  2235. ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "GT" & "00" & EDR : ElseIf EDR > 9999999 And EDR < 10000000 Then : ESTR = "GT" & "0" & EDR
  2236. ElseIf EDR > 99999999 Then : ESTR = "GT" & EDR : End If : PA9 = ESTR
  2237. End Sub
  2238. Private Sub 報價明細表存檔()
  2239. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  2240. MyModule1.計算顯示2() : MyModule1.進度條1()
  2241. PA1 = 報價明細表_dgv.Rows(i).Cells("排序").Value.ToString : PA2 = 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString
  2242. PA3 = 報價明細表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString : PA4 = 報價明細表_dgv.Rows(i).Cells("UNIT").Value.ToString
  2243. PA5 = 報價明細表_dgv.Rows(i).Cells("QTY").Value.ToString : PA6 = 報價明細表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString
  2244. PA7 = 報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString : PA8 = 報價明細表_dgv.Rows(i).Cells("REMARKS").Value.ToString
  2245. PA9 = 報價明細表_dgv.Rows(i).Cells("流水號").Value.ToString : PA10 = 報價明細表_dgv.Rows(i).Cells("實際數量").Value.ToString
  2246. PA11 = 報價明細表_dgv.Rows(i).Cells("工資成本單價").Value.ToString : PA12 = 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value.ToString
  2247. PA13 = 報價明細表_dgv.Rows(i).Cells("材料成本單價").Value.ToString : PA14 = 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value.ToString
  2248. PA15 = 報價明細表_dgv.Rows(i).Cells("料號").Value.ToString : BL = 報價明細表_dgv.Rows(i).Cells("不計").Value
  2249. PA16 = 報價明細表_dgv.Rows(i).Cells("材料係數").Value.ToString : BL1 = 報價明細表_dgv.Rows(i).Cells("D1").Value
  2250. BL2 = 報價明細表_dgv.Rows(i).Cells("D2").Value : BL3 = 報價明細表_dgv.Rows(i).Cells("D3").Value : BL4 = 報價明細表_dgv.Rows(i).Cells("D4").Value
  2251. BL5 = 報價明細表_dgv.Rows(i).Cells("D5").Value : BL6 = 報價明細表_dgv.Rows(i).Cells("D6").Value : BL7 = 報價明細表_dgv.Rows(i).Cells("D7").Value
  2252. BL8 = 報價明細表_dgv.Rows(i).Cells("D8").Value
  2253. SQL_合約報價明細表_存檔()
  2254. Next
  2255. '-----------------預估利潤存檔-------------------------------------------------------------------------------------------------------------------------------
  2256. If 預估工資總成本_tb.Text = "" Then : 預估工資總成本_tb.Text = "0" : End If
  2257. PA37 = 預估工資總成本_tb.Text
  2258. 預估利潤存檔()
  2259. End Sub
  2260. Private Sub 新增資料2_bt_Click(sender As Object, e As EventArgs) Handles 新增資料2_bt.Click
  2261. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If : Else
  2262. 資料數 = 報價明細表_dgv.Rows.Count * 2 : 進度條視窗.Show()
  2263. 報價明細表存檔()
  2264. Dim SS As String
  2265. If 系統語言 = "繁體中文" Then : SS = "請輸入要新增幾行空白欄未!! (請輸入數字)!!"
  2266. Else : SS = "PHarap masukkan beberapa bidang kosong untuk ditambahkan!! (Silakan masukkan nomor)" : End If
  2267. PA20 = InputBox(SS)
  2268. If IsNumeric(PA20) = False Then : If 系統語言 = "繁體中文" Then : MsgBox("你輸入的不是數字!!") : Else : MsgBox("yang kamu masukkan bukan angka!!") : End If : Else
  2269. For ia As Integer = 1 To PA20
  2270. PA = 合約編號_tb.Text : PA2 = "" : PA3 = "" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = "" : PA10 = "" : PA11 = "" : PA12 = ""
  2271. PA13 = "" : PA14 = "" : PA15 = "" : PA16 = "" : BL = False : BL1 = False : BL2 = False : BL3 = False : BL4 = False : BL5 = False : BL6 = False
  2272. BL7 = False : BL8 = False : BL9 = True
  2273. 合約報價明細表_最後一筆資料()
  2274. If 選擇項1_tb.Text = "" Then
  2275. SQL_合約報價明細表_最後一筆排序()
  2276. If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "00" : End If : conn.Close()
  2277. NUM1 = Double.Parse(PA1) + 1
  2278. 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
  2279. Else
  2280. PA1 = 選擇項2_tb.Text & "-1"
  2281. End If
  2282. SQL_合約報價明細表_新增資料()
  2283. Next : Set_合約報價明細表()
  2284. For I As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  2285. MyModule1.計算顯示2() : MyModule1.進度條1()
  2286. If I < 10 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "00" & I
  2287. ElseIf I > 9 And I < 100 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "0" & I
  2288. ElseIf I > 99 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = I
  2289. End If
  2290. Next : 報價明細表存檔() : MyModule1.計算顯示3()
  2291. End If
  2292. End If
  2293. End Sub
  2294. Private Sub 報價明細表存檔_bt_Click(sender As Object, e As EventArgs) Handles 報價明細表存檔_bt.Click
  2295. If 報價明細表_dgv.Rows.Count = 0 Then
  2296. If 系統語言 = "繁體中文" Then : MsgBox("沒有可以存檔的資料!!") : Else : MsgBox("Tidak ada data untuk diarsipkan!!") : End If : Else
  2297. 資料數 = 報價明細表_dgv.Rows.Count : 進度條視窗.Show()
  2298. 報價總表存檔按鈕() : 報價明細表存檔() : Set_合約報價明細表() : 預估利潤存檔() : MyModule1.計算顯示3()
  2299. If 系統語言 = "繁體中文" Then : MsgBox("存檔完成!!") : Else : MsgBox("Arsip selesai!!") : End If
  2300. End If
  2301. End Sub
  2302. Private Sub 總表選擇刪除1_bt_Click(sender As Object, e As EventArgs) Handles 總表選擇刪除1_bt.Click
  2303. If 啟用批量選擇_ch.Checked = False Then
  2304. If 明細表流水_tb.Text = "" Then
  2305. If 系統語言 = "繁體中文" Then : MsgBox("請先選擇要刪除的資料是哪一筆!!")
  2306. Else : MsgBox("Silakan pilih data mana yang akan dihapus terlebih dahulu!!") : End If
  2307. Else
  2308. 資料數 = 報價明細表_dgv.Rows.Count : 進度條視窗.Show()
  2309. 報價明細表存檔() : PA9 = 明細表流水_tb.Text : SQL_合約報價明細表_刪除資料() : Set_合約報價明細表() : MyModule1.計算顯示3()
  2310. End If
  2311. Else
  2312. 資料數 = 報價明細表_dgv.Rows.Count * 2 : 進度條視窗.Show()
  2313. 報價明細表存檔()
  2314. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  2315. MyModule1.計算顯示2() : MyModule1.進度條1()
  2316. If 報價明細表_dgv("S", i).Value = True Then
  2317. PA9 = 報價明細表_dgv.Rows(i).Cells("流水號").Value.ToString : SQL_合約報價明細表_刪除資料()
  2318. End If
  2319. Next : MyModule1.計算顯示3() : Set_合約報價明細表() : 啟用批量選擇_ch.Checked = False
  2320. End If
  2321. End Sub
  2322. Private Sub 選擇材料新增到明細表_bt_Click(sender As Object, e As EventArgs) Handles 選擇材料新增到明細表_bt.Click
  2323. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If : Else
  2324. If 料號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇物料!!") : Else : MsgBox("Tidak ada bahan yang dipilih!!") : End If : Else
  2325. 資料數 = 報價明細表_dgv.Rows.Count * 2 : 進度條視窗.Show() : 報價明細表存檔()
  2326. PA = 合約編號_tb.Text : PA2 = "" : PA3 = "" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = "" : PA10 = "0" : PA11 = ""
  2327. PA12 = "" : PA14 = "" : PA15 = 料號_tb.Text : PA16 = "" : BL = False : BL1 = False : BL2 = False : BL3 = False : BL4 = False : BL5 = False : BL6 = False : BL7 = False
  2328. BL8 = False : BL9 = True : If 帶上歷史單價_ch.Checked = True Then : PA13 = 歷史單價_tb.Text : Else : PA13 = "" : End If
  2329. 明細表新增資料() : MyModule1.計算顯示3()
  2330. End If
  2331. End If
  2332. End Sub
  2333. Private Sub BOM新增到明細表_bt_Click(sender As Object, e As EventArgs) Handles BOM新增到明細表_bt.Click
  2334. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If : Else
  2335. If ITEM4_cb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("請先選擇ITEM!!") : Else : MsgBox("Silakan pilih ITEM terlebih dahulu!!") : End If : Else
  2336. If 主項目_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("請先選擇主項目!!") : Else : MsgBox("Silakan pilih item utama terlebih dahulu!!") : End If : Else
  2337. 資料數 = (報價明細表_dgv.Rows.Count * 2) + BOM表明細_dgv.Rows.Count : 進度條視窗.Show()
  2338. 報價明細表存檔()
  2339. PA = 合約編號_tb.Text : PA2 = ITEM4_cb.Text : PA3 = 主項目_tb.Text : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = "" : PA10 = "" : PA11 = ""
  2340. PA12 = "" : PA14 = "" : PA15 = "" : PA16 = "" : BL = False : BL1 = False : BL2 = False : BL3 = False : BL4 = False : BL5 = False : BL6 = False
  2341. BL7 = False : BL8 = False : BL9 = True
  2342. 合約報價明細表_最後一筆資料()
  2343. If 選擇項1_tb.Text = "" Then : SQL_合約報價明細表_最後一筆排序()
  2344. If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "000" : End If : conn.Close()
  2345. NUM1 = Double.Parse(PA1) + 1
  2346. 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
  2347. Else : PA1 = 選擇項2_tb.Text & "-00" : End If : SQL_合約報價明細表_新增資料()
  2348. For i As Integer = 0 To BOM表明細_dgv.Rows.Count - 1
  2349. MyModule1.計算顯示2() : MyModule1.進度條1()
  2350. PA2 = BOM表明細_dgv.Rows(i).Cells("項次").Value.ToString : PA3 = BOM表明細_dgv.Rows(i).Cells("項目").Value.ToString
  2351. PA4 = BOM表明細_dgv.Rows(i).Cells("單位").Value.ToString : PA5 = BOM表明細_dgv.Rows(i).Cells("數量").Value.ToString : PA6 = "0" : PA7 = "0" : PA8 = ""
  2352. PA10 = BOM表明細_dgv.Rows(i).Cells("數量").Value.ToString : PA11 = "" : PA12 = "" : PA14 = "" : PA15 = BOM表明細_dgv.Rows(i).Cells("料號").Value.ToString
  2353. 合約報價明細表_最後一筆資料()
  2354. If 選擇項1_tb.Text = "" Then
  2355. SQL_合約報價明細表_最後一筆排序()
  2356. If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "000" : End If : conn.Close()
  2357. NUM1 = Double.Parse(PA1) + 1
  2358. 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
  2359. Else
  2360. If CInt(BOM表明細_dgv.Rows(i).Cells("項次").Value.ToString) < 10 Then
  2361. PA1 = 選擇項2_tb.Text & "-0" & BOM表明細_dgv.Rows(i).Cells("項次").Value.ToString
  2362. ElseIf CInt(BOM表明細_dgv.Rows(i).Cells("項次").Value.ToString) > 9 Then
  2363. PA1 = 選擇項2_tb.Text & "-" & BOM表明細_dgv.Rows(i).Cells("項次").Value.ToString
  2364. End If
  2365. End If : SQL_合約報價明細表_新增資料()
  2366. Next : Set_合約報價明細表()
  2367. For I As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  2368. MyModule1.計算顯示2() : MyModule1.進度條1()
  2369. If I < 10 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "000" & I
  2370. ElseIf I > 9 And I < 100 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "0" & I
  2371. ElseIf I > 99 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = I
  2372. End If
  2373. Next : 報價明細表存檔() : MyModule1.計算顯示3()
  2374. End If
  2375. End If
  2376. End If
  2377. End Sub
  2378. Private Sub 選取資料新增到明細表_bt_Click(sender As Object, e As EventArgs) Handles 選取資料新增到明細表_bt.Click
  2379. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If : Else
  2380. 資料數 = (報價明細表_dgv.Rows.Count * 2) + 報價明細表2_dgv.Rows.Count : 進度條視窗.Show()
  2381. 報價明細表存檔()
  2382. For i As Integer = 0 To 報價明細表2_dgv.Rows.Count - 1
  2383. MyModule1.計算顯示2() : MyModule1.進度條1()
  2384. If 報價明細表2_dgv.Rows(i).Cells("選擇").Value = True Then
  2385. PA = 合約編號_tb.Text : PA2 = 報價明細表2_dgv.Rows(i).Cells("ITEM").Value.ToString : PA3 = 報價明細表2_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString
  2386. PA4 = 報價明細表2_dgv.Rows(i).Cells("UNIT").Value.ToString : PA5 = 報價明細表2_dgv.Rows(i).Cells("QTY").Value.ToString : PA6 = "0" : PA7 = "0" : PA8 = ""
  2387. PA10 = 報價明細表2_dgv.Rows(i).Cells("QTY").Value.ToString : PA11 = "" : PA12 = "" : PA14 = "" : PA15 = 報價明細表2_dgv.Rows(i).Cells("料號").Value.ToString
  2388. PA16 = 報價明細表2_dgv.Rows(i).Cells("材料係數").Value.ToString : BL = 報價明細表2_dgv.Rows(i).Cells("不計").Value : BL1 = 報價明細表2_dgv.Rows(i).Cells("D1").Value
  2389. BL2 = 報價明細表2_dgv.Rows(i).Cells("D1").Value : BL3 = 報價明細表2_dgv.Rows(i).Cells("D1").Value : BL4 = 報價明細表2_dgv.Rows(i).Cells("D1").Value
  2390. BL5 = 報價明細表2_dgv.Rows(i).Cells("D1").Value : BL6 = 報價明細表2_dgv.Rows(i).Cells("D1").Value : BL7 = 報價明細表2_dgv.Rows(i).Cells("D1").Value
  2391. BL8 = 報價明細表2_dgv.Rows(i).Cells("D1").Value : BL9 = 報價明細表2_dgv.Rows(i).Cells("預設").Value
  2392. 合約報價明細表_最後一筆資料()
  2393. If 選擇項1_tb.Text = "" Then
  2394. SQL_合約報價明細表_最後一筆排序()
  2395. If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "00" : End If : conn.Close()
  2396. NUM1 = Double.Parse(PA1) + 1
  2397. 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
  2398. Else : PA1 = 選擇項2_tb.Text & "-" & i + 1 : End If
  2399. SQL_合約報價明細表_新增資料()
  2400. End If
  2401. Next : Set_合約報價明細表()
  2402. For I As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  2403. MyModule1.計算顯示2() : MyModule1.進度條1()
  2404. If I < 10 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "000" & I
  2405. ElseIf I > 9 And I < 100 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "0" & I
  2406. ElseIf I > 99 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = I
  2407. End If
  2408. Next : 報價明細表存檔() : MyModule1.計算顯示3()
  2409. 全部取消_bt.PerformClick()
  2410. End If
  2411. End Sub
  2412. Private Sub 明細表新增資料()
  2413. 合約報價明細表_最後一筆資料()
  2414. If 選擇項1_tb.Text = "" Then
  2415. SQL_合約報價明細表_最後一筆排序()
  2416. If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "00" : End If : conn.Close()
  2417. NUM1 = Double.Parse(PA1) + 1
  2418. 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
  2419. Else : PA1 = 選擇項2_tb.Text & "-1" : End If
  2420. SQL_合約報價明細表_新增資料()
  2421. If 複製報價 = False Then
  2422. Set_合約報價明細表()
  2423. For I As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  2424. MyModule1.計算顯示2() : MyModule1.進度條1()
  2425. If I < 10 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "00" & I
  2426. ElseIf I > 9 And I < 100 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "0" & I
  2427. ElseIf I > 99 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = I
  2428. End If
  2429. Next : 報價明細表存檔()
  2430. End If
  2431. End Sub
  2432. Private Sub 修改明細表上的材料指定_bt_Click(sender As Object, e As EventArgs) Handles 修改明細表上的材料指定_bt.Click
  2433. If 明細表流水_tb.Text = "" Then
  2434. If 系統語言 = "繁體中文" Then : MsgBox("請先選擇要修改的資料是哪一筆!!") : Else : MsgBox("Silakan pilih data mana yang akan dimodifikasi terlebih dahulu!!") : End If : Else
  2435. If 料號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇物料!!") : Else : MsgBox("Tidak ada bahan yang dipilih!!") : End If : Else
  2436. 資料數 = 報價明細表_dgv.Rows.Count : 進度條視窗.Show()
  2437. 報價明細表存檔() : PA = 合約編號_tb.Text : PA9 = 明細表流水_tb.Text : PA15 = 料號_tb.Text : PA2 = ITEM3_cb.Text : PA5 = 申請數_nud.Value : PA4 = 單位2_tb.Text
  2438. If 帶上歷史單價_ch.Checked = True Then : SQL2 = ", 材料成本單價 = N '" & 歷史單價_tb.Text & "' " : Else : SQL2 = "" : End If
  2439. SQL_合約報價明細表_存檔_料號() : Set_合約報價明細表() : MyModule1.計算顯示3()
  2440. End If
  2441. End If
  2442. End Sub
  2443. Private Sub 排序2_bt_Click(sender As Object, e As EventArgs) Handles 排序2_bt.Click
  2444. If 報價明細表_dgv.Rows.Count > 0 Then
  2445. If 報價明細表_dgv.Columns(0).Visible = False Then : 報價明細表_dgv.Columns(0).Visible = True : Else : 報價明細表_dgv.Columns(0).Visible = False : End If
  2446. End If : Set_合約報價明細表格式()
  2447. End Sub
  2448. '-----------------合約報價明細表表編輯功能-------------------------------------------------------------------------------------------------------------------------------
  2449. Private Sub 明細表編輯()
  2450. If 視窗3_pl.Visible = False Then
  2451. 視窗3_pl.Location = New System.Drawing.Point(123, 58) : 視窗3_pl.Visible = True
  2452. 目前選擇 = "讀取資料" : 座標1_lb.Text = 目前選擇
  2453. X_2_tb.Text = "" : Y_2_tb.Text = "" : NUD_04.Value = 0 : NUD_05.Value = 0 : NUD_06.Value = 0
  2454. 中文大寫2_ch.Checked = True : 中文小寫2_ch.Checked = False : 數字2_ch.Checked = False
  2455. ITEM2_cb.Items.Clear() : ITEM2_cb.Items.Add("") : ITEM2_cb.Items.Add("壹") : ITEM2_cb.Items.Add("貳") : ITEM2_cb.Items.Add("參") : ITEM2_cb.Items.Add("肆")
  2456. ITEM2_cb.Items.Add("伍") : ITEM2_cb.Items.Add("陸") : ITEM2_cb.Items.Add("柒") : ITEM2_cb.Items.Add("捌") : ITEM2_cb.Items.Add("玖") : ITEM2_cb.Items.Add("拾")
  2457. ITEM2_cb.Items.Add("拾壹") : ITEM2_cb.Items.Add("拾貳") : ITEM2_cb.Items.Add("拾參") : ITEM2_cb.Items.Add("拾肆") : ITEM2_cb.Items.Add("拾伍") : ITEM2_cb.Items.Add("拾陸")
  2458. ITEM2_cb.Items.Add("拾柒") : ITEM2_cb.Items.Add("拾捌") : ITEM2_cb.Items.Add("拾玖") : ITEM2_cb.Items.Add("貳拾")
  2459. Set_報價明細表_dgv_利潤表開啟() : 視窗3_pl.BringToFront()
  2460. Else : 視窗3_pl.Visible = False : End If
  2461. End Sub
  2462. Private Sub 中文大寫2_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中文大寫2_ch.Click
  2463. 中文大寫2_ch.Checked = True : 中文小寫2_ch.Checked = False : 數字2_ch.Checked = False
  2464. ITEM2_cb.Items.Clear() : ITEM2_cb.Items.Add("") : ITEM2_cb.Items.Add("壹") : ITEM2_cb.Items.Add("貳") : ITEM2_cb.Items.Add("參") : ITEM2_cb.Items.Add("肆")
  2465. ITEM2_cb.Items.Add("伍") : ITEM2_cb.Items.Add("陸") : ITEM2_cb.Items.Add("柒") : ITEM2_cb.Items.Add("捌") : ITEM2_cb.Items.Add("玖") : ITEM2_cb.Items.Add("拾")
  2466. ITEM2_cb.Items.Add("拾壹") : ITEM2_cb.Items.Add("拾貳") : ITEM2_cb.Items.Add("拾參") : ITEM2_cb.Items.Add("拾肆") : ITEM2_cb.Items.Add("拾伍") : ITEM2_cb.Items.Add("拾陸")
  2467. ITEM2_cb.Items.Add("拾柒") : ITEM2_cb.Items.Add("拾捌") : ITEM2_cb.Items.Add("拾玖") : ITEM2_cb.Items.Add("貳拾")
  2468. End Sub
  2469. Private Sub 中文小寫2_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中文小寫2_ch.Click
  2470. 中文大寫2_ch.Checked = False : 中文小寫2_ch.Checked = True : 數字2_ch.Checked = False
  2471. ITEM2_cb.Items.Clear() : ITEM2_cb.Items.Add("") : ITEM2_cb.Items.Add("一") : ITEM2_cb.Items.Add("二") : ITEM2_cb.Items.Add("三") : ITEM2_cb.Items.Add("四")
  2472. ITEM2_cb.Items.Add("五") : ITEM2_cb.Items.Add("六") : ITEM2_cb.Items.Add("七") : ITEM2_cb.Items.Add("八") : ITEM2_cb.Items.Add("九") : ITEM2_cb.Items.Add("十")
  2473. ITEM2_cb.Items.Add("十一") : ITEM2_cb.Items.Add("十二") : ITEM2_cb.Items.Add("十三") : ITEM2_cb.Items.Add("十四") : ITEM2_cb.Items.Add("十五") : ITEM2_cb.Items.Add("十六")
  2474. ITEM2_cb.Items.Add("十七") : ITEM2_cb.Items.Add("十八") : ITEM2_cb.Items.Add("十九") : ITEM2_cb.Items.Add("二十")
  2475. End Sub
  2476. Private Sub 數字2_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 數字2_ch.Click
  2477. 中文大寫2_ch.Checked = False : 中文小寫2_ch.Checked = False : 數字2_ch.Checked = True
  2478. ITEM2_cb.Items.Clear() : ITEM2_cb.Items.Add("") : For I As Integer = 1 To 30 : ITEM2_cb.Items.Add(I) : Next
  2479. End Sub
  2480. Private Sub 合計項1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合計項1_cb.SelectedIndexChanged
  2481. 內容1_tb.Text = 合計項1_cb.Text : ITEM2_cb.Text = "" : 單位1_tb.Text = "" : If 合計項1_cb.Text <> "" Then : ITEM2_cb.Text = "*" : Else : End If
  2482. End Sub
  2483. Private Sub 明細表編輯_bt_Click(sender As Object, e As EventArgs) Handles 明細表編輯_bt.Click
  2484. 明細表編輯() : 視窗2_pl.Visible = False
  2485. End Sub
  2486. Private Sub NUD_04_Click(sender As Object, e As EventArgs) Handles NUD_04.Click
  2487. 目前選擇 = "讀取資料" : 座標1_lb.Text = 目前選擇
  2488. End Sub
  2489. Private Sub NUD_05_Click(sender As Object, e As EventArgs) Handles NUD_05.Click
  2490. 目前選擇 = "讀取資料" : 座標1_lb.Text = 目前選擇
  2491. End Sub
  2492. Private Sub NUD_06_Click(sender As Object, e As EventArgs) Handles NUD_06.Click
  2493. 目前選擇 = "寫入資料" : 座標1_lb.Text = 目前選擇
  2494. End Sub
  2495. Private Sub 選擇1_lb_Click(sender As Object, e As EventArgs) Handles 選擇1_lb.Click
  2496. 目前選擇 = "寫入資料" : 座標1_lb.Text = 目前選擇
  2497. End Sub
  2498. Private Sub 文字資料輸入2_bt_Click(sender As Object, e As EventArgs) Handles 文字資料輸入2_bt.Click
  2499. If 選擇項1_tb.Text = "" Then
  2500. If 系統語言 = "繁體中文" Then : MsgBox("請先點選要輸入在明細表的哪一行!!") : Else : MsgBox("Silakan pilih di mana Anda ingin menulisnya di daftar terlebih dahulu!!") : End If
  2501. Else
  2502. Dim ZX As Integer = 選擇項1_tb.Text
  2503. 報價明細表_dgv.Rows(ZX).Cells("ITEM").Value = ITEM2_cb.Text : 報價明細表_dgv.Rows(ZX).Cells("REMARKS").Value = 備註1_tb.Text
  2504. 報價明細表_dgv.Rows(ZX).Cells("DESCRIPTION").Value = 內容1_tb.Text : 報價明細表_dgv.Rows(ZX).Cells("UNIT").Value = 單位1_tb.Text : 報價明細表_dgv_自動計算()
  2505. End If
  2506. End Sub
  2507. Private Sub A1_bt_Click(sender As Object, e As EventArgs) Handles A1_bt.Click
  2508. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 1 : Else : 數值4_tb.Text = 1 : End If
  2509. End Sub
  2510. Private Sub A2_bt_Click(sender As Object, e As EventArgs) Handles A2_bt.Click
  2511. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 2 : Else : 數值4_tb.Text = 2 : End If
  2512. End Sub
  2513. Private Sub A3_bt_Click(sender As Object, e As EventArgs) Handles A3_bt.Click
  2514. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 3 : Else : 數值4_tb.Text = 3 : End If
  2515. End Sub
  2516. Private Sub A4_bt_Click(sender As Object, e As EventArgs) Handles A4_bt.Click
  2517. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 4 : Else : 數值4_tb.Text = 4 : End If
  2518. End Sub
  2519. Private Sub A5_bt_Click(sender As Object, e As EventArgs) Handles A5_bt.Click
  2520. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 5 : Else : 數值4_tb.Text = 5 : End If
  2521. End Sub
  2522. Private Sub A6_bt_Click(sender As Object, e As EventArgs) Handles A6_bt.Click
  2523. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 6 : Else : 數值4_tb.Text = 6 : End If
  2524. End Sub
  2525. Private Sub A7_bt_Click(sender As Object, e As EventArgs) Handles A7_bt.Click
  2526. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 7 : Else : 數值4_tb.Text = 7 : End If
  2527. End Sub
  2528. Private Sub A8_bt_Click(sender As Object, e As EventArgs) Handles A8_bt.Click
  2529. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 8 : Else : 數值4_tb.Text = 8 : End If
  2530. End Sub
  2531. Private Sub A9_bt_Click(sender As Object, e As EventArgs) Handles A9_bt.Click
  2532. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 9 : Else : 數值4_tb.Text = 9 : End If
  2533. End Sub
  2534. Private Sub A0_bt_Click(sender As Object, e As EventArgs) Handles A0_bt.Click
  2535. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 0 : Else : 數值4_tb.Text = 0 : End If
  2536. End Sub
  2537. Private Sub 小數點1_bt_Click(sender As Object, e As EventArgs) Handles 小數點1_bt.Click
  2538. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & "." : Else : 數值4_tb.Text = "0." : End If
  2539. End Sub
  2540. '----------------------------數字鍵盤---------------------------------------------------------------------------------------------------------------
  2541. Private Sub 倒退1_bt_Click(sender As Object, e As EventArgs) Handles 倒退1_bt.Click
  2542. Dim SS As Integer
  2543. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = Int(Val(數值4_tb.Text) / 10)
  2544. ElseIf 數值4_tb.Text = "" And 數值3_tb.Text <> "" Then : SS = Len(數值3_tb.Text) : 數值3_tb.Text = Strings.Left(數值3_tb.Text, SS - 1)
  2545. Else : 數值4_tb.Text = "" : End If
  2546. End Sub
  2547. Private Sub 除1_bt_Click(sender As Object, e As EventArgs) Handles 除1_bt.Click
  2548. 等於1_bt.PerformClick()
  2549. If 數值4_tb.Text <> "" And 數值3_tb.Text = "" Then : 數值3_tb.Text = 數值4_tb.Text : 數值4_tb.Text = "" : End If
  2550. If 數值4_tb.Text <> "" And 數值3_tb.Text <> "" Then : 數值3_tb.Text = Val(數值3_tb.Text) / Val(數值4_tb.Text) : 數值4_tb.Text = "" : End If
  2551. 計算式1_tb.Text = "/"
  2552. End Sub
  2553. Private Sub 乘1_bt_Click(sender As Object, e As EventArgs) Handles 乘1_bt.Click
  2554. 等於1_bt.PerformClick()
  2555. If 數值4_tb.Text <> "" And 數值3_tb.Text = "" Then : 數值3_tb.Text = 數值4_tb.Text : 數值4_tb.Text = "" : End If
  2556. If 數值4_tb.Text <> "" And 數值3_tb.Text <> "" Then : 數值3_tb.Text = Val(數值4_tb.Text) * Val(數值3_tb.Text) : 數值4_tb.Text = "" : End If
  2557. 計算式1_tb.Text = "X"
  2558. End Sub
  2559. Private Sub 加1_bt_Click(sender As Object, e As EventArgs) Handles 加1_bt.Click
  2560. 等於1_bt.PerformClick()
  2561. If 數值4_tb.Text <> "" And 數值3_tb.Text = "" Then : 數值3_tb.Text = 數值4_tb.Text : 數值4_tb.Text = "" : End If
  2562. If 數值4_tb.Text <> "" And 數值3_tb.Text <> "" Then : 數值3_tb.Text = Val(數值4_tb.Text) + Val(數值3_tb.Text) : 數值4_tb.Text = "" : End If
  2563. 計算式1_tb.Text = "+"
  2564. End Sub
  2565. Private Sub 減1_bt_Click(sender As Object, e As EventArgs) Handles 減1_bt.Click
  2566. 等於1_bt.PerformClick()
  2567. If 數值4_tb.Text <> "" And 數值3_tb.Text = "" Then : 數值3_tb.Text = 數值4_tb.Text : 數值4_tb.Text = "" : End If
  2568. If 數值4_tb.Text <> "" And 數值3_tb.Text <> "" Then : 數值3_tb.Text = Val(數值3_tb.Text) - Val(數值4_tb.Text) : 數值4_tb.Text = "" : End If
  2569. 計算式1_tb.Text = "-"
  2570. End Sub
  2571. Private Sub 清除1_bt_Click(sender As Object, e As EventArgs) Handles 清除1_bt.Click
  2572. 數值4_tb.Text = "" : 數值3_tb.Text = "" : 計算式1_tb.Text = "" : 結果1_tb.Text = ""
  2573. End Sub
  2574. Private Sub 數值3_tb_TextChanged(sender As Object, e As EventArgs) Handles 數值3_tb.TextChanged
  2575. 結果1_tb.Text = 數值3_tb.Text : If 數值3_tb.Text <> "" Then : NUD_04.Value = 數值3_tb.Text : Else : NUD_04.Value = 0 : End If
  2576. If Val(數值3_tb.Text) > 9.99973000350998E+85 Then
  2577. If 系統語言 = "繁體中文" Then : MsgBox("EFFORT錯誤!結果過大, 請重新點擊AC來重新啟動!!")
  2578. Else : MsgBox("EFFORT error! Hasilnya terlalu besar, silakan klik AC lagi untuk restart!!") : End If
  2579. End If
  2580. End Sub
  2581. Private Sub 計算式1_tb_TextChanged(sender As Object, e As EventArgs) Handles 計算式1_tb.TextChanged
  2582. 計算2_ch.Text = 計算式1_tb.Text
  2583. End Sub
  2584. Private Sub 數值4_tb_TextChanged(sender As Object, e As EventArgs) Handles 數值4_tb.TextChanged
  2585. If 數值4_tb.Text <> "" Then : NUD_05.Value = 數值4_tb.Text : Else : NUD_05.Value = 0 : End If
  2586. End Sub
  2587. Private Sub 結果1_tb_TextChanged(sender As Object, e As EventArgs) Handles 結果1_tb.TextChanged
  2588. If IsNumeric(結果1_tb.Text) Then : If 結果1_tb.Text <> "" Then : NUD_06.Value = 結果1_tb.Text : Else : NUD_06.Value = 0 : End If : End If
  2589. End Sub
  2590. Private Sub 等於1_bt_Click(sender As Object, e As EventArgs) Handles 等於1_bt.Click
  2591. If 數值4_tb.Text <> "" And 數值3_tb.Text <> "" Then
  2592. If 計算式1_tb.Text = "X" Then : 數值3_tb.Text = Val(數值4_tb.Text) * Val(數值3_tb.Text) : 數值4_tb.Text = "" : End If
  2593. If 計算式1_tb.Text = "/" Then : 數值3_tb.Text = Val(數值3_tb.Text) / Val(數值4_tb.Text) : 數值4_tb.Text = "" : End If
  2594. If 計算式1_tb.Text = "+" Then : 數值3_tb.Text = Val(數值4_tb.Text) + Val(數值3_tb.Text) : 數值4_tb.Text = "" : End If
  2595. If 計算式1_tb.Text = "-" Then : 數值3_tb.Text = Val(數值3_tb.Text) - Val(數值4_tb.Text) : 數值4_tb.Text = "" : End If
  2596. ElseIf 數值4_tb.Text <> "" And 數值3_tb.Text = "" Then
  2597. 結果1_tb.Text = 數值4_tb.Text
  2598. Else : End If
  2599. End Sub
  2600. '-----------------合約係數功能-------------------------------------------------------------------------------------------------------------------------------
  2601. Private Sub 係數範本_tb_Click(sender As Object, e As EventArgs) Handles 係數範本_tb.Click
  2602. If 合約_lb.Text = "合約" Then : PA = "" : Set_合約報價係數() : 合約_lb.Text = "範本" : Else
  2603. If 合約編號_tb.Text = "" Then
  2604. If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If
  2605. Else : PA = 合約編號_tb.Text : Set_合約報價係數() : 合約_lb.Text = "合約"
  2606. End If
  2607. End If
  2608. End Sub
  2609. Private Sub 係數項目刪除_bt_Click(sender As Object, e As EventArgs) Handles 係數項目刪除_bt.Click
  2610. If 係數流水號_tb.Text = "" Or 係數合約號_tb.Text = "" Then
  2611. If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇係數項目!!") : Else : MsgBox("Tidak ada item koefisien yang dipilih!!") : End If : Else
  2612. Dim SS As String
  2613. If 系統語言 = "繁體中文" Then : SS = "是否要刪除這筆資料?" : Else : SS = "Apakah Anda ingin menghapus data ini?" : End If
  2614. Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel) '對話框(3)
  2615. If aa = MsgBoxResult.Ok Then
  2616. PA = 係數合約號_tb.Text : PA1 = 係數流水號_tb.Text
  2617. SQL_合約報價係數刪除() : If 系統語言 = "繁體中文" Then : MsgBox("刪除完成!!") : Else : MsgBox("Hapus selesai!!") : End If : Set_合約報價係數()
  2618. 合約_lb.Text = "合約" : 係數合約號_tb.Text = "" : 係數流水號_tb.Text = "" : 係數項目_cb.Text = "" : 係數_nup.Value = 0 : 係數單位_cb.Text = ""
  2619. End If
  2620. End If
  2621. End Sub
  2622. Private Sub 係數項目修改_bt_Click(sender As Object, e As EventArgs) Handles 係數項目修改_bt.Click
  2623. If 係數流水號_tb.Text = "" Or 係數合約號_tb.Text = "" Then
  2624. If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇係數項目!!") : Else : MsgBox("Tidak ada item koefisien yang dipilih!!") : End If : Else
  2625. PA = 係數合約號_tb.Text : PA1 = 係數流水號_tb.Text : SQL_合約報價係數修改()
  2626. If 系統語言 = "繁體中文" Then : MsgBox("修改完成!!") : Else : MsgBox("Modifikasi selesai!!") : End If : Set_合約報價係數() : 合約_lb.Text = "合約"
  2627. 係數合約號_tb.Text = "" : 係數流水號_tb.Text = "" : 係數項目_cb.Text = "" : 係數_nup.Value = 0 : 係數單位_cb.Text = ""
  2628. End If
  2629. End Sub
  2630. Private Sub 係數流水號()
  2631. SQL_合約報價係數_最後一筆資料()
  2632. If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("流水號").ToString, 9)) : Else : EDR = 0 : End If
  2633. conn.Close() : EDR += 1
  2634. If EDR < 10 Then : ESTR = "CF" & "00000000" & EDR : ElseIf EDR > 9 And EDR < 100 Then : ESTR = "CF" & "0000000" & EDR
  2635. ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "CF" & "000000" & EDR : ElseIf EDR > 999 And EDR < 10000 Then : ESTR = "CF" & "00000" & EDR
  2636. ElseIf EDR > 9999 And EDR < 100000 Then : ESTR = "CF" & "0000" & EDR : ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "CF" & "000" & EDR
  2637. ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "CF" & "00" & EDR : ElseIf EDR > 9999999 And EDR < 10000000 Then : ESTR = "CF" & "0" & EDR
  2638. ElseIf EDR > 99999999 Then : ESTR = "CF" & EDR : End If
  2639. PA1 = ESTR
  2640. End Sub
  2641. Private Sub 係數項目新增_bt_Click(sender As Object, e As EventArgs) Handles 係數項目新增_bt.Click
  2642. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If : Else
  2643. If 係數項目_cb.Text = "" Or 係數單位_cb.Text = "" Then
  2644. If 系統語言 = "繁體中文" Then : MsgBox("沒有填寫新增項目或單位!!") : Else : MsgBox("Tidak ada item atau unit baru yang diisi!!") : End If
  2645. Else
  2646. PA = 合約編號_tb.Text : PA2 = 係數項目_cb.Text : PA3 = 係數_nup.Value : PA4 = 係數單位_cb.Text : SQL_合約報價係數資料不重複()
  2647. If dr.Read Then : If 系統語言 = "繁體中文" Then : MsgBox("該係數項目已經存在!!") : Else : MsgBox("Item koefisien sudah ada!!") : End If : Else
  2648. 係數流水號() : SQL_合約報價係數_新增() : If 系統語言 = "繁體中文" Then : MsgBox("新增完成!!") : Else : MsgBox("Tambahkan selesai!!") : End If
  2649. Set_合約報價係數() : 合約_lb.Text = "合約" : 係數合約號_tb.Text = "" : 係數流水號_tb.Text = "" : 係數項目_cb.Text = "" : 係數_nup.Value = 0 : 係數單位_cb.Text = ""
  2650. End If
  2651. End If
  2652. End If
  2653. End Sub
  2654. Private Sub 複製係數範本_tb_Click(sender As Object, e As EventArgs) Handles 複製係數範本_tb.Click
  2655. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If : Else
  2656. 係數範本_tb.PerformClick() : PA = 合約編號_tb.Text
  2657. For i As Integer = 0 To 報價係數_dgv.Rows.Count - 1
  2658. PA2 = 報價係數_dgv("項目", i).Value.ToString : PA3 = 報價係數_dgv("係數", i).Value.ToString : PA4 = 報價係數_dgv("單位", i).Value.ToString
  2659. SQL_合約報價係數資料不重複() : If dr.Read Then : Else : 係數流水號() : SQL_合約報價係數_新增() : End If
  2660. Next : If 系統語言 = "繁體中文" Then : MsgBox("新增完成!!") : Else : MsgBox("Tambahkan selesai!!") : End If : Set_合約報價係數() : 合約_lb.Text = "合約"
  2661. End If
  2662. End Sub
  2663. '-----------------合約試算表功能-------------------------------------------------------------------------------------------------------------------------------
  2664. Private Sub 試算表_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 試算表_cb.SelectedIndexChanged
  2665. PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA3 = 試算表_cb.Text : SQL_合約試算分表重複查詢()
  2666. If dr.Read() Then : 係數_nud.Value = dr("係數") : 表號_tb.Text = dr("表號").ToString : End If : 合約試算控制下拉清單()
  2667. End Sub
  2668. Private Sub 樓層_迴路_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 樓層_迴路_cb.SelectedIndexChanged
  2669. PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA4 = 樓層_迴路_cb.Text : SQL_合約試算控制表重複查詢() : If dr.Read() Then : 表頭_tb.Text = dr("表頭") : End If
  2670. End Sub
  2671. Private Sub 表號_tb_TextChanged(sender As Object, e As EventArgs) Handles 表號_tb.TextChanged
  2672. PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : Set_合約試算控制表_查詢()
  2673. End Sub
  2674. Private Sub 新增試算表_bt_Click(sender As Object, e As EventArgs) Handles 新增試算表_bt.Click
  2675. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If : Else
  2676. PA = 合約編號_tb.Text : PA3 = 試算表_cb.Text : SQL_合約試算分表重複查詢()
  2677. If dr.Read() Then : If 系統語言 = "繁體中文" Then : MsgBox("[試算表]名稱重複,請重新輸入!!") : Else : MsgBox("[Spreadsheet] Nama duplikat, silakan masukkan kembali!!") : End If : Else
  2678. '------生成表號---------------------------------------------------------------------------------------
  2679. Dim 表號 As String : PA = 合約編號_tb.Text
  2680. conn.Close() : SQL_合約試算分表_最後一筆資料()
  2681. If dr.Read() Then : 表號 = dr("表號").ToString : Else : 表號 = "B00" : End If : conn.Close()
  2682. Dim NUM1 As Integer
  2683. NUM1 = Double.Parse(Strings.Right(表號, 2)) + 1
  2684. If NUM1 < 10 Then : 表號 = "B" & "0" & NUM1
  2685. ElseIf NUM1 > 9 And NUM1 < 100 Then : 表號 = "B" & NUM1 : End If
  2686. '------新增試算表---------------------------------------------------------------------------------------
  2687. 表號_tb.Text = 表號 : PA1 = 試算表_cb.Text : PA2 = 表號_tb.Text : SQL_合約試算分表_新增()
  2688. '------重新載入下拉清單---------------------------------------------------------------------------------------
  2689. 合約試算分下拉清單() : If 系統語言 = "繁體中文" Then : MsgBox("新增完成!!") : Else : MsgBox("Tambahkan selesai!!") : End If
  2690. End If : conn.Close()
  2691. End If
  2692. End Sub
  2693. Private Sub 修改試算表名稱_bt_Click(sender As Object, e As EventArgs) Handles 修改試算表名稱_bt.Click
  2694. PA = 合約編號_tb.Text : PA3 = 試算表_cb.Text : SQL_合約試算分表重複查詢()
  2695. If dr.Read() Then : If 系統語言 = "繁體中文" Then : MsgBox("[試算表]名稱重複,請重新輸入!!") : Else : MsgBox("[Spreadsheet] Nama duplikat, silakan masukkan kembali!!") : End If : Else
  2696. PA = 合約編號_tb.Text : PA1 = 試算表_cb.Text : PA2 = 表號_tb.Text : SQL_合約試算分表_試算表修改()
  2697. '------重新載入下拉清單---------------------------------------------------------------------------------------
  2698. 合約試算分下拉清單() : If 系統語言 = "繁體中文" Then : MsgBox("修改完成!!") : Else : MsgBox("Modifikasi selesai!!") : End If
  2699. End If : conn.Close()
  2700. End Sub
  2701. Private Sub 新增物件_bt_Click(sender As Object, e As EventArgs) Handles 新增物件_bt.Click
  2702. If 試算控制表_dgv.Rows.Count = 40 Then
  2703. If 系統語言 = "繁體中文" Then : MsgBox("單一試算表內最多只能建立40個[樓層/迴路]!!") : Else : MsgBox("Maksimal 40 [lantai/sirkuit] dapat dibuat dalam satu spreadsheet!!") : End If : Else
  2704. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If : Else
  2705. PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA4 = 樓層_迴路_cb.Text : SQL_合約試算控制表重複查詢()
  2706. If dr.Read() Then
  2707. If 系統語言 = "繁體中文" Then : MsgBox("[樓層/迴路]名稱重複,請重新輸入!!") : Else : MsgBox("Nama [Lantai/Sirkuit] digandakan, silakan masuk kembali!!") : End If : Else
  2708. '------生成表號---------------------------------------------------------------------------------------
  2709. Dim 表頭 As String : PA = 合約編號_tb.Text : PA2 = 表號_tb.Text
  2710. conn.Close() : SQL_合約試算控制表_最後一筆資料()
  2711. If dr.Read() Then : 表頭 = dr("表頭").ToString : Else : 表頭 = "A00" : End If : conn.Close()
  2712. Dim NUM1 As Integer
  2713. NUM1 = Double.Parse(Strings.Right(表頭, 2)) + 1
  2714. If NUM1 < 10 Then : 表頭 = "A" & "0" & NUM1
  2715. ElseIf NUM1 > 9 And NUM1 < 100 Then : 表頭 = "A" & NUM1 : End If
  2716. '------新增試算表---------------------------------------------------------------------------------------
  2717. 表頭_tb.Text = 表頭 : PA4 = 樓層_迴路_cb.Text : PA2 = 表號_tb.Text : PA5 = 表頭_tb.Text : SQL_合約試算控制表_新增()
  2718. '------重新載入下拉清單---------------------------------------------------------------------------------------
  2719. 合約試算控制下拉清單() : Set_合約試算控制表_查詢() : If 系統語言 = "繁體中文" Then : MsgBox("新增完成!!") : Else : MsgBox("Tambahkan selesai!!") : End If
  2720. End If : conn.Close()
  2721. End If
  2722. End If
  2723. End Sub
  2724. Private Sub 修改樓層_迴圈_bt_Click(sender As Object, e As EventArgs) Handles 修改樓層_迴圈_bt.Click
  2725. PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA4 = 樓層_迴路_cb.Text : SQL_合約試算控制表重複查詢()
  2726. If dr.Read() Then
  2727. If 系統語言 = "繁體中文" Then : MsgBox("[樓層/迴路]名稱重複,請重新輸入!!") : Else : MsgBox("Nama [Lantai/Sirkuit] digandakan, silakan masuk kembali!!") : End If : Else
  2728. PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA4 = 樓層_迴路_cb.Text : PA5 = 表頭_tb.Text : SQL_合約試算控制表_樓層迴路修改()
  2729. '------重新載入下拉清單---------------------------------------------------------------------------------------
  2730. 合約試算控制下拉清單() : Set_合約試算控制表_查詢() : If 系統語言 = "繁體中文" Then : MsgBox("修改完成!!") : Else : MsgBox("Modifikasi selesai!!") : End If
  2731. End If : conn.Close()
  2732. End Sub
  2733. Private Sub 材料加入1_bt_Click(sender As Object, e As EventArgs) Handles 材料加入1_bt.Click
  2734. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If : Else
  2735. If 樓層_迴路_cb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("[樓層/迴路]沒有選擇!!") : Else : MsgBox("[lantai/sirkuit] tidak dipilih!!") : End If : Else
  2736. If 料號1_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇物料!!") : Else : MsgBox("Tidak ada bahan yang dipilih!!") : End If : Else
  2737. 存檔() : PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA6 = 料號1_tb.Text : SQL_合約試算明細表重複查詢()
  2738. If dr.Read() Then
  2739. If 系統語言 = "繁體中文" Then : MsgBox("要加入試算表的物料重複,請重新輸入!!")
  2740. Else : MsgBox("Untuk menambahkan duplikat item ke neraca saldo, silakan masukkan kembali!!") : End If
  2741. Else : conn.Close() : SQL_合約試算明細表_新增物料() : Set_試算明細表() : End If : conn.Close()
  2742. End If
  2743. End If
  2744. End If
  2745. End Sub
  2746. Private Sub 直接輸入_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 直接輸入_ch.Click
  2747. 直接輸入_ch.Checked = True : 使用計算機_ch.Checked = False
  2748. If 直接輸入_ch.Checked = False And 使用計算機_ch.Checked = True Then : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnF2
  2749. Else : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnEnter : End If
  2750. End Sub
  2751. Private Sub 使用計算機_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 使用計算機_ch.Click
  2752. 直接輸入_ch.Checked = False : 使用計算機_ch.Checked = True
  2753. If 直接輸入_ch.Checked = False And 使用計算機_ch.Checked = True Then : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnF2
  2754. Else : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnEnter : End If
  2755. End Sub
  2756. Private Sub 存檔()
  2757. If 合約編號_tb.Text = "" Or 表號_tb.Text = "" Then
  2758. If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If
  2759. Else
  2760. PA = 合約編號_tb.Text : PA1 = 表號_tb.Text
  2761. For i As Integer = 0 To 試算表_dgv.Rows.Count - 1
  2762. 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
  2763. 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
  2764. 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
  2765. 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
  2766. 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
  2767. 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
  2768. 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
  2769. 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
  2770. 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
  2771. 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
  2772. PA41 = 試算表_dgv.Rows(i).Cells(42).Value : BL1 = 試算表_dgv.Rows(i).Cells(43).Value : PA42 = 試算表_dgv.Rows(i).Cells(44).Value
  2773. SQL_合約試算明細表_修改()
  2774. Next i
  2775. End If
  2776. End Sub
  2777. Private Sub 存檔_bt_Click(sender As Object, e As EventArgs) Handles 存檔_bt.Click
  2778. 存檔() : If 系統語言 = "繁體中文" Then : MsgBox("存檔完成!!") : Else : MsgBox("Arsip selesai!!") : End If
  2779. End Sub
  2780. Private Sub 搜尋_bt_Click(sender As Object, e As EventArgs) Handles 搜尋_bt.Click
  2781. If 系統語言 = "繁體中文" Then : PA = InputBox("請輸入關鍵字!!") : Else : PA = InputBox("Silakan masukkan kata kunci!!") : End If
  2782. '------對話框(2)-----------
  2783. If PA = "" Then : Else : Set_DGV1載入前設定() : SQL_建築物料請購單申請_物料清單三() : Set_DG1載入後設定() : 料號1_tb.Text = "" : End If
  2784. End Sub
  2785. Private Sub 刪除1_bt_Click(sender As Object, e As EventArgs) Handles 刪除1_bt.Click
  2786. Dim SS As String
  2787. If 系統語言 = "繁體中文" Then : SS = "是否要刪除這筆資料?" : Else : SS = "Apakah Anda ingin menghapus data ini?" : End If
  2788. Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel)
  2789. If aa = MsgBoxResult.Ok Then
  2790. PA = 合約編號_tb.Text : PA1 = 表號_tb.Text : PA43 = 料號1_tb.Text : PA2 = 表號_tb.Text : SQL_合約試算明細表_刪除()
  2791. If 系統語言 = "繁體中文" Then : MsgBox("刪除完成!!") : Else : MsgBox("Hapus selesai!!") : End If : Set_試算明細表()
  2792. End If
  2793. End Sub
  2794. '-----------------預估利潤存檔-------------------------------------------------------------------------------------------------------------------------------
  2795. Private Sub 預估利潤存檔()
  2796. If 預估利潤_tb.Text = "" Or 預估利潤_tb.Text = "0" Or 利潤比3_tb.Text = "0 %" Then : Else
  2797. If 預估工資總成本_tb.Text = "" Then : 預估工資總成本_tb.Text = "0" : End If : If 預估工資總報價_tb.Text = "" Then : 預估工資總報價_tb.Text = "0" : End If
  2798. If 利潤比1_tb.Text = "" Then : 利潤比1_tb.Text = "0 %" : End If : If 預估材料總成本_tb.Text = "" Then : 預估材料總成本_tb.Text = "0" : End If
  2799. If 預估材料總報價_tb.Text = "" Then : 預估材料總報價_tb.Text = "0" : End If : If 利潤比2_tb.Text = "" Then : 利潤比2_tb.Text = "0 %" : End If
  2800. If 總成本_tb.Text = "" Then : 總成本_tb.Text = "0" : End If : If 總報價_tb.Text = "" Then : 總報價_tb.Text = "0" : End If
  2801. If 利潤比3_tb.Text = "" Then : 利潤比3_tb.Text = "0 %" : End If : If 利潤比4_tb.Text = "" Then : 利潤比4_tb.Text = "0 %" : End If
  2802. If 預估利潤_tb.Text = "" Then : 預估利潤_tb.Text = "0" : End If
  2803. PA37 = 預估工資總成本_tb.Text : PA38 = 預估工資總報價_tb.Text : PA39 = Replace(Replace(利潤比1_tb.Text, " ", ""), "%", "")
  2804. PA40 = 預估材料總成本_tb.Text : PA41 = 預估材料總報價_tb.Text : PA42 = Replace(Replace(利潤比2_tb.Text, " ", ""), "%", "") : PA47 = 預估利潤_tb.Text
  2805. PA43 = 總成本_tb.Text : PA44 = 總報價_tb.Text : PA45 = Replace(Replace(利潤比3_tb.Text, " ", ""), "%", "") : PA46 = Replace(Replace(利潤比4_tb.Text, " ", ""), "%", "")
  2806. SQL_合約控制表預估利潤存檔()
  2807. End If
  2808. End Sub
  2809. '---------------------其他雜項功能--------------------------------------------------------------------------------------------------------------------------
  2810. Private Sub 彙總存檔_bt_Click(sender As Object, e As EventArgs) Handles 彙總存檔_bt.Click
  2811. PA = 合約編號_tb.Text : 預估利潤存檔() : If 系統語言 = "繁體中文" Then : MsgBox("存檔完成!!") : Else : MsgBox("Arsip selesai!!") : End If
  2812. End Sub
  2813. Private Sub 中文大寫3_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中文大寫3_ch.Click
  2814. 中文大寫3_ch.Checked = True : 中文小寫3_ch.Checked = False
  2815. ITEM4_cb.Items.Clear() : ITEM4_cb.Items.Add("") : ITEM4_cb.Items.Add("壹") : ITEM4_cb.Items.Add("貳") : ITEM4_cb.Items.Add("參") : ITEM4_cb.Items.Add("肆")
  2816. ITEM4_cb.Items.Add("伍") : ITEM4_cb.Items.Add("陸") : ITEM4_cb.Items.Add("柒") : ITEM4_cb.Items.Add("捌") : ITEM4_cb.Items.Add("玖") : ITEM4_cb.Items.Add("拾")
  2817. ITEM4_cb.Items.Add("拾壹") : ITEM4_cb.Items.Add("拾貳") : ITEM4_cb.Items.Add("拾參") : ITEM4_cb.Items.Add("拾肆") : ITEM4_cb.Items.Add("拾伍") : ITEM4_cb.Items.Add("拾陸")
  2818. ITEM4_cb.Items.Add("拾柒") : ITEM4_cb.Items.Add("拾捌") : ITEM4_cb.Items.Add("拾玖") : ITEM4_cb.Items.Add("貳拾")
  2819. End Sub
  2820. Private Sub 中文小寫3_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中文小寫3_ch.Click
  2821. 中文大寫3_ch.Checked = False : 中文小寫3_ch.Checked = True
  2822. ITEM4_cb.Items.Clear() : ITEM4_cb.Items.Add("") : ITEM4_cb.Items.Add("一") : ITEM4_cb.Items.Add("二") : ITEM4_cb.Items.Add("三") : ITEM4_cb.Items.Add("四")
  2823. ITEM4_cb.Items.Add("五") : ITEM4_cb.Items.Add("六") : ITEM4_cb.Items.Add("七") : ITEM4_cb.Items.Add("八") : ITEM4_cb.Items.Add("九") : ITEM4_cb.Items.Add("十")
  2824. ITEM4_cb.Items.Add("十一") : ITEM4_cb.Items.Add("十二") : ITEM4_cb.Items.Add("十三") : ITEM4_cb.Items.Add("十四") : ITEM4_cb.Items.Add("十五") : ITEM4_cb.Items.Add("十六")
  2825. ITEM4_cb.Items.Add("十七") : ITEM4_cb.Items.Add("十八") : ITEM4_cb.Items.Add("十九") : ITEM4_cb.Items.Add("二十")
  2826. End Sub
  2827. Private Sub 物料_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 物料_ch.Click
  2828. 物料_ch.Checked = True : BOM_ch.Checked = False : 合約_ch.Checked = False
  2829. 物料_p.Visible = True : BOM_p.Visible = False : 合約_p.Visible = False
  2830. End Sub
  2831. Private Sub BOM_ch_CheckedChanged(sender As Object, e As EventArgs) Handles BOM_ch.Click
  2832. 物料_ch.Checked = False : BOM_ch.Checked = True : 合約_ch.Checked = False
  2833. 物料_p.Visible = False : BOM_p.Visible = True : 合約_p.Visible = False
  2834. End Sub
  2835. Private Sub 合約_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 合約_ch.Click
  2836. 物料_ch.Checked = False : BOM_ch.Checked = False : 合約_ch.Checked = True
  2837. 物料_p.Visible = False : BOM_p.Visible = False : 合約_p.Visible = True
  2838. End Sub
  2839. Private Sub 合約編號1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合約編號1_cb.SelectedIndexChanged
  2840. 條件選擇 = 合約編號1_cb.Text : Set_合約清單()
  2841. End Sub
  2842. Private Sub 工程期1_ch_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 工程期1_ch.SelectedIndexChanged
  2843. 條件選擇 = 合約編號1_cb.Text : Set_合約清單()
  2844. End Sub
  2845. Private Sub 規格顯示修改_bt_Click(sender As Object, e As EventArgs) Handles 規格顯示修改_bt.Click
  2846. 利潤表_ch.Checked = False : Set_報價明細表_dgv_利潤表關閉()
  2847. If 報價明細表_dgv.Columns(43).Visible = False Then : For I As Integer = 43 To 50 : 報價明細表_dgv.Columns(I).Visible = True : Next
  2848. ElseIf 報價明細表_dgv.Columns(43).Visible = True Then : For I As Integer = 43 To 50 : 報價明細表_dgv.Columns(I).Visible = False : Next : End If
  2849. Set_合約報價明細表格式()
  2850. End Sub
  2851. Private Sub 合約編號清單_bt_Click(sender As Object, e As EventArgs) Handles 合約編號清單_bt.Click
  2852. If 合約_dgv.Rows.Count > 2999 Then
  2853. If 系統語言 = "繁體中文" Then : MsgBox("清單數量超過3000個,清通知系統管理員修改程式!!")
  2854. Else : MsgBox("Jumlah daftar melebihi 3000, dan administrator sistem diberitahu untuk memodifikasi program!!") : End If : Else
  2855. For I As Integer = 0 To 3000 : PPBB(I) = "" : Next
  2856. For I As Integer = 0 To 合約_dgv.Rows.Count - 1 : PPBB(I) = 合約_dgv("合約編號", I).Value.ToString : NN1 = I : Next
  2857. 下拉清單_1.ShowDialog()
  2858. For I As Integer = 0 To 合約_dgv.Rows.Count - 1 : If PPAA = 合約_dgv("合約編號", I).Value.ToString Then : 選取位置 = I : Exit For : End If : Next : 合約讀取()
  2859. End If
  2860. End Sub
  2861. Private Sub 縮放_bt_Click_1(sender As Object, e As EventArgs) Handles 縮放_bt.Click
  2862. If 空間1.Visible = True Then
  2863. A3 = 空間2.Size.Width : B3 = 空間2.Size.Height
  2864. 空間1.Visible = False : 空間2.Location = New System.Drawing.Point(A1, B2) : 空間2.Size = New System.Drawing.Point((A2 - A1) + A3, B3)
  2865. Else
  2866. HX_PGS_ERP_SYS.WindowState = 2 : 空間1.Visible = True : 空間2.Location = New System.Drawing.Point(A2, B2) : 空間2.Size = New System.Drawing.Point(A3, B3)
  2867. If 物料_ch.Checked = True Then : 物料_p.Visible = True : BOM_p.Visible = False : 合約_p.Visible = False
  2868. ElseIf BOM_ch.Checked = True Then : 物料_p.Visible = False : BOM_p.Visible = True : 合約_p.Visible = False
  2869. ElseIf 合約_ch.Checked = True Then : 物料_p.Visible = False : BOM_p.Visible = False : 合約_p.Visible = True : End If
  2870. End If
  2871. End Sub
  2872. Private Sub 新建_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 新建_ch.Click
  2873. 新建_ch.Checked = True : 改版_ch.Checked = False : 轉移_ch.Checked = False
  2874. 合約編號_n_cb.Text = "" : 合約編號1_n_tb.Text = "" : 合約編號2_n_tb.Text = "" : 合約編號3_n_tb.Text = ""
  2875. 合約編號_n_cb.Enabled = True : 合約編號1_n_tb.Enabled = True : 合約編號2_n_tb.Enabled = True
  2876. 新建_ch.ForeColor = Color.Red : 改版_ch.ForeColor = Color.Black : 轉移_ch.ForeColor = Color.Black
  2877. End Sub
  2878. Private Sub 改版_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 改版_ch.Click
  2879. 新建_ch.Checked = False : 改版_ch.Checked = True : 轉移_ch.Checked = False
  2880. 合約編號_o_cb.Text = 合約編號_cb.Text : 合約編號_n_cb.Text = 合約編號_cb.Text : 合約編號1_o_tb.Text = 合約編號1_tb.Text : 合約編號1_n_tb.Text = 合約編號1_tb.Text
  2881. 合約編號2_o_tb.Text = 合約編號2_tb.Text : 合約編號2_n_tb.Text = 合約編號2_tb.Text : 合約編號3_o_tb.Text = 合約編號3_tb.Text : 合約編號3_n_tb.Text = ""
  2882. 合約編號_n_cb.Enabled = False : 合約編號1_n_tb.Enabled = False : 合約編號2_n_tb.Enabled = True
  2883. 新建_ch.ForeColor = Color.Black : 改版_ch.ForeColor = Color.Red : 轉移_ch.ForeColor = Color.Black
  2884. End Sub
  2885. Private Sub 轉移_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 轉移_ch.Click
  2886. 新建_ch.Checked = False : 改版_ch.Checked = False : 轉移_ch.Checked = True
  2887. 合約編號_o_cb.Text = 合約編號_cb.Text : 合約編號_n_cb.Text = 合約編號_cb.Text : 合約編號1_o_tb.Text = 合約編號1_tb.Text : 合約編號1_n_tb.Text = 合約編號1_tb.Text
  2888. 合約編號2_o_tb.Text = 合約編號2_tb.Text : 合約編號2_n_tb.Text = 合約編號2_tb.Text : 合約編號3_o_tb.Text = 合約編號3_tb.Text : 合約編號3_n_tb.Text = ""
  2889. 合約編號_n_cb.Enabled = False : 合約編號1_n_tb.Enabled = False : 合約編號2_n_tb.Enabled = True
  2890. 新建_ch.ForeColor = Color.Black : 改版_ch.ForeColor = Color.Black : 轉移_ch.ForeColor = Color.Red
  2891. End Sub
  2892. Private Sub 啟用批量出貨_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 啟用批量選擇_ch.Click
  2893. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  2894. 報價明細表_dgv.Rows(i).Cells("S").Value = False : 報價明細表_dgv.Rows(i).DefaultCellStyle.ForeColor = Color.Black
  2895. Next
  2896. End Sub
  2897. Private Sub 查閱文件_bt_Click(sender As Object, e As EventArgs) Handles 查閱文件_bt.Click
  2898. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If : Else
  2899. If 簽回檔 = False Then
  2900. If 系統語言 = "繁體中文" Then : MsgBox("該合約還沒有建立報價簽回文件!!") : Else : MsgBox("Kutipan kontrak tanpa tanda tangan pemilik di file!!") : End If : Else
  2901. PA1 = 合約編號_tb.Text : PA2 = "報價" : 文件查閱視窗.ShowDialog()
  2902. End If
  2903. End If
  2904. End Sub
  2905. Private Sub 詳細資料1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 詳細資料1_ch.Click
  2906. If 詳細資料1_ch.Checked = True Then : 詳細資料1_ch.Checked = True : Else : 詳細資料1_ch.Checked = False : End If : Set_BOM表明細()
  2907. End Sub
  2908. Private Sub 詳細資料_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 詳細資料_ch.Click
  2909. If 詳細資料_ch.Checked = True Then : 詳細資料_ch.Checked = True : Else : 詳細資料_ch.Checked = False : End If : Set_合約報價明細表1()
  2910. End Sub
  2911. Private Sub 詳細資料2_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 詳細資料2_ch.Click
  2912. If 詳細資料2_ch.Checked = True Then : 詳細資料2_ch.Checked = True : Else : 詳細資料2_ch.Checked = False : End If : Set_合約報價明細表()
  2913. End Sub
  2914. Private Sub 詳細資料3_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 詳細資料3_ch.Click
  2915. If 詳細資料3_ch.Checked = True Then : 詳細資料3_ch.Checked = True : Else : 詳細資料3_ch.Checked = False : End If : Set_試算明細表()
  2916. End Sub
  2917. Private Sub 縮放1_bt_Click(sender As Object, e As EventArgs) Handles 縮放1_bt.Click
  2918. If 合約_dgv.Visible = True Then
  2919. AA3 = 空間3.Size.Width : BB3 = 空間3.Size.Height : 合約_dgv.Visible = False
  2920. If 不再動作1 = False Then : 空間3.Location = New System.Drawing.Point(AA1, BB2) : 空間3.Size = New System.Drawing.Point((AA2 - AA1) + AA3, BB3) : End If
  2921. Else
  2922. 合約_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
  2923. End If
  2924. End Sub
  2925. Private Sub 縮放2_bt_Click(sender As Object, e As EventArgs) Handles 縮放2_bt.Click
  2926. Dim NX, NY As Integer : NX = 合約_dgv.Size.Width : NY = 合約_dgv.Size.Height
  2927. If 合約_dgv.Visible = False Then : 縮放1_bt.PerformClick() : End If
  2928. If 放大 = True Then
  2929. 合約_dgv.Size = New System.Drawing.Point(NX - 400, NY) : 放大 = False
  2930. 合約_dgv.Columns("工程名稱_中").Visible = False : 合約_dgv.Columns("審核通過").Visible = False : 合約_dgv.Columns("停止").Visible = False
  2931. Else
  2932. 合約_dgv.Size = New System.Drawing.Point(NX + 400, NY) : 放大 = True
  2933. 合約_dgv.Columns("工程名稱_中").Visible = True : 合約_dgv.Columns("審核通過").Visible = True : 合約_dgv.Columns("停止").Visible = True
  2934. End If
  2935. End Sub
  2936. Private Sub 發送_bt_Click(sender As Object, e As EventArgs) Handles 發送_bt.Click
  2937. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If : Else
  2938. PA37 = 合約種類_cb.Text : PA36 = 合約種類_tb.Text : PA = 合約編號_tb.Text
  2939. PA36 = 客戶名稱_tb.Text : PA35 = 負責人_A_cb.Text : PA34 = 工程地點_tb.Text : PA33 = 客戶地址_tb.Text : PA32 = 工程名稱_中_tb.Text : PA31 = 工程名稱_英_tb.Text
  2940. PA30 = 選擇公司_cb.Text : PA29 = 負責人_B_cb.Text : PA28 = 我司地址_tb.Text : PA27 = NUD3.Value : PA26 = 工程款1_nud.Value : PA25 = 工程款2_nud.Value
  2941. PA24 = 工程款3_nud.Value : PA23 = 工程款4_nud.Value : PA22 = 工程款5_nud.Value : PA21 = 工期_nud.Value : PA20 = 逾期_bt.Text : PA19 = 最高扣款_bt.Text
  2942. PA18 = 逾期_英_bt.Text : PA17 = 最高扣款_英_bt.Text : PA16 = 減價_bt.Text : PA15 = 廠區_中文_tb.Text : PA14 = 頁數_bt.Text : PA12 = 合約種類_cb.Text
  2943. PA13 = Strings.Format(立約日期_dtp.Value, "yyyy/MM/dd") : PA44 = 合約編號2_tb.Text : PA45 = 合約編號3_tb.Text : PA46 = 合約編號1_tb.Text : PA47 = 工程期_ch.Text
  2944. BL1 = False : PA10 = 折讓比例_nud.Value : PA9 = 歸零位數_nud.Value : BL2 = 稅前歸零_ch.Checked : BL3 = 稅後歸零_ch.Checked
  2945. If 美金_ch.Checked = True Then : PA11 = "美金" : ElseIf 台幣_ch.Checked = True Then : PA11 = "台幣"
  2946. ElseIf 人民幣_ch.Checked = True Then : PA11 = "人民幣" : ElseIf 印尼盾_ch.Checked = True Then : PA11 = "印尼盾" : End If
  2947. SQL_合約修改1()
  2948. '---LINE_AUTO 部門主管------------------------------------------------------------------------------------------------------------------------------------------
  2949. PA47 = gUserName : Set_主管清單()
  2950. For i As Integer = 0 To 主管_dgv.Rows.Count - 1
  2951. If 主管_dgv.Rows.Count > 1 Then
  2952. LINE_權限代號 = "CC201" : 發送對象 = 主管_dgv.Rows(i).Cells("Lead").Value.ToString
  2953. 通知變數X = 合約編號_tb.Text & " ][ " & 工程名稱_中_tb.Text : LINE_通知模塊()
  2954. End If
  2955. Next
  2956. End If
  2957. End Sub
  2958. Private Sub 物料圖_pb_Click(sender As Object, e As EventArgs) Handles 物料圖_pb.Click
  2959. If IsNothing(物料圖_pb.Image) = False Then : 圖片傳遞 = 物料圖_pb.Image : 圖片放大視窗.ShowDialog() : End If
  2960. End Sub
  2961. Private Sub 物料圖1_pb_Click(sender As Object, e As EventArgs) Handles 物料圖1_pb.Click
  2962. If IsNothing(物料圖1_pb.Image) = False Then : 圖片傳遞 = 物料圖1_pb.Image : 圖片放大視窗.ShowDialog() : End If
  2963. End Sub
  2964. Private Sub 小間距_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 小間距_ch.Click
  2965. 小間距_ch.Checked = True : 中間距_ch.Checked = False : 中間距_ch.Checked = False : Set_清單1()
  2966. End Sub
  2967. Private Sub 中間距_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中間距_ch.Click
  2968. 小間距_ch.Checked = False : 中間距_ch.Checked = True : 中間距_ch.Checked = False : Set_清單1()
  2969. End Sub
  2970. Private Sub 大間距_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 大間距_ch.Click
  2971. 小間距_ch.Checked = False : 中間距_ch.Checked = False : 中間距_ch.Checked = True : Set_清單1()
  2972. End Sub
  2973. Private Sub 工資_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 工資_ch.Click
  2974. If 工資_ch.Checked = True Then : 工資_ch.Checked = True : Else : 工資_ch.Checked = False : End If
  2975. If 報價明細表_dgv.Columns(8).Visible = False Then : Set_報價明細表_dgv_利潤表關閉() : Else : Set_報價明細表_dgv_利潤表開啟() : End If : Set_合約報價明細表格式()
  2976. End Sub
  2977. Private Sub 材料_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 材料_ch.Click
  2978. If 材料_ch.Checked = True Then : 材料_ch.Checked = True : Else : 材料_ch.Checked = False : End If
  2979. If 報價明細表_dgv.Columns(8).Visible = False Then : Set_報價明細表_dgv_利潤表關閉() : Else : Set_報價明細表_dgv_利潤表開啟() : End If : Set_合約報價明細表格式()
  2980. End Sub
  2981. Private Sub 利潤表_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 利潤表_ch.Click
  2982. If 利潤表_ch.Checked = True Then : 利潤表_ch.Checked = True : Set_報價明細表_dgv_利潤表開啟() : Else : 利潤表_ch.Checked = False : Set_報價明細表_dgv_利潤表關閉() : End If
  2983. Set_合約報價明細表格式()
  2984. End Sub
  2985. Private Sub 合約改版_bt_Click(sender As Object, e As EventArgs) Handles 合約改版_bt.Click
  2986. If 合約編號_tb.Text = "" Then
  2987. If 系統語言 = "繁體中文" Then : MsgBox("請先選擇合約,才能進行改版複製!!") : Else : MsgBox("Silakan pilih kontrak sebelum Anda dapat menyalin versi yang direvisi!!") : End If
  2988. Else
  2989. Dim SS1, SS2, SS3, SS4, SS5 As String
  2990. If 系統語言 = "繁體中文" Then
  2991. SS1 = "合約報價單改版後將發生下列變化,確認下列問題!!"
  2992. SS2 = "1、系統將依照舊版合約報價內容複製出新的合約報價。"
  2993. SS3 = "2、舊版合約報價將停用關閉,不在後續功能中顯示。"
  2994. SS4 = "3、請購、採購、入庫、出庫、工程等系統中與原編號"
  2995. SS5 = " 相連的資料都將歸檔到新的合約編號中。"
  2996. Else
  2997. SS1 = "Perubahan berikut akan terjadi setelah revisi kutipan kontrak, mohon konfirmasi masalah berikut!!"
  2998. SS2 = "1. Sistem akan menyalin kutipan kontrak baru sesuai dengan isi kutipan kontrak lama."
  2999. SS3 = "2. Versi lama dari kutipan kontrak akan dinonaktifkan dan tidak akan ditampilkan dalam fungsi tindak lanjut."
  3000. SS4 = "3. Data yang terkait dengan nomor asli dalam sistem permintaan, pengadaan, penyimpanan, pengiriman, teknik dan sistem lainnya akan diarsipkan dalam nomor kontrak baru."
  3001. SS5 = ""
  3002. End If
  3003. Dim aa As MsgBoxResult = MsgBox(SS1 & vbCrLf & SS2 & vbCrLf & SS3 & vbCrLf & SS4 & vbCrLf & SS5, MsgBoxStyle.OkCancel)
  3004. If aa = MsgBoxResult.Ok Then
  3005. If 視窗4_pl.Visible = False Then
  3006. 新建_ch.Checked = False : 改版_ch.Checked = False : 轉移_ch.Checked = False
  3007. 合約編號_n_cb.Text = "" : 合約編號1_n_tb.Text = "" : 合約編號2_n_tb.Text = "" : 合約編號3_n_tb.Text = ""
  3008. 合約編號_n_cb.Enabled = False : 合約編號1_n_tb.Enabled = False : 合約編號2_n_tb.Enabled = False
  3009. 合約編號_o_cb.Text = 合約編號_cb.Text : 合約編號_n_cb.Text = 合約編號_cb.Text : 合約編號1_o_tb.Text = 合約編號1_tb.Text : 合約編號1_n_tb.Text = 合約編號1_tb.Text
  3010. 合約編號2_o_tb.Text = 合約編號2_tb.Text : 合約編號2_n_tb.Text = 合約編號2_tb.Text : 合約編號3_o_tb.Text = 合約編號3_tb.Text : 合約編號3_n_tb.Text = ""
  3011. 新建_ch.ForeColor = Color.Black : 改版_ch.ForeColor = Color.Black : 轉移_ch.ForeColor = Color.Black
  3012. 視窗4_pl.Location = New System.Drawing.Point(520, 200) : 視窗4_pl.Visible = True : 視窗4_pl.BringToFront()
  3013. Else : 視窗4_pl.Visible = False : End If
  3014. End If
  3015. End If
  3016. End Sub
  3017. Private Sub 複製轉移_bt_Click(sender As Object, e As EventArgs) Handles 複製轉移_bt.Click
  3018. If 新建_ch.Checked = False And 改版_ch.Checked = False And 轉移_ch.Checked = False Then
  3019. If 系統語言 = "繁體中文" Then : MsgBox("請先選擇報價單複製的情況,才能往下運行!!")
  3020. Else : MsgBox("Silakan pilih kasus menyalin kutipan terlebih dahulu, lalu Anda bisa lari ke bawah!!") : End If
  3021. 新建_ch.ForeColor = Color.Red : 改版_ch.ForeColor = Color.Red : 轉移_ch.ForeColor = Color.Red
  3022. Else
  3023. If 合約編號3_n_tb.Text = "" Then
  3024. If 系統語言 = "繁體中文" Then : MsgBox("請先填寫新合約的序號,才能往下運行!!")
  3025. Else : MsgBox("Silakan isi nomor seri kontrak baru sebelum berjalan!!") : End If
  3026. Else
  3027. If 合約編號_n_cb.Text = "" Or 合約編號1_n_tb.Text = "" Or 合約編號2_n_tb.Text = "" Or 合約編號3_n_tb.Text = "" Then
  3028. If 系統語言 = "繁體中文" Then : MsgBox("合約號不完整!!") : Else : MsgBox("Nomor kontrak tidak lengkap!!") : End If
  3029. Else
  3030. Dim 合約編號條件 As Boolean = True
  3031. If 合約編號_n_cb.Text = "" Then
  3032. If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇我方公司!!") : Else : MsgBox("Silakan pilih perusahaan kami!!") : End If : 合約編號條件 = False : End If
  3033. If 合約編號1_n_tb.Text = "" Then
  3034. If 系統語言 = "繁體中文" Then : MsgBox("沒有甲方公司英文縮寫!!") : Else : MsgBox("Silakan masukkan singkatan dari perusahaan Pihak A!!") : End If : 合約編號條件 = False
  3035. Else
  3036. Dim d As Int32
  3037. For index = 0 To 合約編號1_n_tb.Text.Length - 1
  3038. d = Asc(合約編號1_n_tb.Text(index))
  3039. Dim 可能不行 As Boolean = False
  3040. If (d < 65 Or d > 90) Then : 可能不行 = True : End If 'c變數若在65~90是大寫的英文字母
  3041. If 可能不行 = True Then
  3042. If (d < 97 Or d > 122) Then : 可能不行 = True : Else : 可能不行 = False : End If 'c變數若在97~122是小寫的英文字母
  3043. If 可能不行 = True Then '然後查表, c變數若在48~57, 表示它是數字,
  3044. If (d < 48 Or d > 57) Then
  3045. If 系統語言 = "繁體中文" Then : MsgBox("甲方公司簡稱需要英文或是數字,不可以是中文或其他符號!!")
  3046. Else : MsgBox("Singkatan dari perusahaan Pihak A harus dalam bahasa Inggris atau angka, bukan dalam bahasa Cina atau simbol lainnya!!") : End If
  3047. 合約編號條件 = False : Exit For : End If
  3048. End If
  3049. End If
  3050. Next
  3051. End If
  3052. If 合約編號2_n_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有立約日期!!") : Else : MsgBox("Tidak ada tanggal kontrak!!") : End If : 合約編號條件 = False
  3053. End If
  3054. Dim c As Int32 '然後查表, c變數若在48~57, 表示它是數字,
  3055. For index = 0 To 合約編號2_n_tb.Text.Length - 1
  3056. c = Asc(合約編號2_n_tb.Text(index))
  3057. If c < 48 Or c > 57 Then
  3058. If 系統語言 = "繁體中文" Then : MsgBox("立約日期只能是數字!!") : Else : MsgBox("Tanggal perjanjian hanya bisa berupa angka!!") : End If
  3059. 合約編號條件 = False : Exit For : Else
  3060. If Len(合約編號2_n_tb.Text) <> 6 Then
  3061. If 系統語言 = "繁體中文" Then
  3062. MsgBox("立約日期的格式為YYMMDD (年兩位,月兩位,日兩位),數字規格不符!!")
  3063. Else
  3064. MsgBox("Format tanggal kontrak adalah YYMMDD (dua digit untuk tahun, dua digit untuk bulan, dan dua digit untuk hari), dan spesifikasi numerik tidak cocok!!")
  3065. End If
  3066. 合約編號條件 = False : Exit For : End If
  3067. End If
  3068. Next
  3069. If 合約編號3_n_tb.Text = "" Then
  3070. If 系統語言 = "繁體中文" Then : MsgBox("沒有合約序號!!") : Else : MsgBox("Tidak ada nomor kontrak!!") : End If : 合約編號條件 = False
  3071. ElseIf IsNumeric(合約編號3_n_tb.Text) = False Then
  3072. If 系統語言 = "繁體中文" Then : MsgBox("序號只能是數字!!") : Else : MsgBox("Nomor seri hanya bisa berupa angka!!") : End If : 合約編號條件 = False
  3073. End If
  3074. If 合約編號條件 = False Then : Else
  3075. If 轉移_ch.Checked = True Then
  3076. '-----------這裡是以轉移為前提--------------------------------------------------------------------------------------------------------
  3077. PA = 合約編號_n_cb.Text & "-" & 合約編號1_n_tb.Text & " " & 合約編號2_n_tb.Text & "-" & 合約編號3_n_tb.Text : SQL_合約查詢()
  3078. If dr.Read() Then
  3079. If 系統語言 = "繁體中文" Then : MsgBox("系統內已有相同單號,無法直接進行合約號轉移!!")
  3080. Else : MsgBox("Nomor pesanan yang sama sudah ada di sistem, dan nomor kontrak tidak dapat ditransfer secara langsung!!") : End If : Else
  3081. PA17 = 合約編號_tb.Text : PA18 = 合約編號_n_cb.Text & "-" & 合約編號1_n_tb.Text & " " & 合約編號2_n_tb.Text & "-" & 合約編號3_n_tb.Text
  3082. PA19 = 合約編號1_n_tb.Text : PA20 = 合約編號2_n_tb.Text : PA21 = 合約編號3_n_tb.Text : PA22 = 合約編號_n_cb.Text
  3083. SQL_合約編號修改() : 視窗4_pl.Visible = False
  3084. If 系統語言 = "繁體中文" Then : MsgBox("合約複製與資料轉移完成!!") : Else : MsgBox("Duplikasi kontrak dan transfer data selesai!!") : End If
  3085. Set_合約清單()
  3086. End If
  3087. Else
  3088. '-----------這裡是以新建為前提--------------------------------------------------------------------------------------------------------
  3089. PA = 合約編號_n_cb.Text & "-" & 合約編號1_n_tb.Text & " " & 合約編號2_n_tb.Text & "-" & 合約編號3_n_tb.Text : SQL_合約查詢()
  3090. If dr.Read() Then
  3091. If 系統語言 = "繁體中文" Then : MsgBox("系統內已有相同單號,無法用這個號碼生成新的合約!!")
  3092. Else : MsgBox("Nomor pesanan yang sama sudah ada di sistem, dan nomor ini tidak dapat digunakan untuk membuat kontrak baru!!") : End If
  3093. Else
  3094. 資料數 = 報價總表_dgv.Rows.Count + 報價係數_dgv.Rows.Count + (報價明細表_dgv.Rows.Count * 2) + 報價總表_dgv.Rows.Count
  3095. 進度條視窗.Show()
  3096. PA1 = 合約編號_n_cb.Text & "-" & 合約編號1_n_tb.Text & " " & 合約編號2_n_tb.Text & "-" & 合約編號3_n_tb.Text
  3097. PA = 合約編號_tb.Text : PA2 = 合約編號_n_cb.Text : PA3 = 合約編號1_n_tb.Text : PA4 = 合約編號2_n_tb.Text : PA5 = 合約編號3_n_tb.Text
  3098. If 改版_ch.Checked = True Then
  3099. BL1 = True : SQL_合約停用() '-----原合約停用-------------
  3100. SQL_請購單改合約號() '-----請採購合約號變更-------
  3101. '暫無倉儲SQL掛合約號 '-----倉儲合約號變更---------
  3102. SQL_工程系統改合約號() '-----工程合約號變更---------
  3103. For i As Integer = 0 To 圖庫清單_dgv.Rows.Count - 1
  3104. 圖片庫 = 圖庫清單_dgv.Rows(i).Cells("資料庫").Value.ToString : SQL_圖庫系統改合約號() '-----圖庫合約號變更---------
  3105. Next
  3106. ElseIf 新建_ch.Checked = True Then
  3107. BL1 = True : SQL_合約停用()
  3108. End If
  3109. Dim 數量, 位置(20), 總表位置(20) As Integer : Dim 新編號, 舊編號, 連動(20) As String : 數量 = 0
  3110. 新編號 = PA1 : 舊編號 = PA
  3111. PA = 新編號 : 選擇項1_tb.Text = "" : 複製報價 = True
  3112. '-----取出舊總表連動位置--------------------------------------------------------------------
  3113. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  3114. MyModule1.計算顯示2() : MyModule1.進度條1()
  3115. If 報價總表_dgv.Rows(i).Cells("明細連動").Value.ToString() <> "" Then
  3116. 總表位置(數量) = i
  3117. For ii As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  3118. If 報價總表_dgv.Rows(i).Cells("明細連動").Value.ToString() = 報價明細表_dgv.Rows(ii).Cells("流水號").Value.ToString() Then
  3119. 位置(數量) = ii : Exit For
  3120. End If
  3121. Next : 數量 += 1
  3122. End If
  3123. Next
  3124. '-----生成新的報價係數----------------------------------------------------------------------
  3125. For i As Integer = 0 To 報價係數_dgv.Rows.Count - 1
  3126. MyModule1.計算顯示2() : MyModule1.進度條1()
  3127. PA2 = 報價係數_dgv("項目", i).Value.ToString : PA3 = 報價係數_dgv("係數", i).Value.ToString : PA4 = 報價係數_dgv("單位", i).Value.ToString
  3128. SQL_合約報價係數資料不重複() : If dr.Read Then : Else : 係數流水號() : SQL_合約報價係數_新增() : End If
  3129. Next : Set_合約報價係數() : 合約_lb.Text = "合約"
  3130. '-----生成新的合約明細----------------------------------------------------------------------
  3131. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  3132. MyModule1.計算顯示2() : MyModule1.進度條1()
  3133. PA2 = 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString() : PA3 = 報價明細表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString()
  3134. PA4 = 報價明細表_dgv.Rows(i).Cells("UNIT").Value.ToString() : PA5 = 報價明細表_dgv.Rows(i).Cells("QTY").Value.ToString()
  3135. PA6 = 報價明細表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString() : PA7 = 報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString()
  3136. PA8 = 報價明細表_dgv.Rows(i).Cells("REMARKS").Value.ToString()
  3137. PA10 = 報價明細表_dgv.Rows(i).Cells("實際數量").Value.ToString() : PA11 = 報價明細表_dgv.Rows(i).Cells("工資成本單價").Value.ToString()
  3138. PA12 = 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value.ToString() : PA13 = 報價明細表_dgv.Rows(i).Cells("材料成本單價").Value.ToString()
  3139. PA14 = 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value.ToString() : PA15 = 報價明細表_dgv.Rows(i).Cells("料號").Value.ToString()
  3140. PA16 = 報價明細表_dgv.Rows(i).Cells("材料係數").Value.ToString() : BL = 報價明細表_dgv.Rows(i).Cells("不計").Value
  3141. BL1 = 報價明細表_dgv.Rows(i).Cells("D1").Value : BL2 = 報價明細表_dgv.Rows(i).Cells("D2").Value : BL3 = 報價明細表_dgv.Rows(i).Cells("D3").Value
  3142. BL4 = 報價明細表_dgv.Rows(i).Cells("D4").Value : BL5 = 報價明細表_dgv.Rows(i).Cells("D5").Value : BL6 = 報價明細表_dgv.Rows(i).Cells("D6").Value
  3143. BL7 = 報價明細表_dgv.Rows(i).Cells("D7").Value : BL8 = 報價明細表_dgv.Rows(i).Cells("D8").Value : BL9 = 報價明細表_dgv.Rows(i).Cells("預設").Value
  3144. 明細表新增資料()
  3145. Next : 合約編號_tb.Text = 新編號 : Set_合約報價明細表()
  3146. '-----算出新明細連動編號--------------------------------------------------------------------
  3147. For i As Integer = 0 To 數量
  3148. For ii As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  3149. If ii = 位置(i) Then
  3150. 連動(i) = 報價明細表_dgv.Rows(ii).Cells("流水號").Value.ToString() : Exit For
  3151. End If
  3152. Next
  3153. Next
  3154. '-----生成新的合約總表----------------------------------------------------------------------
  3155. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  3156. MyModule1.計算顯示2() : MyModule1.進度條1() : PA = 合約編號_tb.Text
  3157. PA2 = 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString() : PA3 = 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString()
  3158. PA4 = 報價總表_dgv.Rows(i).Cells("UNIT").Value.ToString() : PA5 = 報價總表_dgv.Rows(i).Cells("QTY").Value.ToString()
  3159. PA6 = 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString() : PA7 = 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString()
  3160. PA8 = 報價總表_dgv.Rows(i).Cells("REMARKS").Value.ToString()
  3161. For ii As Integer = 0 To 數量
  3162. If 總表位置(ii) = i Then
  3163. 報價總表_dgv.Rows(i).Cells("明細連動").Value = 連動(ii) : PA10 = 連動(ii) : Exit For
  3164. Else
  3165. PA10 = ""
  3166. End If
  3167. Next
  3168. 合約報價總表_最後一筆資料()
  3169. SQL_合約報價總表_最後一筆排序()
  3170. If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "000" : End If : conn.Close() : NUM1 = Double.Parse(PA1) + 1
  3171. 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
  3172. SQL_合約報價總表_新增資料()
  3173. Next : Set_合約報價總表() : 報價總表_dgv_自動計算()
  3174. '-----生成新的合約控制----------------------------------------------------------------------
  3175. 合約_dgv.Enabled = False : 合約編號2_tb.Enabled = True : 合約編號3_tb.Enabled = True
  3176. If 新建_ch.Checked = True Then : 預設資料1() : End If
  3177. 合約編號_cb.Text = 合約編號_n_cb.Text : 合約編號1_tb.Text = 合約編號1_n_tb.Text : 合約編號2_tb.Text = 合約編號2_n_tb.Text : 合約編號3_tb.Text = 合約編號3_n_tb.Text
  3178. 存檔_tb.PerformClick() : 複製報價 = False
  3179. If 改版_ch.Checked = True Then
  3180. PA = 合約編號_o_cb.Text & "-" & 合約編號1_o_tb.Text & " " & 合約編號2_o_tb.Text & "-" & 合約編號3_o_tb.Text
  3181. SQL_合約控制表讀取()
  3182. If dr.Read Then
  3183. PA1 = dr("報價說明").ToString : PA11 = dr("驗收開始日期").ToString : PA12 = dr("驗收完成日期").ToString
  3184. PA14 = dr("驗收備註").ToString : PA16 = dr("保固地址").ToString : PA18 = dr("結案備註").ToString
  3185. PA19 = dr("工程主管").ToString : PA20 = dr("工地驗收備註").ToString : PA32 = dr("簽回檔圖庫").ToString
  3186. If dr("追加減").ToString = "" Then : PA2 = "0" : Else : PA2 = dr("追加減").ToString : End If
  3187. If dr("結算金額").ToString = "" Then : PA3 = "0" : Else : PA3 = dr("結算金額").ToString : End If
  3188. If dr("已請款").ToString = "" Then : PA4 = "0" : Else : PA4 = dr("已請款").ToString : End If
  3189. If dr("剩餘款").ToString = "" Then : PA5 = "0" : Else : PA5 = dr("剩餘款").ToString : End If
  3190. If dr("預付款").ToString = "" Then : PA6 = "0" : Else : PA6 = dr("預付款").ToString : End If
  3191. If dr("到貨款").ToString = "" Then : PA7 = "0" : Else : PA7 = dr("到貨款").ToString : End If
  3192. If dr("施工款").ToString = "" Then : PA8 = "0" : Else : PA8 = dr("施工款").ToString : End If
  3193. If dr("驗收款").ToString = "" Then : PA9 = "0" : Else : PA9 = dr("驗收款").ToString : End If
  3194. If dr("保留款").ToString = "" Then : PA10 = "0" : Else : PA10 = dr("保留款").ToString : End If
  3195. If dr("保固期限").ToString = "" Then : PA15 = "0" : Else : PA15 = dr("保固期限").ToString : End If
  3196. If dr("預估工資成本").ToString = "" Then : PA21 = "0" : Else : PA21 = dr("預估工資成本").ToString : End If
  3197. If dr("預估工資報價").ToString = "" Then : PA22 = "0" : Else : PA22 = dr("預估工資報價").ToString : End If
  3198. If dr("工資利潤比").ToString = "" Then : PA23 = "0" : Else : PA23 = dr("工資利潤比").ToString : End If
  3199. If dr("預估材料成本").ToString = "" Then : PA24 = "0" : Else : PA24 = dr("預估材料成本").ToString : End If
  3200. If dr("預估材料報價").ToString = "" Then : PA25 = "0" : Else : PA25 = dr("預估材料報價").ToString : End If
  3201. If dr("材料利潤比").ToString = "" Then : PA26 = "0" : Else : PA26 = dr("材料利潤比").ToString : End If
  3202. If dr("總成本").ToString = "" Then : PA27 = "0" : Else : PA27 = dr("總成本").ToString : End If
  3203. If dr("總報價").ToString = "" Then : PA28 = "0" : Else : PA28 = dr("總報價").ToString : End If
  3204. If dr("利潤比1").ToString = "" Then : PA29 = "0" : Else : PA29 = dr("利潤比1").ToString : End If
  3205. If dr("利潤比2").ToString = "" Then : PA30 = "0" : Else : PA30 = dr("利潤比2").ToString : End If
  3206. If dr("預估利潤").ToString = "" Then : PA31 = "0" : Else : PA31 = dr("預估利潤").ToString : End If
  3207. If IsDBNull(dr("驗收結果")) = True Then : PA13 = "False" : Else : PA13 = dr("驗收結果") : End If
  3208. If IsDBNull(dr("合約停止")) = True Then : PA17 = "False" : Else : PA17 = dr("合約停止") : End If
  3209. If IsDBNull(dr("報價簽回")) = True Then : PA33 = "False" : Else : PA33 = dr("報價簽回") : End If
  3210. If IsDBNull(dr("合約簽回")) = True Then : PA34 = "False" : Else : PA34 = dr("合約簽回") : End If
  3211. If IsDBNull(dr("請款簽回")) = True Then : PA35 = "False" : Else : PA35 = dr("請款簽回") : End If
  3212. If IsDBNull(dr("驗收簽回")) = True Then : PA36 = "False" : Else : PA36 = dr("驗收簽回") : End If
  3213. If IsDBNull(dr("保固簽回")) = True Then : PA37 = "False" : Else : PA37 = dr("保固簽回") : End If
  3214. If IsDBNull(dr("報價放行")) = True Then : PA38 = "False" : Else : PA38 = dr("報價放行") : End If
  3215. If IsDBNull(dr("其他文件")) = True Then : PA39 = "False" : Else : PA39 = dr("其他文件") : End If
  3216. End If
  3217. PA = 合約編號_n_cb.Text & "-" & 合約編號1_n_tb.Text & " " & 合約編號2_n_tb.Text & "-" & 合約編號3_n_tb.Text : SQL_合約控制表_改版修正()
  3218. End If
  3219. PA = "" : 視窗4_pl.Visible = False : MyModule1.計算顯示3()
  3220. If 系統語言 = "繁體中文" Then : MsgBox("合約複製與資料轉移完成!!") : Else : MsgBox("Duplikasi kontrak dan transfer data selesai!!") : End If
  3221. Set_合約清單()
  3222. End If
  3223. End If
  3224. End If
  3225. End If
  3226. End If
  3227. End If
  3228. End Sub
  3229. Private Sub 合約編號2_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合約編號2_cb.SelectedIndexChanged
  3230. Set_合約清單1()
  3231. End Sub
  3232. Private Sub 查詢1_bt_Click(sender As Object, e As EventArgs) Handles 查詢1_bt.Click
  3233. If 系統語言 = "繁體中文" Then : MsgBox("功能製作中!!") : Else : MsgBox("sistem dalam pengembangan!!") : End If
  3234. End Sub
  3235. Private Sub 全部選擇_bt_Click(sender As Object, e As EventArgs) Handles 全部選擇_bt.Click
  3236. For i As Integer = 0 To 報價明細表2_dgv.Rows.Count - 1 : 報價明細表2_dgv.Rows(i).Cells("選擇").Value = True : 報價明細表2_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGreen : Next i
  3237. End Sub
  3238. Private Sub 全部取消_bt_Click(sender As Object, e As EventArgs) Handles 全部取消_bt.Click
  3239. For i As Integer = 0 To 報價明細表2_dgv.Rows.Count - 1 : 報價明細表2_dgv.Rows(i).Cells("選擇").Value = False : 報價明細表2_dgv.Rows(i).DefaultCellStyle.BackColor = Color.White : Next i
  3240. End Sub
  3241. '----------------------自創視窗滑鼠拖曳功能---------------------------------------------------------------------------------------------------------
  3242. Dim OldX, OldY As Long : Dim drag As Boolean
  3243. Private Sub 編輯係數_bt_Click(sender As Object, e As EventArgs) Handles 編輯係數_bt.Click
  3244. OY2 = 報價明細表_dgv.Size.Height
  3245. If 視窗1_pl.Visible = False Then : 視窗1_pl.Location = New System.Drawing.Point(425, 245) : 視窗1_pl.Visible = True : 視窗1_pl.BringToFront() : Else : 視窗1_pl.Visible = False : End If
  3246. If OX1 = 報價係數_dgv.Size.Width And OY1 = 報價係數_dgv.Size.Height Then
  3247. 報價係數_dgv.Size = New System.Drawing.Point(OX1, OY1 + OY2) : Else : 報價係數_dgv.Size = New System.Drawing.Point(OX1, OY1) : End If
  3248. End Sub
  3249. Private Sub Cancel_bt_Click(sender As Object, e As EventArgs) Handles Cancel1_bt.Click
  3250. OY2 = 報價明細表_dgv.Size.Height
  3251. If 視窗1_pl.Visible = False Then : 視窗1_pl.Visible = True : 視窗1_pl.BringToFront() : Else : 視窗1_pl.Visible = False : End If
  3252. If OX1 = 報價係數_dgv.Size.Width And OY1 = 報價係數_dgv.Size.Height Then
  3253. 報價係數_dgv.Size = New System.Drawing.Point(OX1, OY1 + OY2) : Else : 報價係數_dgv.Size = New System.Drawing.Point(OX1, OY1) : End If
  3254. End Sub
  3255. Private Sub CanceL2_bt_Click(sender As Object, e As EventArgs) Handles CanceL2_bt.Click
  3256. If 視窗2_pl.Visible = False Then : 視窗2_pl.Visible = True : 視窗2_pl.BringToFront() : Else
  3257. 視窗2_pl.Visible = False : End If
  3258. End Sub
  3259. Private Sub CanceL3_bt_Click(sender As Object, e As EventArgs) Handles CanceL3_bt.Click
  3260. If 視窗3_pl.Visible = False Then : 視窗3_pl.Visible = True : 視窗3_pl.BringToFront() : Else
  3261. 視窗3_pl.Visible = False : End If
  3262. End Sub
  3263. Private Sub CanceL4_bt_Click(sender As Object, e As EventArgs) Handles CanceL4_bt.Click
  3264. If 視窗4_pl.Visible = False Then : 視窗4_pl.Visible = True : 視窗4_pl.BringToFront() : Else
  3265. 視窗4_pl.Visible = False : End If
  3266. End Sub
  3267. Private Sub 視窗1_pl_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗1_pl.MouseDown
  3268. If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If
  3269. End Sub
  3270. Private Sub 視窗1_pl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗1_pl.MouseMove
  3271. If drag Then : 視窗1_pl.Left = 視窗1_pl.Left + e.X - OldX : 視窗1_pl.Top = 視窗1_pl.Top + e.Y - OldY : End If
  3272. End Sub
  3273. Private Sub 視窗1_pl_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗1_pl.MouseUp
  3274. drag = False
  3275. End Sub
  3276. Private Sub 視窗2_pl_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗2_pl.MouseDown
  3277. If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If
  3278. End Sub
  3279. Private Sub 視窗2_pl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗2_pl.MouseMove
  3280. If drag Then : 視窗2_pl.Left = 視窗2_pl.Left + e.X - OldX : 視窗2_pl.Top = 視窗2_pl.Top + e.Y - OldY : End If
  3281. End Sub
  3282. Private Sub 視窗2_pl_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗2_pl.MouseUp
  3283. drag = False
  3284. End Sub
  3285. Private Sub 視窗3_pl_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗3_pl.MouseDown
  3286. If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If
  3287. End Sub
  3288. Private Sub 視窗3_pl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗3_pl.MouseMove
  3289. If drag Then : 視窗3_pl.Left = 視窗3_pl.Left + e.X - OldX : 視窗3_pl.Top = 視窗3_pl.Top + e.Y - OldY : End If
  3290. End Sub
  3291. Private Sub 視窗3_pl_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗3_pl.MouseUp
  3292. drag = False
  3293. End Sub
  3294. Private Sub 視窗4_pl_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗4_pl.MouseDown
  3295. If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If
  3296. End Sub
  3297. Private Sub 視窗4_pl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗4_pl.MouseMove
  3298. If drag Then : 視窗4_pl.Left = 視窗4_pl.Left + e.X - OldX : 視窗4_pl.Top = 視窗4_pl.Top + e.Y - OldY : End If
  3299. End Sub
  3300. Private Sub 視窗4_pl_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗4_pl.MouseUp
  3301. drag = False
  3302. End Sub
  3303. '----------------------列印成excel---------------------------------------------------------------------------------------------------------
  3304. Private Sub 列印成EXCEL_bt_Click(sender As Object, e As EventArgs) Handles 列印成EXCEL_bt.Click
  3305. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If : Else
  3306. XN1 = 0
  3307. xlApp = CType(CreateObject("Excel.Application"), Application)
  3308. xlApp.Visible = True
  3309. xlApp.DisplayAlerts = True
  3310. xlApp.Application.WindowState = xlMaximized
  3311. xlBook = xlApp.Workbooks.Add
  3312. '----------------------------------------------------------------------------------------------------------------------
  3313. xlSheet = NewMethod(xlBook) : xlApp.Sheets(1).Select : xlApp.Sheets(1).Name = "明細表"
  3314. xlBook.Activate() : xlSheet.Activate()
  3315. xlSheet.Cells(2, 1) = "QUOTATION" : xlSheet.Cells(3, 7) = "NO : " & 合約編號_tb.Text
  3316. xlSheet.Cells(3, 1) = "業主名稱 : " & 客戶名稱_tb.Text : xlSheet.Cells(4, 7) = "Date : " & Strings.Format(Today(), "yyyy/MM/dd")
  3317. xlSheet.Cells(4, 1) = "工程項目 : " & 工程名稱_中_tb.Text & vbCrLf & 工程名稱_英_tb.Text
  3318. xlSheet.Cells(5, 1) = "ITEM" : xlSheet.Cells(5, 2) = "DESCRIPTION" : xlSheet.Cells(5, 3) = "UNIT"
  3319. xlSheet.Cells(5, 4) = "Q'TY" : xlSheet.Cells(5, 9) = "REMARKS"
  3320. If 工材分離_ch.Checked = False Then : xlSheet.Cells(5, 5) = "UNIT PRICE" & vbCrLf & "(RP)" : xlSheet.Cells(5, 7) = "AMOUNT" & vbCrLf & "(RP)" : Else
  3321. xlSheet.Cells(5, 5) = "工資報價單價" & vbCrLf & "Hrga satuan penawaran gaji" : xlSheet.Cells(5, 6) = "工資報價復價" & vbCrLf & "Total harga upah"
  3322. xlSheet.Cells(5, 7) = "材料報價單價" & vbCrLf & "Harga satuan kutipan material" : xlSheet.Cells(5, 8) = "材料報價複價" & vbCrLf & "Harga total kuotasi material"
  3323. End If
  3324. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  3325. If 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString() = "*" Then : Else
  3326. xlSheet.Cells(6 + i, 1) = 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString()
  3327. End If
  3328. xlSheet.Cells(6 + i, 2) = 報價明細表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString()
  3329. xlSheet.Cells(6 + i, 3) = 報價明細表_dgv.Rows(i).Cells("UNIT").Value.ToString()
  3330. If CInt(報價明細表_dgv.Rows(i).Cells("QTY").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 4) = "" : Else
  3331. xlSheet.Cells(6 + i, 4) = 報價明細表_dgv.Rows(i).Cells("QTY").Value.ToString() : End If
  3332. xlSheet.Cells(6 + i, 9) = 報價明細表_dgv.Rows(i).Cells("REMARKS").Value.ToString()
  3333. If 工材分離_ch.Checked = False Then
  3334. If CInt(報價明細表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 5) = "" : Else
  3335. xlSheet.Cells(6 + i, 5) = 報價明細表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString() : End If
  3336. If CInt(報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 7) = "" : Else
  3337. xlSheet.Cells(6 + i, 7) = 報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString() : End If
  3338. Else
  3339. If CInt(報價明細表_dgv.Rows(i).Cells("工資報價單價").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 5) = "" : Else
  3340. xlSheet.Cells(6 + i, 5) = 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value.ToString() : End If
  3341. If CInt(報價明細表_dgv.Rows(i).Cells("工資報價後價").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 6) = "" : Else
  3342. xlSheet.Cells(6 + i, 6) = 報價明細表_dgv.Rows(i).Cells("工資報價後價").Value.ToString() : End If
  3343. If CInt(報價明細表_dgv.Rows(i).Cells("材料報價單價").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 7) = "" : Else
  3344. xlSheet.Cells(6 + i, 7) = 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value.ToString() : End If
  3345. If CInt(報價明細表_dgv.Rows(i).Cells("材料報價後價").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 8) = "" : Else
  3346. xlSheet.Cells(6 + i, 8) = 報價明細表_dgv.Rows(i).Cells("材料報價後價").Value.ToString() : End If
  3347. End If
  3348. XN2 = 6 + i
  3349. Next
  3350. AA(xlApp, xlSheet)
  3351. If 合約編號_cb.Text = "HX" Then : CC(xlApp, xlSheet) : Else : DD(xlApp, xlSheet) : End If : FF(xlApp, xlSheet)
  3352. '----------------------------------------------------------------------------------------------------------------------
  3353. xlSheet = NewMethod(xlBook) : xlApp.Sheets(1).Select : xlApp.Sheets(1).Name = "報價單"
  3354. xlBook.Activate() : xlSheet.Activate()
  3355. xlSheet.Cells(2, 1) = "QUOTATION" : xlSheet.Cells(4, 6) = "NO : " & 合約編號_tb.Text
  3356. xlSheet.Cells(4, 1) = "業主名稱 : " & 客戶名稱_tb.Text : xlSheet.Cells(5, 6) = "Date : " & Strings.Format(Today(), "yyyy/MM/dd")
  3357. xlSheet.Cells(5, 1) = "工程項目 : " & 工程名稱_中_tb.Text & vbCrLf & 工程名稱_英_tb.Text
  3358. xlSheet.Cells(6, 1) = "ITEM" : xlSheet.Cells(6, 2) = "DESCRIPTION" : xlSheet.Cells(6, 3) = "UNIT" : xlSheet.Cells(6, 5) = "UNIT PRICE" & vbCrLf & "(RP)"
  3359. xlSheet.Cells(6, 6) = "AMOUNT" & vbCrLf & "(RP)" : xlSheet.Cells(6, 4) = "Q'TY" : xlSheet.Cells(6, 7) = "REMARKS"
  3360. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  3361. If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString() = "*" Or 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString() = "@" Or
  3362. 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString() = "^" Then : Else
  3363. xlSheet.Cells(7 + i, 1) = 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString()
  3364. End If
  3365. xlSheet.Cells(7 + i, 2) = 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString()
  3366. xlSheet.Cells(7 + i, 3) = 報價總表_dgv.Rows(i).Cells("UNIT").Value.ToString()
  3367. If CInt(報價總表_dgv.Rows(i).Cells("QTY").Value.ToString()) = 0 Then : xlSheet.Cells(7 + i, 4) = "" : Else
  3368. xlSheet.Cells(7 + i, 4) = 報價總表_dgv.Rows(i).Cells("QTY").Value.ToString() : End If
  3369. If CInt(報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString()) = 0 Then : xlSheet.Cells(7 + i, 5) = "" : Else
  3370. xlSheet.Cells(7 + i, 5) = 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString() : End If
  3371. If CInt(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString()) = 0 Then : xlSheet.Cells(7 + i, 6) = "" : Else
  3372. xlSheet.Cells(7 + i, 6) = 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString() : End If
  3373. xlSheet.Cells(7 + i, 7) = 報價總表_dgv.Rows(i).Cells("REMARKS").Value.ToString()
  3374. XN1 = 8 + i
  3375. Next
  3376. xlSheet.Cells(XN1 + 1, 1) = "報價說明Offer descriptions:" : xlSheet.Cells(XN1 + 2, 1) = 報價說明_tb.Text
  3377. xlSheet.Cells(XN1 + 3, 1) = "客戶確認 (簽名,蓋章)" : xlSheet.Cells(XN1 + 3, 3) = "核准" : xlSheet.Cells(XN1 + 3, 7) = "經辦人"
  3378. xlSheet.Cells(XN1 + 4, 1) = "Customer confirmation ( signature ) : " : xlSheet.Cells(XN1 + 4, 3) = "Approved : " : xlSheet.Cells(XN1 + 4, 7) = "報價說明Offer descriptions:"
  3379. xlSheet.Cells(XN1 + 5, 7) = gUserName
  3380. xlSheet.Cells(XN1 + 6, 1) = "_________________________________" : xlSheet.Cells(XN1 + 6, 3) = "_________________________________"
  3381. xlSheet.Cells(XN1 + 6, 7) = "_________________________________"
  3382. BB(xlApp, xlSheet)
  3383. If 合約編號_cb.Text = "HX" Then : CC(xlApp, xlSheet) : Else : DD(xlApp, xlSheet) : End If : FF(xlApp, xlSheet)
  3384. '----------------------------------------------------------------------------------------------------------------------
  3385. xlApp.Sheets(3).Delete
  3386. xlSheet.PageSetup.PrintArea = ""
  3387. xlApp.Cells.Select()
  3388. xlApp.Application.WindowState = xlMinimized
  3389. If 系統語言 = "繁體中文" Then : MsgBox("列印完成!!") : Else : MsgBox("cetak selesai!!") : End If
  3390. End If
  3391. End Sub
  3392. Private Shared Function NewMethod(xlBook As Workbook) As Worksheet
  3393. Return CType(xlBook.Worksheets.Add, Worksheet)
  3394. End Function
  3395. Private Sub AA(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  3396. xlSheet.Cells.Select()
  3397. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  3398. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  3399. xlSheet.Range("A2:I2").Select()
  3400. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 14 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  3401. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  3402. xlSheet.Rows("1:1").Select : myExcel.Selection.RowHeight = 95
  3403. xlSheet.Rows("2:2").Select : myExcel.Selection.RowHeight = 30 : xlSheet.Rows("3:3").Select : myExcel.Selection.RowHeight = 20
  3404. xlSheet.Rows("4:4").Select : myExcel.Selection.RowHeight = 35 : xlSheet.Rows("5:5").Select : myExcel.Selection.RowHeight = 65
  3405. xlSheet.Rows("6:" & XN2).Select : myExcel.Selection.RowHeight = 35
  3406. If 工材分離_ch.Checked = True Then
  3407. xlSheet.Range("E5:H6").Select()
  3408. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 8 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  3409. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  3410. End If
  3411. xlSheet.Range("A5:I5").Select()
  3412. With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorAccent1 : .TintAndShade = 0.799981688894314
  3413. .PatternTintAndShade = 0 : End With
  3414. xlSheet.Range("A4").Select()
  3415. With myExcel.Selection : .HorizontalAlignment = xlGeneral : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3416. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  3417. xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 6
  3418. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False
  3419. .ReadingOrder = xlContext : .MergeCells = False : End With
  3420. xlSheet.Columns("C:D").Select : myExcel.Selection.ColumnWidth = 6 : xlSheet.Columns("I:I").Select : myExcel.Selection.ColumnWidth = 40
  3421. xlSheet.Columns("I:I").Select : myExcel.Selection.ColumnWidth = 18.5
  3422. If 工材分離_ch.Checked = False Then
  3423. xlSheet.Columns("G:H").Select : myExcel.Selection.ColumnWidth = 9 : xlSheet.Columns("E:F").Select : myExcel.Selection.ColumnWidth = 9
  3424. xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 50
  3425. Else
  3426. xlSheet.Columns("G:H").Select : myExcel.Selection.ColumnWidth = 13 : xlSheet.Columns("E:F").Select : myExcel.Selection.ColumnWidth = 13
  3427. xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 50
  3428. End If
  3429. xlSheet.Range("A2:I2").Select()
  3430. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3431. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3432. xlSheet.Range("A3:F3").Select()
  3433. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3434. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3435. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3436. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3437. xlSheet.Range("A4:F4").Select()
  3438. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3439. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3440. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3441. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3442. xlSheet.Range("G3:I3").Select()
  3443. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3444. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3445. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3446. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3447. xlSheet.Range("G4:I4").Select()
  3448. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3449. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3450. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3451. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3452. If 工材分離_ch.Checked = False Then
  3453. xlSheet.Range("E5:F5").Select()
  3454. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3455. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3456. xlSheet.Range("G5:H5").Select()
  3457. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3458. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3459. End If
  3460. xlSheet.Range("C5:H5").Select()
  3461. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3462. .ShrinkToFit = False : .ReadingOrder = xlContext : End With
  3463. For i As Integer = 6 To XN2
  3464. xlSheet.Range("E" & i & ":F" & i).Select()
  3465. If 工材分離_ch.Checked = False Then
  3466. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3467. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge : End If
  3468. xlSheet.Range("G" & i & ":H" & i).Select()
  3469. If 工材分離_ch.Checked = False Then
  3470. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3471. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge : End If
  3472. Next
  3473. xlSheet.Range("E6:H" & XN2).Select()
  3474. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3475. .ShrinkToFit = False : .ReadingOrder = xlContext : End With
  3476. myExcel.Selection.NumberFormatLocal = "#,##0_ "
  3477. xlSheet.Range("C6:D" & XN2).Select()
  3478. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3479. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  3480. xlSheet.Range("I6:I" & XN2).Select()
  3481. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3482. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  3483. xlSheet.Range("B6:B" & XN2).Select()
  3484. With myExcel.Selection : .HorizontalAlignment = xlGeneral : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3485. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  3486. xlSheet.Range("A5:I5").Select()
  3487. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  3488. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3489. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3490. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3491. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3492. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3493. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3494. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  3495. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3496. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3497. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3498. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3499. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3500. myExcel.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
  3501. xlSheet.Range("A6:I" & XN2).Select()
  3502. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  3503. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3504. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3505. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3506. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3507. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3508. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3509. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  3510. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3511. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3512. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3513. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3514. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3515. xlSheet.Range("J17").Select() : myExcel.ActiveWindow.DisplayGridlines = False
  3516. xlSheet.Range("A4:F4").Select()
  3517. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False
  3518. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3519. xlSheet.Range("A5:I5").Select()
  3520. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .Orientation = 0
  3521. .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : End With
  3522. xlSheet.Range("A6:I" & XN2).Select()
  3523. With myExcel.Selection : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False
  3524. .ReadingOrder = xlContext : End With
  3525. End Sub
  3526. Private Sub BB(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  3527. xlSheet.Cells.Select()
  3528. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  3529. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  3530. xlSheet.Rows("2:2").Select
  3531. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 14 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  3532. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  3533. xlSheet.Rows("1:1").Select : myExcel.Selection.RowHeight = 95 : xlSheet.Rows("2:2").Select : myExcel.Selection.RowHeight = 30
  3534. xlSheet.Rows("4:4").Select : myExcel.Selection.RowHeight = 20 : xlSheet.Rows("5:5").Select : myExcel.Selection.RowHeight = 35
  3535. xlSheet.Rows("6:6").Select : myExcel.Selection.RowHeight = 40 : xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 6
  3536. xlSheet.Rows("7:" & XN1).Select : myExcel.Selection.RowHeight = 35
  3537. xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 60 : xlSheet.Columns("C:C").Select : myExcel.Selection.ColumnWidth = 6
  3538. xlSheet.Columns("D:D").Select : myExcel.Selection.ColumnWidth = 6 : xlSheet.Columns("E:E").Select : myExcel.Selection.ColumnWidth = 18
  3539. xlSheet.Columns("F:F").Select : myExcel.Selection.ColumnWidth = 18 : xlSheet.Columns("G:G").Select : myExcel.Selection.ColumnWidth = 18.5
  3540. xlSheet.Range("A2:G2").Select()
  3541. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3542. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3543. xlSheet.Range("A4:E4").Select()
  3544. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3545. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3546. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3547. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3548. xlSheet.Range("A5:E5").Select()
  3549. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3550. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3551. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3552. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3553. xlSheet.Range("F4:G4").Select()
  3554. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3555. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3556. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3557. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3558. xlSheet.Range("F5:G5").Select()
  3559. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3560. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3561. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3562. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3563. xlSheet.Range("A6:A" & XN1 - 1).Select()
  3564. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3565. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  3566. xlSheet.Range("C6:D" & XN1 - 1).Select()
  3567. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3568. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  3569. xlSheet.Range("E6:F6").Select()
  3570. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3571. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  3572. xlSheet.Range("A6:G6").Select()
  3573. With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorLight2
  3574. .TintAndShade = 0.799981688894314 : .PatternTintAndShade = 0 : End With
  3575. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  3576. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3577. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3578. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3579. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3580. With myExcel.Selection.Borders(xlInsideVertical) : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3581. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3582. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  3583. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3584. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3585. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3586. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3587. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3588. myExcel.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
  3589. xlSheet.Range("A7:G" & XN1 - 1).Select()
  3590. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  3591. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3592. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3593. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3594. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3595. With myExcel.Selection.Borders(xlInsideVertical) : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3596. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3597. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  3598. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3599. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3600. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3601. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3602. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3603. xlSheet.Range("A" & XN1 + 1 & ":G" & XN1 + 1).Select()
  3604. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3605. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3606. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3607. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3608. xlSheet.Range("A" & XN1 + 2 & ":G" & XN1 + 2).Select()
  3609. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3610. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3611. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3612. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3613. xlSheet.Range("A" & XN1 + 1 & ":G" & XN1 + 2).Select()
  3614. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  3615. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3616. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3617. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3618. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3619. myExcel.Selection.Borders(xlInsideVertical).LineStyle = xlNone : myExcel.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
  3620. xlSheet.Rows(XN1 + 2 & ":" & XN1 + 2).Select : myExcel.Selection.RowHeight = 100
  3621. xlSheet.Rows(XN1 + 3 & ":" & XN1 + 3).Select : myExcel.Selection.RowHeight = 30
  3622. With myExcel.Selection : .HorizontalAlignment = xlGeneral : .VerticalAlignment = xlBottom : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3623. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  3624. xlSheet.Rows(XN1 + 5 & ":" & XN1 + 5).Select : myExcel.Selection.RowHeight = 80
  3625. xlSheet.Range("H17").Select() : myExcel.ActiveWindow.DisplayGridlines = False
  3626. xlSheet.Range("E7:F" & XN1 - 1).Select() : myExcel.Selection.NumberFormatLocal = "#,##0_ "
  3627. xlSheet.Range("A5:E5").Select()
  3628. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False
  3629. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3630. xlSheet.Range("A6:G6").Select()
  3631. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3632. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  3633. xlSheet.Range("A7:G" & XN1 - 1).Select()
  3634. With myExcel.Selection : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False
  3635. .ReadingOrder = xlContext : .MergeCells = False : End With
  3636. xlSheet.Range("A" & XN1 + 2 & ":G" & XN1 + 2).Select()
  3637. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlTop : .WrapText = True : .Orientation = 0 : .AddIndent = False
  3638. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3639. End Sub
  3640. Private Sub CC(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  3641. Clipboard.SetDataObject(PictureBox1.Image)
  3642. xlSheet.Range("A1").Select()
  3643. myExcel.ActiveSheet.Pictures.Paste.Select
  3644. myExcel.Selection.ShapeRange.Height = 93
  3645. myExcel.Selection.ShapeRange.IncrementLeft(0)
  3646. myExcel.Selection.ShapeRange.IncrementTop(0)
  3647. End Sub
  3648. Private Sub DD(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  3649. Clipboard.SetDataObject(PictureBox2.Image)
  3650. xlSheet.Range("A1").Select()
  3651. myExcel.ActiveSheet.Pictures.Paste.Select
  3652. myExcel.Selection.ShapeRange.Height = 93
  3653. myExcel.Selection.ShapeRange.IncrementLeft(0)
  3654. myExcel.Selection.ShapeRange.IncrementTop(0)
  3655. End Sub
  3656. Private Sub FF(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  3657. myExcel.Application.PrintCommunication = False : With myExcel.ActiveSheet.PageSetup : .PrintTitleRows = "$1:$5" : .PrintTitleColumns = "" : End With
  3658. myExcel.Application.PrintCommunication = True : myExcel.ActiveSheet.PageSetup.PrintArea = "" : myExcel.Application.PrintCommunication = False
  3659. With myExcel.ActiveSheet.PageSetup : .LeftHeader = "" : .CenterHeader = "" : .RightHeader = "" : .LeftFooter = "" : .CenterFooter = "第 &P 頁,共 &N 頁" : .RightFooter = ""
  3660. .LeftMargin = myExcel.Application.InchesToPoints(0.236220472440945) : .RightMargin = myExcel.Application.InchesToPoints(0.236220472440945)
  3661. .TopMargin = myExcel.Application.InchesToPoints(0.748031496062992) : .BottomMargin = myExcel.Application.InchesToPoints(0.748031496062992)
  3662. .HeaderMargin = myExcel.Application.InchesToPoints(0.31496062992126) : .FooterMargin = myExcel.Application.InchesToPoints(0.31496062992126)
  3663. .PrintHeadings = False : .PrintGridlines = False : .CenterHorizontally = True : .CenterVertically = False : .Draft = False
  3664. .FirstPageNumber = xlAutomatic : .BlackAndWhite = False : .Zoom = False : .FitToPagesWide = 1 : .FitToPagesTall = False : .OddAndEvenPagesHeaderFooter = False
  3665. .DifferentFirstPageHeaderFooter = False : .ScaleWithDocHeaderFooter = True : .AlignMarginsHeaderFooter = True
  3666. .EvenPage.LeftHeader.Text = "" : .EvenPage.CenterHeader.Text = "" : .EvenPage.RightHeader.Text = "" : .EvenPage.LeftFooter.Text = ""
  3667. .EvenPage.CenterFooter.Text = "" : .EvenPage.RightFooter.Text = "" : .FirstPage.LeftHeader.Text = "" : .FirstPage.CenterHeader.Text = ""
  3668. .FirstPage.RightHeader.Text = "" : .FirstPage.LeftFooter.Text = "" : .FirstPage.CenterFooter.Text = "" : .FirstPage.RightFooter.Text = ""
  3669. End With : myExcel.Application.PrintCommunication = True
  3670. End Sub
  3671. End Class