Нет описания
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

合約報價單.vb 350KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806
  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, ds7, ds8, ds9, ds13, ds10, ds11, 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 人民幣匯率, 美金匯率, 印尼匯率, 匯率1 As Double
  17. Dim xlApp As Application : Dim xlBook As Workbook : Dim xlSheet As Worksheet
  18. Private Sub Set_主管清單()
  19. Dim ds1 As New DataSet : 主管_dgv.DataSource = Nothing : ds1.Clear()
  20. 主管_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  21. 主管_dgv.ColumnHeadersHeight = 25
  22. 主管_dgv.AllowUserToAddRows = False
  23. 主管_dgv.RowTemplate.Height = 45
  24. SQL_系統組織結構圖_單位主管1()
  25. da.Fill(ds1) : 主管_dgv.DataSource = ds1.Tables(0) : conn.Close()
  26. 主管_dgv.Columns(0).FillWeight = 100 : 主管_dgv.Columns(1).FillWeight = 50 : 主管_dgv.Columns(2).FillWeight = 150
  27. End Sub
  28. Private Sub Set_合約清單1()
  29. Dim ds6 As New DataSet
  30. 合約1_dgv.DataSource = Nothing : ds6.Clear()
  31. 合約1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  32. 合約1_dgv.ColumnHeadersHeight = 25 : 合約1_dgv.AllowUserToAddRows = False
  33. PA = 關鍵字搜尋1_tb.Text : PA46 = 合約編號2_cb.Text
  34. SQL_合約清單_報價用()
  35. da.Fill(ds6) : 合約1_dgv.DataSource = ds6.Tables(0) : conn.Close()
  36. 合約1_dgv.Columns(0).FillWeight = 130 : 合約1_dgv.Columns("工程名稱_中").FillWeight = 280 : 合約1_dgv.Columns("簽回").FillWeight = 40 : 合約1_dgv.Columns("審核通過").FillWeight = 40
  37. 合約1_dgv.Columns("停止").FillWeight = 40
  38. For i As Integer = 1 To 38 : 合約1_dgv.Columns(i).Visible = False : Next
  39. For i As Integer = 0 To 合約1_dgv.Rows.Count - 1
  40. If IsDBNull(合約1_dgv("停止", i).Value) = True Then : 合約1_dgv("停止", i).Value = False : End If
  41. If IsDBNull(合約1_dgv("簽回", i).Value) = True Then : 合約1_dgv("簽回", i).Value = False : End If
  42. Next
  43. 合約1_dgv.Columns("工程名稱_中").Visible = True
  44. End Sub
  45. Private Sub Set_合約報價明細表1()
  46. Dim ds14 As New DataSet
  47. 報價明細表2_dgv.DataSource = Nothing : ds14.Clear() : 報價明細表2_dgv.Columns.Clear()
  48. 報價明細表2_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  49. 報價明細表2_dgv.ColumnHeadersHeight = 40 : 報價明細表2_dgv.AllowUserToAddRows = False : 報價明細表2_dgv.RowTemplate.Height = 45
  50. 報價明細表2_dgv.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True
  51. PA = 合約編號_1_tb.Text : SQL_合約報價明細表()
  52. da.Fill(ds14) : 報價明細表2_dgv.DataSource = ds14.Tables(0) : conn.Close()
  53. 報價明細表2_dgv.Columns(0).FillWeight = 50 : 報價明細表2_dgv.Columns(1).FillWeight = 50 : 報價明細表2_dgv.Columns(2).FillWeight = 200
  54. 報價明細表2_dgv.Columns(3).FillWeight = 50 : 報價明細表2_dgv.Columns(4).FillWeight = 50 : 報價明細表2_dgv.Columns(5).FillWeight = 80
  55. 報價明細表2_dgv.Columns(6).FillWeight = 80 : 報價明細表2_dgv.Columns(7).FillWeight = 100 : 報價明細表2_dgv.Columns(8).FillWeight = 50
  56. 報價明細表2_dgv.Columns(34).FillWeight = 80 : 報價明細表2_dgv.Columns(33).FillWeight = 40 : 報價明細表2_dgv.Columns(6).FillWeight = 50
  57. 報價明細表2_dgv.Columns(42).FillWeight = 20 : 報價明細表2_dgv.Columns(43).FillWeight = 20 : 報價明細表2_dgv.Columns(44).FillWeight = 20
  58. 報價明細表2_dgv.Columns(45).FillWeight = 20 : 報價明細表2_dgv.Columns(46).FillWeight = 20 : 報價明細表2_dgv.Columns(47).FillWeight = 20
  59. 報價明細表2_dgv.Columns(48).FillWeight = 20 : 報價明細表2_dgv.Columns(49).FillWeight = 20 : 報價明細表2_dgv.Columns(50).FillWeight = 20
  60. 報價明細表2_dgv.Columns(50).FillWeight = 20 : 報價明細表2_dgv.Columns("料號").FillWeight = 30 : 報價明細表2_dgv.Columns("S").Visible = False
  61. For I As Integer = 0 To 58 : 報價明細表2_dgv.Columns(I).Visible = False : Next
  62. 報價明細表2_dgv.Columns("QTY").DefaultCellStyle.Format = "#,##0"
  63. 報價明細表2_dgv.Columns("UNIT").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  64. 報價明細表2_dgv.Columns("QTY").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  65. 報價明細表2_dgv.Columns("ITEM").Visible = True : 報價明細表2_dgv.Columns("DESCRIPTION").Visible = True : 報價明細表2_dgv.Columns("UNIT").Visible = True
  66. 報價明細表2_dgv.Columns("QTY").Visible = True : 報價明細表2_dgv.Columns("料號").Visible = True
  67. 報價明細表2_dgv.Columns("ITEM").ReadOnly = True : 報價明細表2_dgv.Columns("DESCRIPTION").ReadOnly = True : 報價明細表2_dgv.Columns("UNIT").ReadOnly = True
  68. 報價明細表2_dgv.Columns("QTY").ReadOnly = True : 報價明細表2_dgv.Columns("料號").ReadOnly = True
  69. Set_報價係數_dgv_勾選項()
  70. 報價明細表2_dgv.Columns("選擇").FillWeight = 30
  71. For i As Integer = 0 To 報價明細表2_dgv.Rows.Count - 1
  72. If 報價明細表2_dgv.Rows(i).Cells("料號").Value.ToString = "" Then
  73. 報價明細表2_dgv.Rows(i).Cells("D1").Value = False : 報價明細表2_dgv.Rows(i).Cells("D2").Value = False
  74. 報價明細表2_dgv.Rows(i).Cells("D3").Value = False : 報價明細表2_dgv.Rows(i).Cells("D4").Value = False
  75. 報價明細表2_dgv.Rows(i).Cells("D5").Value = False : 報價明細表2_dgv.Rows(i).Cells("D6").Value = False
  76. 報價明細表2_dgv.Rows(i).Cells("D7").Value = False : 報價明細表2_dgv.Rows(i).Cells("D8").Value = False
  77. End If
  78. If 報價明細表2_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then
  79. If 報價明細表2_dgv.Rows(i).Cells("預設").Value = True Then
  80. 報價明細表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
  81. 報價明細表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
  82. 報價明細表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
  83. 報價明細表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
  84. End If
  85. Dim ZA1, ZA2, ZA3, ZA4, ZA5, ZA6, ZA7, ZA8 As String : 物料規格 = ""
  86. If 詳細資料_ch.Checked = True Then
  87. If 報價明細表2_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D1").Value = True Then
  88. ZA1 = 報價明細表2_dgv.Rows(i).Cells("AA1").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If : End If
  89. If 報價明細表2_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D2").Value = True Then
  90. ZA2 = 報價明細表2_dgv.Rows(i).Cells("AA2").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then
  91. 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If : End If
  92. If 報價明細表2_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D3").Value = True Then
  93. ZA3 = 報價明細表2_dgv.Rows(i).Cells("AA3").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then
  94. 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If : End If
  95. If 報價明細表2_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D4").Value = True Then
  96. ZA4 = 報價明細表2_dgv.Rows(i).Cells("AA4").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then
  97. 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If : End If
  98. If 報價明細表2_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D5").Value = True Then
  99. ZA5 = 報價明細表2_dgv.Rows(i).Cells("AA5").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then
  100. 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If : End If
  101. If 報價明細表2_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D6").Value = True Then
  102. ZA6 = 報價明細表2_dgv.Rows(i).Cells("AA6").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then
  103. 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If : End If
  104. If 報價明細表2_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D7").Value = True Then
  105. ZA7 = 報價明細表2_dgv.Rows(i).Cells("AA7").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then
  106. 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If : End If
  107. If 報價明細表2_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D8").Value = True Then
  108. ZA8 = 報價明細表2_dgv.Rows(i).Cells("AA8").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then
  109. 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If : End If
  110. Else
  111. If 報價明細表2_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D1").Value = True Then
  112. ZA1 = 報價明細表2_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If : End If
  113. If 報價明細表2_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D2").Value = True Then
  114. ZA2 = 報價明細表2_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If : End If
  115. If 報價明細表2_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D3").Value = True Then
  116. ZA3 = 報價明細表2_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If : End If
  117. If 報價明細表2_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D4").Value = True Then
  118. ZA4 = 報價明細表2_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If : End If
  119. If 報價明細表2_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D5").Value = True Then
  120. ZA5 = 報價明細表2_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If : End If
  121. If 報價明細表2_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D6").Value = True Then
  122. ZA6 = 報價明細表2_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If : End If
  123. If 報價明細表2_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D7").Value = True Then
  124. ZA7 = 報價明細表2_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If : End If
  125. If 報價明細表2_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D8").Value = True Then
  126. ZA8 = 報價明細表2_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If : End If
  127. End If
  128. If 報價明細表2_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then
  129. 報價明細表2_dgv.Rows(i).Cells("DESCRIPTION").Value = 報價明細表2_dgv.Rows(i).Cells("品名").Value.ToString & " " & 物料規格
  130. End If
  131. End If : 報價明細表2_dgv.Rows(i).Cells("預設").Value = False
  132. Next
  133. End Sub
  134. Private Sub Set_報價係數_dgv_勾選項()
  135. Dim Col As New DataGridViewCheckBoxColumn With {
  136. .FillWeight = 30,
  137. .DataPropertyName = "選擇"
  138. }
  139. Col.HeaderText = "選擇" : Col.Name = "選擇"
  140. 報價明細表2_dgv.Columns.Insert(0, Col)
  141. End Sub
  142. Private Sub Set_合約文件圖庫資料庫狀態()
  143. Dim ds9 As New DataSet : 圖庫清單_dgv.DataSource = Nothing : ds9.Clear()
  144. 圖庫清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  145. 圖庫清單_dgv.ColumnHeadersHeight = 25
  146. 圖庫清單_dgv.AllowUserToAddRows = False
  147. 表頭(165) = "資料庫" : 表頭(166) = "狀態"
  148. SQL_工程文件資料庫管理查詢()
  149. da.Fill(ds9) : 圖庫清單_dgv.DataSource = ds9.Tables(0) : conn.Close()
  150. 圖庫清單_dgv.Columns(0).FillWeight = 100 : 圖庫清單_dgv.Columns(1).FillWeight = 20
  151. End Sub
  152. Private Sub Set_BOM表控制()
  153. Dim ds6 As New DataSet
  154. BOM表控制_dgv.DataSource = Nothing : ds6.Clear()
  155. BOM表控制_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  156. BOM表控制_dgv.ColumnHeadersHeight = 25 : BOM表控制_dgv.AllowUserToAddRows = False : BOM表控制_dgv.RowTemplate.Height = 45
  157. SQL_BOM表控制1()
  158. da.Fill(ds6) : BOM表控制_dgv.DataSource = ds6.Tables(0) : conn.Close()
  159. BOM表控制_dgv.Columns(0).FillWeight = 15 : BOM表控制_dgv.Columns(1).FillWeight = 100 : BOM表控制_dgv.Columns(2).Visible = False
  160. BOM表控制_dgv.Columns(0).ReadOnly = True : BOM表控制_dgv.Columns(1).ReadOnly = True
  161. For i As Integer = 0 To BOM表控制_dgv.Rows.Count - 1 : BOM表控制_dgv.Rows(i).Cells("項次").Value = i + 1 : Next
  162. End Sub
  163. Private Sub Set_BOM表明細()
  164. Dim ds6 As New DataSet
  165. BOM表明細_dgv.DataSource = Nothing : ds6.Clear()
  166. BOM表明細_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  167. BOM表明細_dgv.ColumnHeadersHeight = 25 : BOM表明細_dgv.AllowUserToAddRows = False : BOM表明細_dgv.RowTemplate.Height = 45
  168. SQL_BOM表明細()
  169. da.Fill(ds6) : BOM表明細_dgv.DataSource = ds6.Tables(0) : conn.Close()
  170. BOM表明細_dgv.Columns(0).FillWeight = 30 : BOM表明細_dgv.Columns(0).Visible = False : BOM表明細_dgv.Columns(1).FillWeight = 30
  171. BOM表明細_dgv.Columns(2).FillWeight = 250 : BOM表明細_dgv.Columns(3).FillWeight = 30 : BOM表明細_dgv.Columns(4).FillWeight = 30
  172. BOM表明細_dgv.Columns(5).FillWeight = 30 : BOM表明細_dgv.Columns(6).Visible = False
  173. For i As Integer = 7 To 34 : BOM表明細_dgv.Columns(i).Visible = False : Next
  174. BOM表明細_dgv.Columns("數量").DefaultCellStyle.Format = "#,##0"
  175. BOM表明細_dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  176. BOM表明細_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  177. For i As Integer = 0 To 5 : BOM表明細_dgv.Columns(i).ReadOnly = True : Next
  178. For i As Integer = 3 To 4 : BOM表明細_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : Next
  179. For i As Integer = 0 To BOM表明細_dgv.Rows.Count - 1
  180. BOM表明細_dgv.Rows(i).Cells("項次").Value = i + 1
  181. If BOM表明細_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then
  182. Dim ZA1, ZA2, ZA3, ZA4, ZA5, ZA6, ZA7, ZA8 As String : 物料規格 = ""
  183. If 詳細資料1_ch.Checked = True Then
  184. If BOM表明細_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then
  185. ZA1 = BOM表明細_dgv.Rows(i).Cells("AA1").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If
  186. If BOM表明細_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then
  187. ZA2 = BOM表明細_dgv.Rows(i).Cells("AA2").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A2").Value
  188. If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If
  189. If BOM表明細_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then
  190. ZA3 = BOM表明細_dgv.Rows(i).Cells("AA3").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A3").Value
  191. If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If
  192. If BOM表明細_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then
  193. ZA4 = BOM表明細_dgv.Rows(i).Cells("AA4").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A4").Value
  194. If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If
  195. If BOM表明細_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then
  196. ZA5 = BOM表明細_dgv.Rows(i).Cells("AA5").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A5").Value
  197. If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If
  198. If BOM表明細_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then
  199. ZA6 = BOM表明細_dgv.Rows(i).Cells("AA6").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A6").Value
  200. If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If
  201. If BOM表明細_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then
  202. ZA7 = BOM表明細_dgv.Rows(i).Cells("AA7").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A7").Value
  203. If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If
  204. If BOM表明細_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then
  205. ZA8 = BOM表明細_dgv.Rows(i).Cells("AA8").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A8").Value
  206. If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If
  207. Else
  208. If BOM表明細_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then
  209. ZA1 = BOM表明細_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If
  210. If BOM表明細_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then
  211. ZA2 = BOM表明細_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If
  212. If BOM表明細_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then
  213. ZA3 = BOM表明細_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If
  214. If BOM表明細_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then
  215. ZA4 = BOM表明細_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If
  216. If BOM表明細_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then
  217. ZA5 = BOM表明細_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If
  218. If BOM表明細_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then
  219. ZA6 = BOM表明細_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If
  220. If BOM表明細_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then
  221. ZA7 = BOM表明細_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If
  222. If BOM表明細_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then
  223. ZA8 = BOM表明細_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If
  224. End If
  225. If BOM表明細_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then
  226. BOM表明細_dgv.Rows(i).Cells("項目").Value = BOM表明細_dgv.Rows(i).Cells("品名").Value.ToString & " " & 物料規格
  227. End If
  228. End If
  229. Next
  230. End Sub
  231. Private Sub Set_合約報價係數()
  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. If 介面啟動 = True Then
  253. Dim ds15 As New DataSet
  254. If 美金_ch.Checked = True Then : 幣別 = " (USD)" : ElseIf 台幣_ch.Checked = True Then : 幣別 = " (TWD)"
  255. ElseIf 人民幣_ch.Checked = True Then : 幣別 = " (RMB)" : ElseIf 印尼盾_ch.Checked = True Then : 幣別 = " (RP)" : End If
  256. 報價總表_dgv.DataSource = Nothing : ds15.Clear()
  257. 報價總表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  258. 報價總表_dgv.ColumnHeadersHeight = 40 : 報價總表_dgv.AllowUserToAddRows = False : 報價總表_dgv.RowTemplate.Height = 45
  259. 報價總表_dgv.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True
  260. SQL_合約報價總表() : 啟動運算 = False
  261. da.Fill(ds15) : 報價總表_dgv.DataSource = ds15.Tables(0) : conn.Close()
  262. 報價總表_dgv.Columns(0).Visible = False : 報價總表_dgv.Columns(8).Visible = False
  263. 報價總表_dgv.Columns(0).FillWeight = 50 : 報價總表_dgv.Columns(1).FillWeight = 50 : 報價總表_dgv.Columns(2).FillWeight = 210
  264. 報價總表_dgv.Columns(3).FillWeight = 50 : 報價總表_dgv.Columns(4).FillWeight = 50 : 報價總表_dgv.Columns(5).FillWeight = 80
  265. 報價總表_dgv.Columns(6).FillWeight = 80 : 報價總表_dgv.Columns(7).FillWeight = 90 : 報價總表_dgv.Columns(9).FillWeight = 50
  266. For i As Integer = 4 To 6 : 報價總表_dgv.Columns(i).DefaultCellStyle.Format = "#,##0" : Next
  267. For i As Integer = 4 To 6 : 報價總表_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : Next
  268. For i As Integer = 0 To 7 : 報價總表_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter : Next
  269. 報價總表_dgv.Columns(2).ReadOnly = True : 報價總表_dgv.Columns(6).ReadOnly = True
  270. 報價總表_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  271. 啟動運算 = True : 報價總表_dgv_自動計算()
  272. If DGV位置1.Value >= 報價總表_dgv.Rows.Count Then : DGV位置1.Value = 報價總表_dgv.Rows.Count - 1 : End If
  273. If DGV位置1.Value > 0 Then : 報價總表_dgv.CurrentCell = 報價總表_dgv.Rows(DGV位置1.Value).Cells(1) : End If
  274. End If
  275. End Sub
  276. Private Sub Set_合約報價明細表格式()
  277. 報價明細表_dgv.Columns(0).FillWeight = 45 : 報價明細表_dgv.Columns(1).FillWeight = 45 : 報價明細表_dgv.Columns(2).FillWeight = 200
  278. 報價明細表_dgv.Columns(3).FillWeight = 45 : 報價明細表_dgv.Columns(4).FillWeight = 45 : 報價明細表_dgv.Columns(5).FillWeight = 100
  279. 報價明細表_dgv.Columns(6).FillWeight = 100 : 報價明細表_dgv.Columns(7).FillWeight = 70 : 報價明細表_dgv.Columns(8).FillWeight = 50
  280. 報價明細表_dgv.Columns(34).FillWeight = 80 : 報價明細表_dgv.Columns(33).FillWeight = 40
  281. 報價明細表_dgv.Columns(42).FillWeight = 20 : 報價明細表_dgv.Columns(43).FillWeight = 20 : 報價明細表_dgv.Columns(44).FillWeight = 20
  282. 報價明細表_dgv.Columns(45).FillWeight = 20 : 報價明細表_dgv.Columns(46).FillWeight = 20 : 報價明細表_dgv.Columns(47).FillWeight = 20
  283. 報價明細表_dgv.Columns(48).FillWeight = 20 : 報價明細表_dgv.Columns(49).FillWeight = 20 : 報價明細表_dgv.Columns(50).FillWeight = 20
  284. If 利潤表_ch.Checked = False Then : 報價明細表_dgv.Columns("S").FillWeight = 20 : Else : 報價明細表_dgv.Columns("S").FillWeight = 40 : End If
  285. End Sub
  286. Private Sub Set_合約報價明細表()
  287. If 介面啟動 = True Then
  288. Dim ds14 As New DataSet
  289. If 美金_ch.Checked = True Then : 幣別 = " (USD)" : ElseIf 台幣_ch.Checked = True Then : 幣別 = " (TWD)"
  290. ElseIf 人民幣_ch.Checked = True Then : 幣別 = " (RMB)" : ElseIf 印尼盾_ch.Checked = True Then : 幣別 = " (RP)" : End If
  291. 報價明細表_dgv.DataSource = Nothing : ds14.Clear()
  292. 報價明細表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  293. 報價明細表_dgv.ColumnHeadersHeight = 40 : 報價明細表_dgv.AllowUserToAddRows = False : 報價明細表_dgv.RowTemplate.Height = 45
  294. 報價明細表_dgv.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True
  295. 報價明細表1_dgv.DataSource = Nothing : ds14.Clear()
  296. 報價明細表1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  297. 報價明細表1_dgv.ColumnHeadersHeight = 40 : 報價明細表1_dgv.AllowUserToAddRows = False : 報價明細表1_dgv.RowTemplate.Height = 45
  298. 報價明細表1_dgv.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True
  299. PA = 合約編號_tb.Text : SQL_合約報價明細表()
  300. da.Fill(ds14) : 報價明細表_dgv.DataSource = ds14.Tables(0) : 報價明細表1_dgv.DataSource = ds14.Tables(0) : conn.Close()
  301. 報價明細表1_dgv.Columns("流水號").FillWeight = 50 : 報價明細表1_dgv.Columns(6).FillWeight = 60 : 報價明細表1_dgv.Columns(2).FillWeight = 200
  302. 報價明細表1_dgv.Columns(1).FillWeight = 40
  303. Set_報價係數_dgv_下拉式清單1()
  304. For i As Integer = 4 To 6 : 報價明細表_dgv.Columns(i).DefaultCellStyle.Format = "#,##0" : Next
  305. For i As Integer = 9 To 17 : 報價明細表_dgv.Columns(i).DefaultCellStyle.Format = "#,##0" : Next
  306. 報價明細表1_dgv.Columns(6).DefaultCellStyle.Format = "#,##0"
  307. 報價明細表_dgv.Columns(8).DefaultCellStyle.Format = "#,##0.00"
  308. For i As Integer = 3 To 6 : 報價明細表_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : Next
  309. For i As Integer = 8 To 17 : 報價明細表_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : Next
  310. 報價明細表1_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  311. For i As Integer = 10 To 12 : 報價明細表_dgv.Columns(i).DefaultCellStyle.BackColor = Color.MistyRose : Next
  312. For i As Integer = 14 To 16 : 報價明細表_dgv.Columns(i).DefaultCellStyle.BackColor = Color.MistyRose : Next
  313. If 利潤表_ch.Checked = True Then : Set_報價明細表_dgv_利潤表開啟() : Else : Set_報價明細表_dgv_利潤表關閉() : End If
  314. For i As Integer = 0 To 58 : 報價明細表1_dgv.Columns(i).Visible = False : Next
  315. For I As Integer = 18 To 58 : 報價明細表_dgv.Columns(I).Visible = False : Next
  316. 報價明細表_dgv.Columns(0).Visible = False : 報價明細表1_dgv.Columns(1).Visible = True : 報價明細表1_dgv.Columns(2).Visible = True : 報價明細表1_dgv.Columns(6).Visible = True
  317. 報價明細表1_dgv.Columns("流水號").Visible = True
  318. 報價明細表_dgv.EditMode = DataGridViewEditMode.EditOnEnter : 報價明細表1_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  319. '報價明細表_dgv.Columns(1).ReadOnly = True
  320. 報價明細表_dgv.Columns(2).ReadOnly = True : 報價明細表_dgv.Columns(4).ReadOnly = True : 報價明細表_dgv.Columns(5).ReadOnly = True
  321. 報價明細表_dgv.Columns(6).ReadOnly = True : 報價明細表_dgv.Columns(10).ReadOnly = True : 報價明細表_dgv.Columns(11).ReadOnly = True : 報價明細表_dgv.Columns(12).ReadOnly = True
  322. 報價明細表_dgv.Columns(14).ReadOnly = True : 報價明細表_dgv.Columns(15).ReadOnly = True : 報價明細表_dgv.Columns(16).ReadOnly = True : 報價明細表_dgv.Columns(17).ReadOnly = True
  323. 報價明細表1_dgv.Columns(1).ReadOnly = True : 報價明細表1_dgv.Columns(2).ReadOnly = True : 報價明細表1_dgv.Columns(4).ReadOnly = True : 報價明細表1_dgv.Columns(5).ReadOnly = True
  324. 報價明細表1_dgv.Columns(6).ReadOnly = True : 報價明細表1_dgv.Columns(10).ReadOnly = True : 報價明細表1_dgv.Columns(11).ReadOnly = True : 報價明細表1_dgv.Columns(12).ReadOnly = True
  325. 報價明細表1_dgv.Columns(14).ReadOnly = True : 報價明細表1_dgv.Columns(15).ReadOnly = True : 報價明細表1_dgv.Columns(16).ReadOnly = True : 報價明細表1_dgv.Columns(17).ReadOnly = True
  326. 報價明細表_dgv_物料顯示() : 啟動運算 = True : 報價明細表_dgv_自動計算()
  327. If DGV位置2.Value >= 報價明細表_dgv.Rows.Count Then : DGV位置2.Value = 報價明細表_dgv.Rows.Count - 1 : End If
  328. If DGV位置2.Value > 0 Then : 報價明細表_dgv.CurrentCell = 報價明細表_dgv.Rows(DGV位置2.Value).Cells(1) : End If
  329. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 : 報價明細表_dgv.Rows(i).Cells("S").Value = False : Next
  330. Set_合約報價明細表格式()
  331. End If
  332. End Sub
  333. Private Sub Set_報價係數_dgv_下拉式清單1()
  334. Dim Col As New DataGridViewComboBoxColumn With {
  335. .FillWeight = 60,
  336. .DataPropertyName = "材料係數"
  337. }
  338. SQL_合約報價係數_下拉()
  339. Col.Items.Clear()
  340. While (dr.Read()) : Col.Items.Add(dr("項目")) : End While : conn.Close()
  341. Col.HeaderText = "係數" : Col.Name = "係數"
  342. 報價明細表_dgv.Columns.Insert(60, Col)
  343. End Sub
  344. Private Sub Set_報價明細表_dgv_利潤表關閉()
  345. If 報價明細表_dgv.Rows.Count > 0 Then
  346. 利潤表_ch.Checked = False : For i As Integer = 8 To 17 : 報價明細表_dgv.Columns(i).Visible = False : Next
  347. 報價明細表_dgv.Columns(33).Visible = False : 報價明細表_dgv.Columns(7).Visible = True : 報價明細表_dgv.Columns(4).Visible = True
  348. End If
  349. End Sub
  350. Private Sub Set_報價明細表_dgv_利潤表開啟()
  351. If 報價明細表_dgv.Rows.Count > 0 Then
  352. For I As Integer = 43 To 50 : 報價明細表_dgv.Columns(I).Visible = False : Next
  353. 報價明細表_dgv.Columns(8).Visible = True : 報價明細表_dgv.Columns(17).Visible = True : 報價明細表_dgv.Columns(33).Visible = True
  354. 報價明細表_dgv.Columns(7).Visible = False : 報價明細表_dgv.Columns(4).Visible = False : 利潤表_ch.Checked = True
  355. If 工資_ch.Checked = True Then : For i As Integer = 9 To 12 : 報價明細表_dgv.Columns(i).Visible = True : Next
  356. Else : For i As Integer = 9 To 12 : 報價明細表_dgv.Columns(i).Visible = False : Next : End If
  357. If 材料_ch.Checked = True Then : For i As Integer = 13 To 16 : 報價明細表_dgv.Columns(i).Visible = True : Next
  358. Else : For i As Integer = 13 To 16 : 報價明細表_dgv.Columns(i).Visible = False : Next : End If
  359. End If
  360. End Sub
  361. Private Sub Set_合約範例()
  362. Dim ds12 As New DataSet
  363. 範例文本_dgv.DataSource = Nothing : ds12.Clear()
  364. 範例文本_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  365. 範例文本_dgv.ColumnHeadersHeight = 25 : 範例文本_dgv.AllowUserToAddRows = False
  366. SQL_合約清單_範本()
  367. da.Fill(ds12) : 範例文本_dgv.DataSource = ds12.Tables(0) : conn.Close()
  368. End Sub
  369. Private Sub Set_合約清單()
  370. Dim ds6 As New DataSet
  371. 合約_dgv.DataSource = Nothing : ds6.Clear()
  372. 合約_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  373. 合約_dgv.ColumnHeadersHeight = 25 : 合約_dgv.AllowUserToAddRows = False
  374. PA = 關鍵字搜尋_tb.Text : PA46 = 合約編號1_cb.Text : PA47 = 工程期1_ch.Text
  375. SQL_合約清單_報價用()
  376. da.Fill(ds6) : 合約_dgv.DataSource = ds6.Tables(0) : conn.Close()
  377. 合約_dgv.Columns(0).FillWeight = 130 : 合約_dgv.Columns("工程名稱_中").FillWeight = 280 : 合約_dgv.Columns("簽回").FillWeight = 40 : 合約_dgv.Columns("審核通過").FillWeight = 40
  378. 合約_dgv.Columns("停止").FillWeight = 40
  379. For i As Integer = 1 To 38 : 合約_dgv.Columns(i).Visible = False : Next
  380. For i As Integer = 0 To 合約_dgv.Rows.Count - 1
  381. If IsDBNull(合約_dgv("停止", i).Value) = True Then : 合約_dgv("停止", i).Value = False : End If
  382. If IsDBNull(合約_dgv("簽回", i).Value) = True Then : 合約_dgv("簽回", i).Value = False : End If
  383. Next
  384. If 放大 = True Then
  385. 合約_dgv.Columns("工程名稱_中").Visible = True : 合約_dgv.Columns("審核通過").Visible = True : 合約_dgv.Columns("停止").Visible = True
  386. Else
  387. 合約_dgv.Columns("工程名稱_中").Visible = False : 合約_dgv.Columns("審核通過").Visible = False : 合約_dgv.Columns("停止").Visible = False
  388. End If
  389. End Sub
  390. Private Sub Set_合約試算控制表_查詢()
  391. Dim ds5 As New DataSet
  392. 試算控制表_dgv.DataSource = Nothing : ds5.Clear()
  393. 試算控制表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  394. 試算控制表_dgv.ColumnHeadersHeight = 25 : 試算控制表_dgv.AllowUserToAddRows = False
  395. SQL_合約試算控制表_查詢()
  396. da.Fill(ds5) : 試算控制表_dgv.DataSource = ds5.Tables(0) : conn.Close()
  397. For i As Integer = 0 To 40 : 合約試算表頭(i) = i & "." : Next
  398. 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
  399. Set_試算明細表()
  400. End Sub
  401. Private Sub Set_試算明細表()
  402. Dim DS7 As New DataSet
  403. 試算表_dgv.DataSource = Nothing : DS7.Clear()
  404. 試算表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  405. 試算表_dgv.ColumnHeadersHeight = 120 : 試算表_dgv.AllowUserToAddRows = False : 試算表_dgv.RowTemplate.Height = 45
  406. SQL_合約試算明細表_查詢()
  407. da.Fill(DS7) : 試算表_dgv.DataSource = DS7.Tables(0) : conn.Close()
  408. 試算表_dgv.Columns(0).Frozen = True : 試算表_dgv.Columns(1).Frozen = True : 試算表_dgv.Columns(2).Frozen = True
  409. 試算表_dgv.Columns(0).Visible = False
  410. For I As Integer = 45 To 54 : 試算表_dgv.Columns(I).Visible = False : Next
  411. 試算表_dgv.Columns(1).Width = 100 : 試算表_dgv.Columns(2).Width = 150 : 試算表_dgv.Columns(43).Width = 30 : 試算表_dgv.Columns(44).Width = 50
  412. 試算表_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 試算表_dgv.Columns(44).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  413. 試算表_dgv.Columns(44).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  414. 試算表_dgv.Columns(44).DefaultCellStyle.Format = "#,##0"
  415. If 直接輸入_ch.Checked = False And 使用計算機_ch.Checked = True Then : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnF2
  416. Else : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnEnter : End If
  417. 試算表_dgv.Columns(1).ReadOnly = True : 試算表_dgv.Columns(2).ReadOnly = True : 試算表_dgv.Columns(44).ReadOnly = True
  418. Dim 開始 As Integer = 3 : Dim 結束 As Integer = 42
  419. For I As Integer = 開始 To 結束 : 試算表_dgv.Columns(I).Width = 80
  420. 試算表_dgv.Columns(I).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  421. 試算表_dgv.Columns(I).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  422. 試算表_dgv.Columns(I).DefaultCellStyle.Format = "#,##0.0"
  423. Next
  424. Dim 表頭數 As Integer = 試算控制表_dgv.Rows.Count
  425. If 表頭數 = 0 Then
  426. For I As Integer = 開始 To 結束 : 試算表_dgv.Columns(I).Visible = False : Next
  427. ElseIf 表頭數 > 0 Then
  428. For I As Integer = 開始 To 表頭數 + 2 : 試算表_dgv.Columns(I).Visible = True : Next
  429. For I As Integer = 表頭數 + 3 To 結束 : 試算表_dgv.Columns(I).Visible = False : Next
  430. End If
  431. For i As Integer = 0 To 試算表_dgv.Rows.Count - 1
  432. '-------------------------規格合併呈現----------------------------------------------------------------------------------------------------------------------------------------
  433. If i = 0 Then
  434. PA3 = 試算表_dgv.Rows(i).Cells("規格庫抬頭指定").Value : SQL_規格庫抬頭讀取()
  435. If dr.Read() Then
  436. AAA1 = dr("A1") : AAA2 = dr("A2") : AAA3 = dr("A3") : AAA4 = dr("A4") : AAA5 = dr("A5") : AAA6 = dr("A6") : AAA7 = dr("A7") : AAA8 = dr("A8")
  437. End If : conn.Close()
  438. Else
  439. If 試算表_dgv.Rows(i).Cells("規格庫抬頭指定").Value.ToString <> 試算表_dgv.Rows(i - 1).Cells("規格庫抬頭指定").Value.ToString Then
  440. PA3 = 試算表_dgv.Rows(i).Cells("規格庫抬頭指定").Value : SQL_規格庫抬頭讀取()
  441. If dr.Read() Then
  442. AAA1 = dr("A1") : AAA2 = dr("A2") : AAA3 = dr("A3") : AAA4 = dr("A4") : AAA5 = dr("A5") : AAA6 = dr("A6") : AAA7 = dr("A7") : AAA8 = dr("A8")
  443. End If : conn.Close()
  444. End If
  445. End If
  446. Dim ZA1, ZA2, ZA3, ZA4, ZA5, ZA6, ZA7, ZA8 As String : 物料規格 = ""
  447. If 詳細資料3_ch.Checked = True Then
  448. If 試算表_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then
  449. ZA1 = AAA1 & "=" & 試算表_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If
  450. If 試算表_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then : ZA2 = AAA2 & "=" & 試算表_dgv.Rows(i).Cells("A2").Value
  451. If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If
  452. If 試算表_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then : ZA3 = AAA3 & "=" & 試算表_dgv.Rows(i).Cells("A3").Value
  453. If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If
  454. If 試算表_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then : ZA4 = AAA4 & "=" & 試算表_dgv.Rows(i).Cells("A4").Value
  455. If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If
  456. If 試算表_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then : ZA5 = AAA5 & "=" & 試算表_dgv.Rows(i).Cells("A5").Value
  457. If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If
  458. If 試算表_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then : ZA6 = AAA6 & "=" & 試算表_dgv.Rows(i).Cells("A6").Value
  459. If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If
  460. If 試算表_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then : ZA7 = AAA7 & "=" & 試算表_dgv.Rows(i).Cells("A7").Value
  461. If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If
  462. If 試算表_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then : ZA8 = AAA8 & "=" & 試算表_dgv.Rows(i).Cells("A8").Value
  463. If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If
  464. Else
  465. If 試算表_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then : ZA1 = 試算表_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If
  466. If 試算表_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then
  467. ZA2 = 試算表_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If
  468. If 試算表_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then
  469. ZA3 = 試算表_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If
  470. If 試算表_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then
  471. ZA4 = 試算表_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If
  472. If 試算表_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then
  473. ZA5 = 試算表_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If
  474. If 試算表_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then
  475. ZA6 = 試算表_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If
  476. If 試算表_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then
  477. ZA7 = 試算表_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If
  478. If 試算表_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then
  479. ZA8 = 試算表_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If
  480. End If
  481. 試算表_dgv.Rows(i).Cells("樓層/迴路").Value = 物料規格
  482. Next
  483. End Sub
  484. Private Sub Set_語言()
  485. 語言_dgv.DataSource = Nothing : ds13.Clear()
  486. 語言_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  487. 語言_dgv.ColumnHeadersHeight = 25 : 語言_dgv.AllowUserToAddRows = False
  488. SQL_系統語言導入()
  489. da.Fill(ds13) : 語言_dgv.DataSource = ds13.Tables(0) : conn.Close()
  490. End Sub
  491. Private Sub 語言轉換讀取()
  492. Set_語言() : conn.Close()
  493. For i As Integer = 0 To 語言_dgv.Rows.Count - 1
  494. If 語言_dgv("控件", i).Value.ToString = "物料清單_dgv_單位" Then : 表頭(16) = 語言_dgv("內容", i).Value.ToString : End If
  495. Next
  496. End Sub
  497. Private Sub Set_DGV1載入前設定()
  498. 物料清單_dgv.DataSource = Nothing : ds4.Clear()
  499. 物料清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  500. 物料清單_dgv.ColumnHeadersHeight = 25 : 物料清單_dgv.AllowUserToAddRows = False
  501. If 小間距_ch.Checked = False And 中間距_ch.Checked = False And 大間距_ch.Checked = True Then : 物料清單_dgv.RowTemplate.Height = 65
  502. ElseIf 小間距_ch.Checked = False And 中間距_ch.Checked = True And 大間距_ch.Checked = False Then : 物料清單_dgv.RowTemplate.Height = 45
  503. ElseIf 小間距_ch.Checked = True And 中間距_ch.Checked = False And 大間距_ch.Checked = False Then : 物料清單_dgv.RowTemplate.Height = 25
  504. End If : ConnOpen_ERP()
  505. End Sub
  506. Private Sub Set_清單1()
  507. PA1 = 群組碼_tb.Text : Set_DGV1載入前設定() : SQL_合約試算分表_物料清單一() : Set_DG1載入後設定()
  508. End Sub
  509. Private Sub Set_DG1載入後設定()
  510. CmdSet_For_DGV() : da.Fill(ds4) : 物料清單_dgv.DataSource = ds4.Tables(0) : conn.Close()
  511. 物料清單_dgv.Columns(0).Visible = False : 物料清單_dgv.Columns(1).FillWeight = 80 : 物料清單_dgv.Columns(2).FillWeight = 175 : 物料清單_dgv.Columns(3).Visible = False
  512. 物料清單_dgv.Columns(4).Visible = False : 物料清單_dgv.Columns(5).FillWeight = 45
  513. 物料清單_dgv.Columns(0).ReadOnly = True : 物料清單_dgv.Columns(1).ReadOnly = True : 物料清單_dgv.Columns(2).ReadOnly = True
  514. For i As Integer = 0 To 物料清單_dgv.Rows.Count - 1 : 物料清單_dgv(0, i).Value = i + 1 : Next
  515. If 低網速模式 = False Then
  516. 物料清單_dgv.Columns(6).FillWeight = 50 : 物料清單_dgv.Columns(6).Visible = True
  517. Dim mycol As DataGridViewImageColumn = 物料清單_dgv.Columns("圖檔") : mycol.ImageLayout = DataGridViewImageCellLayout.Zoom
  518. Else
  519. If 物料清單_dgv.Columns.Count = 7 Then : 物料清單_dgv.Columns(6).Visible = False : End If
  520. End If
  521. End Sub
  522. Private Sub Set_合約明細1()
  523. 第1期_dgv.DataSource = Nothing : ds7.Clear()
  524. 第1期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  525. 第1期_dgv.ColumnHeadersHeight = 25 : 第1期_dgv.AllowUserToAddRows = False
  526. SQL_合約明細讀取()
  527. da.Fill(ds7) : 第1期_dgv.DataSource = ds7.Tables(0) : conn.Close()
  528. 第1期_dgv.Columns(0).Visible = False : 第1期_dgv.Columns(1).Visible = False : 第1期_dgv.Columns(2).FillWeight = 20 : 第1期_dgv.Columns(3).FillWeight = 140
  529. 第1期_dgv.Columns(4).FillWeight = 20 : 第1期_dgv.Columns(5).FillWeight = 50
  530. 第1期_dgv.Columns(2).ReadOnly = True : 第1期_dgv.Columns(5).ReadOnly = True
  531. 第1期_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  532. 第1期_dgv.Columns(2).DefaultCellStyle.Format = "#,##0" : 第1期_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 第1期_dgv.Columns(5).DefaultCellStyle.Format = "#,##0"
  533. 第1期_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 第1期_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  534. End Sub
  535. Private Sub Set_合約明細2()
  536. 第2期_dgv.DataSource = Nothing : ds8.Clear()
  537. 第2期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  538. 第2期_dgv.ColumnHeadersHeight = 25 : 第2期_dgv.AllowUserToAddRows = False
  539. SQL_合約明細讀取()
  540. da.Fill(ds8) : 第2期_dgv.DataSource = ds8.Tables(0) : conn.Close()
  541. 第2期_dgv.Columns(0).Visible = False : 第2期_dgv.Columns(1).Visible = False : 第2期_dgv.Columns(2).FillWeight = 20 : 第2期_dgv.Columns(3).FillWeight = 140
  542. 第2期_dgv.Columns(4).FillWeight = 20 : 第2期_dgv.Columns(5).FillWeight = 50
  543. 第2期_dgv.Columns(2).ReadOnly = True : 第2期_dgv.Columns(5).ReadOnly = True
  544. 第2期_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  545. 第2期_dgv.Columns(2).DefaultCellStyle.Format = "#,##0" : 第2期_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 第2期_dgv.Columns(5).DefaultCellStyle.Format = "#,##0"
  546. 第2期_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 第2期_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  547. End Sub
  548. Private Sub Set_合約明細3()
  549. 第3期_dgv.DataSource = Nothing : ds9.Clear()
  550. 第3期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  551. 第3期_dgv.ColumnHeadersHeight = 25
  552. 第3期_dgv.AllowUserToAddRows = False
  553. SQL_合約明細讀取()
  554. da.Fill(ds9) : 第3期_dgv.DataSource = ds9.Tables(0) : conn.Close()
  555. 第3期_dgv.Columns(0).Visible = False : 第3期_dgv.Columns(1).Visible = False : 第3期_dgv.Columns(2).FillWeight = 20 : 第3期_dgv.Columns(3).FillWeight = 140
  556. 第3期_dgv.Columns(4).FillWeight = 20 : 第3期_dgv.Columns(5).FillWeight = 50
  557. 第3期_dgv.Columns(2).ReadOnly = True : 第3期_dgv.Columns(5).ReadOnly = True
  558. 第3期_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  559. 第3期_dgv.Columns(2).DefaultCellStyle.Format = "#,##0" : 第3期_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 第3期_dgv.Columns(5).DefaultCellStyle.Format = "#,##0"
  560. 第3期_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 第3期_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  561. End Sub
  562. Private Sub Set_合約明細4()
  563. 第4期_dgv.DataSource = Nothing : ds10.Clear()
  564. 第4期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  565. 第4期_dgv.ColumnHeadersHeight = 25 : 第4期_dgv.AllowUserToAddRows = False
  566. SQL_合約明細讀取()
  567. da.Fill(ds10) : 第4期_dgv.DataSource = ds10.Tables(0) : conn.Close()
  568. 第4期_dgv.Columns(0).Visible = False : 第4期_dgv.Columns(1).Visible = False : 第4期_dgv.Columns(2).FillWeight = 20 : 第4期_dgv.Columns(3).FillWeight = 140
  569. 第4期_dgv.Columns(4).FillWeight = 20 : 第4期_dgv.Columns(5).FillWeight = 50
  570. 第4期_dgv.Columns(2).ReadOnly = True : 第4期_dgv.Columns(5).ReadOnly = True
  571. 第4期_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  572. 第4期_dgv.Columns(2).DefaultCellStyle.Format = "#,##0" : 第4期_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 第4期_dgv.Columns(5).DefaultCellStyle.Format = "#,##0"
  573. 第4期_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 第4期_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  574. End Sub
  575. Private Sub Set_合約明細5()
  576. 第5期_dgv.DataSource = Nothing : ds11.Clear()
  577. 第5期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  578. 第5期_dgv.ColumnHeadersHeight = 25 : 第5期_dgv.AllowUserToAddRows = False
  579. SQL_合約明細讀取()
  580. da.Fill(ds11) : 第5期_dgv.DataSource = ds11.Tables(0) : conn.Close()
  581. 第5期_dgv.Columns(0).Visible = False : 第5期_dgv.Columns(1).Visible = False : 第5期_dgv.Columns(2).FillWeight = 20 : 第5期_dgv.Columns(3).FillWeight = 140
  582. 第5期_dgv.Columns(4).FillWeight = 20 : 第5期_dgv.Columns(5).FillWeight = 50
  583. 第5期_dgv.Columns(2).ReadOnly = True : 第5期_dgv.Columns(5).ReadOnly = True
  584. 第5期_dgv.Columns(2).DefaultCellStyle.Format = "#,##0" : 第5期_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 第5期_dgv.Columns(5).DefaultCellStyle.Format = "#,##0"
  585. 第5期_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 第5期_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  586. End Sub
  587. Private Sub 係數表下拉清單1()
  588. SQL_合約係數表下拉1() : 係數項目_cb.Items.Clear() : While (dr.Read()) : 係數項目_cb.Items.Add(dr("項目")) : End While : conn.Close()
  589. End Sub
  590. Private Sub 係數表下拉清單2()
  591. SQL_合約係數表下拉2() : 係數單位_cb.Items.Clear() : While (dr.Read()) : 係數單位_cb.Items.Add(dr("單位")) : End While : conn.Close()
  592. End Sub
  593. Private Sub 合約試算分下拉清單()
  594. PA = 合約編號_tb.Text : SQL_合約試算分表查詢() : 試算表_cb.Items.Clear() : While (dr.Read()) : 試算表_cb.Items.Add(dr("試算表")) : End While : conn.Close()
  595. End Sub
  596. Private Sub 合約試算控制下拉清單()
  597. PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : SQL_合約試算控制表查詢() : 樓層_迴路_cb.Items.Clear() : While (dr.Read()) : 樓層_迴路_cb.Items.Add(dr("樓層/迴路")) : End While : conn.Close()
  598. End Sub
  599. Private Sub 群組碼_cb_語轉_下拉表單資料載入()
  600. SQL_群組碼_語轉_下拉清單() : 新群組1_cb.Items.Clear() : While (dr.Read()) : 新群組1_cb.Items.Add(dr("群組")) : End While : conn.Close()
  601. End Sub
  602. Private Sub 群組編碼_cb_下拉表單資料載入()
  603. SQL_群組碼_下拉清單() : 群組編碼_cb.Items.Clear() : While (dr.Read()) : 群組編碼_cb.Items.Add(dr("群組碼")) : End While : conn.Close()
  604. End Sub
  605. Private Sub 合約種類下拉清單讀取()
  606. SQL_合約種類讀取() : 合約種類_cb.Items.Clear() : While (dr.Read()) : 合約種類_cb.Items.Add(dr("中")) : End While : conn.Close()
  607. End Sub
  608. Private Sub 客戶名稱下拉清單讀取()
  609. SQL_客戶名稱讀取() : 客戶名稱_tb.Items.Clear() : While (dr.Read()) : 客戶名稱_tb.Items.Add(dr("客戶名稱")) : End While : conn.Close()
  610. End Sub
  611. Private Sub 我司負責人下拉清單讀取()
  612. SQL負責人B讀取() : 負責人_B_cb.Items.Clear() : While (dr.Read()) : 負責人_B_cb.Items.Add(dr("負責人B")) : End While : conn.Close()
  613. End Sub
  614. Private Sub 甲方條件下拉清單讀取()
  615. SQL合約條件讀取() : 合約編號1_cb.Items.Clear() : 合約編號1_cb.Items.Add("") : 合約編號2_cb.Items.Clear() : 合約編號2_cb.Items.Add("")
  616. 甲方_cb.Items.Clear() : 甲方_cb.Items.Add("")
  617. While (dr.Read()) : 合約編號1_cb.Items.Add(dr("約號甲方")) : 合約編號2_cb.Items.Add(dr("約號甲方")) : 甲方_cb.Items.Add(dr("約號甲方")) : End While : conn.Close()
  618. End Sub
  619. Private Sub 預設資料()
  620. 合約種類_cb.Text = "" : 合約種類_tb.Text = "" : 客戶名稱_tb.Text = "" : 負責人_A_cb.Text = ""
  621. 工程地點_tb.Text = "" : 客戶地址_tb.Text = "" : 工程名稱_中_tb.Text = "" : 工程名稱_英_tb.Text = "" : 負責人_B_cb.Text = "" : CH2.Checked = True : 立約日期_dtp.Value = Today()
  622. 我司地址_tb.Text = "" : 廠區_中文_tb.Text = ""
  623. 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
  624. 最高扣款_英_bt.Text = "5 (five)%." : 逾期_bt.Text = "0.0005% (萬分之五)" : 頁數_bt.Text = "16"
  625. 最高扣款_bt.Text = "5% (百分之五)" : 逾期_英_bt.Text = "0.0005% (null point null null null five percent)"
  626. Set_合約清單() : 合約種類下拉清單讀取() : 客戶名稱下拉清單讀取() : 我司負責人下拉清單讀取()
  627. 合約種類_cb.SelectedIndex = 0
  628. 第1期_dgv.DataSource = Nothing : ds7.Clear() : 第2期_dgv.DataSource = Nothing : ds8.Clear() : 第3期_dgv.DataSource = Nothing : ds9.Clear()
  629. 第4期_dgv.DataSource = Nothing : ds10.Clear() : 第5期_dgv.DataSource = Nothing : ds11.Clear()
  630. End Sub
  631. Private Sub 預設資料1()
  632. 工程地點_tb.Text = "" : 工程名稱_中_tb.Text = "" : 工程名稱_英_tb.Text = "" : 負責人_B_cb.Text = "" : CH2.Checked = True : 立約日期_dtp.Value = Today()
  633. If 選擇公司_cb.Text = "G.C.M. Smart Enterprise LTD." Then : 我司地址_tb.Text = "屏東縣萬丹鄉麟洛鄉中山路382-103號" : Else
  634. 我司地址_tb.Text = "J.Kaliandra 1 no 1E blok F6 Lantai 2 Delta Silicon II Lippo Cikarang ,Desa Cicau ,Kec. Cikarang Pusat, Kab Bekasi"
  635. End If
  636. 廠區_中文_tb.Text = ""
  637. 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
  638. 最末頁_cb.Text = "16" : 最高扣款_英_bt.Text = "5 (five)%." : 逾期_bt.Text = "0.0005% (萬分之五)" : 頁數_bt.Text = "16"
  639. 最高扣款_bt.Text = "5% (百分之五)" : 逾期_英_bt.Text = "0.0005% (null point null null null five percent)"
  640. Set_合約清單() : 合約種類下拉清單讀取() : 客戶名稱下拉清單讀取() : 我司負責人下拉清單讀取()
  641. 合約種類_cb.SelectedIndex = 0
  642. 第1期_dgv.DataSource = Nothing : ds7.Clear() : 第2期_dgv.DataSource = Nothing : ds8.Clear() : 第3期_dgv.DataSource = Nothing : ds9.Clear()
  643. 第4期_dgv.DataSource = Nothing : ds10.Clear() : 第5期_dgv.DataSource = Nothing : ds11.Clear()
  644. End Sub
  645. Private Sub 匯率()
  646. PA48 = Strings.Left(Strings.Format(立約日期_dtp.Value, "yyyyMMdd"), 4) : PA49 = Strings.Mid(Strings.Format(立約日期_dtp.Value, "yyyyMMdd"), 5, 2)
  647. SQL_匯率查詢()
  648. If dr.Read() Then
  649. 人民幣匯率 = dr("中心匯率").ToString : 美金匯率 = dr("美金匯率").ToString : 印尼匯率 = dr("印尼匯率").ToString : conn.Close() : dr.Close()
  650. If 台幣_ch.Checked = True Then : 匯率1 = 1 / 印尼匯率
  651. ElseIf 人民幣_ch.Checked = True Then : 匯率1 = 人民幣匯率 / 印尼匯率
  652. ElseIf 美金_ch.Checked = True Then : 匯率1 = 美金匯率 / 印尼匯率
  653. ElseIf 印尼盾_ch.Checked = True Then : 匯率1 = 1 / 印尼匯率
  654. End If
  655. Else
  656. conn.Close() : dr.Close()
  657. If 系統語言 = "繁體中文" Then : MsgBox("請通知 [財務主管]新增匯率資料!!")
  658. Else : MsgBox("Please notify [Treasurer] to add exchange rate information!!") : End If
  659. If 台幣_ch.Checked = True Then : 匯率1 = 1 / 0.002
  660. ElseIf 人民幣_ch.Checked = True Then : 匯率1 = 4.5 / 0.002
  661. ElseIf 美金_ch.Checked = True Then : 匯率1 = 31 / 0.002
  662. ElseIf 印尼盾_ch.Checked = True Then : 匯率1 = 1
  663. End If
  664. End If
  665. End Sub
  666. Private Sub 合約報價單_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  667. Me.MdiParent = GCM_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  668. 介面 = "H401" : 語言轉換讀取()
  669. Me.KeyPreview = True : 介面啟動 = True
  670. 合約編號2_tb.Enabled = False : 合約編號3_tb.Enabled = False : CH1.Checked = False : CH2.Checked = True : NUD1.Enabled = False : NUD3.Enabled = True : 合約_lb.Text = "合約"
  671. 小間距_ch.Checked = True : 視窗1_pl.Visible = False : 視窗2_pl.Visible = False : 視窗3_pl.Visible = False : 視窗4_pl.Visible = False : 直接輸入_ch.Checked = True
  672. 物料_p.Visible = False : BOM_p.Visible = True : 合約_p.Visible = False
  673. 使用計算機_ch.Checked = False : SQL2 = ""
  674. If CInt(登入人級別) <= 5 Then : 合約停止_ch.Enabled = True : 刪除合約_bt.Enabled = True : Else : 合約停止_ch.Enabled = False : 刪除合約_bt.Enabled = False : End If
  675. 縮放1_bt.PerformClick() : 物料清單_dgv.BringToFront() : Panel1.SendToBack() : 縮放_bt.PerformClick() : 不再動作1 = True
  676. A1 = 空間1.Location.X : A2 = 錨點1.Location.X : B2 = 空間2.Location.Y : A3 = 空間2.Size.Width : B3 = 空間2.Size.Height
  677. AA1 = 合約_dgv.Location.X : AA2 = 錨點2.Location.X : BB2 = 空間3.Location.Y : AA3 = 空間3.Size.Width : BB3 = 空間3.Size.Height
  678. OX1 = 報價係數_dgv.Size.Width : OY1 = 報價係數_dgv.Size.Height : OY2 = 報價明細表_dgv.Size.Height
  679. 中文大寫3_ch.Checked = False : 中文小寫3_ch.Checked = True
  680. ITEM4_cb.Items.Clear() : ITEM4_cb.Items.Add("") : ITEM4_cb.Items.Add("一") : ITEM4_cb.Items.Add("二") : ITEM4_cb.Items.Add("三") : ITEM4_cb.Items.Add("四")
  681. ITEM4_cb.Items.Add("五") : ITEM4_cb.Items.Add("六") : ITEM4_cb.Items.Add("七") : ITEM4_cb.Items.Add("八") : ITEM4_cb.Items.Add("九") : ITEM4_cb.Items.Add("十")
  682. ITEM4_cb.Items.Add("十一") : ITEM4_cb.Items.Add("十二") : ITEM4_cb.Items.Add("十三") : ITEM4_cb.Items.Add("十四") : ITEM4_cb.Items.Add("十五") : ITEM4_cb.Items.Add("十六")
  683. ITEM4_cb.Items.Add("十七") : ITEM4_cb.Items.Add("十八") : ITEM4_cb.Items.Add("十九") : ITEM4_cb.Items.Add("二十")
  684. 預估工資總成本_tb.Text = "0" : 預估材料總成本_tb.Text = "0" : 預估工資總報價_tb.Text = "0" : 預估材料總報價_tb.Text = "0" : 預估利潤_tb.Text = "0"
  685. 總成本_tb.Text = "0" : 總報價_tb.Text = "0" : 利潤比1_tb.Text = "0 %" : 利潤比2_tb.Text = "0 %" : 利潤比3_tb.Text = "0 %" : 利潤比4_tb.Text = "0 %"
  686. 未折價前_tb.Text = "0" : 報價小計_tb.Text = "0" : 折讓比例_nud.Value = "0" : 歸零位數_nud.Value = "0" : 稅前歸零_ch.Checked = False : 稅後歸零_ch.Checked = False
  687. 歸零數_tb.Visible = False
  688. If 美金_ch.Checked = True Then : 幣別 = " (USD)" : ElseIf 台幣_ch.Checked = True Then : 幣別 = " (TWD)"
  689. ElseIf 人民幣_ch.Checked = True Then : 幣別 = " (RMD)" : ElseIf 印尼盾_ch.Checked = True Then : 幣別 = " (RP)" : End If
  690. 合約報價單_Siz()
  691. End Sub
  692. Private Sub 合約報價單_SizeChanged(sender As Object, e As EventArgs) Handles MyBase.SizeChanged
  693. 合約報價單_Siz()
  694. A1 = 空間1.Location.X : A2 = 錨點1.Location.X : B2 = 空間2.Location.Y
  695. AA1 = 合約_dgv.Location.X : AA2 = 錨點2.Location.X : BB2 = 空間3.Location.Y
  696. If 空間1.Visible = False Then : A3 = 空間2.Size.Width : B3 = 空間2.Size.Height : A3 -= (A2 - A1) : End If
  697. If 合約_dgv.Visible = False Then : AA3 = 空間3.Size.Width : BB3 = 空間3.Size.Height : AA3 -= (AA2 - AA1) : End If
  698. End Sub
  699. Private Sub 合約報價單_Siz()
  700. MyModule1.清單字體大小調整()
  701. 合約_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  702. 合約1_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  703. 報價係數_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  704. 報價總表_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  705. 報價明細表_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  706. BOM表控制_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  707. BOM表明細_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  708. 報價明細表1_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  709. 報價明細表2_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  710. End Sub
  711. Private Sub 合約報價單_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
  712. Set_合約清單1() : Set_合約清單() : 群組碼_cb_語轉_下拉表單資料載入() : 群組編碼_cb_下拉表單資料載入() : 係數表下拉清單1() : 係數表下拉清單2() : 甲方條件下拉清單讀取() : Set_BOM表控制()
  713. 新群組1_cb.SelectedIndex = 0 : PA = "範本" : Set_合約範例() : 預設資料() : Set_合約文件圖庫資料庫狀態()
  714. End Sub
  715. Private Sub 合約報價單_Closing(sender As Object, e As EventArgs) Handles MyBase.Closed
  716. GCM_ERP_SYS.WindowState = 0
  717. End Sub
  718. Private Sub 登入閒置控制_MouseMove(sender As Object, e As EventArgs) Handles MyBase.MouseMove
  719. timeNow = 0 : GCM_ERP_SYS.Timer1.Enabled = False : GCM_ERP_SYS.Timer1.Enabled = True
  720. End Sub
  721. Private Sub 登入閒置控制_KeyPress(sender As Object, e As EventArgs) Handles MyBase.KeyPress
  722. timeNow = 0 : GCM_ERP_SYS.Timer1.Enabled = False : GCM_ERP_SYS.Timer1.Enabled = True
  723. End Sub
  724. Private Sub Form_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
  725. If e.Control And e.KeyCode = Keys.S Then
  726. If TabControl1.SelectedIndex = 0 Then : 報價總表存檔_bt.PerformClick()
  727. ElseIf TabControl1.SelectedIndex <> 0 Then : 報價明細表存檔_bt.PerformClick() : End If
  728. End If
  729. If e.KeyCode = Keys.F1 Then
  730. If TabControl1.SelectedIndex = 0 Then : If 鍵盤鎖定1_ch.Checked = True Then : 鍵盤鎖定1_ch.Checked = False : Else : 鍵盤鎖定1_ch.Checked = True : End If
  731. ElseIf TabControl1.SelectedIndex <> 0 Then : If 鍵盤鎖定2_ch.Checked = True Then : 鍵盤鎖定2_ch.Checked = False : Else : 鍵盤鎖定2_ch.Checked = True : End If : End If
  732. End If
  733. If TabControl1.SelectedIndex = 0 Then
  734. If 鍵盤鎖定1_ch.Checked = True Then
  735. Select Case e.KeyCode
  736. Case Keys.NumPad1 : Me.ActiveControl = A1_bt : A1_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  737. Case Keys.NumPad2 : Me.ActiveControl = A2_bt : A2_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  738. Case Keys.NumPad3 : Me.ActiveControl = A3_bt : A3_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  739. Case Keys.NumPad4 : Me.ActiveControl = A4_bt : A4_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  740. Case Keys.NumPad5 : Me.ActiveControl = A5_bt : A5_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  741. Case Keys.NumPad6 : Me.ActiveControl = A6_bt : A6_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  742. Case Keys.NumPad7 : Me.ActiveControl = A7_bt : A7_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  743. Case Keys.NumPad8 : Me.ActiveControl = A8_bt : A8_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  744. Case Keys.NumPad9 : Me.ActiveControl = A9_bt : A9_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  745. Case Keys.NumPad0 : Me.ActiveControl = A0_bt : A0_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  746. Case Keys.Decimal : Me.ActiveControl = 小數點_bt : 小數點_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  747. Case Keys.D1 : Me.ActiveControl = A1_bt : A1_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  748. Case Keys.D2 : Me.ActiveControl = A2_bt : A2_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  749. Case Keys.D3 : Me.ActiveControl = A3_bt : A3_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  750. Case Keys.D4 : Me.ActiveControl = A4_bt : A4_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  751. Case Keys.D5 : Me.ActiveControl = A5_bt : A5_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  752. Case Keys.D6 : Me.ActiveControl = A6_bt : A6_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  753. Case Keys.D7 : Me.ActiveControl = A7_bt : A7_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  754. Case Keys.D8 : Me.ActiveControl = A8_bt : A8_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  755. Case Keys.D9 : Me.ActiveControl = A9_bt : A9_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  756. Case Keys.D0 : Me.ActiveControl = A0_bt : A0_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  757. Case Keys.OemPeriod : Me.ActiveControl = 小數點_bt : 小數點_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  758. Case Keys.Delete : Me.ActiveControl = 倒退_bt : 倒退_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  759. Case Keys.Multiply : Me.ActiveControl = 乘_bt : 乘_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  760. Case Keys.Subtract : Me.ActiveControl = 減_bt : 減_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  761. Case Keys.OemMinus : Me.ActiveControl = 減_bt : 減_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  762. Case Keys.Add : Me.ActiveControl = 加_bt : 加_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  763. Case Keys.Oemplus : Me.ActiveControl = 加_bt : 加_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  764. Case Keys.Oem2 : Me.ActiveControl = 除_bt : 除_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  765. Case Keys.Divide : Me.ActiveControl = 除_bt : 除_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  766. Case Keys.Back : Me.ActiveControl = 倒退_bt : 倒退_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  767. Case Keys.Return : Me.ActiveControl = 倒退_bt : 倒退_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  768. Case Keys.Escape : Me.ActiveControl = 清除_bt : 清除_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus()
  769. End Select
  770. End If
  771. ElseIf TabControl1.SelectedIndex <> 0 Then
  772. If 鍵盤鎖定2_ch.Checked = True Then
  773. Select Case e.KeyCode
  774. Case Keys.NumPad1 : Me.ActiveControl = A1_bt : A1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  775. Case Keys.NumPad2 : Me.ActiveControl = A2_bt : A2_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  776. Case Keys.NumPad3 : Me.ActiveControl = A3_bt : A3_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  777. Case Keys.NumPad4 : Me.ActiveControl = A4_bt : A4_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  778. Case Keys.NumPad5 : Me.ActiveControl = A5_bt : A5_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  779. Case Keys.NumPad6 : Me.ActiveControl = A6_bt : A6_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  780. Case Keys.NumPad7 : Me.ActiveControl = A7_bt : A7_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  781. Case Keys.NumPad8 : Me.ActiveControl = A8_bt : A8_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  782. Case Keys.NumPad9 : Me.ActiveControl = A9_bt : A9_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  783. Case Keys.NumPad0 : Me.ActiveControl = A0_bt : A0_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  784. Case Keys.Decimal : Me.ActiveControl = 小數點1_bt : 小數點1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  785. Case Keys.D1 : Me.ActiveControl = A1_bt : A1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  786. Case Keys.D2 : Me.ActiveControl = A2_bt : A2_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  787. Case Keys.D3 : Me.ActiveControl = A3_bt : A3_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  788. Case Keys.D4 : Me.ActiveControl = A4_bt : A4_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  789. Case Keys.D5 : Me.ActiveControl = A5_bt : A5_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  790. Case Keys.D6 : Me.ActiveControl = A6_bt : A6_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  791. Case Keys.D7 : Me.ActiveControl = A7_bt : A7_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  792. Case Keys.D8 : Me.ActiveControl = A8_bt : A8_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  793. Case Keys.D9 : Me.ActiveControl = A9_bt : A9_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  794. Case Keys.D0 : Me.ActiveControl = A0_bt : A0_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  795. Case Keys.OemPeriod : Me.ActiveControl = 小數點1_bt : 小數點1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  796. Case Keys.Delete : Me.ActiveControl = 倒退1_bt : 倒退1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  797. Case Keys.Multiply : Me.ActiveControl = 乘1_bt : 乘1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  798. Case Keys.Subtract : Me.ActiveControl = 減1_bt : 減1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  799. Case Keys.OemMinus : Me.ActiveControl = 減1_bt : 減1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  800. Case Keys.Add : Me.ActiveControl = 加1_bt : 加1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  801. Case Keys.Oemplus : Me.ActiveControl = 加1_bt : 加1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  802. Case Keys.Oem2 : Me.ActiveControl = 除1_bt : 除1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  803. Case Keys.Divide : Me.ActiveControl = 除1_bt : 除1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  804. Case Keys.Back : Me.ActiveControl = 倒退1_bt : 倒退1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  805. Case Keys.Return : Me.ActiveControl = 倒退1_bt : 倒退1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  806. Case Keys.Escape : Me.ActiveControl = 清除1_bt : 清除1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus()
  807. End Select
  808. End If
  809. End If
  810. End Sub
  811. Private Sub 報價明細表2_dgv_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles 報價明細表2_dgv.CellClick
  812. If e.RowIndex = -1 Then : Else
  813. If 報價明細表2_dgv.Rows(e.RowIndex).Cells("選擇").Value = True Then
  814. 報價明細表2_dgv.Rows(e.RowIndex).Cells("選擇").Value = False
  815. Else
  816. 報價明細表2_dgv.Rows(e.RowIndex).Cells("選擇").Value = True
  817. End If
  818. 物料圖1_pb.Image = Nothing
  819. If 報價明細表2_dgv.Rows(e.RowIndex).Cells("料號原則").Value.ToString = "" Then : Else
  820. PA2 = 報價明細表2_dgv.Rows(e.RowIndex).Cells("料號原則").Value.ToString : SQL_物料圖庫_圖檔讀取一()
  821. While dr.Read() = True
  822. Dim unused As Byte() = New Byte(-1) {}
  823. Dim bytes As Byte() = DirectCast(dr.Item("圖檔"), Byte())
  824. Dim oStream As New MemoryStream(bytes)
  825. 物料圖1_pb.Image = Bitmap.FromStream(oStream)
  826. End While : conn.Close() : 物料圖1_pb.SizeMode = 4
  827. End If
  828. '------------數字為0隱藏-----------------------------------------------------------------------------------------------
  829. For i As Integer = 0 To 報價明細表2_dgv.Rows.Count - 1
  830. If IsDBNull(報價明細表2_dgv.Rows(i).Cells("QTY").Value) Then : 報價明細表2_dgv.Rows(i).Cells("QTY").Style.ForeColor = Color.White : Else
  831. If 報價明細表2_dgv.Rows(i).Cells("QTY").Value = 0 Then : 報價明細表2_dgv.Rows(i).Cells("QTY").Style.ForeColor = Color.White
  832. Else : 報價明細表2_dgv.Rows(i).Cells("QTY").Style.ForeColor = Color.Black : End If : End If
  833. Next
  834. If 報價明細表2_dgv.Rows(e.RowIndex).Cells("選擇").Value = True Then
  835. 報價明細表2_dgv.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.LightGreen
  836. Else : 報價明細表2_dgv.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.White : End If
  837. End If
  838. End Sub
  839. Private Sub 合約1_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 合約1_dgv.CellClick
  840. If e.RowIndex = -1 Then : Else
  841. 合約編號_1_tb.Text = 合約1_dgv.Rows(e.RowIndex).Cells("合約編號").Value : Set_合約報價明細表1()
  842. If 放大 = True Then : 縮放2_bt.PerformClick() : End If
  843. End If
  844. End Sub
  845. Private Sub BOM表控制_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles BOM表控制_dgv.CellClick
  846. If e.RowIndex = -1 Then : Else
  847. 主項目_tb.Text = BOM表控制_dgv.Rows(e.RowIndex).Cells("項目").Value.ToString : 項目流水_tb.Text = BOM表控制_dgv.Rows(e.RowIndex).Cells("流水號").Value.ToString
  848. PA = 項目流水_tb.Text : Set_BOM表明細()
  849. End If
  850. End Sub
  851. Private Sub BOM表明細_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles BOM表明細_dgv.CellClick
  852. If e.RowIndex = -1 Then : Else
  853. 物料圖1_pb.Image = Nothing
  854. If BOM表明細_dgv.Rows(e.RowIndex).Cells("料號原則").Value.ToString = "" Then : Else
  855. PA2 = BOM表明細_dgv.Rows(e.RowIndex).Cells("料號原則").Value.ToString : SQL_物料圖庫_圖檔讀取一()
  856. While dr.Read() = True
  857. Dim unused As Byte() = New Byte(-1) {}
  858. Dim bytes As Byte() = DirectCast(dr.Item("圖檔"), Byte())
  859. Dim oStream As New MemoryStream(bytes)
  860. 物料圖1_pb.Image = Bitmap.FromStream(oStream)
  861. End While : conn.Close() : 物料圖1_pb.SizeMode = 4
  862. End If
  863. End If
  864. End Sub
  865. Private Sub 合約讀取()
  866. 試算表_cb.Items.Clear() : 試算表_cb.Text = "試算表1" : 表號_tb.Text = "B01"
  867. '---------合約生成--------------------------------------------------------------------------------------------------------------
  868. 合約種類下拉清單讀取() : 客戶名稱下拉清單讀取() : 我司負責人下拉清單讀取()
  869. If Strings.Left(合約_dgv("合約編號", 選取位置).Value.ToString, 3) = "GCM" Then : 合約編號_cb.Text = "GCM" : Else : 合約編號_cb.Text = "ICS" : End If
  870. 合約編號1_tb.Text = 合約_dgv("約號甲方", 選取位置).Value.ToString : 合約編號2_tb.Text = 合約_dgv("約號排序", 選取位置).Value.ToString
  871. 合約編號3_tb.Text = 合約_dgv("約號尾序", 選取位置).Value.ToString : 報價說明_tb.Text = 合約_dgv("報價說明", 選取位置).Value.ToString
  872. 客戶名稱_tb.Text = 合約_dgv("客戶名稱", 選取位置).Value.ToString : 負責人_A_cb.Text = 合約_dgv("負責人A", 選取位置).Value.ToString
  873. 工程地點_tb.Text = 合約_dgv("工程地點", 選取位置).Value.ToString : 客戶地址_tb.Text = 合約_dgv("客戶地址", 選取位置).Value.ToString
  874. 工程名稱_中_tb.Text = 合約_dgv("工程名稱_中", 選取位置).Value.ToString : 工程名稱_英_tb.Text = 合約_dgv("工程名稱_英", 選取位置).Value.ToString
  875. 負責人_B_cb.Text = 合約_dgv("負責人B", 選取位置).Value.ToString : 我司地址_tb.Text = 合約_dgv("我司地址", 選取位置).Value.ToString
  876. CH2.Checked = True : NUD3.Value = 合約_dgv("工程總價", 選取位置).Value : 工程款1_nud.Value = 合約_dgv("第一期比例", 選取位置).Value
  877. 工程款2_nud.Value = 合約_dgv("第二期比例", 選取位置).Value : 工程款3_nud.Value = 合約_dgv("第三期比例", 選取位置).Value
  878. 工程款4_nud.Value = 合約_dgv("第四期比例", 選取位置).Value : 工程款5_nud.Value = 合約_dgv("第五期比例", 選取位置).Value
  879. 工期_nud.Value = 合約_dgv("工期", 選取位置).Value : 逾期_bt.Text = 合約_dgv("逾期_中", 選取位置).Value.ToString
  880. 最高扣款_bt.Text = 合約_dgv("最高扣罰_中", 選取位置).Value.ToString : 逾期_英_bt.Text = 合約_dgv("逾期_英", 選取位置).Value.ToString
  881. 最高扣款_英_bt.Text = 合約_dgv("最高扣罰_英", 選取位置).Value.ToString : 減價_bt.Text = 合約_dgv("減價", 選取位置).Value.ToString
  882. 廠區_中文_tb.Text = 合約_dgv("工程廠區", 選取位置).Value.ToString : 最末頁_cb.Text = 合約_dgv("頁數", 選取位置).Value.ToString
  883. 立約日期_dtp.Value = 合約_dgv("立約日期", 選取位置).Value : 合約種類_cb.Text = 合約_dgv("合約種類", 選取位置).Value.ToString
  884. 合約停止_ch.Checked = 合約_dgv("停止", 選取位置).Value
  885. If 合約_dgv("幣別", 選取位置).Value.ToString = “美金“ Then : 美金_ch.Checked = True : 台幣_ch.Checked = False : 人民幣_ch.Checked = False : 印尼盾_ch.Checked = False
  886. ElseIf 合約_dgv("幣別", 選取位置).Value.ToString = "台幣" Then : 美金_ch.Checked = False : 台幣_ch.Checked = True : 人民幣_ch.Checked = False : 印尼盾_ch.Checked = False
  887. ElseIf 合約_dgv("幣別", 選取位置).Value.ToString = "人民幣" Then : 美金_ch.Checked = False : 台幣_ch.Checked = False : 人民幣_ch.Checked = True : 印尼盾_ch.Checked = False
  888. ElseIf 合約_dgv("幣別", 選取位置).Value.ToString = "印尼盾" Then : 美金_ch.Checked = False : 台幣_ch.Checked = False : 人民幣_ch.Checked = False : 印尼盾_ch.Checked = True
  889. End If
  890. 折讓比例_nud.Value = 合約_dgv(“折讓比例", 選取位置).Value : 歸零位數_nud.Value = 合約_dgv("歸零位數", 選取位置).Value
  891. 稅前歸零_ch.Checked = 合約_dgv("稅前歸零", 選取位置).Value : 稅後歸零_ch.Checked = 合約_dgv(“稅後歸零", 選取位置).Value
  892. 圖片庫 = 合約_dgv("簽回檔圖庫", 選取位置).Value.ToString : 簽回檔 = 合約_dgv("簽回", 選取位置).Value
  893. PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text
  894. PA1 = "1" : Set_合約明細1() : PA1 = "2" : Set_合約明細2() : PA1 = "3" : Set_合約明細3() : PA1 = "4" : Set_合約明細4() : PA1 = "5" : Set_合約明細5()
  895. '---------試算表--------------------------------------------------------------------------------------------------------------
  896. 合約編號_tb.Text = 合約_dgv("合約編號", 選取位置).Value.ToString
  897. PA = 合約_dgv("合約編號", 選取位置).Value.ToString : SQL_合約試算分表查詢()
  898. If dr.Read() Then
  899. 試算表_cb.Items.Clear() : conn.Close() : SQL_合約試算分表查詢() : While (dr.Read()) : 試算表_cb.Items.Add(dr("試算表")) : End While
  900. conn.Close() : 試算表_cb.SelectedIndex = 0 : 表號_tb.Text = "B01" : PA2 = 表號_tb.Text : SQL_合約試算控制表查詢()
  901. If dr.Read() Then
  902. 樓層_迴路_cb.Items.Clear() : conn.Close() : SQL_合約試算控制表查詢() : While (dr.Read()) : 樓層_迴路_cb.Items.Add(dr("樓層/迴路")) : End While : conn.Close()
  903. 樓層_迴路_cb.SelectedIndex = 0 : 表頭_tb.Text = "A01" : Set_合約試算控制表_查詢()
  904. Else
  905. 樓層_迴路_cb.Items.Clear() : 表頭_tb.Text = "" : Set_合約試算控制表_查詢()
  906. End If : conn.Close()
  907. Else
  908. conn.Close() : PA1 = 試算表_cb.Text : PA2 = 表號_tb.Text : SQL_合約試算分表_新增()
  909. End If : conn.Close()
  910. '---------報價單--------------------------------------------------------------------------------------------------------------
  911. 報價單合約編號_tb.Text = 合約_dgv("合約編號", 選取位置).Value.ToString : 報價單客戶名稱_cb.Text = 合約_dgv("客戶名稱", 選取位置).Value.ToString
  912. 報價工程名稱_中_tb.Text = 合約_dgv("工程名稱_中", 選取位置).Value.ToString : 報價工程名稱_英_tb.Text = 合約_dgv("工程名稱_英", 選取位置).Value.ToString
  913. 報價單立約日期_dtp.Value = 合約_dgv("立約日期", 選取位置).Value.ToString
  914. PA = 合約編號_tb.Text : 合約_lb.Text = "合約"
  915. Set_合約報價總表() : Set_合約報價係數() : Set_合約報價明細表() : 報價總表_dgv_自動計算()
  916. If 報價明細表_dgv.Rows.Count = 0 Then : For i As Integer = 1 To 3 : 新增資料2_bt.PerformClick() : Next : End If
  917. End Sub
  918. Private Sub 合約_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 合約_dgv.CellClick
  919. If e.RowIndex = -1 Then : Else : 選取位置 = e.RowIndex : 合約讀取() : End If : 縮放2_bt.PerformClick() : 縮放1_bt.PerformClick()
  920. End Sub
  921. Private Sub 試算表_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 試算表_dgv.CellClick
  922. If e.RowIndex = -1 Then : Else
  923. If 直接輸入_ch.Checked = False And 使用計算機_ch.Checked = True Then
  924. If e.ColumnIndex > 1 And e.ColumnIndex < 40 Then
  925. 計算機.ShowDialog() : If IsNumeric(PA30) Then : 試算表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = PA30 : 試算表計算() : End If
  926. End If
  927. End If : 料號1_tb.Text = 試算表_dgv.Rows(e.RowIndex).Cells("料號").Value.ToString
  928. PA2 = Strings.StrReverse(Strings.Mid(Strings.StrReverse(試算表_dgv.Rows(e.RowIndex).Cells("料號").Value.ToString), 6, 50)) : SQL_物料圖庫_圖檔讀取一()
  929. While dr.Read() = True
  930. Dim unused As Byte() = New Byte(-1) {}
  931. Dim bytes As Byte() = DirectCast(dr.Item("圖檔"), Byte())
  932. Dim oStream As New MemoryStream(bytes)
  933. 物料圖_pb.Image = Bitmap.FromStream(oStream)
  934. End While : conn.Close() : 物料圖_pb.SizeMode = 4
  935. End If
  936. End Sub
  937. Private Sub 物料清單_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 物料清單_dgv.CellClick
  938. If e.RowIndex = -1 Then : Else
  939. PA = 物料清單_dgv(1, e.RowIndex).Value.ToString
  940. PA1 = 物料清單_dgv.Rows(e.RowIndex).Cells("群組碼").Value : PA2 = 物料清單_dgv.Rows(e.RowIndex).Cells("料號原則").Value
  941. SQL_物料圖庫_圖檔讀取()
  942. While dr.Read() = True
  943. Dim unused As Byte() = New Byte(-1) {}
  944. Dim bytes As Byte() = DirectCast(dr.Item("圖檔"), Byte())
  945. Dim oStream As New MemoryStream(bytes)
  946. 物料圖_pb.Image = Bitmap.FromStream(oStream)
  947. 物料圖1_pb.Image = Bitmap.FromStream(oStream)
  948. End While : conn.Close() : 物料圖_pb.SizeMode = 4 : 物料圖1_pb.SizeMode = 4
  949. '------------------------------------------------------------------------------------------------------------------------------------------
  950. SQL_建築物料請購單申請_物料規格讀取()
  951. If dr.Read() Then : KKK2 = dr("規格庫編號") : PA3 = dr("規格庫抬頭指定") : PA4 = dr("群組碼") : End If : conn.Close()
  952. '------------------------------------------------------------------------------------------------------------------------------------------
  953. SQL_規格庫抬頭讀取()
  954. 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
  955. conn.Close()
  956. '------------------------------------------------------------------------------------------------------------------------------------------
  957. Dim ds3 As New DataSet
  958. 物料規格_dgv.DataSource = Nothing : ds3.Clear()
  959. 物料規格_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  960. 物料規格_dgv.ColumnHeadersHeight = 25 : 物料規格_dgv.AllowUserToAddRows = False : 物料規格_dgv.RowTemplate.Height = 20
  961. If KKK2 = "SQLB03" Then : SQL_物料規格_SQLB03() : ElseIf KKK2 = "SQLB04" Then : SQL_物料規格_SQLB04() : ElseIf KKK2 = "SQLB05" Then : SQL_物料規格_SQLB05()
  962. ElseIf KKK2 = "SQLB06" Then : SQL_物料規格_SQLB06() : ElseIf KKK2 = "SQLB07" Then : SQL_物料規格_SQLB07() : ElseIf KKK2 = "SQLB08" Then : SQL_物料規格_SQLB08() : End If
  963. da.Fill(ds3) : 物料規格_dgv.DataSource = ds3.Tables(0) : conn.Close() : 料號1_tb.Text = ""
  964. 物料規格_dgv.Columns(0).Visible = False : 物料規格_dgv.Columns(1).Visible = False : 物料規格_dgv.Columns(3).Visible = False
  965. 物料規格_dgv.Columns(2).Width = 17 : 物料規格_dgv.Columns(12).Visible = False : 物料規格_dgv.Columns(13).Visible = False : 物料規格_dgv.Columns(14).Visible = False
  966. 物料規格_dgv.Columns(15).Visible = False
  967. If KKK2 = "SQLB03" Then
  968. 物料規格_dgv.Columns(7).Visible = False : 物料規格_dgv.Columns(8).Visible = False : 物料規格_dgv.Columns(9).Visible = False : 物料規格_dgv.Columns(10).Visible = False
  969. 物料規格_dgv.Columns(11).Visible = False
  970. 物料規格_dgv.Columns(4).FillWeight = 213 : 物料規格_dgv.Columns(5).FillWeight = 213 : 物料規格_dgv.Columns(6).FillWeight = 214
  971. ElseIf KKK2 = "SQLB04" Then
  972. 物料規格_dgv.Columns(7).Visible = True : 物料規格_dgv.Columns(8).Visible = False : 物料規格_dgv.Columns(9).Visible = False : 物料規格_dgv.Columns(10).Visible = False
  973. 物料規格_dgv.Columns(11).Visible = False
  974. 物料規格_dgv.Columns(4).FillWeight = 160 : 物料規格_dgv.Columns(5).FillWeight = 160 : 物料規格_dgv.Columns(6).FillWeight = 160 : 物料規格_dgv.Columns(7).FillWeight = 160
  975. ElseIf KKK2 = "SQLB05" Then
  976. 物料規格_dgv.Columns(7).Visible = True : 物料規格_dgv.Columns(8).Visible = True : 物料規格_dgv.Columns(9).Visible = False : 物料規格_dgv.Columns(10).Visible = False
  977. 物料規格_dgv.Columns(11).Visible = False
  978. 物料規格_dgv.Columns(4).FillWeight = 128 : 物料規格_dgv.Columns(5).FillWeight = 128 : 物料規格_dgv.Columns(6).FillWeight = 128 : 物料規格_dgv.Columns(7).FillWeight = 128
  979. 物料規格_dgv.Columns(8).FillWeight = 128
  980. ElseIf KKK2 = "SQLB06" Then
  981. 物料規格_dgv.Columns(7).Visible = True : 物料規格_dgv.Columns(8).Visible = True : 物料規格_dgv.Columns(9).Visible = True : 物料規格_dgv.Columns(10).Visible = False
  982. 物料規格_dgv.Columns(11).Visible = False
  983. 物料規格_dgv.Columns(4).FillWeight = 106 : 物料規格_dgv.Columns(5).FillWeight = 107 : 物料規格_dgv.Columns(6).FillWeight = 106 : 物料規格_dgv.Columns(7).FillWeight = 107
  984. 物料規格_dgv.Columns(8).FillWeight = 106 : 物料規格_dgv.Columns(9).FillWeight = 108
  985. ElseIf KKK2 = "SQLB07" Then
  986. 物料規格_dgv.Columns(7).Visible = True : 物料規格_dgv.Columns(8).Visible = True : 物料規格_dgv.Columns(9).Visible = True : 物料規格_dgv.Columns(10).Visible = True
  987. 物料規格_dgv.Columns(11).Visible = False
  988. 物料規格_dgv.Columns(4).FillWeight = 91 : 物料規格_dgv.Columns(5).FillWeight = 92 : 物料規格_dgv.Columns(6).FillWeight = 91 : 物料規格_dgv.Columns(7).FillWeight = 92
  989. 物料規格_dgv.Columns(8).FillWeight = 91 : 物料規格_dgv.Columns(9).FillWeight = 92 : 物料規格_dgv.Columns(10).FillWeight = 91
  990. ElseIf KKK2 = "SQLB08" Then
  991. 物料規格_dgv.Columns(7).Visible = True : 物料規格_dgv.Columns(8).Visible = True : 物料規格_dgv.Columns(9).Visible = True : 物料規格_dgv.Columns(10).Visible = True
  992. 物料規格_dgv.Columns(11).Visible = True
  993. 物料規格_dgv.Columns(4).FillWeight = 80 : 物料規格_dgv.Columns(5).FillWeight = 80 : 物料規格_dgv.Columns(6).FillWeight = 80 : 物料規格_dgv.Columns(7).FillWeight = 80
  994. 物料規格_dgv.Columns(8).FillWeight = 80 : 物料規格_dgv.Columns(9).FillWeight = 80 : 物料規格_dgv.Columns(10).FillWeight = 80 : 物料規格_dgv.Columns(11).FillWeight = 80
  995. End If
  996. 物料規格_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  997. For i As Integer = 0 To 11 : 物料規格_dgv.Columns(i).ReadOnly = True : Next
  998. For i As Integer = 0 To 物料規格_dgv.Rows.Count - 1
  999. 物料規格_dgv.Rows(i).Cells("No").Value = i + 1 : 物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value = 0
  1000. If Not IsNumeric(物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value) Then : MessageBox.Show("欄位輸入必須為數值")
  1001. ElseIf Val(物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value) > 0 Then : 物料規格_dgv.Rows(i).Cells("Pilih").Value = True
  1002. ElseIf Val(物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value) <= 0 Then : 物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value = "0"
  1003. 物料規格_dgv.Rows(i).Cells("Pilih").Value = False
  1004. End If
  1005. Next i
  1006. End If
  1007. End Sub
  1008. Private Sub 報價係數_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價係數_dgv.CellClick
  1009. If e.RowIndex = -1 Then : Else
  1010. 係數項目_cb.Text = 報價係數_dgv.Rows(e.RowIndex).Cells("項目").Value.ToString : 係數單位_cb.Text = 報價係數_dgv.Rows(e.RowIndex).Cells("單位").Value.ToString
  1011. 係數_nup.Value = 報價係數_dgv.Rows(e.RowIndex).Cells("係數").Value : 係數流水號_tb.Text = 報價係數_dgv.Rows(e.RowIndex).Cells("流水號").Value.ToString
  1012. 係數合約號_tb.Text = 報價係數_dgv.Rows(e.RowIndex).Cells("合約號碼").Value.ToString
  1013. End If
  1014. End Sub
  1015. Private Sub 物料規格_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 物料規格_dgv.CellClick
  1016. If e.RowIndex = -1 Then : Else
  1017. 料號1_tb.Text = 物料規格_dgv.Rows(e.RowIndex).Cells("Nomor_Bagian").Value.ToString : 料號_tb.Text = 物料規格_dgv.Rows(e.RowIndex).Cells("Nomor_Bagian").Value.ToString
  1018. PA47 = 料號_tb.Text : SQL_採購單價查詢()
  1019. If dr.Read Then : 最後採購日_tb.Text = Strings.Left(dr("採購日"), 4) & "/" & Strings.Mid(dr("採購日"), 5, 2) & "/" & Strings.Right(dr("採購日"), 2)
  1020. 歷史單價_tb.Text = Strings.Format(CInt(dr("單價").ToString), "#,##0") : Else : 最後採購日_tb.Text = "" : 歷史單價_tb.Text = "0"
  1021. End If
  1022. End If
  1023. End Sub
  1024. Private Sub 報價總表_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價總表_dgv.CellClick
  1025. If e.RowIndex = -1 Then : Else : DGV位置1.Value = e.RowIndex
  1026. 總表流水_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("流水號").Value.ToString : ITEM1_cb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("ITEM").Value.ToString()
  1027. 單位_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("UNIT").Value.ToString() : 備註_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("REMARKS").Value.ToString()
  1028. 內容_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("DESCRIPTION").Value.ToString() : 選擇項_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("排序").Value.ToString()
  1029. 合計項_cb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("DESCRIPTION").Value.ToString() : 選擇項3_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("排序").Value.ToString()
  1030. If 合計項_cb.Text = 內容_tb.Text Then : Else : 合計項_cb.Text = "" : End If
  1031. DGV_X = e.ColumnIndex : DGV_Y = e.RowIndex : 選擇項_tb.Text = e.RowIndex
  1032. If DGV_X = 4 Or DGV_X = 5 Or DGV_X = 6 Then
  1033. If 目前選擇 = "寫入資料" Then : X_3_tb.Text = e.ColumnIndex : Y_3_tb.Text = e.RowIndex
  1034. Else
  1035. If IsDBNull(報價總表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) Then : 報價總表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = 0 : End If
  1036. 數值2_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value
  1037. End If
  1038. End If
  1039. End If
  1040. End Sub
  1041. Private Sub 報價明細表_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價明細表_dgv.CellClick
  1042. If e.RowIndex = -1 Then : Else : DGV位置2.Value = e.RowIndex
  1043. If 啟用批量選擇_ch.Checked = True Then
  1044. If 報價明細表_dgv("S", e.RowIndex).Value = True Then
  1045. 報價明細表_dgv("S", e.RowIndex).Value = False : 報價明細表_dgv.Rows(e.RowIndex).DefaultCellStyle.ForeColor = Color.Black
  1046. Else
  1047. 報價明細表_dgv("S", e.RowIndex).Value = True : 報價明細表_dgv.Rows(e.RowIndex).DefaultCellStyle.ForeColor = Color.Red
  1048. End If
  1049. End If
  1050. 明細表流水_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("流水號").Value.ToString : ITEM2_cb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("ITEM").Value.ToString()
  1051. 單位1_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("UNIT").Value.ToString() : 備註1_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("REMARKS").Value.ToString()
  1052. 內容1_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("DESCRIPTION").Value.ToString() : 選擇項2_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("排序").Value.ToString()
  1053. 合計項1_cb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("DESCRIPTION").Value.ToString() : ITEM3_cb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("ITEM").Value.ToString()
  1054. 料號_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("料號").Value.ToString() : 申請數_nud.Value = 報價明細表_dgv.Rows(e.RowIndex).Cells("QTY").Value.ToString()
  1055. 單位2_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("UNIT").Value.ToString()
  1056. 物料圖1_pb.Image = Nothing
  1057. If 報價明細表_dgv.Rows(e.RowIndex).Cells("料號原則").Value.ToString = "" Then : Else
  1058. PA2 = 報價明細表_dgv.Rows(e.RowIndex).Cells("料號原則").Value.ToString : SQL_物料圖庫_圖檔讀取一()
  1059. While dr.Read() = True
  1060. Dim unused As Byte() = New Byte(-1) {}
  1061. Dim bytes As Byte() = DirectCast(dr.Item("圖檔"), Byte())
  1062. Dim oStream As New MemoryStream(bytes)
  1063. 物料圖1_pb.Image = Bitmap.FromStream(oStream)
  1064. End While : conn.Close() : 物料圖1_pb.SizeMode = 4
  1065. End If
  1066. If 合計項1_cb.Text = 內容1_tb.Text Then : Else : 合計項1_cb.Text = "" : End If
  1067. DGV_X = e.ColumnIndex : DGV_Y = e.RowIndex : 選擇項1_tb.Text = e.RowIndex
  1068. 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
  1069. If 目前選擇 = "寫入資料" Then : X_2_tb.Text = e.ColumnIndex : Y_2_tb.Text = e.RowIndex
  1070. Else
  1071. If IsDBNull(報價明細表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) Then : 報價明細表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = 0 : End If
  1072. 數值4_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value
  1073. End If
  1074. End If
  1075. End If
  1076. End Sub
  1077. Private Sub 報價係數1_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價係數1_dgv.CellClick
  1078. If e.RowIndex = -1 Then : Else
  1079. 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
  1080. End If
  1081. End Sub
  1082. Private Sub 報價明細表1_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價明細表1_dgv.CellClick
  1083. If e.RowIndex = -1 Then : Else
  1084. 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
  1085. ITEM1_cb.Text = 報價明細表1_dgv.Rows(e.RowIndex).Cells("ITEM").Value.ToString() : 內容_tb.Text = 報價明細表1_dgv.Rows(e.RowIndex).Cells("DESCRIPTION").Value.ToString()
  1086. 單位_tb.Text = 報價明細表1_dgv.Rows(e.RowIndex).Cells("UNIT").Value.ToString() : 連動編號_tb.Text = ""
  1087. End If
  1088. End Sub
  1089. Private Sub 報價明細表1_dgv_CellDoubleClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價明細表1_dgv.CellDoubleClick
  1090. If e.RowIndex = -1 Then : Else
  1091. 報價總表_dgv.Rows(DGV位置1.Value).Cells("明細連動").Value = 報價明細表1_dgv.Rows(e.RowIndex).Cells("流水號").Value.ToString()
  1092. End If
  1093. End Sub
  1094. Private Sub 報價總表_dgv_CellDoubleClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價總表_dgv.CellDoubleClick
  1095. If e.RowIndex = -1 Then : Else
  1096. If 視窗2_pl.Visible = True Then
  1097. DGV_X = e.ColumnIndex : DGV_Y = e.RowIndex : 選擇項_tb.Text = e.RowIndex
  1098. If DGV_X = 4 Or DGV_X = 5 Or DGV_X = 6 Then
  1099. 報價總表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = NUD_03.Value : 清除_bt.PerformClick() : Me.ActiveControl = 等於_bt
  1100. End If
  1101. End If
  1102. 連動編號_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("明細連動").Value.ToString
  1103. Me.TabControl1.SelectedTab = Me.工程合約報價明細_tc
  1104. Dim 查詢 As Boolean
  1105. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  1106. If 報價總表_dgv.Rows(e.RowIndex).Cells("DESCRIPTION").Value.ToString() = 報價明細表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString() Then
  1107. 報價明細表_dgv.CurrentCell = 報價明細表_dgv.Rows(i).Cells(1) : 查詢 = True : Exit For : Else : 查詢 = False
  1108. End If
  1109. Next
  1110. If 查詢 = False Then
  1111. If DGV位置2.Value >= 報價明細表_dgv.Rows.Count Then : DGV位置2.Value = 報價明細表_dgv.Rows.Count - 1 : End If
  1112. If DGV位置2.Value > 0 Then : 報價明細表_dgv.CurrentCell = 報價明細表_dgv.Rows(DGV位置2.Value).Cells(1) : End If
  1113. End If
  1114. End If
  1115. End Sub
  1116. Private Sub 報價明細表_dgv_CellDoubleClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價明細表_dgv.CellDoubleClick
  1117. If e.RowIndex = -1 Then : Else
  1118. If 視窗3_pl.Visible = True Then
  1119. DGV_X = e.ColumnIndex : DGV_Y = e.RowIndex : 選擇項1_tb.Text = e.RowIndex
  1120. 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
  1121. 報價明細表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = NUD_06.Value : 清除1_bt.PerformClick() : Me.ActiveControl = 等於1_bt
  1122. End If
  1123. End If
  1124. End If
  1125. End Sub
  1126. Private Sub 報價總表_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 報價總表_dgv.CellEndEdit
  1127. If 啟動運算 = True Then : 報價總表_dgv_自動計算() : End If
  1128. End Sub
  1129. Private Sub 報價明細表_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 報價明細表_dgv.CellEndEdit
  1130. If 啟動運算 = True Then : 報價明細表_dgv_物料顯示() : 報價明細表_dgv_自動計算() : 報價總表_dgv_自動計算() : End If
  1131. End Sub
  1132. Private Sub 試算表_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 試算表_dgv.CellEnter
  1133. 試算表計算()
  1134. End Sub
  1135. Private Sub 物料規格_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 物料規格_dgv.CellEnter
  1136. For i As Integer = 0 To 物料規格_dgv.Rows.Count - 1
  1137. If Not IsNumeric(物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value) Then
  1138. MessageBox.Show("欄位輸入必須為數值") : 物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value = "0" : 物料規格_dgv.Rows(i).Cells("Pilih").Value = False
  1139. ElseIf Val(物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value) > 0 Then : 物料規格_dgv.Rows(i).Cells("Pilih").Value = True
  1140. ElseIf Val(物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value) <= 0 Then : 物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value = "0"
  1141. 物料規格_dgv.Rows(i).Cells("Pilih").Value = False
  1142. End If
  1143. Next i
  1144. End Sub
  1145. Private Sub 試算表計算()
  1146. For i As Integer = 0 To 試算表_dgv.Rows.Count - 1
  1147. If 試算表_dgv.Rows(i).Cells("係數").Value = False Then
  1148. 試算表_dgv.Rows(i).Cells("Total").Value = 試算表_dgv.Rows(i).Cells(3).Value + 試算表_dgv.Rows(i).Cells(4).Value +
  1149. 試算表_dgv.Rows(i).Cells(5).Value + 試算表_dgv.Rows(i).Cells(6).Value + 試算表_dgv.Rows(i).Cells(7).Value + 試算表_dgv.Rows(i).Cells(8).Value +
  1150. 試算表_dgv.Rows(i).Cells(9).Value + 試算表_dgv.Rows(i).Cells(10).Value + 試算表_dgv.Rows(i).Cells(11).Value + 試算表_dgv.Rows(i).Cells(12).Value +
  1151. 試算表_dgv.Rows(i).Cells(13).Value + 試算表_dgv.Rows(i).Cells(14).Value + 試算表_dgv.Rows(i).Cells(15).Value + 試算表_dgv.Rows(i).Cells(16).Value +
  1152. 試算表_dgv.Rows(i).Cells(17).Value + 試算表_dgv.Rows(i).Cells(18).Value + 試算表_dgv.Rows(i).Cells(19).Value + 試算表_dgv.Rows(i).Cells(20).Value +
  1153. 試算表_dgv.Rows(i).Cells(21).Value + 試算表_dgv.Rows(i).Cells(22).Value + 試算表_dgv.Rows(i).Cells(23).Value + 試算表_dgv.Rows(i).Cells(24).Value +
  1154. 試算表_dgv.Rows(i).Cells(25).Value + 試算表_dgv.Rows(i).Cells(26).Value + 試算表_dgv.Rows(i).Cells(27).Value + 試算表_dgv.Rows(i).Cells(28).Value +
  1155. 試算表_dgv.Rows(i).Cells(29).Value + 試算表_dgv.Rows(i).Cells(30).Value + 試算表_dgv.Rows(i).Cells(31).Value + 試算表_dgv.Rows(i).Cells(32).Value +
  1156. 試算表_dgv.Rows(i).Cells(33).Value + 試算表_dgv.Rows(i).Cells(34).Value + 試算表_dgv.Rows(i).Cells(35).Value + 試算表_dgv.Rows(i).Cells(36).Value +
  1157. 試算表_dgv.Rows(i).Cells(37).Value + 試算表_dgv.Rows(i).Cells(38).Value + 試算表_dgv.Rows(i).Cells(39).Value + 試算表_dgv.Rows(i).Cells(40).Value +
  1158. 試算表_dgv.Rows(i).Cells(41).Value + 試算表_dgv.Rows(i).Cells(42).Value
  1159. Else
  1160. 試算表_dgv.Rows(i).Cells("Total").Value = (試算表_dgv.Rows(i).Cells(3).Value + 試算表_dgv.Rows(i).Cells(4).Value +
  1161. 試算表_dgv.Rows(i).Cells(5).Value + 試算表_dgv.Rows(i).Cells(6).Value + 試算表_dgv.Rows(i).Cells(7).Value + 試算表_dgv.Rows(i).Cells(8).Value +
  1162. 試算表_dgv.Rows(i).Cells(9).Value + 試算表_dgv.Rows(i).Cells(10).Value + 試算表_dgv.Rows(i).Cells(11).Value + 試算表_dgv.Rows(i).Cells(12).Value +
  1163. 試算表_dgv.Rows(i).Cells(13).Value + 試算表_dgv.Rows(i).Cells(14).Value + 試算表_dgv.Rows(i).Cells(15).Value + 試算表_dgv.Rows(i).Cells(16).Value +
  1164. 試算表_dgv.Rows(i).Cells(17).Value + 試算表_dgv.Rows(i).Cells(18).Value + 試算表_dgv.Rows(i).Cells(19).Value + 試算表_dgv.Rows(i).Cells(20).Value +
  1165. 試算表_dgv.Rows(i).Cells(21).Value + 試算表_dgv.Rows(i).Cells(22).Value + 試算表_dgv.Rows(i).Cells(23).Value + 試算表_dgv.Rows(i).Cells(24).Value +
  1166. 試算表_dgv.Rows(i).Cells(25).Value + 試算表_dgv.Rows(i).Cells(26).Value + 試算表_dgv.Rows(i).Cells(27).Value + 試算表_dgv.Rows(i).Cells(28).Value +
  1167. 試算表_dgv.Rows(i).Cells(29).Value + 試算表_dgv.Rows(i).Cells(30).Value + 試算表_dgv.Rows(i).Cells(31).Value + 試算表_dgv.Rows(i).Cells(32).Value +
  1168. 試算表_dgv.Rows(i).Cells(33).Value + 試算表_dgv.Rows(i).Cells(34).Value + 試算表_dgv.Rows(i).Cells(35).Value + 試算表_dgv.Rows(i).Cells(36).Value +
  1169. 試算表_dgv.Rows(i).Cells(37).Value + 試算表_dgv.Rows(i).Cells(38).Value + 試算表_dgv.Rows(i).Cells(39).Value + 試算表_dgv.Rows(i).Cells(40).Value +
  1170. 試算表_dgv.Rows(i).Cells(41).Value + 試算表_dgv.Rows(i).Cells(42).Value) / 100 * (100 + 係數_nud.Value)
  1171. End If
  1172. Next i
  1173. End Sub
  1174. Private Sub 報價總表_dgv_自動計算()
  1175. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  1176. If 報價總表_dgv.Rows(i).Cells("明細連動").Value.ToString <> "" Then
  1177. For ii As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  1178. If 報價總表_dgv.Rows(i).Cells("明細連動").Value.ToString = 報價明細表_dgv.Rows(ii).Cells("流水號").Value.ToString Then
  1179. 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value = 報價明細表_dgv.Rows(ii).Cells("AMOUNT" & 幣別).Value.ToString : Exit For
  1180. End If
  1181. Next
  1182. End If
  1183. Next
  1184. Dim 合計, 合計無管, 稅金 As Double : 合計 = 0 : 稅金 = 0
  1185. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  1186. '---------計算項目-------------------------------------------------------------------------------------------------------------------------------------
  1187. If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "*" Or 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "" Or
  1188. 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "@" Or 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "^" Then : Else
  1189. If IsDBNull(報價總表_dgv.Rows(i).Cells("QTY").Value) Then : 報價總表_dgv.Rows(i).Cells("QTY").Value = 0 : End If
  1190. If IsDBNull(報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value) Then : 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value = 0 : End If
  1191. 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(報價總表_dgv.Rows(i).Cells("QTY").Value) * CLng(報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value)
  1192. End If
  1193. '---------管理費加總-------------------------------------------------------------------------------------------------------------------------------------
  1194. If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "*" And 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "@" And
  1195. 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "^" And 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString <> "折讓 Discount" Then
  1196. 合計無管 += 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value
  1197. End If
  1198. If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 0%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0)
  1199. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 1%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.01)
  1200. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 2%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.02)
  1201. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 3%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.03)
  1202. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 4%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.04)
  1203. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 5%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.05)
  1204. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 6%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.06)
  1205. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 7%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.07)
  1206. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 8%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.08)
  1207. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 9%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.09)
  1208. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 10%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.1)
  1209. End If
  1210. '---------計算彙總-------------------------------------------------------------------------------------------------------------------------------------
  1211. If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "*" And 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "@" Then
  1212. 合計 += 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value
  1213. End If
  1214. If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "合 計 Total" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = 合計 : End If
  1215. If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "稅金 0% Tax" Then
  1216. 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計 * 0) : 稅金 = 合計 * 0 : 稅額顯示_lb.Text = "PPN 0%稅額 = Rp. "
  1217. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "稅金 5% Tax" Then
  1218. 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計 * 0.05) : 稅金 = 合計 * 0.05 : 稅額顯示_lb.Text = "PPN 5%稅額 = Rp. "
  1219. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "稅金 10% Tax" Then
  1220. 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計 * 0.1) : 稅金 = 合計 * 0.1 : 稅額顯示_lb.Text = "PPN 10%稅額 = Rp. "
  1221. ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "稅金 11% Tax" Then
  1222. 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計 * 0.11) : 稅金 = 合計 * 0.11 : 稅額顯示_lb.Text = "PPN 11%稅額 = Rp. "
  1223. End If
  1224. If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "總計 Grand Total" Then
  1225. 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計 + Fix(稅金))
  1226. If Strings.Right(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString, 3) = "001" Then
  1227. 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value) - 1
  1228. ElseIf Strings.Right(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString, 3) = "999" Then
  1229. 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value) + 1
  1230. End If
  1231. NUD3.Value = CLng(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value)
  1232. End If
  1233. '------------數字為0隱藏-----------------------------------------------------------------------------------------------
  1234. If IsDBNull(報價總表_dgv.Rows(i).Cells(4).Value) Then : 報價總表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.White : Else
  1235. If 報價總表_dgv.Rows(i).Cells(4).Value = 0 Then : 報價總表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.White
  1236. Else : 報價總表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.Black : End If : End If
  1237. If IsDBNull(報價總表_dgv.Rows(i).Cells(5).Value) Then : 報價總表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.White : Else
  1238. If 報價總表_dgv.Rows(i).Cells(5).Value = 0 Then : 報價總表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.White
  1239. Else : 報價總表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.Black : End If : End If
  1240. If IsDBNull(報價總表_dgv.Rows(i).Cells(6).Value) Then : 報價總表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.White : Else
  1241. If 報價總表_dgv.Rows(i).Cells(6).Value = 0 Then : 報價總表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.White
  1242. Else : 報價總表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.Black : End If : End If
  1243. Next
  1244. '------------彙總計算-----------------------------------------------------------------------------------------------
  1245. Dim 折讓 As Long = 0 : 未折價前_tb.Text = "0" : 報價小計_tb.Text = "0"
  1246. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  1247. If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "*" Or 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "@" Or
  1248. 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "折讓 Discount" Then : Else
  1249. 未折價前_tb.Text = CLng(未折價前_tb.Text) + CLng(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value)
  1250. End If
  1251. If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "*" Or 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "@" Then : Else
  1252. 報價小計_tb.Text = CLng(報價小計_tb.Text) + CLng(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value)
  1253. End If
  1254. If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "折讓 Discount" Then
  1255. 折讓 += CLng(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value)
  1256. End If
  1257. Next
  1258. 預估利潤_tb.Text = Strings.Format(CLng(總報價_tb.Text) - (CLng(總成本_tb.Text) - 折讓), "#,##0")
  1259. If (CLng(總報價_tb.Text) + 折讓) = 0 Then : 利潤比4_tb.Text = "0 %" : Else
  1260. 利潤比4_tb.Text = Strings.Format((1 - ((CLng(總成本_tb.Text)) / (CLng(總報價_tb.Text) + 折讓))) * 100, "#,##0") & " %"
  1261. End If
  1262. 未折價前_tb.Text = Strings.Format(CLng(未折價前_tb.Text), "#,##0") : 報價小計_tb.Text = Strings.Format(CLng(報價小計_tb.Text), "#,##0")
  1263. End Sub
  1264. Private Sub 報價明細表_dgv_物料顯示()
  1265. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  1266. If 報價明細表_dgv.Rows(i).Cells("料號").Value.ToString = "" Then
  1267. 報價明細表_dgv.Rows(i).Cells("D1").Value = False : 報價明細表_dgv.Rows(i).Cells("D2").Value = False
  1268. 報價明細表_dgv.Rows(i).Cells("D3").Value = False : 報價明細表_dgv.Rows(i).Cells("D4").Value = False
  1269. 報價明細表_dgv.Rows(i).Cells("D5").Value = False : 報價明細表_dgv.Rows(i).Cells("D6").Value = False
  1270. 報價明細表_dgv.Rows(i).Cells("D7").Value = False : 報價明細表_dgv.Rows(i).Cells("D8").Value = False
  1271. End If
  1272. If 報價明細表_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then
  1273. If 報價明細表_dgv.Rows(i).Cells("預設").Value = True Then
  1274. 報價明細表_dgv.Rows(i).Cells("D1").Value = 報價明細表_dgv.Rows(i).Cells("S1").Value : 報價明細表_dgv.Rows(i).Cells("D2").Value = 報價明細表_dgv.Rows(i).Cells("S2").Value
  1275. 報價明細表_dgv.Rows(i).Cells("D3").Value = 報價明細表_dgv.Rows(i).Cells("S3").Value : 報價明細表_dgv.Rows(i).Cells("D4").Value = 報價明細表_dgv.Rows(i).Cells("S4").Value
  1276. 報價明細表_dgv.Rows(i).Cells("D5").Value = 報價明細表_dgv.Rows(i).Cells("S5").Value : 報價明細表_dgv.Rows(i).Cells("D6").Value = 報價明細表_dgv.Rows(i).Cells("S6").Value
  1277. 報價明細表_dgv.Rows(i).Cells("D7").Value = 報價明細表_dgv.Rows(i).Cells("S7").Value : 報價明細表_dgv.Rows(i).Cells("D8").Value = 報價明細表_dgv.Rows(i).Cells("S8").Value
  1278. End If
  1279. Dim ZA1, ZA2, ZA3, ZA4, ZA5, ZA6, ZA7, ZA8 As String : 物料規格 = ""
  1280. If 詳細資料2_ch.Checked = True Then
  1281. If 報價明細表_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D1").Value = True Then
  1282. ZA1 = 報價明細表_dgv.Rows(i).Cells("AA1").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If : End If
  1283. If 報價明細表_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D2").Value = True Then
  1284. ZA2 = 報價明細表_dgv.Rows(i).Cells("AA2").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then
  1285. 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If : End If
  1286. If 報價明細表_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D3").Value = True Then
  1287. ZA3 = 報價明細表_dgv.Rows(i).Cells("AA3").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then
  1288. 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If : End If
  1289. If 報價明細表_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D4").Value = True Then
  1290. ZA4 = 報價明細表_dgv.Rows(i).Cells("AA4").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then
  1291. 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If : End If
  1292. If 報價明細表_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D5").Value = True Then
  1293. ZA5 = 報價明細表_dgv.Rows(i).Cells("AA5").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then
  1294. 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If : End If
  1295. If 報價明細表_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D6").Value = True Then
  1296. ZA6 = 報價明細表_dgv.Rows(i).Cells("AA6").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then
  1297. 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If : End If
  1298. If 報價明細表_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D7").Value = True Then
  1299. ZA7 = 報價明細表_dgv.Rows(i).Cells("AA7").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then
  1300. 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If : End If
  1301. If 報價明細表_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D8").Value = True Then
  1302. ZA8 = 報價明細表_dgv.Rows(i).Cells("AA8").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then
  1303. 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If : End If
  1304. Else
  1305. If 報價明細表_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D1").Value = True Then
  1306. ZA1 = 報價明細表_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If : End If
  1307. If 報價明細表_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D2").Value = True Then
  1308. ZA2 = 報價明細表_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If : End If
  1309. If 報價明細表_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D3").Value = True Then
  1310. ZA3 = 報價明細表_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If : End If
  1311. If 報價明細表_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D4").Value = True Then
  1312. ZA4 = 報價明細表_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If : End If
  1313. If 報價明細表_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D5").Value = True Then
  1314. ZA5 = 報價明細表_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If : End If
  1315. If 報價明細表_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D6").Value = True Then
  1316. ZA6 = 報價明細表_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If : End If
  1317. If 報價明細表_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D7").Value = True Then
  1318. ZA7 = 報價明細表_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If : End If
  1319. If 報價明細表_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D8").Value = True Then
  1320. ZA8 = 報價明細表_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If : End If
  1321. End If
  1322. If 報價明細表_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then
  1323. 報價明細表_dgv.Rows(i).Cells("DESCRIPTION").Value = 報價明細表_dgv.Rows(i).Cells("品名").Value.ToString & " " & 物料規格
  1324. End If
  1325. End If : 報價明細表_dgv.Rows(i).Cells("預設").Value = False
  1326. Next
  1327. End Sub
  1328. Private Sub 報價明細表_dgv_自動計算()
  1329. Dim 合計, 利潤, 工資係數, 工資成本, 工資利潤, 材料係數, 材料成本, 材料利潤 As Double : 合計 = 0 : 工資係數 = 0
  1330. For i As Integer = 0 To 報價係數_dgv.Rows.Count - 1
  1331. If 報價係數_dgv.Rows(i).Cells("項目").Value.ToString = "工資利潤" Then : 工資係數 = 報價係數_dgv.Rows(i).Cells("係數").Value.ToString : Exit For : End If
  1332. Next
  1333. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  1334. 報價明細表_dgv.Rows(i).Cells("QTY").Value = 報價明細表_dgv.Rows(i).Cells("實際數量").Value.ToString
  1335. '------------------------------------工資計算-----------------------------------------------------------------------------------------------------------
  1336. 報價明細表_dgv.Rows(i).Cells("工資成本後價").Value = 報價明細表_dgv.Rows(i).Cells("實際數量").Value * 報價明細表_dgv.Rows(i).Cells("工資成本單價").Value
  1337. If 報價明細表_dgv.Rows(i).Cells("不計").Value = False Then
  1338. 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value = 報價明細表_dgv.Rows(i).Cells("工資成本單價").Value * 工資係數 / 100
  1339. Else : 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value = 0 : End If
  1340. 報價明細表_dgv.Rows(i).Cells("工資報價後價").Value = 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value * 報價明細表_dgv.Rows(i).Cells("QTY").Value
  1341. '------------------------------------材料計算-----------------------------------------------------------------------------------------------------------
  1342. 報價明細表_dgv.Rows(i).Cells("材料成本後價").Value = 報價明細表_dgv.Rows(i).Cells("實際數量").Value * 報價明細表_dgv.Rows(i).Cells("材料成本單價").Value
  1343. If 報價明細表_dgv.Rows(i).Cells("材料係數").Value.ToString = "" Then : 材料係數 = 100 : Else : 材料係數 = 100
  1344. For ii As Integer = 0 To 報價係數_dgv.Rows.Count - 1
  1345. If 報價係數_dgv.Rows(ii).Cells("項目").Value.ToString = 報價明細表_dgv.Rows(i).Cells("材料係數").Value.ToString Then
  1346. 材料係數 = 報價係數_dgv.Rows(ii).Cells("係數").Value.ToString : Exit For : End If
  1347. Next
  1348. End If
  1349. If 報價明細表_dgv.Rows(i).Cells("不計").Value = False Then
  1350. 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value = 報價明細表_dgv.Rows(i).Cells("材料成本單價").Value * 材料係數 / 100
  1351. Else : 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value = 0 : End If
  1352. 報價明細表_dgv.Rows(i).Cells("材料報價後價").Value = 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value * 報價明細表_dgv.Rows(i).Cells("QTY").Value
  1353. 報價明細表_dgv.Rows(i).Cells("利潤").Value = 報價明細表_dgv.Rows(i).Cells("材料報價後價").Value + 報價明細表_dgv.Rows(i).Cells("工資報價後價").Value -
  1354. 報價明細表_dgv.Rows(i).Cells("材料成本後價").Value - 報價明細表_dgv.Rows(i).Cells("工資成本後價").Value
  1355. '------------------------------------報價單呈現-----------------------------------------------------------------------------------------------------------
  1356. If 報價明細表_dgv.Rows(i).Cells("不計").Value = False Then
  1357. 報價明細表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value = 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value + 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value
  1358. 報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = 報價明細表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value * 報價明細表_dgv.Rows(i).Cells("QTY").Value
  1359. Else
  1360. 報價明細表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value = 0 : 報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = 0
  1361. End If
  1362. '------------------------------------報價合計計算-----------------------------------------------------------------------------------------------------------
  1363. If 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "*" Then
  1364. 合計 += 報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value : 利潤 += 報價明細表_dgv.Rows(i).Cells("利潤").Value
  1365. 工資成本 += 報價明細表_dgv.Rows(i).Cells("工資成本後價").Value : 工資利潤 += 報價明細表_dgv.Rows(i).Cells("工資報價後價").Value
  1366. 材料成本 += 報價明細表_dgv.Rows(i).Cells("材料成本後價").Value : 材料利潤 += 報價明細表_dgv.Rows(i).Cells("材料報價後價").Value
  1367. End If
  1368. If 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString = "*" Then
  1369. 報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = 合計 : 合計 = 0 : 報價明細表_dgv.Rows(i).Cells("利潤").Value = 利潤 : 利潤 = 0
  1370. 報價明細表_dgv.Rows(i).Cells("工資成本後價").Value = 工資成本 : 工資成本 = 0 : 報價明細表_dgv.Rows(i).Cells("工資報價後價").Value = 工資利潤 : 工資利潤 = 0
  1371. 報價明細表_dgv.Rows(i).Cells("材料成本後價").Value = 材料成本 : 材料成本 = 0 : 報價明細表_dgv.Rows(i).Cells("材料報價後價").Value = 材料利潤 : 材料利潤 = 0
  1372. End If
  1373. '------------數字為0隱藏-----------------------------------------------------------------------------------------------
  1374. If IsDBNull(報價明細表_dgv.Rows(i).Cells(4).Value) Then : 報價明細表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.White : Else
  1375. If 報價明細表_dgv.Rows(i).Cells(4).Value.ToString = "" Then : Else
  1376. If 報價明細表_dgv.Rows(i).Cells(4).Value = 0 Then : 報價明細表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.White
  1377. Else : 報價明細表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.Black : End If : End If
  1378. End If
  1379. If IsDBNull(報價明細表_dgv.Rows(i).Cells(5).Value) Then : 報價明細表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.White : Else
  1380. If 報價明細表_dgv.Rows(i).Cells(5).Value.ToString = "" Then : Else
  1381. If 報價明細表_dgv.Rows(i).Cells(5).Value = 0 Then : 報價明細表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.White
  1382. Else : 報價明細表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.Black : End If : End If
  1383. End If
  1384. If IsDBNull(報價明細表_dgv.Rows(i).Cells(6).Value) Then : 報價明細表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.White : Else
  1385. If 報價明細表_dgv.Rows(i).Cells(6).Value.ToString = "" Then : Else
  1386. If 報價明細表_dgv.Rows(i).Cells(6).Value = 0 Then : 報價明細表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.White
  1387. Else : 報價明細表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.Black : End If
  1388. End If
  1389. End If
  1390. Next
  1391. 工資成本 = 0 : 材料成本 = 0 : 工資利潤 = 0 : 材料利潤 = 0
  1392. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  1393. If 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString = "*" Then
  1394. 工資成本 += CLng(報價明細表_dgv.Rows(i).Cells("工資成本後價").Value)
  1395. 材料成本 += CLng(報價明細表_dgv.Rows(i).Cells("材料成本後價").Value)
  1396. 工資利潤 += CLng(報價明細表_dgv.Rows(i).Cells("工資報價後價").Value)
  1397. 材料利潤 += CLng(報價明細表_dgv.Rows(i).Cells("材料報價後價").Value)
  1398. End If
  1399. Next
  1400. 預估工資總成本_tb.Text = Strings.Format(工資成本, "#,##0") : 預估材料總成本_tb.Text = Strings.Format(材料成本, "#,##0") : 預估工資總報價_tb.Text = Strings.Format(工資利潤, "#,##0")
  1401. 預估材料總報價_tb.Text = Strings.Format(材料利潤, "#,##0") ': 預估利潤_tb.Text = Strings.Format((材料利潤 + 工資利潤) - (材料成本 + 工資成本), "#,##0")
  1402. 總成本_tb.Text = Strings.Format(工資成本 + 材料成本, "#,##0") : 總報價_tb.Text = Strings.Format(工資利潤 + 材料利潤, "#,##0")
  1403. If 工資利潤 = 0 Then : 利潤比1_tb.Text = "0 %" : Else
  1404. 利潤比1_tb.Text = Strings.Format((1 - ((工資成本) / (工資利潤))) * 100, "#,##0") & " %"
  1405. End If
  1406. If 材料利潤 = 0 Then : 利潤比2_tb.Text = "0 %" : Else
  1407. 利潤比2_tb.Text = Strings.Format((1 - ((材料成本) / (材料利潤))) * 100, "#,##0") & " %"
  1408. End If
  1409. If (材料利潤 + 工資利潤) = 0 Then : 利潤比3_tb.Text = "0 %" : Else
  1410. 利潤比3_tb.Text = Strings.Format((1 - ((材料成本 + 工資成本) / (材料利潤 + 工資利潤))) * 100, "#,##0") & " %"
  1411. End If
  1412. End Sub
  1413. Private Sub 報價總表_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 報價總表_dgv.MouseUp
  1414. 'If 明細_dgv.SelectedCells.Count = 1 Then : MsgBox(明細_dgv.SelectedCells(0).ColumnIndex & " " & 明細_dgv.SelectedCells(0).RowIndex) : End If
  1415. If 報價總表_dgv.SelectedCells.Count = 1 Then : 已超出 = False : End If
  1416. If 報價總表_dgv.SelectedCells.Count > 0 Then
  1417. If 報價總表_dgv.SelectedCells(0).ColumnIndex = 4 Or 報價總表_dgv.SelectedCells(0).ColumnIndex = 5 Or 報價總表_dgv.SelectedCells(0).ColumnIndex = 6 Then
  1418. If 已超出 = False Then
  1419. Dim x As Double = 0
  1420. For i As Integer = 0 To 報價總表_dgv.SelectedCells.Count - 1
  1421. Dim 變數 As String = "" : Dim 取變數 As String
  1422. 取變數 = 報價總表_dgv.Rows(報價總表_dgv.SelectedCells.Item(i).RowIndex).Cells(報價總表_dgv.SelectedCells.Item(i).ColumnIndex).Value
  1423. For ii As Integer = 1 To Len(取變數)
  1424. If ii = 1 Then : 變數 = Strings.Left(取變數, ii) : Else : If Strings.Mid(取變數, ii, 1) <> "," Then : 變數 &= Strings.Mid(取變數, ii, 1) : End If : End If
  1425. Next : x += Val(變數)
  1426. Next i : GCM_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(x, "#,##0")
  1427. Else : GCM_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(0, "#,##0")
  1428. End If
  1429. Else : 已超出 = True : GCM_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(0, "#,##0")
  1430. End If
  1431. End If
  1432. End Sub
  1433. Private Sub 報價明細表_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 報價明細表_dgv.MouseUp
  1434. 'If 明細_dgv.SelectedCells.Count = 1 Then : MsgBox(明細_dgv.SelectedCells(0).ColumnIndex & " " & 明細_dgv.SelectedCells(0).RowIndex) : End If
  1435. If 報價明細表_dgv.SelectedCells.Count = 1 Then : 已超出 = False : End If
  1436. If 報價明細表_dgv.SelectedCells.Count > 0 Then
  1437. If 報價明細表_dgv.SelectedCells(0).ColumnIndex = 4 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 5 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 6 Or
  1438. 報價明細表_dgv.SelectedCells(0).ColumnIndex = 8 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 9 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 10 Or
  1439. 報價明細表_dgv.SelectedCells(0).ColumnIndex = 11 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 12 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 13 Or
  1440. 報價明細表_dgv.SelectedCells(0).ColumnIndex = 14 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 15 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 16 Or
  1441. 報價明細表_dgv.SelectedCells(0).ColumnIndex = 17 Then
  1442. If 已超出 = False Then
  1443. Dim x As Double = 0
  1444. For i As Integer = 0 To 報價明細表_dgv.SelectedCells.Count - 1
  1445. Dim 變數 As String = "" : Dim 取變數 As String
  1446. 取變數 = 報價明細表_dgv.Rows(報價明細表_dgv.SelectedCells.Item(i).RowIndex).Cells(報價明細表_dgv.SelectedCells.Item(i).ColumnIndex).Value
  1447. For ii As Integer = 1 To Len(取變數)
  1448. If ii = 1 Then : 變數 = Strings.Left(取變數, ii) : Else : If Strings.Mid(取變數, ii, 1) <> "," Then : 變數 &= Strings.Mid(取變數, ii, 1) : End If : End If
  1449. Next : x += Val(變數)
  1450. Next i : GCM_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(x, "#,##0")
  1451. Else : GCM_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(0, "#,##0")
  1452. End If
  1453. Else : 已超出 = True : GCM_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(0, "#,##0")
  1454. End If
  1455. End If
  1456. End Sub
  1457. Private Sub 第1期_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 第1期_dgv.CellEnter
  1458. If Not IsNumeric(第1期_dgv.Rows(e.RowIndex).Cells("比例").Value) Then
  1459. If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值") : Else : MsgBox("Field input must be numeric!!") : End If
  1460. 第1期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第1期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  1461. Else
  1462. Dim nn As Integer
  1463. For i As Integer = 0 To 第1期_dgv.Rows.Count - 1 : nn += 第1期_dgv.Rows(i).Cells("比例").Value : Next
  1464. If nn > 工程款1_nud.Value Then
  1465. Dim SS As String
  1466. If 系統語言 = "繁體中文" Then : SS = "第一期的細項比例不可大於" : Else : SS = "The proportion of the details of the first phase cannot be greater than" : End If
  1467. MsgBox(SS & Strings.Format(工程款1_nud.Value, "#,##0.00") & " % !!")
  1468. 第1期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第1期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  1469. Else
  1470. For i As Integer = 0 To 第1期_dgv.Rows.Count - 1
  1471. 第1期_dgv.Rows(i).Cells("金額").Value = 第1期_dgv.Rows(i).Cells("比例").Value * 金額1_und.Value / 工程款1_nud.Value
  1472. Next i
  1473. End If
  1474. End If
  1475. End Sub
  1476. Private Sub 第2期_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 第2期_dgv.CellEnter
  1477. If Not IsNumeric(第2期_dgv.Rows(e.RowIndex).Cells("比例").Value) Then
  1478. If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值") : Else : MsgBox("Field input must be numeric!!") : End If
  1479. 第2期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第2期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  1480. Else
  1481. Dim nn As Integer
  1482. For i As Integer = 0 To 第2期_dgv.Rows.Count - 1 : nn += 第2期_dgv.Rows(i).Cells("比例").Value : Next
  1483. If nn > 工程款2_nud.Value Then
  1484. Dim SS As String
  1485. If 系統語言 = "繁體中文" Then : SS = "第二期的細項比例不可大於" : Else : SS = "The proportion of the details of the second phase cannot be greater than" : End If
  1486. MsgBox(SS & Strings.Format(工程款2_nud.Value, "#,##0.00") & " % !!")
  1487. 第2期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第2期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  1488. Else
  1489. For i As Integer = 0 To 第2期_dgv.Rows.Count - 1
  1490. 第2期_dgv.Rows(i).Cells("金額").Value = 第2期_dgv.Rows(i).Cells("比例").Value * 金額2_und.Value / 工程款2_nud.Value
  1491. Next i
  1492. End If
  1493. End If
  1494. End Sub
  1495. Private Sub 第3期_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 第3期_dgv.CellEnter
  1496. If Not IsNumeric(第3期_dgv.Rows(e.RowIndex).Cells("比例").Value) Then
  1497. If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值") : Else : MsgBox("Field input must be numeric!!") : End If
  1498. 第3期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第3期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  1499. Else
  1500. Dim nn As Integer
  1501. For i As Integer = 0 To 第3期_dgv.Rows.Count - 1 : nn += 第3期_dgv.Rows(i).Cells("比例").Value : Next
  1502. If nn > 工程款3_nud.Value Then
  1503. Dim SS As String
  1504. If 系統語言 = "繁體中文" Then : SS = "第三期的細項比例不可大於" : Else : SS = "The proportion of the details of the third phase cannot be greater than" : End If
  1505. MsgBox(SS & Strings.Format(工程款3_nud.Value, "#,##0.00") & " % !!")
  1506. 第3期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第3期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  1507. Else
  1508. For i As Integer = 0 To 第3期_dgv.Rows.Count - 1
  1509. 第3期_dgv.Rows(i).Cells("金額").Value = 第3期_dgv.Rows(i).Cells("比例").Value * 金額3_und.Value / 工程款3_nud.Value
  1510. Next i
  1511. End If
  1512. End If
  1513. End Sub
  1514. Private Sub 第4期_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 第4期_dgv.CellEnter
  1515. If Not IsNumeric(第4期_dgv.Rows(e.RowIndex).Cells("比例").Value) Then
  1516. If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值") : Else : MsgBox("Field input must be numeric!!") : End If
  1517. 第4期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第4期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  1518. Else
  1519. Dim nn As Integer
  1520. For i As Integer = 0 To 第4期_dgv.Rows.Count - 1 : nn += 第4期_dgv.Rows(i).Cells("比例").Value : Next
  1521. If nn > 工程款4_nud.Value Then
  1522. Dim SS As String
  1523. If 系統語言 = "繁體中文" Then : SS = "第四期的細項比例不可大於" : Else : SS = "The proportion of the details of the fourth phase cannot be greater than" : End If
  1524. MsgBox(SS & Strings.Format(工程款4_nud.Value, "#,##0.00") & " % !!")
  1525. 第4期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第4期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  1526. Else
  1527. For i As Integer = 0 To 第4期_dgv.Rows.Count - 1
  1528. 第4期_dgv.Rows(i).Cells("金額").Value = 第4期_dgv.Rows(i).Cells("比例").Value * 金額4_und.Value / 工程款4_nud.Value
  1529. Next i
  1530. End If
  1531. End If
  1532. End Sub
  1533. Private Sub 第5期_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 第5期_dgv.CellEnter
  1534. If Not IsNumeric(第5期_dgv.Rows(e.RowIndex).Cells("比例").Value) Then
  1535. If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值") : Else : MsgBox("Field input must be numeric!!") : End If
  1536. 第5期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第5期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  1537. Else
  1538. Dim nn As Integer
  1539. For i As Integer = 0 To 第5期_dgv.Rows.Count - 1 : nn += 第5期_dgv.Rows(i).Cells("比例").Value : Next
  1540. If nn > 工程款5_nud.Value Then
  1541. Dim SS As String
  1542. If 系統語言 = "繁體中文" Then : SS = "第五期的細項比例不可大於" : Else : SS = "The proportion of the details of the fifth phase cannot be greater than" : End If
  1543. MsgBox(SS & Strings.Format(工程款5_nud.Value, "#,##0.00") & " % !!")
  1544. 第5期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第5期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0"
  1545. Else
  1546. For i As Integer = 0 To 第5期_dgv.Rows.Count - 1
  1547. 第5期_dgv.Rows(i).Cells("金額").Value = 第5期_dgv.Rows(i).Cells("比例").Value * 金額5_und.Value / 工程款5_nud.Value
  1548. Next i
  1549. End If
  1550. End If
  1551. End Sub
  1552. Private Sub 第1期_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 第1期_dgv.CellClick
  1553. If e.RowIndex = -1 Then : Else : 明細選項_bt.Text = 第1期_dgv("細項", e.RowIndex).Value.ToString : 明細選項_bt.Text = Strings.Format(Val(明細選項_bt.Text), "#,##0") : End If
  1554. End Sub
  1555. Private Sub 第2期_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 第2期_dgv.CellClick
  1556. If e.RowIndex = -1 Then : Else : 明細選項_bt.Text = 第2期_dgv("細項", e.RowIndex).Value.ToString : 明細選項_bt.Text = Strings.Format(Val(明細選項_bt.Text), "#,##0") : End If
  1557. End Sub
  1558. Private Sub 第3期_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 第3期_dgv.CellClick
  1559. If e.RowIndex = -1 Then : Else : 明細選項_bt.Text = 第3期_dgv("細項", e.RowIndex).Value.ToString : 明細選項_bt.Text = Strings.Format(Val(明細選項_bt.Text), "#,##0") : End If
  1560. End Sub
  1561. Private Sub 第4期_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 第4期_dgv.CellClick
  1562. If e.RowIndex = -1 Then : Else : 明細選項_bt.Text = 第4期_dgv("細項", e.RowIndex).Value.ToString : 明細選項_bt.Text = Strings.Format(Val(明細選項_bt.Text), "#,##0") : End If
  1563. End Sub
  1564. Private Sub 第5期_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 第5期_dgv.CellClick
  1565. If e.RowIndex = -1 Then : Else : 明細選項_bt.Text = 第5期_dgv("細項", e.RowIndex).Value.ToString : 明細選項_bt.Text = Strings.Format(Val(明細選項_bt.Text), "#,##0") : End If
  1566. End Sub
  1567. '-----------------建立合約資料功能-------------------------------------------------------------------------------------------------------------------------------
  1568. Private Sub 群組編碼_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 群組編碼_cb.SelectedIndexChanged
  1569. 群組碼_tb.Text = 群組編碼_cb.Text : Set_清單1()
  1570. End Sub
  1571. Private Sub 新群組1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 新群組1_cb.SelectedIndexChanged
  1572. PA = 新群組1_cb.Text : SQL_群組碼_語轉_選擇() : If dr.Read Then : 群組編碼_cb.Text = dr("群組碼").ToString : End If : PA = ""
  1573. End Sub
  1574. Private Sub 合約種類_cb_SelectedIndexChanged_1(sender As Object, e As EventArgs) Handles 合約種類_cb.SelectedIndexChanged
  1575. PA10 = 合約種類_cb.Text : SQL_合約種類英文讀取() : If dr.Read() Then : 合約種類_tb.Text = dr("英") : End If : conn.Close()
  1576. End Sub
  1577. Private Sub 選擇公司_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 選擇公司_cb.SelectedIndexChanged
  1578. If 選擇公司_cb.Text = "G.C.M. Smart Enterprise LTD." Then : 合約編號_cb.Text = "GCM" : Else : 合約編號_cb.Text = "ICS" : End If
  1579. If 選擇公司_cb.Text = "G.C.M. Smart Enterprise LTD." Then : 我司地址_tb.Text = "屏東縣萬丹鄉麟洛鄉中山路382-103號" : Else
  1580. 我司地址_tb.Text = "J.Kaliandra 1 no 1E blok F6 Lantai 2 Delta Silicon II Lippo Cikarang ,Desa Cicau ,Kec. Cikarang Pusat, Kab Bekasi"
  1581. End If
  1582. End Sub
  1583. Private Sub 合約編號_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合約編號_cb.SelectedIndexChanged
  1584. If 合約編號_cb.Text = "GCM" Then : 選擇公司_cb.Text = "G.C.M. Smart Enterprise LTD." : Else : 選擇公司_cb.Text = "PT.Indonesia Cemerlang Sistem" : End If
  1585. End Sub
  1586. Private Sub 查詢_bt_Click(sender As Object, e As EventArgs) Handles 查詢_bt.Click
  1587. PA = 關鍵字搜尋_tb.Text : Set_合約清單() : 縮放2_bt.PerformClick()
  1588. End Sub
  1589. Private Sub NUD3_ValueChanged(sender As Object, e As EventArgs) Handles NUD3.ValueChanged
  1590. If CH2.Checked = True Then
  1591. If 稅額顯示_lb.Text = "PPN 0%稅額 = Rp. " Then : NUD2.Value = NUD3.Value / 100 * 0
  1592. ElseIf 稅額顯示_lb.Text = "PPN 5%稅額 = Rp. " Then : NUD2.Value = NUD3.Value / 105 * 5
  1593. ElseIf 稅額顯示_lb.Text = "PPN 10%稅額 = Rp. " Then : NUD2.Value = NUD3.Value / 110 * 10
  1594. ElseIf 稅額顯示_lb.Text = "PPN 11%稅額 = Rp. " Then : NUD2.Value = NUD3.Value / 111 * 11
  1595. End If
  1596. NUD1.Value = NUD3.Value - NUD2.Value
  1597. 金額1_und.Value = NUD3.Value / 100 * 工程款1_nud.Value : 金額2_und.Value = NUD3.Value / 100 * 工程款2_nud.Value
  1598. 金額3_und.Value = NUD3.Value / 100 * 工程款3_nud.Value : 金額4_und.Value = NUD3.Value / 100 * 工程款4_nud.Value
  1599. 金額5_und.Value = NUD3.Value / 100 * 工程款5_nud.Value
  1600. 金額6_und.Value = 金額1_und.Value + 金額2_und.Value + 金額3_und.Value + 金額4_und.Value + 金額5_und.Value
  1601. End If
  1602. End Sub
  1603. Private Sub NUD1_ValueChanged(sender As Object, e As EventArgs) Handles NUD1.ValueChanged
  1604. If CH1.Checked = True Then
  1605. If 稅額顯示_lb.Text = "PPN 0%稅額 = Rp. " Then : NUD2.Value = NUD1.Value / 100 * 0
  1606. ElseIf 稅額顯示_lb.Text = "PPN 5%稅額 = Rp. " Then : NUD2.Value = NUD1.Value / 100 * 5
  1607. ElseIf 稅額顯示_lb.Text = "PPN 10%稅額 = Rp. " Then : NUD2.Value = NUD1.Value / 100 * 10
  1608. ElseIf 稅額顯示_lb.Text = "PPN 11%稅額 = Rp. " Then : NUD2.Value = NUD1.Value / 100 * 11
  1609. End If
  1610. NUD3.Value = NUD1.Value + NUD2.Value
  1611. 金額1_und.Value = NUD3.Value / 100 * 工程款1_nud.Value : 金額2_und.Value = NUD3.Value / 100 * 工程款2_nud.Value
  1612. 金額3_und.Value = NUD3.Value / 100 * 工程款3_nud.Value : 金額4_und.Value = NUD3.Value / 100 * 工程款4_nud.Value
  1613. 金額5_und.Value = NUD3.Value / 100 * 工程款5_nud.Value
  1614. 金額6_und.Value = 金額1_und.Value + 金額2_und.Value + 金額3_und.Value + 金額4_und.Value + 金額5_und.Value
  1615. End If
  1616. End Sub
  1617. Private Sub CH1_CheckedChanged(sender As Object, e As EventArgs) Handles CH1.Click
  1618. CH1.Checked = True : CH2.Checked = False : NUD1.Enabled = True : NUD3.Enabled = False
  1619. End Sub
  1620. Private Sub CH2_CheckedChanged(sender As Object, e As EventArgs) Handles CH2.Click
  1621. CH1.Checked = False : CH2.Checked = True : NUD1.Enabled = False : NUD3.Enabled = True
  1622. End Sub
  1623. Private Sub 工程款1_nud_ValueChanged(sender As Object, e As EventArgs) Handles 工程款1_nud.ValueChanged
  1624. 工程款6_nud.Value = 工程款1_nud.Value + 工程款2_nud.Value + 工程款3_nud.Value + 工程款4_nud.Value + 工程款5_nud.Value
  1625. 金額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
  1626. End Sub
  1627. Private Sub 工程款2_nud_ValueChanged(sender As Object, e As EventArgs) Handles 工程款2_nud.ValueChanged
  1628. 工程款6_nud.Value = 工程款1_nud.Value + 工程款2_nud.Value + 工程款3_nud.Value + 工程款4_nud.Value + 工程款5_nud.Value
  1629. 金額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
  1630. End Sub
  1631. Private Sub 工程款3_nud_ValueChanged(sender As Object, e As EventArgs) Handles 工程款3_nud.ValueChanged
  1632. 工程款6_nud.Value = 工程款1_nud.Value + 工程款2_nud.Value + 工程款3_nud.Value + 工程款4_nud.Value + 工程款5_nud.Value
  1633. 金額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
  1634. End Sub
  1635. Private Sub 工程款4_nud_ValueChanged(sender As Object, e As EventArgs) Handles 工程款4_nud.ValueChanged
  1636. 工程款6_nud.Value = 工程款1_nud.Value + 工程款2_nud.Value + 工程款3_nud.Value + 工程款4_nud.Value + 工程款5_nud.Value
  1637. 金額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
  1638. End Sub
  1639. Private Sub 工程款5_nud_ValueChanged(sender As Object, e As EventArgs) Handles 工程款5_nud.ValueChanged
  1640. 工程款6_nud.Value = 工程款1_nud.Value + 工程款2_nud.Value + 工程款3_nud.Value + 工程款4_nud.Value + 工程款5_nud.Value
  1641. 金額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
  1642. End Sub
  1643. Private Sub 自動讀取_bt_Click(sender As Object, e As EventArgs) Handles 自動讀取_bt.Click
  1644. If 客戶名稱_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("請先選擇客戶名稱!!!") : Else : MsgBox("Please select the customer name first!!!") : End If : Else
  1645. If 系統語言 = "繁體中文" Then : MsgBox("進入編輯狀態,合約清單已鎖定不可選擇,鎖定狀態在合約存檔後解除!!")
  1646. Else : MsgBox("Enter the editing state, the contract list has been locked and cannot be selected, the locked state will be released after the contract is archived!!") : End If
  1647. 合約_dgv.Enabled = False
  1648. PA30 = 合約編號1_tb.Text : SQL_客戶資料讀取() : If dr.Read() Then : 合約編號1_tb.Text = dr("簡稱") : End If : conn.Close()
  1649. If 合約編號_cb.Text = "" Or 合約編號1_tb.Text = "" Then
  1650. If 系統語言 = "繁體中文" Then : MsgBox("資訊不夠,無法生成合約編號!!!") : Else : MsgBox("Insufficient information to generate contract number!!") : End If
  1651. Else
  1652. 合約編號2_tb.Enabled = False : 合約編號3_tb.Enabled = False
  1653. 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)
  1654. SQL_合約流水號_最後一筆資料()
  1655. If dr.Read() Then
  1656. If Val(Strings.Right(dr("合約編號").ToString, 2)) > 9 Then : EDR = Strings.Right(dr("合約編號").ToString, 2) : Else : EDR = Strings.Right(dr("合約編號").ToString, 1) : End If
  1657. End If : conn.Close() : EDR += 1 : 合約編號2_tb.Text = PA : 合約編號3_tb.Text = EDR : 預設資料1()
  1658. End If
  1659. End If
  1660. End Sub
  1661. Private Sub 手動輸入_bt_Click(sender As Object, e As EventArgs) Handles 手動輸入_bt.Click
  1662. If 系統語言 = "繁體中文" Then : MsgBox("進入編輯狀態,合約清單已鎖定不可選擇,鎖定狀態在合約存檔後解除!!")
  1663. Else : MsgBox("Enter the editing state, the contract list has been locked and cannot be selected, the locked state will be released after the contract is archived!!") : End If
  1664. 合約_dgv.Enabled = False : 合約編號2_tb.Enabled = True : 合約編號3_tb.Enabled = True : 預設資料1()
  1665. End Sub
  1666. Private Sub 刪除合約_bt_Click(sender As Object, e As EventArgs) Handles 刪除合約_bt.Click
  1667. Dim SS As String
  1668. If 系統語言 = "繁體中文" Then : SS = "是否要刪除這筆資料?" : Else : SS = "Do you want to delete this data?" : End If
  1669. Dim aa As MsgBoxResult = MsgBox("SS", MsgBoxStyle.OkCancel)
  1670. If aa = MsgBoxResult.Ok Then
  1671. Dim SS1 As String
  1672. If 系統語言 = "繁體中文" Then : SS1 = "確定刪除資料請輸入 [YES] !" : Else : SS1 = "Confirm to delete data, please enter[YES] !" : End If
  1673. Dim SSA As String = InputBox(SS1)
  1674. If SSA = "YES" Then
  1675. PA = 合約編號_tb.Text
  1676. SQL_合約刪除() : SQL_合約本文刪除_依合約() : SQL_合約明細刪除_全部() : SQL_合約附錄刪除_全部() : SQL_合約總表刪除_全部() : SQL_合約報價明細刪除_全部()
  1677. SQL_合約報價係數刪除_全部() : SQL_合約試算分表刪除() : SQL_合約試算控制表刪除() : SQL_合約試算明細表刪除() : SQL_合約請款刪除_全部()
  1678. If 系統語言 = "繁體中文" Then : MsgBox("刪除完成!!") : Else : MsgBox("Delete complete!!") : End If
  1679. Set_合約報價總表() : Set_合約報價係數() : Set_合約報價明細表() : Set_合約清單()
  1680. End If
  1681. End If
  1682. End Sub
  1683. Private Sub 存檔_tb_Click(sender As Object, e As EventArgs) Handles 存檔_tb.Click
  1684. Dim 合約編號條件 As Boolean = True
  1685. If 合約編號_cb.Text = "" Then
  1686. If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇我方公司!!") : Else : MsgBox("Did not choose our company!!") : End If : 合約編號條件 = False : End If
  1687. If 合約編號1_tb.Text = "" Then
  1688. If 系統語言 = "繁體中文" Then : MsgBox("沒有甲方公司英文縮寫!!") : Else : MsgBox("There is no English abbreviation of Party A company!!") : End If : 合約編號條件 = False : Else
  1689. Dim d As Int32
  1690. For index = 0 To 合約編號1_tb.Text.Length - 1
  1691. d = Asc(合約編號1_tb.Text(index))
  1692. Dim 可能不行 As Boolean = False
  1693. If (d < 65 Or d > 90) Then : 可能不行 = True : End If 'c變數若在65~90是大寫的英文字母
  1694. If 可能不行 = True Then
  1695. If (d < 97 Or d > 122) Then : 可能不行 = True : Else : 可能不行 = False : End If 'c變數若在97~122是小寫的英文字母
  1696. If 可能不行 = True Then '然後查表, c變數若在48~57, 表示它是數字,
  1697. If (d < 48 Or d > 57) Then
  1698. If 系統語言 = "繁體中文" Then : MsgBox("甲方公司簡稱需要英文或是數字,不可以是中文或其他符號!!")
  1699. Else : MsgBox("Party A's company abbreviation needs to be in English or numbers, not Chinese or other symbols!!") : End If
  1700. 合約編號條件 = False : Exit For : End If
  1701. End If
  1702. End If
  1703. Next
  1704. End If
  1705. If 合約編號2_tb.Text = "" Then
  1706. If 系統語言 = "繁體中文" Then : MsgBox("沒有立約日期!!") : Else : MsgBox("There is no covenant date!!") : End If : 合約編號條件 = False : End If
  1707. Dim c As Int32 '然後查表, c變數若在48~57, 表示它是數字,
  1708. For index = 0 To 合約編號2_tb.Text.Length - 1
  1709. c = Asc(合約編號2_tb.Text(index))
  1710. If c < 48 Or c > 57 Then
  1711. If 系統語言 = "繁體中文" Then : MsgBox("立約日期只能是數字!!") : Else : MsgBox("Covenant date can only be a number!!") : End If : 合約編號條件 = False : Exit For : Else
  1712. If Len(合約編號2_tb.Text) <> 6 Then
  1713. If 系統語言 = "繁體中文" Then : MsgBox("立約日期的格式為YYMMDD (年兩位,月兩位,日兩位),數字規格不符!!")
  1714. Else : MsgBox("The format of the contract date is YYMMDD (two digits for the year, two digits for the month, and two digits for the day), and the numerical specifications do not match!!") : End If
  1715. 合約編號條件 = False : Exit For : End If
  1716. End If
  1717. Next
  1718. If 合約編號3_tb.Text = "" Then
  1719. If 系統語言 = "繁體中文" Then : MsgBox("沒有合約序號!!") : Else : MsgBox("No contract number!!") : End If : 合約編號條件 = False
  1720. ElseIf IsNumeric(合約編號3_tb.Text) = False Then
  1721. If 系統語言 = "繁體中文" Then : MsgBox("序號只能是數字!!") : Else : MsgBox("Serial numbers can only be numbers!!") : End If : 合約編號條件 = False
  1722. End If
  1723. If 合約編號條件 = False Then : Else
  1724. If 工程款6_nud.Value <> 100 Then
  1725. If 系統語言 = "繁體中文" Then : MsgBox("工程款估驗 不等於 100%!!") : Else : MsgBox("Project appraisal is not equal to 100%!!") : End If
  1726. Else
  1727. Dim AN1, AN2, AN3, AN4, AN5 As Integer
  1728. Dim STST1 As String = "" : Dim STST2 As String = "" : Dim STST3 As String = "" : Dim STST4 As String = "" : Dim STST5 As String = ""
  1729. Dim SS1, SS2, SS3, SS4, SS5 As String
  1730. If 系統語言 = "繁體中文" Then
  1731. SS1 = "第一期工程款細項不吻合" : SS2 = "第二期工程款細項不吻合" : SS3 = "第三期工程款細項不吻合" : SS4 = "第四期工程款細項不吻合" : SS5 = "第五期工程款細項不吻合"
  1732. Else
  1733. SS1 = "The details of the first phase of the project do not match" : SS2 = "The details of the second phase of the project do not match" : SS3 = "The details of the third phase of the project do not match" : SS4 = "The details of the fourth phase of the project do not match"
  1734. SS5 = "The details of the fifth phase of the project do not match"
  1735. End If
  1736. For I As Integer = 0 To 第1期_dgv.Rows.Count - 1 : AN1 += 第1期_dgv.Rows(I).Cells("比例").Value : Next
  1737. For I As Integer = 0 To 第2期_dgv.Rows.Count - 1 : AN2 += 第2期_dgv.Rows(I).Cells("比例").Value : Next
  1738. For I As Integer = 0 To 第3期_dgv.Rows.Count - 1 : AN3 += 第3期_dgv.Rows(I).Cells("比例").Value : Next
  1739. For I As Integer = 0 To 第4期_dgv.Rows.Count - 1 : AN4 += 第4期_dgv.Rows(I).Cells("比例").Value : Next
  1740. For I As Integer = 0 To 第5期_dgv.Rows.Count - 1 : AN5 += 第5期_dgv.Rows(I).Cells("比例").Value : Next
  1741. If AN1 <> 工程款1_nud.Value And 第1期_dgv.Rows.Count > 0 Then : STST1 = "SS1" : End If
  1742. If AN2 <> 工程款2_nud.Value And 第2期_dgv.Rows.Count > 0 Then : STST2 = "SS2" : End If
  1743. If AN3 <> 工程款3_nud.Value And 第3期_dgv.Rows.Count > 0 Then : STST3 = "SS3" : End If
  1744. If AN4 <> 工程款4_nud.Value And 第4期_dgv.Rows.Count > 0 Then : STST4 = "SS4" : End If
  1745. If AN5 <> 工程款5_nud.Value And 第5期_dgv.Rows.Count > 0 Then : STST5 = "SS5" : End If
  1746. If STST1 <> "" Or STST2 <> "" Or STST3 <> "" Or STST4 <> "" Or STST5 <> "" Then
  1747. MsgBox(STST1 & vbCrLf &
  1748. STST2 & vbCrLf &
  1749. STST3 & vbCrLf &
  1750. STST4 & vbCrLf &
  1751. STST5)
  1752. Else
  1753. PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text : 合約編號_tb.Text = PA
  1754. SQL_合約查詢()
  1755. If dr.Read() Then
  1756. Dim SS As String
  1757. If 系統語言 = "繁體中文" Then : SS = "系統內已有相同單號,請問是否存檔(會覆蓋舊資料)?"
  1758. Else : SS = "The same tracking number already exists in the system, do you want to archive it (the old data will be overwritten)?" : End If
  1759. Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel) : If aa = MsgBoxResult.Ok Then : 合約存檔() : End If
  1760. Else
  1761. 合約編號_tb.Text = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text
  1762. 報價單合約編號_tb.Text = 合約編號_tb.Text : 報價單客戶名稱_cb.Text = 客戶名稱_tb.Text
  1763. 報價單立約日期_dtp.Value = 立約日期_dtp.Value : 報價工程名稱_中_tb.Text = 工程名稱_中_tb.Text
  1764. 報價工程名稱_英_tb.Text = 工程名稱_英_tb.Text
  1765. 合約存檔()
  1766. End If
  1767. If 複製報價 = False Then
  1768. PA = 合約編號_tb.Text : 合約_lb.Text = "合約"
  1769. Set_合約報價總表() : Set_合約報價係數() : Set_合約報價明細表()
  1770. PA = 合約編號_tb.Text
  1771. If 報價明細表_dgv.Rows.Count = 0 Then : For i As Integer = 1 To 3 : 新增資料2() : Next : End If : Set_合約報價明細表()
  1772. '------比對總表無資料時開基本條例-------------------------------------------------
  1773. 總表範例_bt.PerformClick() : 甲方條件下拉清單讀取() : 合約編號1_cb.Text = 條件選擇
  1774. End If
  1775. End If
  1776. End If
  1777. End If
  1778. End Sub
  1779. Private Sub 新增資料2()
  1780. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else
  1781. 資料數 = 報價明細表_dgv.Rows.Count * 2 : 進度條視窗.Show() : 報價明細表存檔()
  1782. PA = 合約編號_tb.Text : PA2 = "" : PA3 = "" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = "" : PA10 = "" : PA11 = "" : PA12 = "" : PA13 = ""
  1783. PA14 = "" : PA15 = "" : PA16 = "" : BL = False : BL1 = False : BL2 = False : BL3 = False : BL4 = False : BL5 = False : BL6 = False : BL7 = False
  1784. BL8 = False : BL9 = True : 明細表新增資料() : MyModule1.計算顯示3()
  1785. End If
  1786. End Sub
  1787. Private Sub 合約存檔()
  1788. '-----判斷是否新增客戶資料-----------------------
  1789. PA30 = 合約編號1_tb.Text : Dim 供應商編號 As String : SQL_客戶資料讀取()
  1790. If dr.Read() Then
  1791. If 負責人_A_cb.Text <> dr("負責人").ToString And 負責人_A_cb.Text <> "" And dr("負責人").ToString <> "" Then
  1792. Dim SS As String
  1793. If 系統語言 = "繁體中文" Then : SS = "合約上的負責人與系統中的資料不吻合,是否要更新系統中的負責人資料?"
  1794. Else : SS = "The person in charge on the contract does not match the data in the system. Do you want to update the data of the person in charge in the system?" : End If
  1795. Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel)
  1796. If aa = MsgBoxResult.Ok Then : PA43 = 負責人_A_cb.Text : PA42 = 客戶名稱_tb.Text : conn.Close() : SQL_客戶資料表_修改負責人() : End If
  1797. ElseIf 負責人_A_cb.Text <> "" And dr("負責人").ToString = "" Then
  1798. PA43 = 負責人_A_cb.Text : PA42 = 客戶名稱_tb.Text : conn.Close() : SQL_客戶資料表_修改負責人()
  1799. End If
  1800. Else
  1801. conn.Close() : SQL_客戶資料表_最後一筆資料()
  1802. If dr.Read() Then : 供應商編號 = dr("流水號").ToString : Else : 供應商編號 = "CL000" : End If
  1803. conn.Close() : Dim NUM1 As Integer
  1804. NUM1 = Double.Parse(Strings.Right(供應商編號, 3)) + 1
  1805. If NUM1 < 10 Then : 供應商編號 = "CL" & "00" & NUM1
  1806. ElseIf NUM1 > 9 And NUM1 < 100 Then : 供應商編號 = "CL" & "0" & NUM1
  1807. ElseIf NUM1 > 99 Then : 供應商編號 = "CL" & NUM1 : End If
  1808. PA29 = 供應商編號 : PA41 = 合約編號1_tb.Text : PA40 = 客戶名稱_tb.Text : PA39 = 客戶地址_tb.Text : PA38 = 負責人_A_cb.Text
  1809. SQL_合約系統中新增客戶資料() : conn.Close()
  1810. End If : conn.Close()
  1811. PA37 = 合約種類_cb.Text : PA36 = 合約種類_tb.Text
  1812. SQL_合約種類查詢() : If dr.Read() Then : Else : SQL_合約種類新增() : conn.Close() : End If : conn.Close()
  1813. PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text
  1814. PA36 = 客戶名稱_tb.Text : PA35 = 負責人_A_cb.Text : PA34 = 工程地點_tb.Text : PA33 = 客戶地址_tb.Text : PA32 = 工程名稱_中_tb.Text : PA31 = 工程名稱_英_tb.Text
  1815. PA30 = 選擇公司_cb.Text : PA29 = 負責人_B_cb.Text : PA28 = 我司地址_tb.Text : PA27 = NUD3.Value : PA26 = 工程款1_nud.Value : PA25 = 工程款2_nud.Value
  1816. PA24 = 工程款3_nud.Value : PA23 = 工程款4_nud.Value : PA22 = 工程款5_nud.Value : PA21 = 工期_nud.Value : PA20 = 逾期_bt.Text : PA19 = 最高扣款_bt.Text
  1817. PA18 = 逾期_英_bt.Text : PA17 = 最高扣款_英_bt.Text : PA16 = 減價_bt.Text : PA15 = 廠區_中文_tb.Text : PA14 = 頁數_bt.Text : PA12 = 合約種類_cb.Text
  1818. PA13 = Strings.Format(立約日期_dtp.Value, "yyyy/MM/dd") : PA44 = 合約編號2_tb.Text : PA45 = 合約編號3_tb.Text : PA46 = 合約編號1_tb.Text : PA47 = 工程期_ch.Text
  1819. BL1 = 合約停止_ch.Checked : PA10 = 折讓比例_nud.Value : PA9 = 歸零位數_nud.Value : BL2 = 稅前歸零_ch.Checked : BL3 = 稅後歸零_ch.Checked
  1820. If 美金_ch.Checked = True Then : PA11 = "美金" : ElseIf 台幣_ch.Checked = True Then : PA11 = "台幣"
  1821. ElseIf 人民幣_ch.Checked = True Then : PA11 = "人民幣" : ElseIf 印尼盾_ch.Checked = True Then : PA11 = "印尼盾" : End If
  1822. 匯率() : PA48 = 匯率1
  1823. SQL_合約查詢() : If dr.Read() Then : SQL_合約修改1() : conn.Close() : Else : SQL_合約新增() : conn.Close() : End If
  1824. 合約明細存檔() : PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text
  1825. If 系統語言 = "繁體中文" Then : MsgBox("存檔完成,合約清單鎖定解除!!") : Else : MsgBox("The archive is complete, the contract list lock is released!!") : End If
  1826. Set_合約清單() : 合約_dgv.Enabled = True
  1827. End Sub
  1828. Private Sub 合約明細存檔()
  1829. For i As Integer = 0 To 第1期_dgv.Rows.Count - 1
  1830. PA1 = "1" : PA2 = 第1期_dgv.Rows(i).Cells("細項").Value : PA3 = 第1期_dgv.Rows(i).Cells("內容").Value
  1831. NU1 = 第1期_dgv.Rows(i).Cells("比例").Value : NU2 = 第1期_dgv.Rows(i).Cells("金額").Value : SQL_合約明細修改()
  1832. Next
  1833. For i As Integer = 0 To 第2期_dgv.Rows.Count - 1
  1834. PA1 = "2" : PA2 = 第2期_dgv.Rows(i).Cells("細項").Value : PA3 = 第2期_dgv.Rows(i).Cells("內容").Value
  1835. NU1 = 第2期_dgv.Rows(i).Cells("比例").Value : NU2 = 第2期_dgv.Rows(i).Cells("金額").Value : SQL_合約明細修改()
  1836. Next
  1837. For i As Integer = 0 To 第3期_dgv.Rows.Count - 1
  1838. PA1 = "3" : PA2 = 第3期_dgv.Rows(i).Cells("細項").Value : PA3 = 第3期_dgv.Rows(i).Cells("內容").Value
  1839. NU1 = 第3期_dgv.Rows(i).Cells("比例").Value : NU2 = 第3期_dgv.Rows(i).Cells("金額").Value : SQL_合約明細修改()
  1840. Next
  1841. For i As Integer = 0 To 第4期_dgv.Rows.Count - 1
  1842. PA1 = "4" : PA2 = 第4期_dgv.Rows(i).Cells("細項").Value : PA3 = 第4期_dgv.Rows(i).Cells("內容").Value
  1843. NU1 = 第4期_dgv.Rows(i).Cells("比例").Value : NU2 = 第4期_dgv.Rows(i).Cells("金額").Value : SQL_合約明細修改()
  1844. Next
  1845. For i As Integer = 0 To 第5期_dgv.Rows.Count - 1
  1846. PA1 = "5" : PA2 = 第5期_dgv.Rows(i).Cells("細項").Value : PA3 = 第5期_dgv.Rows(i).Cells("內容").Value
  1847. NU1 = 第5期_dgv.Rows(i).Cells("比例").Value : NU2 = 第5期_dgv.Rows(i).Cells("金額").Value : SQL_合約明細修改()
  1848. Next
  1849. End Sub
  1850. Private Sub 新增資料_bt_Click(sender As Object, e As EventArgs) Handles 新增資料_bt.Click
  1851. If 合約編號_cb.Text = "" Or 合約編號1_tb.Text = "" Then
  1852. If 系統語言 = "繁體中文" Then : MsgBox("資訊不夠,無法生成明細!!!") : Else : MsgBox("Not enough information to generate details!!!") : End If
  1853. If 工程款6_nud.Value <> 100 Then
  1854. If 系統語言 = "繁體中文" Then : MsgBox("工程款估驗 不等於 100%!!") : Else : MsgBox("Project appraisal is not equal to 100%!!") : End If
  1855. PA = 合約編號_tb.Text : 合約明細存檔()
  1856. Dim SS As String
  1857. If 系統語言 = "繁體中文" Then : SS = "合約工期款項細分不可大於10筆!!!" : Else : SS = "The subdivision of the contract duration payment cannot be more than 10!!!" : End If
  1858. If TabControl1.SelectedIndex = 0 Then
  1859. If 第1期_dgv.Rows.Count = 10 Then : MsgBox(SS) : Else : PA1 = "1" : PA2 = 第1期_dgv.Rows.Count + 1 : SQL_合約明細新增() : End If
  1860. ElseIf TabControl1.SelectedIndex = 1 Then
  1861. If 第2期_dgv.Rows.Count = 10 Then : MsgBox(SS) : Else : PA1 = "2" : PA2 = 第2期_dgv.Rows.Count + 1 : SQL_合約明細新增() : End If
  1862. ElseIf TabControl1.SelectedIndex = 2 Then
  1863. If 第3期_dgv.Rows.Count = 10 Then : MsgBox(SS) : Else : PA1 = "3" : PA2 = 第3期_dgv.Rows.Count + 1 : SQL_合約明細新增() : End If
  1864. ElseIf TabControl1.SelectedIndex = 3 Then
  1865. If 第4期_dgv.Rows.Count = 10 Then : MsgBox(SS) : Else : PA1 = "4" : PA2 = 第4期_dgv.Rows.Count + 1 : SQL_合約明細新增() : End If
  1866. ElseIf TabControl1.SelectedIndex = 4 Then
  1867. If 第5期_dgv.Rows.Count = 10 Then : MsgBox(SS) : Else : PA1 = "5" : PA2 = 第5期_dgv.Rows.Count + 1 : SQL_合約明細新增() : End If
  1868. End If
  1869. PA = 合約編號_tb.Text
  1870. PA1 = "1" : Set_合約明細1() : PA1 = "2" : Set_合約明細2() : PA1 = "3" : Set_合約明細3() : PA1 = "4" : Set_合約明細4() : PA1 = "5" : Set_合約明細5()
  1871. If 系統語言 = "繁體中文" Then : MsgBox("新增完成!!") : Else : MsgBox("Added complete!!") : End If
  1872. End If
  1873. End If
  1874. End Sub
  1875. Private Sub 刪除資料_bt_Click(sender As Object, e As EventArgs) Handles 刪除資料_bt.Click
  1876. If 合約編號_cb.Text = "" Or 合約編號1_tb.Text = "" Or 明細選項_bt.Text = "" Then
  1877. If 系統語言 = "繁體中文" Then : MsgBox("資訊不夠,無法刪除明細!!") : Else : MsgBox("Not enough information to delete details!!") : End If : Else
  1878. If 工程款6_nud.Value <> 100 Then
  1879. If 系統語言 = "繁體中文" Then : MsgBox("工程款估驗 不等於 100%!!") : Else : MsgBox("Project appraisal is not equal to 100%!!") : End If : Else
  1880. PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text : 合約明細存檔()
  1881. If TabControl1.SelectedIndex = 0 Then : PA1 = "1" : PA2 = 明細選項_bt.Text : SQL_合約明細刪除()
  1882. ElseIf TabControl1.SelectedIndex = 1 Then : PA1 = "2" : PA2 = 明細選項_bt.Text : SQL_合約明細刪除()
  1883. ElseIf TabControl1.SelectedIndex = 2 Then : PA1 = "3" : PA2 = 明細選項_bt.Text : SQL_合約明細刪除()
  1884. ElseIf TabControl1.SelectedIndex = 3 Then : PA1 = "4" : PA2 = 明細選項_bt.Text : SQL_合約明細刪除()
  1885. ElseIf TabControl1.SelectedIndex = 4 Then : PA1 = "5" : PA2 = 明細選項_bt.Text : SQL_合約明細刪除()
  1886. End If
  1887. PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text
  1888. PA1 = "1" : Set_合約明細1() : PA1 = "2" : Set_合約明細2() : PA1 = "3" : Set_合約明細3() : PA1 = "4" : Set_合約明細4() : PA1 = "5" : Set_合約明細5()
  1889. If 系統語言 = "繁體中文" Then : MsgBox("刪除完成!!") : Else : MsgBox("Delete complete!!") : End If
  1890. End If
  1891. End If
  1892. End Sub
  1893. Private Sub 合約編號1_tb_TextChanged(sender As Object, e As EventArgs) Handles 合約編號1_tb.TextChanged
  1894. PA30 = 合約編號1_tb.Text : SQL_客戶資料讀取()
  1895. If dr.Read() Then : 客戶名稱_tb.Text = dr("客戶名稱") : 負責人_A_cb.Text = dr("負責人") : 客戶地址_tb.Text = dr("地址") : End If : conn.Close()
  1896. End Sub
  1897. Private Sub 美金_ch_Click(sender As Object, e As EventArgs) Handles 美金_ch.Click
  1898. 美金_ch.Checked = True : 台幣_ch.Checked = False : 人民幣_ch.Checked = False : 印尼盾_ch.Checked = False
  1899. If 美金_ch.Checked = True Then : 幣別 = " (USD)" : ElseIf 台幣_ch.Checked = True Then : 幣別 = " (TWD)"
  1900. ElseIf 人民幣_ch.Checked = True Then : 幣別 = " (RMB)" : ElseIf 印尼盾_ch.Checked = True Then : 幣別 = " (RP)" : End If
  1901. Set_合約報價明細表() : Set_合約報價總表()
  1902. End Sub
  1903. Private Sub 台幣_ch_Click(sender As Object, e As EventArgs) Handles 台幣_ch.Click
  1904. 美金_ch.Checked = False : 台幣_ch.Checked = True : 人民幣_ch.Checked = False : 印尼盾_ch.Checked = False
  1905. If 美金_ch.Checked = True Then : 幣別 = " (USD)" : ElseIf 台幣_ch.Checked = True Then : 幣別 = " (TWD)"
  1906. ElseIf 人民幣_ch.Checked = True Then : 幣別 = " (RMB)" : ElseIf 印尼盾_ch.Checked = True Then : 幣別 = " (RP)" : End If
  1907. Set_合約報價明細表() : Set_合約報價總表()
  1908. End Sub
  1909. Private Sub 人民幣_ch_Click(sender As Object, e As EventArgs) Handles 人民幣_ch.Click
  1910. 美金_ch.Checked = False : 台幣_ch.Checked = False : 人民幣_ch.Checked = True : 印尼盾_ch.Checked = False
  1911. If 美金_ch.Checked = True Then : 幣別 = " (USD)" : ElseIf 台幣_ch.Checked = True Then : 幣別 = " (TWD)"
  1912. ElseIf 人民幣_ch.Checked = True Then : 幣別 = " (RMB)" : ElseIf 印尼盾_ch.Checked = True Then : 幣別 = " (RP)" : End If
  1913. Set_合約報價明細表() : Set_合約報價總表()
  1914. End Sub
  1915. Private Sub 印尼盾_ch_Click(sender As Object, e As EventArgs) Handles 印尼盾_ch.Click
  1916. 美金_ch.Checked = False : 台幣_ch.Checked = False : 人民幣_ch.Checked = False : 印尼盾_ch.Checked = True
  1917. If 美金_ch.Checked = True Then : 幣別 = " (USD)" : ElseIf 台幣_ch.Checked = True Then : 幣別 = " (TWD)"
  1918. ElseIf 人民幣_ch.Checked = True Then : 幣別 = " (RMB)" : ElseIf 印尼盾_ch.Checked = True Then : 幣別 = " (RP)" : End If
  1919. Set_合約報價明細表() : Set_合約報價總表()
  1920. End Sub
  1921. '-----------------合約報價總表-------------------------------------------------------------------------------------------------------------------------------
  1922. Private Sub 合約報價總表_最後一筆資料()
  1923. SQL_合約報價總表_最後一筆資料()
  1924. If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("流水號").ToString, 9)) : Else : EDR = 0 : End If : conn.Close() : EDR += 1
  1925. If EDR < 10 Then : ESTR = "GT" & "00000000" & EDR : ElseIf EDR > 9 And EDR < 100 Then : ESTR = "GT" & "0000000" & EDR
  1926. ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "GT" & "000000" & EDR : ElseIf EDR > 999 And EDR < 10000 Then : ESTR = "GT" & "00000" & EDR
  1927. ElseIf EDR > 9999 And EDR < 100000 Then : ESTR = "GT" & "0000" & EDR : ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "GT" & "000" & EDR
  1928. ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "GT" & "00" & EDR : ElseIf EDR > 9999999 And EDR < 10000000 Then : ESTR = "GT" & "0" & EDR
  1929. ElseIf EDR > 99999999 Then : ESTR = "GT" & EDR : End If : PA9 = ESTR
  1930. End Sub
  1931. Private Sub 總表範例新增()
  1932. 合約報價總表_最後一筆資料() : PA10 = ""
  1933. SQL_合約報價總表_最後一筆排序()
  1934. If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "00" : End If : conn.Close() : NUM1 = Double.Parse(PA1) + 1
  1935. 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
  1936. SQL_合約報價總表_新增資料()
  1937. End Sub
  1938. Private Sub 總表範例_bt_Click(sender As Object, e As EventArgs) Handles 總表範例_bt.Click
  1939. If 報價總表_dgv.Rows.Count = 0 Then
  1940. For I As Integer = 1 To 5
  1941. PA = 合約編號_tb.Text
  1942. If I = 1 Then : PA2 = "" : PA3 = ""
  1943. ElseIf I = 2 Then : PA2 = "^" : PA3 = "管理費 7%" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = ""
  1944. ElseIf I = 3 Then : PA2 = "#" : PA3 = "折讓 Discount" : PA4 = "" : PA5 = "1" : PA6 = "0" : PA7 = "0" : PA8 = ""
  1945. ElseIf I = 4 Then : PA2 = "*" : PA3 = "稅金 11% Tax" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = ""
  1946. ElseIf I = 5 Then : PA2 = "@" : PA3 = "總計 Grand Total" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = ""
  1947. End If : 總表範例新增()
  1948. Next
  1949. Set_合約報價總表()
  1950. Else
  1951. Dim 新開1 As Boolean = True : Dim 新開2 As Boolean = True : Dim 新開3 As Boolean = True : Dim 新開4 As Boolean = True
  1952. For I As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  1953. If 報價總表_dgv.Rows(I).Cells("ITEM").Value.ToString = "^" And Strings.Left(報價總表_dgv.Rows(I).Cells("DESCRIPTION").Value.ToString, 2) = "管理" Then
  1954. 新開1 = False : Exit For : End If : Next
  1955. For I As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  1956. If 報價總表_dgv.Rows(I).Cells("ITEM").Value.ToString = "*" And Strings.Left(報價總表_dgv.Rows(I).Cells("DESCRIPTION").Value.ToString, 2) = "稅金" Then
  1957. 新開2 = False : Exit For : End If : Next
  1958. For I As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  1959. If 報價總表_dgv.Rows(I).Cells("ITEM").Value.ToString = "@" And Strings.Left(報價總表_dgv.Rows(I).Cells("DESCRIPTION").Value.ToString, 2) = "總計" Then
  1960. 新開3 = False : Exit For : End If : Next
  1961. For I As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  1962. If 報價總表_dgv.Rows(I).Cells("ITEM").Value.ToString = "#" And Strings.Left(報價總表_dgv.Rows(I).Cells("DESCRIPTION").Value.ToString, 2) = "折讓" Then
  1963. 新開4 = False : Exit For : End If : Next
  1964. If 新開1 = True Or 新開2 = True Or 新開3 = True Then : PA = 合約編號_tb.Text : PA2 = "" : PA3 = "" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = ""
  1965. 總表範例新增() : End If
  1966. If 新開1 = True Then : PA = 合約編號_tb.Text : PA2 = "^" : PA3 = "管理費 7%" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = ""
  1967. 總表範例新增() : End If
  1968. If 新開4 = True Then : PA = 合約編號_tb.Text : PA2 = "#" : PA3 = "折讓 Discount" : PA4 = "" : PA5 = "1" : PA6 = "0" : PA7 = "0" : PA8 = ""
  1969. 總表範例新增() : End If
  1970. If 新開2 = True Then : PA = 合約編號_tb.Text : PA2 = "*" : PA3 = "稅金 11% Tax" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = ""
  1971. 總表範例新增() : End If
  1972. If 新開3 = True Then : PA = 合約編號_tb.Text : PA2 = "@" : PA3 = "總計 Grand Total" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = ""
  1973. 總表範例新增() : End If : Set_合約報價總表()
  1974. End If
  1975. End Sub
  1976. Private Sub 報價總表存檔()
  1977. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  1978. PA1 = 報價總表_dgv.Rows(i).Cells("排序").Value.ToString : PA2 = 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString : PA3 = 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString
  1979. 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
  1980. PA7 = 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString : PA8 = 報價總表_dgv.Rows(i).Cells("REMARKS").Value.ToString : PA9 = 報價總表_dgv.Rows(i).Cells("流水號").Value.ToString
  1981. PA10 = 報價總表_dgv.Rows(i).Cells("明細連動").Value.ToString
  1982. SQL_合約報價總表_存檔()
  1983. Next
  1984. SQL_合約修改_報價說明()
  1985. End Sub
  1986. Private Sub 新增資料1_bt_Click(sender As Object, e As EventArgs) Handles 新增資料1_bt.Click
  1987. If 合約編號_tb.Text = "" Then
  1988. If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else
  1989. Dim SS As String
  1990. If 系統語言 = "繁體中文" Then : SS = "請輸入要新增幾行空白欄位!! (請輸入數字)"
  1991. Else : SS = "Please enter a few blank fields to add!! (Please enter a number)" : End If
  1992. PA20 = InputBox(SS)
  1993. If IsNumeric(PA20) = False Then
  1994. If 系統語言 = "繁體中文" Then : MsgBox("你輸入的不是數字!!") : Else : MsgBox("You are not entering numbers!!") : End If : Else
  1995. 報價總表存檔()
  1996. For ia As Integer = 1 To PA20
  1997. PA = 合約編號_tb.Text : PA2 = "" : PA3 = "" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = ""
  1998. 合約報價總表_最後一筆資料()
  1999. PA10 = ""
  2000. If 選擇項_tb.Text = "" Then
  2001. SQL_合約報價總表_最後一筆排序()
  2002. If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "00" : End If : conn.Close() : NUM1 = Double.Parse(PA1) + 1
  2003. 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
  2004. Else
  2005. PA1 = 選擇項3_tb.Text & "-1"
  2006. End If
  2007. SQL_合約報價總表_新增資料()
  2008. Next
  2009. Set_合約報價總表()
  2010. For I As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  2011. If I < 10 Then : 報價總表_dgv.Rows(I).Cells("排序").Value = "00" & I
  2012. ElseIf I > 9 And I < 100 Then : 報價總表_dgv.Rows(I).Cells("排序").Value = "0" & I
  2013. ElseIf I > 99 Then : 報價總表_dgv.Rows(I).Cells("排序").Value = I
  2014. End If
  2015. Next : 報價總表存檔()
  2016. End If
  2017. End If
  2018. End Sub
  2019. Private Sub 報價總表存檔按鈕()
  2020. If 報價總表_dgv.Rows.Count = 0 Then : Else
  2021. 報價總表存檔() : PA37 = 合約種類_cb.Text : PA36 = 合約種類_tb.Text : PA = 合約編號_tb.Text
  2022. PA36 = 客戶名稱_tb.Text : PA35 = 負責人_A_cb.Text : PA34 = 工程地點_tb.Text : PA33 = 客戶地址_tb.Text : PA32 = 工程名稱_中_tb.Text : PA31 = 工程名稱_英_tb.Text
  2023. PA30 = 選擇公司_cb.Text : PA29 = 負責人_B_cb.Text : PA28 = 我司地址_tb.Text : PA27 = NUD3.Value : PA26 = 工程款1_nud.Value : PA25 = 工程款2_nud.Value
  2024. PA24 = 工程款3_nud.Value : PA23 = 工程款4_nud.Value : PA22 = 工程款5_nud.Value : PA21 = 工期_nud.Value : PA20 = 逾期_bt.Text : PA19 = 最高扣款_bt.Text
  2025. PA18 = 逾期_英_bt.Text : PA17 = 最高扣款_英_bt.Text : PA16 = 減價_bt.Text : PA15 = 廠區_中文_tb.Text : PA14 = 頁數_bt.Text : PA12 = 合約種類_cb.Text
  2026. PA13 = Strings.Format(立約日期_dtp.Value, "yyyy/MM/dd") : PA44 = 合約編號2_tb.Text : PA45 = 合約編號3_tb.Text : PA46 = 合約編號1_tb.Text : PA47 = 工程期_ch.Text
  2027. BL1 = 合約停止_ch.Checked : PA10 = 折讓比例_nud.Value : PA9 = 歸零位數_nud.Value : BL2 = 稅前歸零_ch.Checked : BL3 = 稅後歸零_ch.Checked
  2028. If 美金_ch.Checked = True Then : PA11 = "美金" : ElseIf 台幣_ch.Checked = True Then : PA11 = "台幣"
  2029. ElseIf 人民幣_ch.Checked = True Then : PA11 = "人民幣" : ElseIf 印尼盾_ch.Checked = True Then : PA11 = "印尼盾" : End If
  2030. 匯率() : PA48 = 匯率1 : SQL_合約修改1() : Set_合約報價總表() : Set_合約清單()
  2031. End If
  2032. End Sub
  2033. Private Sub 報價總表存檔_bt_Click(sender As Object, e As EventArgs) Handles 報價總表存檔_bt.Click
  2034. If 報價總表_dgv.Rows.Count = 0 Then
  2035. If 系統語言 = "繁體中文" Then : MsgBox("沒有可以存檔的資料!!") : Else : MsgBox("No data to archive!!") : End If : Else
  2036. 資料數 = 報價明細表_dgv.Rows.Count : 進度條視窗.Show()
  2037. 報價總表存檔按鈕() : 報價明細表存檔() : Set_合約報價明細表() : 預估利潤存檔() : MyModule1.計算顯示3()
  2038. If 系統語言 = "繁體中文" Then : MsgBox("存檔完成!!") : Else : MsgBox("Archive complete!!") : End If
  2039. End If
  2040. End Sub
  2041. Private Sub 總表選擇刪除_bt_Click(sender As Object, e As EventArgs) Handles 總表選擇刪除_bt.Click
  2042. If 總表流水_tb.Text = "" Then
  2043. If 系統語言 = "繁體中文" Then : MsgBox("請先選擇要刪除的資料是哪一筆!!") : Else : MsgBox("Please select which data to delete first!!") : End If
  2044. Else : 報價總表存檔() : PA9 = 總表流水_tb.Text : SQL_合約報價總表_刪除資料() : Set_合約報價總表() : End If
  2045. End Sub
  2046. Private Sub 排序1_bt_Click(sender As Object, e As EventArgs) Handles 排序1_bt.Click
  2047. If 報價總表_dgv.Rows.Count > 0 Then
  2048. If 報價總表_dgv.Columns(0).Visible = False Then : 報價總表_dgv.Columns(0).Visible = True : Else : 報價總表_dgv.Columns(0).Visible = False : End If
  2049. End If
  2050. End Sub
  2051. Private Sub 稅前歸零_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 稅前歸零_ch.Click
  2052. If 稅前歸零_ch.Checked = False And 稅後歸零_ch.Checked = False Then : 稅前歸零_ch.Checked = False : 稅後歸零_ch.Checked = False
  2053. ElseIf 稅前歸零_ch.Checked = True And 稅後歸零_ch.Checked = False Then : 稅前歸零_ch.Checked = True : 稅後歸零_ch.Checked = False
  2054. ElseIf 稅前歸零_ch.Checked = True And 稅後歸零_ch.Checked = True Then : 稅前歸零_ch.Checked = True : 稅後歸零_ch.Checked = True : End If
  2055. End Sub
  2056. Private Sub 稅後歸零_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 稅後歸零_ch.Click
  2057. If 稅前歸零_ch.Checked = False And 稅後歸零_ch.Checked = False Then : 稅前歸零_ch.Checked = False : 稅後歸零_ch.Checked = False
  2058. ElseIf 稅前歸零_ch.Checked = True And 稅後歸零_ch.Checked = False Then : 稅前歸零_ch.Checked = False : 稅後歸零_ch.Checked = True
  2059. ElseIf 稅前歸零_ch.Checked = True And 稅後歸零_ch.Checked = True Then : 稅前歸零_ch.Checked = False : 稅後歸零_ch.Checked = True : End If
  2060. End Sub
  2061. Private Sub 折價計算_bt_Click(sender As Object, e As EventArgs) Handles 折價計算_bt.Click
  2062. If 歸零位數_nud.Value >= Len(CLng(未折價前_tb.Text)) - 1 Then
  2063. If 系統語言 = "繁體中文" Then : MsgBox("歸零位數太大,報價會出錯!!") : Else : MsgBox("The number of zeroing digits is too large, and the quotation will be wrong!!") : End If
  2064. Else
  2065. Dim DD, 歸零前, 歸零後 As Long
  2066. '-------------------------------折讓計算--------------------------------------------------------------------------------------------------------------
  2067. If 折讓比例_nud.Value > 0 Then
  2068. DD = CLng(未折價前_tb.Text) / 100 * 折讓比例_nud.Value * -1
  2069. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  2070. If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "折讓 Discount" Then
  2071. 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value = DD : Exit For
  2072. End If
  2073. Next
  2074. End If : 報價總表_dgv_自動計算()
  2075. '---------------------------------------------歸零位數_nud------------------------------------------------------------------------------------------------
  2076. If 歸零位數_nud.Value > 0 Then
  2077. If 稅前歸零_ch.Checked = True Then
  2078. 歸零數_tb.Text = Strings.Right(CLng(報價小計_tb.Text), 歸零位數_nud.Value)
  2079. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  2080. If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "折讓 Discount" Then
  2081. 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value = DD - CLng(歸零數_tb.Text) : Exit For
  2082. End If
  2083. Next
  2084. ElseIf 稅後歸零_ch.Checked = True Then
  2085. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  2086. If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "@" Then
  2087. 歸零前 = CLng(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString) : Exit For
  2088. End If
  2089. Next
  2090. 歸零數_tb.Text = Strings.Right(歸零前, 歸零位數_nud.Value) : 歸零後 = 歸零前 - CLng(歸零數_tb.Text)
  2091. If 稅額顯示_lb.Text = "PPN 0%稅額 = Rp. " Then : DD = CLng(報價小計_tb.Text) - (歸零後)
  2092. ElseIf 稅額顯示_lb.Text = "PPN 5%稅額 = Rp. " Then : DD = CLng(報價小計_tb.Text) - (歸零後 / 105 * 100)
  2093. ElseIf 稅額顯示_lb.Text = "PPN 10%稅額 = Rp. " Then : DD = CLng(報價小計_tb.Text) - (歸零後 / 110 * 100)
  2094. ElseIf 稅額顯示_lb.Text = "PPN 11%稅額 = Rp. " Then : DD = CLng(報價小計_tb.Text) - (歸零後 / 111 * 100) : End If
  2095. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  2096. If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "折讓 Discount" Then
  2097. 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value = CLng(報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString) - DD : Exit For
  2098. End If
  2099. Next
  2100. End If
  2101. End If : 報價總表_dgv_自動計算()
  2102. End If
  2103. End Sub
  2104. '-----------------合約報價總表編輯功能-------------------------------------------------------------------------------------------------------------------------------
  2105. Private Sub 總表編輯()
  2106. If 視窗2_pl.Visible = False Then
  2107. 視窗2_pl.Location = New System.Drawing.Point(123, 58) : 視窗2_pl.Visible = True : 視窗2_pl.Top = True : 視窗2_pl.BringToFront()
  2108. 目前選擇 = "讀取資料" : 座標_lb.Text = 目前選擇
  2109. X_3_tb.Text = "" : Y_3_tb.Text = "" : NUD_01.Value = 0 : NUD_02.Value = 0 : NUD_03.Value = 0
  2110. 中文大寫1_ch.Checked = True : 中文小寫1_ch.Checked = False : 數字1_ch.Checked = False
  2111. ITEM1_cb.Items.Clear() : ITEM1_cb.Items.Add("") : ITEM1_cb.Items.Add("壹") : ITEM1_cb.Items.Add("貳") : ITEM1_cb.Items.Add("參") : ITEM1_cb.Items.Add("肆")
  2112. ITEM1_cb.Items.Add("伍") : ITEM1_cb.Items.Add("陸") : ITEM1_cb.Items.Add("柒") : ITEM1_cb.Items.Add("捌") : ITEM1_cb.Items.Add("玖") : ITEM1_cb.Items.Add("拾")
  2113. ITEM1_cb.Items.Add("拾壹") : ITEM1_cb.Items.Add("拾貳") : ITEM1_cb.Items.Add("拾參") : ITEM1_cb.Items.Add("拾肆") : ITEM1_cb.Items.Add("拾伍") : ITEM1_cb.Items.Add("拾陸")
  2114. ITEM1_cb.Items.Add("拾柒") : ITEM1_cb.Items.Add("拾捌") : ITEM1_cb.Items.Add("拾玖") : ITEM1_cb.Items.Add("貳拾")
  2115. 視窗2_pl.BringToFront()
  2116. Else : 視窗2_pl.Visible = False
  2117. End If
  2118. End Sub
  2119. Private Sub 中文大寫1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中文大寫1_ch.Click
  2120. 中文大寫1_ch.Checked = True : 中文小寫1_ch.Checked = False : 數字1_ch.Checked = False
  2121. ITEM1_cb.Items.Clear() : ITEM1_cb.Items.Add("") : ITEM1_cb.Items.Add("壹") : ITEM1_cb.Items.Add("貳") : ITEM1_cb.Items.Add("參") : ITEM1_cb.Items.Add("肆")
  2122. ITEM1_cb.Items.Add("伍") : ITEM1_cb.Items.Add("陸") : ITEM1_cb.Items.Add("柒") : ITEM1_cb.Items.Add("捌") : ITEM1_cb.Items.Add("玖") : ITEM1_cb.Items.Add("拾")
  2123. ITEM1_cb.Items.Add("拾壹") : ITEM1_cb.Items.Add("拾貳") : ITEM1_cb.Items.Add("拾參") : ITEM1_cb.Items.Add("拾肆") : ITEM1_cb.Items.Add("拾伍") : ITEM1_cb.Items.Add("拾陸")
  2124. ITEM1_cb.Items.Add("拾柒") : ITEM1_cb.Items.Add("拾捌") : ITEM1_cb.Items.Add("拾玖") : ITEM1_cb.Items.Add("貳拾")
  2125. End Sub
  2126. Private Sub 中文小寫1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中文小寫1_ch.Click
  2127. 中文大寫1_ch.Checked = False : 中文小寫1_ch.Checked = True : 數字1_ch.Checked = False
  2128. ITEM1_cb.Items.Clear() : ITEM1_cb.Items.Add("") : ITEM1_cb.Items.Add("一") : ITEM1_cb.Items.Add("二") : ITEM1_cb.Items.Add("三") : ITEM1_cb.Items.Add("四")
  2129. ITEM1_cb.Items.Add("五") : ITEM1_cb.Items.Add("六") : ITEM1_cb.Items.Add("七") : ITEM1_cb.Items.Add("八") : ITEM1_cb.Items.Add("九") : ITEM1_cb.Items.Add("十")
  2130. ITEM1_cb.Items.Add("十一") : ITEM1_cb.Items.Add("十二") : ITEM1_cb.Items.Add("十三") : ITEM1_cb.Items.Add("十四") : ITEM1_cb.Items.Add("十五") : ITEM1_cb.Items.Add("十六")
  2131. ITEM1_cb.Items.Add("十七") : ITEM1_cb.Items.Add("十八") : ITEM1_cb.Items.Add("十九") : ITEM1_cb.Items.Add("二十")
  2132. End Sub
  2133. Private Sub 數字1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 數字1_ch.Click
  2134. 中文大寫1_ch.Checked = False : 中文小寫1_ch.Checked = False : 數字1_ch.Checked = True
  2135. ITEM1_cb.Items.Clear() : ITEM1_cb.Items.Add("") : For I As Integer = 1 To 30 : ITEM1_cb.Items.Add(I) : Next
  2136. End Sub
  2137. Private Sub 合計項_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合計項_cb.SelectedIndexChanged
  2138. 內容_tb.Text = 合計項_cb.Text : ITEM1_cb.Text = "" : 單位_tb.Text = ""
  2139. If 合計項_cb.Text = "合 計 Total" Or Strings.Left(合計項_cb.Text, 2) = "稅金" Then : ITEM1_cb.Text = "*"
  2140. ElseIf Strings.Left(合計項_cb.Text, 3) = "管理費" Then : ITEM1_cb.Text = "^"
  2141. ElseIf Strings.Left(合計項_cb.Text, 2) = "折讓" Then : ITEM1_cb.Text = "#"
  2142. ElseIf 合計項_cb.Text = "總計 Grand Total" Then : ITEM1_cb.Text = "@" : End If
  2143. End Sub
  2144. Private Sub 總表編輯_bt_Click(sender As Object, e As EventArgs) Handles 總表編輯_bt.Click
  2145. 總表編輯() : 視窗3_pl.Visible = False : Set_報價明細表_dgv_利潤表關閉()
  2146. End Sub
  2147. Private Sub NUD_01_Click(sender As Object, e As EventArgs) Handles NUD_01.Click
  2148. 目前選擇 = "讀取資料" : 座標_lb.Text = 目前選擇
  2149. End Sub
  2150. Private Sub NUD_02_Click(sender As Object, e As EventArgs) Handles NUD_02.Click
  2151. 目前選擇 = "讀取資料" : 座標_lb.Text = 目前選擇
  2152. End Sub
  2153. Private Sub NUD_03_Click(sender As Object, e As EventArgs) Handles NUD_03.Click
  2154. 目前選擇 = "寫入資料" : 座標_lb.Text = 目前選擇
  2155. End Sub
  2156. Private Sub 選擇_lb_Click(sender As Object, e As EventArgs) Handles 選擇_lb.Click
  2157. 目前選擇 = "寫入資料" : 座標_lb.Text = 目前選擇
  2158. End Sub
  2159. Private Sub 文字資料輸入1_bt_Click(sender As Object, e As EventArgs) Handles 文字資料輸入1_bt.Click
  2160. If 選擇項_tb.Text = "" Then
  2161. If 系統語言 = "繁體中文" Then : MsgBox("請先點選要輸入在總表的哪一行!!") : Else : MsgBox("Please click on which row you want to enter in the summary table first!!") : End If
  2162. Else
  2163. Dim ZX As Integer = 選擇項_tb.Text
  2164. 報價總表_dgv.Rows(ZX).Cells("ITEM").Value = ITEM1_cb.Text : 報價總表_dgv.Rows(ZX).Cells("UNIT").Value = 單位_tb.Text
  2165. 報價總表_dgv.Rows(ZX).Cells("REMARKS").Value = 備註_tb.Text : 報價總表_dgv.Rows(ZX).Cells("DESCRIPTION").Value = 內容_tb.Text
  2166. If IsNumeric(數量_tb.Text) = False Then : 報價總表_dgv.Rows(ZX).Cells("QTY").Value = 0 : Else : 報價總表_dgv.Rows(ZX).Cells("QTY").Value = 數量_tb.Text : End If
  2167. 報價總表_dgv_自動計算() : 數量_tb.Text = "1"
  2168. End If
  2169. End Sub
  2170. Private Sub B1_bt_Click(sender As Object, e As EventArgs) Handles b1_bt.Click
  2171. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 1 : Else : 數值2_tb.Text = 1 : End If
  2172. End Sub
  2173. Private Sub B2_bt_Click(sender As Object, e As EventArgs) Handles b2_bt.Click
  2174. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 2 : Else : 數值2_tb.Text = 2 : End If
  2175. End Sub
  2176. Private Sub B3_bt_Click(sender As Object, e As EventArgs) Handles b3_bt.Click
  2177. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 3 : Else : 數值2_tb.Text = 3 : End If
  2178. End Sub
  2179. Private Sub B4_bt_Click(sender As Object, e As EventArgs) Handles b4_bt.Click
  2180. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 4 : Else : 數值2_tb.Text = 4 : End If
  2181. End Sub
  2182. Private Sub B5_bt_Click(sender As Object, e As EventArgs) Handles b5_bt.Click
  2183. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 5 : Else : 數值2_tb.Text = 5 : End If
  2184. End Sub
  2185. Private Sub B6_bt_Click(sender As Object, e As EventArgs) Handles b6_bt.Click
  2186. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 6 : Else : 數值2_tb.Text = 6 : End If
  2187. End Sub
  2188. Private Sub B7_bt_Click(sender As Object, e As EventArgs) Handles b7_bt.Click
  2189. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 7 : Else : 數值2_tb.Text = 7 : End If
  2190. End Sub
  2191. Private Sub B8_bt_Click(sender As Object, e As EventArgs) Handles b8_bt.Click
  2192. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 8 : Else : 數值2_tb.Text = 8 : End If
  2193. End Sub
  2194. Private Sub B9_bt_Click(sender As Object, e As EventArgs) Handles b9_bt.Click
  2195. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 9 : Else : 數值2_tb.Text = 9 : End If
  2196. End Sub
  2197. Private Sub B0_bt_Click(sender As Object, e As EventArgs) Handles b0_bt.Click
  2198. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 0 : Else : 數值2_tb.Text = 0 : End If
  2199. End Sub
  2200. Private Sub 小數點_bt_Click(sender As Object, e As EventArgs) Handles 小數點_bt.Click
  2201. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & "." : Else : 數值2_tb.Text = "0." : End If
  2202. End Sub
  2203. '----------------------------數字鍵盤---------------------------------------------------------------------------------------------------------------
  2204. Private Sub 倒退_bt_Click(sender As Object, e As EventArgs) Handles 倒退_bt.Click
  2205. Dim SS As Integer
  2206. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = Int(Val(數值2_tb.Text) / 10)
  2207. ElseIf 數值2_tb.Text = "" And 數值1_tb.Text <> "" Then : SS = Len(數值1_tb.Text) : 數值1_tb.Text = Strings.Left(數值1_tb.Text, SS - 1)
  2208. Else : 數值2_tb.Text = "" : End If
  2209. End Sub
  2210. Private Sub 除_bt_Click(sender As Object, e As EventArgs) Handles 除_bt.Click
  2211. 等於_bt.PerformClick()
  2212. If 數值2_tb.Text <> "" And 數值1_tb.Text = "" Then : 數值1_tb.Text = 數值2_tb.Text : 數值2_tb.Text = "" : End If
  2213. 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
  2214. 計算式_tb.Text = "/"
  2215. End Sub
  2216. Private Sub 乘_bt_Click(sender As Object, e As EventArgs) Handles 乘_bt.Click
  2217. 等於_bt.PerformClick()
  2218. If 數值2_tb.Text <> "" And 數值1_tb.Text = "" Then : 數值1_tb.Text = 數值2_tb.Text : 數值2_tb.Text = "" : End If
  2219. 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
  2220. 計算式_tb.Text = "X"
  2221. End Sub
  2222. Private Sub 加_bt_Click(sender As Object, e As EventArgs) Handles 加_bt.Click
  2223. 等於_bt.PerformClick()
  2224. If 數值2_tb.Text <> "" And 數值1_tb.Text = "" Then : 數值1_tb.Text = 數值2_tb.Text : 數值2_tb.Text = "" : End If
  2225. 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
  2226. 計算式_tb.Text = "+"
  2227. End Sub
  2228. Private Sub 減_bt_Click(sender As Object, e As EventArgs) Handles 減_bt.Click
  2229. 等於_bt.PerformClick()
  2230. If 數值2_tb.Text <> "" And 數值1_tb.Text = "" Then : 數值1_tb.Text = 數值2_tb.Text : 數值2_tb.Text = "" : End If
  2231. 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
  2232. 計算式_tb.Text = "-"
  2233. End Sub
  2234. Private Sub 清除_bt_Click(sender As Object, e As EventArgs) Handles 清除_bt.Click
  2235. 數值2_tb.Text = "" : 數值1_tb.Text = "" : 計算式_tb.Text = "" : 結果_tb.Text = ""
  2236. End Sub
  2237. Private Sub 數值1_tb_TextChanged(sender As Object, e As EventArgs) Handles 數值1_tb.TextChanged
  2238. 結果_tb.Text = 數值1_tb.Text : If 數值1_tb.Text <> "" Then : NUD_01.Value = 數值1_tb.Text : Else : NUD_01.Value = 0 : End If
  2239. If Val(數值1_tb.Text) > 9.99973000350998E+85 Then
  2240. If 系統語言 = "繁體中文" Then : MsgBox("EFFORT錯誤!結果過大, 請重新點擊AC來重新啟動!!")
  2241. Else : MsgBox("EFFORT error! The result is too large, please re-click AC to restart!!") : End If
  2242. End If
  2243. End Sub
  2244. Private Sub 計算式_tb_TextChanged(sender As Object, e As EventArgs) Handles 計算式_tb.TextChanged
  2245. 計算1_ch.Text = 計算式_tb.Text
  2246. End Sub
  2247. Private Sub 數值2_tb_TextChanged(sender As Object, e As EventArgs) Handles 數值2_tb.TextChanged
  2248. If 數值2_tb.Text <> "" Then : NUD_02.Value = 數值2_tb.Text : Else : NUD_02.Value = 0 : End If
  2249. End Sub
  2250. Private Sub 結果_tb_TextChanged(sender As Object, e As EventArgs) Handles 結果_tb.TextChanged
  2251. If IsNumeric(結果_tb.Text) Then : If 結果_tb.Text <> "" Then : NUD_03.Value = 結果_tb.Text : Else : NUD_03.Value = 0 : End If : End If
  2252. End Sub
  2253. Private Sub 等於_bt_Click(sender As Object, e As EventArgs) Handles 等於_bt.Click
  2254. If 數值2_tb.Text <> "" And 數值1_tb.Text <> "" Then
  2255. If 計算式_tb.Text = "X" Then : 數值1_tb.Text = Val(數值2_tb.Text) * Val(數值1_tb.Text) : 數值2_tb.Text = "" : End If
  2256. If 計算式_tb.Text = "/" Then : 數值1_tb.Text = Val(數值1_tb.Text) / Val(數值2_tb.Text) : 數值2_tb.Text = "" : End If
  2257. If 計算式_tb.Text = "+" Then : 數值1_tb.Text = Val(數值2_tb.Text) + Val(數值1_tb.Text) : 數值2_tb.Text = "" : End If
  2258. If 計算式_tb.Text = "-" Then : 數值1_tb.Text = Val(數值1_tb.Text) - Val(數值2_tb.Text) : 數值2_tb.Text = "" : End If
  2259. ElseIf 數值2_tb.Text <> "" And 數值1_tb.Text = "" Then
  2260. 結果_tb.Text = 數值2_tb.Text
  2261. Else : End If
  2262. End Sub
  2263. '-----------------合約報價明細表-------------------------------------------------------------------------------------------------------------------------------
  2264. Private Sub 合約報價明細表_最後一筆資料()
  2265. SQL_合約報價明細表_最後一筆資料()
  2266. If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("流水號").ToString, 9)) : Else : EDR = 0 : End If : conn.Close() : EDR += 1
  2267. If EDR < 10 Then : ESTR = "GT" & "00000000" & EDR : ElseIf EDR > 9 And EDR < 100 Then : ESTR = "GT" & "0000000" & EDR
  2268. ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "GT" & "000000" & EDR : ElseIf EDR > 999 And EDR < 10000 Then : ESTR = "GT" & "00000" & EDR
  2269. ElseIf EDR > 9999 And EDR < 100000 Then : ESTR = "GT" & "0000" & EDR : ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "GT" & "000" & EDR
  2270. ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "GT" & "00" & EDR : ElseIf EDR > 9999999 And EDR < 10000000 Then : ESTR = "GT" & "0" & EDR
  2271. ElseIf EDR > 99999999 Then : ESTR = "GT" & EDR : End If : PA9 = ESTR
  2272. End Sub
  2273. Private Sub 報價明細表存檔()
  2274. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  2275. MyModule1.計算顯示2() : MyModule1.進度條1()
  2276. PA1 = 報價明細表_dgv.Rows(i).Cells("排序").Value.ToString : PA2 = 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString
  2277. PA3 = 報價明細表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString : PA4 = 報價明細表_dgv.Rows(i).Cells("UNIT").Value.ToString
  2278. PA5 = 報價明細表_dgv.Rows(i).Cells("QTY").Value.ToString : PA6 = 報價明細表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString
  2279. PA7 = 報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString : PA8 = 報價明細表_dgv.Rows(i).Cells("REMARKS").Value.ToString
  2280. PA9 = 報價明細表_dgv.Rows(i).Cells("流水號").Value.ToString : PA10 = 報價明細表_dgv.Rows(i).Cells("實際數量").Value.ToString
  2281. PA11 = 報價明細表_dgv.Rows(i).Cells("工資成本單價").Value.ToString : PA12 = 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value.ToString
  2282. PA13 = 報價明細表_dgv.Rows(i).Cells("材料成本單價").Value.ToString : PA14 = 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value.ToString
  2283. PA15 = 報價明細表_dgv.Rows(i).Cells("料號").Value.ToString : BL = 報價明細表_dgv.Rows(i).Cells("不計").Value
  2284. PA16 = 報價明細表_dgv.Rows(i).Cells("材料係數").Value.ToString : BL1 = 報價明細表_dgv.Rows(i).Cells("D1").Value
  2285. BL2 = 報價明細表_dgv.Rows(i).Cells("D2").Value : BL3 = 報價明細表_dgv.Rows(i).Cells("D3").Value : BL4 = 報價明細表_dgv.Rows(i).Cells("D4").Value
  2286. BL5 = 報價明細表_dgv.Rows(i).Cells("D5").Value : BL6 = 報價明細表_dgv.Rows(i).Cells("D6").Value : BL7 = 報價明細表_dgv.Rows(i).Cells("D7").Value
  2287. BL8 = 報價明細表_dgv.Rows(i).Cells("D8").Value
  2288. SQL_合約報價明細表_存檔()
  2289. Next
  2290. '-----------------預估利潤存檔-------------------------------------------------------------------------------------------------------------------------------
  2291. If 預估工資總成本_tb.Text = "" Then : 預估工資總成本_tb.Text = "0" : End If
  2292. PA37 = 預估工資總成本_tb.Text
  2293. 預估利潤存檔()
  2294. End Sub
  2295. Private Sub 新增資料2_bt_Click(sender As Object, e As EventArgs) Handles 新增資料2_bt.Click
  2296. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else
  2297. 資料數 = 報價明細表_dgv.Rows.Count * 2 : 進度條視窗.Show()
  2298. 報價明細表存檔()
  2299. Dim SS As String
  2300. If 系統語言 = "繁體中文" Then : SS = "請輸入要新增幾行空白欄未!! (請輸入數字)!!"
  2301. Else : SS = "PHarap masukkan beberapa bidang kosong untuk ditambahkan!! (Silakan masukkan nomor)" : End If
  2302. PA20 = InputBox(SS)
  2303. If IsNumeric(PA20) = False Then : If 系統語言 = "繁體中文" Then : MsgBox("你輸入的不是數字!!") : Else : MsgBox("You are not entering numbers!!") : End If : Else
  2304. For ia As Integer = 1 To PA20
  2305. PA = 合約編號_tb.Text : PA2 = "" : PA3 = "" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = "" : PA10 = "" : PA11 = "" : PA12 = ""
  2306. PA13 = "" : PA14 = "" : PA15 = "" : PA16 = "" : BL = False : BL1 = False : BL2 = False : BL3 = False : BL4 = False : BL5 = False : BL6 = False
  2307. BL7 = False : BL8 = False : BL9 = True
  2308. 合約報價明細表_最後一筆資料()
  2309. If 選擇項1_tb.Text = "" Then
  2310. SQL_合約報價明細表_最後一筆排序()
  2311. If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "00" : End If : conn.Close()
  2312. NUM1 = Double.Parse(PA1) + 1
  2313. 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
  2314. Else
  2315. PA1 = 選擇項2_tb.Text & "-1"
  2316. End If
  2317. SQL_合約報價明細表_新增資料()
  2318. Next : Set_合約報價明細表()
  2319. For I As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  2320. MyModule1.計算顯示2() : MyModule1.進度條1()
  2321. If I < 10 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "00" & I
  2322. ElseIf I > 9 And I < 100 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "0" & I
  2323. ElseIf I > 99 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = I
  2324. End If
  2325. Next : 報價明細表存檔() : MyModule1.計算顯示3()
  2326. End If
  2327. End If
  2328. End Sub
  2329. Private Sub 報價明細表存檔_bt_Click(sender As Object, e As EventArgs) Handles 報價明細表存檔_bt.Click
  2330. If 報價明細表_dgv.Rows.Count = 0 Then
  2331. If 系統語言 = "繁體中文" Then : MsgBox("沒有可以存檔的資料!!") : Else : MsgBox("No data to archive!!") : End If : Else
  2332. 資料數 = 報價明細表_dgv.Rows.Count : 進度條視窗.Show()
  2333. 報價總表存檔按鈕() : 報價明細表存檔() : Set_合約報價明細表() : 預估利潤存檔() : MyModule1.計算顯示3()
  2334. If 系統語言 = "繁體中文" Then : MsgBox("存檔完成!!") : Else : MsgBox("Archive complete!!") : End If
  2335. End If
  2336. End Sub
  2337. Private Sub 總表選擇刪除1_bt_Click(sender As Object, e As EventArgs) Handles 總表選擇刪除1_bt.Click
  2338. If 啟用批量選擇_ch.Checked = False Then
  2339. If 明細表流水_tb.Text = "" Then
  2340. If 系統語言 = "繁體中文" Then : MsgBox("請先選擇要刪除的資料是哪一筆!!")
  2341. Else : MsgBox("Please select which data to delete first!!") : End If
  2342. Else
  2343. 資料數 = 報價明細表_dgv.Rows.Count : 進度條視窗.Show()
  2344. 報價明細表存檔() : PA9 = 明細表流水_tb.Text : SQL_合約報價明細表_刪除資料() : Set_合約報價明細表() : MyModule1.計算顯示3()
  2345. End If
  2346. Else
  2347. 資料數 = 報價明細表_dgv.Rows.Count * 2 : 進度條視窗.Show()
  2348. 報價明細表存檔()
  2349. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  2350. MyModule1.計算顯示2() : MyModule1.進度條1()
  2351. If 報價明細表_dgv("S", i).Value = True Then
  2352. PA9 = 報價明細表_dgv.Rows(i).Cells("流水號").Value.ToString : SQL_合約報價明細表_刪除資料()
  2353. End If
  2354. Next : MyModule1.計算顯示3() : Set_合約報價明細表() : 啟用批量選擇_ch.Checked = False
  2355. End If
  2356. End Sub
  2357. Private Sub 選擇材料新增到明細表_bt_Click(sender As Object, e As EventArgs) Handles 選擇材料新增到明細表_bt.Click
  2358. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else
  2359. If 料號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇物料!!") : Else : MsgBox("No material selected!!") : End If : Else
  2360. 資料數 = 報價明細表_dgv.Rows.Count * 2 : 進度條視窗.Show() : 報價明細表存檔()
  2361. PA = 合約編號_tb.Text : PA2 = "" : PA3 = "" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = "" : PA10 = "0" : PA11 = ""
  2362. PA12 = "" : PA14 = "" : PA15 = 料號_tb.Text : PA16 = "" : BL = False : BL1 = False : BL2 = False : BL3 = False : BL4 = False : BL5 = False : BL6 = False : BL7 = False
  2363. BL8 = False : BL9 = True : If 帶上歷史單價_ch.Checked = True Then : PA13 = 歷史單價_tb.Text : Else : PA13 = "" : End If
  2364. 明細表新增資料() : MyModule1.計算顯示3()
  2365. End If
  2366. End If
  2367. End Sub
  2368. Private Sub BOM新增到明細表_bt_Click(sender As Object, e As EventArgs) Handles BOM新增到明細表_bt.Click
  2369. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else
  2370. If ITEM4_cb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("請先選擇ITEM!!") : Else : MsgBox("Please select ITEM first!!") : End If : Else
  2371. If 主項目_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("請先選擇主項目!!") : Else : MsgBox("Please select the main item first!!") : End If : Else
  2372. 資料數 = (報價明細表_dgv.Rows.Count * 2) + BOM表明細_dgv.Rows.Count : 進度條視窗.Show()
  2373. 報價明細表存檔()
  2374. PA = 合約編號_tb.Text : PA2 = ITEM4_cb.Text : PA3 = 主項目_tb.Text : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = "" : PA10 = "" : PA11 = ""
  2375. PA12 = "" : PA14 = "" : PA15 = "" : PA16 = "" : BL = False : BL1 = False : BL2 = False : BL3 = False : BL4 = False : BL5 = False : BL6 = False
  2376. BL7 = False : BL8 = False : BL9 = True
  2377. 合約報價明細表_最後一筆資料()
  2378. If 選擇項1_tb.Text = "" Then : SQL_合約報價明細表_最後一筆排序()
  2379. If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "000" : End If : conn.Close()
  2380. NUM1 = Double.Parse(PA1) + 1
  2381. 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
  2382. Else : PA1 = 選擇項2_tb.Text & "-00" : End If : SQL_合約報價明細表_新增資料()
  2383. For i As Integer = 0 To BOM表明細_dgv.Rows.Count - 1
  2384. MyModule1.計算顯示2() : MyModule1.進度條1()
  2385. PA2 = BOM表明細_dgv.Rows(i).Cells("項次").Value.ToString : PA3 = BOM表明細_dgv.Rows(i).Cells("項目").Value.ToString
  2386. PA4 = BOM表明細_dgv.Rows(i).Cells("單位").Value.ToString : PA5 = BOM表明細_dgv.Rows(i).Cells("數量").Value.ToString : PA6 = "0" : PA7 = "0" : PA8 = ""
  2387. PA10 = BOM表明細_dgv.Rows(i).Cells("數量").Value.ToString : PA11 = "" : PA12 = "" : PA14 = "" : PA15 = BOM表明細_dgv.Rows(i).Cells("料號").Value.ToString
  2388. 合約報價明細表_最後一筆資料()
  2389. If 選擇項1_tb.Text = "" Then
  2390. SQL_合約報價明細表_最後一筆排序()
  2391. If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "000" : End If : conn.Close()
  2392. NUM1 = Double.Parse(PA1) + 1
  2393. 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
  2394. Else
  2395. If CInt(BOM表明細_dgv.Rows(i).Cells("項次").Value.ToString) < 10 Then
  2396. PA1 = 選擇項2_tb.Text & "-0" & BOM表明細_dgv.Rows(i).Cells("項次").Value.ToString
  2397. ElseIf CInt(BOM表明細_dgv.Rows(i).Cells("項次").Value.ToString) > 9 Then
  2398. PA1 = 選擇項2_tb.Text & "-" & BOM表明細_dgv.Rows(i).Cells("項次").Value.ToString
  2399. End If
  2400. End If : SQL_合約報價明細表_新增資料()
  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. End If
  2410. End If
  2411. End If
  2412. End Sub
  2413. Private Sub 選取資料新增到明細表_bt_Click(sender As Object, e As EventArgs) Handles 選取資料新增到明細表_bt.Click
  2414. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else
  2415. 資料數 = (報價明細表_dgv.Rows.Count * 2) + 報價明細表2_dgv.Rows.Count : 進度條視窗.Show()
  2416. 報價明細表存檔()
  2417. For i As Integer = 0 To 報價明細表2_dgv.Rows.Count - 1
  2418. MyModule1.計算顯示2() : MyModule1.進度條1()
  2419. If 報價明細表2_dgv.Rows(i).Cells("選擇").Value = True Then
  2420. PA = 合約編號_tb.Text : PA2 = 報價明細表2_dgv.Rows(i).Cells("ITEM").Value.ToString : PA3 = 報價明細表2_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString
  2421. PA4 = 報價明細表2_dgv.Rows(i).Cells("UNIT").Value.ToString : PA5 = 報價明細表2_dgv.Rows(i).Cells("QTY").Value.ToString : PA6 = "0" : PA7 = "0" : PA8 = ""
  2422. PA10 = 報價明細表2_dgv.Rows(i).Cells("QTY").Value.ToString : PA11 = "" : PA12 = "" : PA14 = "" : PA15 = 報價明細表2_dgv.Rows(i).Cells("料號").Value.ToString
  2423. PA16 = 報價明細表2_dgv.Rows(i).Cells("材料係數").Value.ToString : BL = 報價明細表2_dgv.Rows(i).Cells("不計").Value : BL1 = 報價明細表2_dgv.Rows(i).Cells("D1").Value
  2424. BL2 = 報價明細表2_dgv.Rows(i).Cells("D1").Value : BL3 = 報價明細表2_dgv.Rows(i).Cells("D1").Value : BL4 = 報價明細表2_dgv.Rows(i).Cells("D1").Value
  2425. BL5 = 報價明細表2_dgv.Rows(i).Cells("D1").Value : BL6 = 報價明細表2_dgv.Rows(i).Cells("D1").Value : BL7 = 報價明細表2_dgv.Rows(i).Cells("D1").Value
  2426. BL8 = 報價明細表2_dgv.Rows(i).Cells("D1").Value : BL9 = 報價明細表2_dgv.Rows(i).Cells("預設").Value
  2427. 合約報價明細表_最後一筆資料()
  2428. If 選擇項1_tb.Text = "" Then
  2429. SQL_合約報價明細表_最後一筆排序()
  2430. If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "00" : End If : conn.Close()
  2431. NUM1 = Double.Parse(PA1) + 1
  2432. 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
  2433. Else : PA1 = 選擇項2_tb.Text & "-" & i + 1 : End If
  2434. SQL_合約報價明細表_新增資料()
  2435. End If
  2436. Next : Set_合約報價明細表()
  2437. For I As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  2438. MyModule1.計算顯示2() : MyModule1.進度條1()
  2439. If I < 10 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "000" & I
  2440. ElseIf I > 9 And I < 100 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "0" & I
  2441. ElseIf I > 99 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = I
  2442. End If
  2443. Next : 報價明細表存檔() : MyModule1.計算顯示3()
  2444. 全部取消_bt.PerformClick()
  2445. End If
  2446. End Sub
  2447. Private Sub 明細表新增資料()
  2448. 合約報價明細表_最後一筆資料()
  2449. If 選擇項1_tb.Text = "" Then
  2450. SQL_合約報價明細表_最後一筆排序()
  2451. If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "00" : End If : conn.Close()
  2452. NUM1 = Double.Parse(PA1) + 1
  2453. 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
  2454. Else : PA1 = 選擇項2_tb.Text & "-1" : End If
  2455. SQL_合約報價明細表_新增資料()
  2456. If 複製報價 = False Then
  2457. Set_合約報價明細表()
  2458. For I As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  2459. MyModule1.計算顯示2() : MyModule1.進度條1()
  2460. If I < 10 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "00" & I
  2461. ElseIf I > 9 And I < 100 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "0" & I
  2462. ElseIf I > 99 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = I
  2463. End If
  2464. Next : 報價明細表存檔()
  2465. End If
  2466. End Sub
  2467. Private Sub 修改明細表上的材料指定_bt_Click(sender As Object, e As EventArgs) Handles 修改明細表上的材料指定_bt.Click
  2468. If 明細表流水_tb.Text = "" Then
  2469. If 系統語言 = "繁體中文" Then : MsgBox("請先選擇要修改的資料是哪一筆!!") : Else : MsgBox("Please select which data you want to modify first!!") : End If : Else
  2470. If 料號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇物料!!") : Else : MsgBox("No material selected!!") : End If : Else
  2471. 資料數 = 報價明細表_dgv.Rows.Count : 進度條視窗.Show()
  2472. 報價明細表存檔() : PA = 合約編號_tb.Text : PA9 = 明細表流水_tb.Text : PA15 = 料號_tb.Text : PA2 = ITEM3_cb.Text : PA5 = 申請數_nud.Value : PA4 = 單位2_tb.Text
  2473. If 帶上歷史單價_ch.Checked = True Then : SQL2 = ", 材料成本單價 = N '" & 歷史單價_tb.Text & "' " : Else : SQL2 = "" : End If
  2474. SQL_合約報價明細表_存檔_料號() : Set_合約報價明細表() : MyModule1.計算顯示3()
  2475. End If
  2476. End If
  2477. End Sub
  2478. Private Sub 排序2_bt_Click(sender As Object, e As EventArgs) Handles 排序2_bt.Click
  2479. If 報價明細表_dgv.Rows.Count > 0 Then
  2480. If 報價明細表_dgv.Columns(0).Visible = False Then : 報價明細表_dgv.Columns(0).Visible = True : Else : 報價明細表_dgv.Columns(0).Visible = False : End If
  2481. End If : Set_合約報價明細表格式()
  2482. End Sub
  2483. '-----------------合約報價明細表表編輯功能-------------------------------------------------------------------------------------------------------------------------------
  2484. Private Sub 明細表編輯()
  2485. If 視窗3_pl.Visible = False Then
  2486. 視窗3_pl.Location = New System.Drawing.Point(123, 58) : 視窗3_pl.Visible = True
  2487. 目前選擇 = "讀取資料" : 座標1_lb.Text = 目前選擇
  2488. X_2_tb.Text = "" : Y_2_tb.Text = "" : NUD_04.Value = 0 : NUD_05.Value = 0 : NUD_06.Value = 0
  2489. 中文大寫2_ch.Checked = True : 中文小寫2_ch.Checked = False : 數字2_ch.Checked = False
  2490. ITEM2_cb.Items.Clear() : ITEM2_cb.Items.Add("") : ITEM2_cb.Items.Add("壹") : ITEM2_cb.Items.Add("貳") : ITEM2_cb.Items.Add("參") : ITEM2_cb.Items.Add("肆")
  2491. ITEM2_cb.Items.Add("伍") : ITEM2_cb.Items.Add("陸") : ITEM2_cb.Items.Add("柒") : ITEM2_cb.Items.Add("捌") : ITEM2_cb.Items.Add("玖") : ITEM2_cb.Items.Add("拾")
  2492. ITEM2_cb.Items.Add("拾壹") : ITEM2_cb.Items.Add("拾貳") : ITEM2_cb.Items.Add("拾參") : ITEM2_cb.Items.Add("拾肆") : ITEM2_cb.Items.Add("拾伍") : ITEM2_cb.Items.Add("拾陸")
  2493. ITEM2_cb.Items.Add("拾柒") : ITEM2_cb.Items.Add("拾捌") : ITEM2_cb.Items.Add("拾玖") : ITEM2_cb.Items.Add("貳拾")
  2494. Set_報價明細表_dgv_利潤表開啟() : 視窗3_pl.BringToFront()
  2495. Else : 視窗3_pl.Visible = False : End If
  2496. End Sub
  2497. Private Sub 中文大寫2_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中文大寫2_ch.Click
  2498. 中文大寫2_ch.Checked = True : 中文小寫2_ch.Checked = False : 數字2_ch.Checked = False
  2499. ITEM2_cb.Items.Clear() : ITEM2_cb.Items.Add("") : ITEM2_cb.Items.Add("壹") : ITEM2_cb.Items.Add("貳") : ITEM2_cb.Items.Add("參") : ITEM2_cb.Items.Add("肆")
  2500. ITEM2_cb.Items.Add("伍") : ITEM2_cb.Items.Add("陸") : ITEM2_cb.Items.Add("柒") : ITEM2_cb.Items.Add("捌") : ITEM2_cb.Items.Add("玖") : ITEM2_cb.Items.Add("拾")
  2501. ITEM2_cb.Items.Add("拾壹") : ITEM2_cb.Items.Add("拾貳") : ITEM2_cb.Items.Add("拾參") : ITEM2_cb.Items.Add("拾肆") : ITEM2_cb.Items.Add("拾伍") : ITEM2_cb.Items.Add("拾陸")
  2502. ITEM2_cb.Items.Add("拾柒") : ITEM2_cb.Items.Add("拾捌") : ITEM2_cb.Items.Add("拾玖") : ITEM2_cb.Items.Add("貳拾")
  2503. End Sub
  2504. Private Sub 中文小寫2_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中文小寫2_ch.Click
  2505. 中文大寫2_ch.Checked = False : 中文小寫2_ch.Checked = True : 數字2_ch.Checked = False
  2506. ITEM2_cb.Items.Clear() : ITEM2_cb.Items.Add("") : ITEM2_cb.Items.Add("一") : ITEM2_cb.Items.Add("二") : ITEM2_cb.Items.Add("三") : ITEM2_cb.Items.Add("四")
  2507. ITEM2_cb.Items.Add("五") : ITEM2_cb.Items.Add("六") : ITEM2_cb.Items.Add("七") : ITEM2_cb.Items.Add("八") : ITEM2_cb.Items.Add("九") : ITEM2_cb.Items.Add("十")
  2508. ITEM2_cb.Items.Add("十一") : ITEM2_cb.Items.Add("十二") : ITEM2_cb.Items.Add("十三") : ITEM2_cb.Items.Add("十四") : ITEM2_cb.Items.Add("十五") : ITEM2_cb.Items.Add("十六")
  2509. ITEM2_cb.Items.Add("十七") : ITEM2_cb.Items.Add("十八") : ITEM2_cb.Items.Add("十九") : ITEM2_cb.Items.Add("二十")
  2510. End Sub
  2511. Private Sub 數字2_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 數字2_ch.Click
  2512. 中文大寫2_ch.Checked = False : 中文小寫2_ch.Checked = False : 數字2_ch.Checked = True
  2513. ITEM2_cb.Items.Clear() : ITEM2_cb.Items.Add("") : For I As Integer = 1 To 30 : ITEM2_cb.Items.Add(I) : Next
  2514. End Sub
  2515. Private Sub 合計項1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合計項1_cb.SelectedIndexChanged
  2516. 內容1_tb.Text = 合計項1_cb.Text : ITEM2_cb.Text = "" : 單位1_tb.Text = "" : If 合計項1_cb.Text <> "" Then : ITEM2_cb.Text = "*" : Else : End If
  2517. End Sub
  2518. Private Sub 明細表編輯_bt_Click(sender As Object, e As EventArgs) Handles 明細表編輯_bt.Click
  2519. 明細表編輯() : 視窗2_pl.Visible = False
  2520. End Sub
  2521. Private Sub NUD_04_Click(sender As Object, e As EventArgs) Handles NUD_04.Click
  2522. 目前選擇 = "讀取資料" : 座標1_lb.Text = 目前選擇
  2523. End Sub
  2524. Private Sub NUD_05_Click(sender As Object, e As EventArgs) Handles NUD_05.Click
  2525. 目前選擇 = "讀取資料" : 座標1_lb.Text = 目前選擇
  2526. End Sub
  2527. Private Sub NUD_06_Click(sender As Object, e As EventArgs) Handles NUD_06.Click
  2528. 目前選擇 = "寫入資料" : 座標1_lb.Text = 目前選擇
  2529. End Sub
  2530. Private Sub 選擇1_lb_Click(sender As Object, e As EventArgs) Handles 選擇1_lb.Click
  2531. 目前選擇 = "寫入資料" : 座標1_lb.Text = 目前選擇
  2532. End Sub
  2533. Private Sub 文字資料輸入2_bt_Click(sender As Object, e As EventArgs) Handles 文字資料輸入2_bt.Click
  2534. If 選擇項1_tb.Text = "" Then
  2535. If 系統語言 = "繁體中文" Then : MsgBox("請先點選要輸入在明細表的哪一行!!") : Else : MsgBox("Please click on which row you want to enter in the detail table first!!") : End If
  2536. Else
  2537. Dim ZX As Integer = 選擇項1_tb.Text
  2538. 報價明細表_dgv.Rows(ZX).Cells("ITEM").Value = ITEM2_cb.Text : 報價明細表_dgv.Rows(ZX).Cells("REMARKS").Value = 備註1_tb.Text
  2539. 報價明細表_dgv.Rows(ZX).Cells("DESCRIPTION").Value = 內容1_tb.Text : 報價明細表_dgv.Rows(ZX).Cells("UNIT").Value = 單位1_tb.Text : 報價明細表_dgv_自動計算()
  2540. End If
  2541. End Sub
  2542. Private Sub A1_bt_Click(sender As Object, e As EventArgs) Handles A1_bt.Click
  2543. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 1 : Else : 數值4_tb.Text = 1 : End If
  2544. End Sub
  2545. Private Sub A2_bt_Click(sender As Object, e As EventArgs) Handles A2_bt.Click
  2546. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 2 : Else : 數值4_tb.Text = 2 : End If
  2547. End Sub
  2548. Private Sub A3_bt_Click(sender As Object, e As EventArgs) Handles A3_bt.Click
  2549. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 3 : Else : 數值4_tb.Text = 3 : End If
  2550. End Sub
  2551. Private Sub A4_bt_Click(sender As Object, e As EventArgs) Handles A4_bt.Click
  2552. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 4 : Else : 數值4_tb.Text = 4 : End If
  2553. End Sub
  2554. Private Sub A5_bt_Click(sender As Object, e As EventArgs) Handles A5_bt.Click
  2555. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 5 : Else : 數值4_tb.Text = 5 : End If
  2556. End Sub
  2557. Private Sub A6_bt_Click(sender As Object, e As EventArgs) Handles A6_bt.Click
  2558. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 6 : Else : 數值4_tb.Text = 6 : End If
  2559. End Sub
  2560. Private Sub A7_bt_Click(sender As Object, e As EventArgs) Handles A7_bt.Click
  2561. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 7 : Else : 數值4_tb.Text = 7 : End If
  2562. End Sub
  2563. Private Sub A8_bt_Click(sender As Object, e As EventArgs) Handles A8_bt.Click
  2564. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 8 : Else : 數值4_tb.Text = 8 : End If
  2565. End Sub
  2566. Private Sub A9_bt_Click(sender As Object, e As EventArgs) Handles A9_bt.Click
  2567. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 9 : Else : 數值4_tb.Text = 9 : End If
  2568. End Sub
  2569. Private Sub A0_bt_Click(sender As Object, e As EventArgs) Handles A0_bt.Click
  2570. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 0 : Else : 數值4_tb.Text = 0 : End If
  2571. End Sub
  2572. Private Sub 小數點1_bt_Click(sender As Object, e As EventArgs) Handles 小數點1_bt.Click
  2573. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & "." : Else : 數值4_tb.Text = "0." : End If
  2574. End Sub
  2575. '----------------------------數字鍵盤---------------------------------------------------------------------------------------------------------------
  2576. Private Sub 倒退1_bt_Click(sender As Object, e As EventArgs) Handles 倒退1_bt.Click
  2577. Dim SS As Integer
  2578. If 數值4_tb.Text <> "" Then : 數值4_tb.Text = Int(Val(數值4_tb.Text) / 10)
  2579. ElseIf 數值4_tb.Text = "" And 數值3_tb.Text <> "" Then : SS = Len(數值3_tb.Text) : 數值3_tb.Text = Strings.Left(數值3_tb.Text, SS - 1)
  2580. Else : 數值4_tb.Text = "" : End If
  2581. End Sub
  2582. Private Sub 除1_bt_Click(sender As Object, e As EventArgs) Handles 除1_bt.Click
  2583. 等於1_bt.PerformClick()
  2584. If 數值4_tb.Text <> "" And 數值3_tb.Text = "" Then : 數值3_tb.Text = 數值4_tb.Text : 數值4_tb.Text = "" : End If
  2585. 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
  2586. 計算式1_tb.Text = "/"
  2587. End Sub
  2588. Private Sub 乘1_bt_Click(sender As Object, e As EventArgs) Handles 乘1_bt.Click
  2589. 等於1_bt.PerformClick()
  2590. If 數值4_tb.Text <> "" And 數值3_tb.Text = "" Then : 數值3_tb.Text = 數值4_tb.Text : 數值4_tb.Text = "" : End If
  2591. 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
  2592. 計算式1_tb.Text = "X"
  2593. End Sub
  2594. Private Sub 加1_bt_Click(sender As Object, e As EventArgs) Handles 加1_bt.Click
  2595. 等於1_bt.PerformClick()
  2596. If 數值4_tb.Text <> "" And 數值3_tb.Text = "" Then : 數值3_tb.Text = 數值4_tb.Text : 數值4_tb.Text = "" : End If
  2597. 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
  2598. 計算式1_tb.Text = "+"
  2599. End Sub
  2600. Private Sub 減1_bt_Click(sender As Object, e As EventArgs) Handles 減1_bt.Click
  2601. 等於1_bt.PerformClick()
  2602. If 數值4_tb.Text <> "" And 數值3_tb.Text = "" Then : 數值3_tb.Text = 數值4_tb.Text : 數值4_tb.Text = "" : End If
  2603. 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
  2604. 計算式1_tb.Text = "-"
  2605. End Sub
  2606. Private Sub 清除1_bt_Click(sender As Object, e As EventArgs) Handles 清除1_bt.Click
  2607. 數值4_tb.Text = "" : 數值3_tb.Text = "" : 計算式1_tb.Text = "" : 結果1_tb.Text = ""
  2608. End Sub
  2609. Private Sub 數值3_tb_TextChanged(sender As Object, e As EventArgs) Handles 數值3_tb.TextChanged
  2610. 結果1_tb.Text = 數值3_tb.Text : If 數值3_tb.Text <> "" Then : NUD_04.Value = 數值3_tb.Text : Else : NUD_04.Value = 0 : End If
  2611. If Val(數值3_tb.Text) > 9.99973000350998E+85 Then
  2612. If 系統語言 = "繁體中文" Then : MsgBox("EFFORT錯誤!結果過大, 請重新點擊AC來重新啟動!!")
  2613. Else : MsgBox("EFFORT error! The result is too large, please re-click AC to restart!!") : End If
  2614. End If
  2615. End Sub
  2616. Private Sub 計算式1_tb_TextChanged(sender As Object, e As EventArgs) Handles 計算式1_tb.TextChanged
  2617. 計算2_ch.Text = 計算式1_tb.Text
  2618. End Sub
  2619. Private Sub 數值4_tb_TextChanged(sender As Object, e As EventArgs) Handles 數值4_tb.TextChanged
  2620. If 數值4_tb.Text <> "" Then : NUD_05.Value = 數值4_tb.Text : Else : NUD_05.Value = 0 : End If
  2621. End Sub
  2622. Private Sub 結果1_tb_TextChanged(sender As Object, e As EventArgs) Handles 結果1_tb.TextChanged
  2623. 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
  2624. End Sub
  2625. Private Sub 等於1_bt_Click(sender As Object, e As EventArgs) Handles 等於1_bt.Click
  2626. If 數值4_tb.Text <> "" And 數值3_tb.Text <> "" Then
  2627. If 計算式1_tb.Text = "X" Then : 數值3_tb.Text = Val(數值4_tb.Text) * Val(數值3_tb.Text) : 數值4_tb.Text = "" : End If
  2628. If 計算式1_tb.Text = "/" Then : 數值3_tb.Text = Val(數值3_tb.Text) / Val(數值4_tb.Text) : 數值4_tb.Text = "" : End If
  2629. If 計算式1_tb.Text = "+" Then : 數值3_tb.Text = Val(數值4_tb.Text) + Val(數值3_tb.Text) : 數值4_tb.Text = "" : End If
  2630. If 計算式1_tb.Text = "-" Then : 數值3_tb.Text = Val(數值3_tb.Text) - Val(數值4_tb.Text) : 數值4_tb.Text = "" : End If
  2631. ElseIf 數值4_tb.Text <> "" And 數值3_tb.Text = "" Then
  2632. 結果1_tb.Text = 數值4_tb.Text
  2633. Else : End If
  2634. End Sub
  2635. '-----------------合約係數功能-------------------------------------------------------------------------------------------------------------------------------
  2636. Private Sub 係數範本_tb_Click(sender As Object, e As EventArgs) Handles 係數範本_tb.Click
  2637. If 合約_lb.Text = "合約" Then : PA = "" : Set_合約報價係數() : 合約_lb.Text = "範本" : Else
  2638. If 合約編號_tb.Text = "" Then
  2639. If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If
  2640. Else : PA = 合約編號_tb.Text : Set_合約報價係數() : 合約_lb.Text = "合約"
  2641. End If
  2642. End If
  2643. End Sub
  2644. Private Sub 係數項目刪除_bt_Click(sender As Object, e As EventArgs) Handles 係數項目刪除_bt.Click
  2645. If 係數流水號_tb.Text = "" Or 係數合約號_tb.Text = "" Then
  2646. If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇係數項目!!") : Else : MsgBox("No coefficient item selected!!") : End If : Else
  2647. Dim SS As String
  2648. If 系統語言 = "繁體中文" Then : SS = "是否要刪除這筆資料?" : Else : SS = "Do you want to delete this data?" : End If
  2649. Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel) '對話框(3)
  2650. If aa = MsgBoxResult.Ok Then
  2651. PA = 係數合約號_tb.Text : PA1 = 係數流水號_tb.Text
  2652. SQL_合約報價係數刪除() : If 系統語言 = "繁體中文" Then : MsgBox("刪除完成!!") : Else : MsgBox("Delete complete!!") : End If : Set_合約報價係數()
  2653. 合約_lb.Text = "合約" : 係數合約號_tb.Text = "" : 係數流水號_tb.Text = "" : 係數項目_cb.Text = "" : 係數_nup.Value = 0 : 係數單位_cb.Text = ""
  2654. End If
  2655. End If
  2656. End Sub
  2657. Private Sub 係數項目修改_bt_Click(sender As Object, e As EventArgs) Handles 係數項目修改_bt.Click
  2658. If 係數流水號_tb.Text = "" Or 係數合約號_tb.Text = "" Then
  2659. If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇係數項目!!") : Else : MsgBox("No coefficient item selected!!") : End If : Else
  2660. PA = 係數合約號_tb.Text : PA1 = 係數流水號_tb.Text : SQL_合約報價係數修改()
  2661. If 系統語言 = "繁體中文" Then : MsgBox("修改完成!!") : Else : MsgBox("Modification complete!!") : End If : Set_合約報價係數() : 合約_lb.Text = "合約"
  2662. 係數合約號_tb.Text = "" : 係數流水號_tb.Text = "" : 係數項目_cb.Text = "" : 係數_nup.Value = 0 : 係數單位_cb.Text = ""
  2663. End If
  2664. End Sub
  2665. Private Sub 係數流水號()
  2666. SQL_合約報價係數_最後一筆資料()
  2667. If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("流水號").ToString, 9)) : Else : EDR = 0 : End If
  2668. conn.Close() : EDR += 1
  2669. If EDR < 10 Then : ESTR = "CF" & "00000000" & EDR : ElseIf EDR > 9 And EDR < 100 Then : ESTR = "CF" & "0000000" & EDR
  2670. ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "CF" & "000000" & EDR : ElseIf EDR > 999 And EDR < 10000 Then : ESTR = "CF" & "00000" & EDR
  2671. ElseIf EDR > 9999 And EDR < 100000 Then : ESTR = "CF" & "0000" & EDR : ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "CF" & "000" & EDR
  2672. ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "CF" & "00" & EDR : ElseIf EDR > 9999999 And EDR < 10000000 Then : ESTR = "CF" & "0" & EDR
  2673. ElseIf EDR > 99999999 Then : ESTR = "CF" & EDR : End If
  2674. PA1 = ESTR
  2675. End Sub
  2676. Private Sub 係數項目新增_bt_Click(sender As Object, e As EventArgs) Handles 係數項目新增_bt.Click
  2677. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else
  2678. If 係數項目_cb.Text = "" Or 係數單位_cb.Text = "" Then
  2679. If 系統語言 = "繁體中文" Then : MsgBox("沒有填寫新增項目或單位!!") : Else : MsgBox("No new items or units are filled in!!") : End If
  2680. Else
  2681. PA = 合約編號_tb.Text : PA2 = 係數項目_cb.Text : PA3 = 係數_nup.Value : PA4 = 係數單位_cb.Text : SQL_合約報價係數資料不重複()
  2682. If dr.Read Then : If 系統語言 = "繁體中文" Then : MsgBox("該係數項目已經存在!!") : Else : MsgBox("The coefficient item already exists!!") : End If : Else
  2683. 係數流水號() : SQL_合約報價係數_新增() : If 系統語言 = "繁體中文" Then : MsgBox("新增完成!!") : Else : MsgBox("Added complete!!") : End If
  2684. Set_合約報價係數() : 合約_lb.Text = "合約" : 係數合約號_tb.Text = "" : 係數流水號_tb.Text = "" : 係數項目_cb.Text = "" : 係數_nup.Value = 0 : 係數單位_cb.Text = ""
  2685. End If
  2686. End If
  2687. End If
  2688. End Sub
  2689. Private Sub 複製係數範本_tb_Click(sender As Object, e As EventArgs) Handles 複製係數範本_tb.Click
  2690. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else
  2691. 係數範本_tb.PerformClick() : PA = 合約編號_tb.Text
  2692. For i As Integer = 0 To 報價係數_dgv.Rows.Count - 1
  2693. PA2 = 報價係數_dgv("項目", i).Value.ToString : PA3 = 報價係數_dgv("係數", i).Value.ToString : PA4 = 報價係數_dgv("單位", i).Value.ToString
  2694. SQL_合約報價係數資料不重複() : If dr.Read Then : Else : 係數流水號() : SQL_合約報價係數_新增() : End If
  2695. Next : If 系統語言 = "繁體中文" Then : MsgBox("新增完成!!") : Else : MsgBox("Added complete!!") : End If : Set_合約報價係數() : 合約_lb.Text = "合約"
  2696. End If
  2697. End Sub
  2698. '-----------------合約試算表功能-------------------------------------------------------------------------------------------------------------------------------
  2699. Private Sub 試算表_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 試算表_cb.SelectedIndexChanged
  2700. PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA3 = 試算表_cb.Text : SQL_合約試算分表重複查詢()
  2701. If dr.Read() Then : 係數_nud.Value = dr("係數") : 表號_tb.Text = dr("表號").ToString : End If : 合約試算控制下拉清單()
  2702. End Sub
  2703. Private Sub 樓層_迴路_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 樓層_迴路_cb.SelectedIndexChanged
  2704. PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA4 = 樓層_迴路_cb.Text : SQL_合約試算控制表重複查詢() : If dr.Read() Then : 表頭_tb.Text = dr("表頭") : End If
  2705. End Sub
  2706. Private Sub 表號_tb_TextChanged(sender As Object, e As EventArgs) Handles 表號_tb.TextChanged
  2707. PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : Set_合約試算控制表_查詢()
  2708. End Sub
  2709. Private Sub 新增試算表_bt_Click(sender As Object, e As EventArgs) Handles 新增試算表_bt.Click
  2710. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else
  2711. PA = 合約編號_tb.Text : PA3 = 試算表_cb.Text : SQL_合約試算分表重複查詢()
  2712. If dr.Read() Then : If 系統語言 = "繁體中文" Then : MsgBox("[試算表]名稱重複,請重新輸入!!") : Else : MsgBox("[Spreadsheet] Duplicate name, please re-enter!!") : End If : Else
  2713. '------生成表號---------------------------------------------------------------------------------------
  2714. Dim 表號 As String : PA = 合約編號_tb.Text
  2715. conn.Close() : SQL_合約試算分表_最後一筆資料()
  2716. If dr.Read() Then : 表號 = dr("表號").ToString : Else : 表號 = "B00" : End If : conn.Close()
  2717. Dim NUM1 As Integer
  2718. NUM1 = Double.Parse(Strings.Right(表號, 2)) + 1
  2719. If NUM1 < 10 Then : 表號 = "B" & "0" & NUM1
  2720. ElseIf NUM1 > 9 And NUM1 < 100 Then : 表號 = "B" & NUM1 : End If
  2721. '------新增試算表---------------------------------------------------------------------------------------
  2722. 表號_tb.Text = 表號 : PA1 = 試算表_cb.Text : PA2 = 表號_tb.Text : SQL_合約試算分表_新增()
  2723. '------重新載入下拉清單---------------------------------------------------------------------------------------
  2724. 合約試算分下拉清單() : If 系統語言 = "繁體中文" Then : MsgBox("新增完成!!") : Else : MsgBox("Added complete!!") : End If
  2725. End If : conn.Close()
  2726. End If
  2727. End Sub
  2728. Private Sub 修改試算表名稱_bt_Click(sender As Object, e As EventArgs) Handles 修改試算表名稱_bt.Click
  2729. PA = 合約編號_tb.Text : PA3 = 試算表_cb.Text : SQL_合約試算分表重複查詢()
  2730. If dr.Read() Then : If 系統語言 = "繁體中文" Then : MsgBox("[試算表]名稱重複,請重新輸入!!") : Else : MsgBox("[Spreadsheet] Duplicate name, please re-enter!!") : End If : Else
  2731. PA = 合約編號_tb.Text : PA1 = 試算表_cb.Text : PA2 = 表號_tb.Text : SQL_合約試算分表_試算表修改()
  2732. '------重新載入下拉清單---------------------------------------------------------------------------------------
  2733. 合約試算分下拉清單() : If 系統語言 = "繁體中文" Then : MsgBox("修改完成!!") : Else : MsgBox("Modification complete!!") : End If
  2734. End If : conn.Close()
  2735. End Sub
  2736. Private Sub 新增物件_bt_Click(sender As Object, e As EventArgs) Handles 新增物件_bt.Click
  2737. If 試算控制表_dgv.Rows.Count = 40 Then
  2738. If 系統語言 = "繁體中文" Then : MsgBox("單一試算表內最多只能建立40個[樓層/迴路]!!") : Else : MsgBox("Only a maximum of 40 [floors/circuits] can be created in a single spreadsheet!!") : End If : Else
  2739. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else
  2740. PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA4 = 樓層_迴路_cb.Text : SQL_合約試算控制表重複查詢()
  2741. If dr.Read() Then
  2742. If 系統語言 = "繁體中文" Then : MsgBox("[樓層/迴路]名稱重複,請重新輸入!!") : Else : MsgBox("[Floor/Circuit] Duplicate name, please re-enter!!") : End If : Else
  2743. '------生成表號---------------------------------------------------------------------------------------
  2744. Dim 表頭 As String : PA = 合約編號_tb.Text : PA2 = 表號_tb.Text
  2745. conn.Close() : SQL_合約試算控制表_最後一筆資料()
  2746. If dr.Read() Then : 表頭 = dr("表頭").ToString : Else : 表頭 = "A00" : End If : conn.Close()
  2747. Dim NUM1 As Integer
  2748. NUM1 = Double.Parse(Strings.Right(表頭, 2)) + 1
  2749. If NUM1 < 10 Then : 表頭 = "A" & "0" & NUM1
  2750. ElseIf NUM1 > 9 And NUM1 < 100 Then : 表頭 = "A" & NUM1 : End If
  2751. '------新增試算表---------------------------------------------------------------------------------------
  2752. 表頭_tb.Text = 表頭 : PA4 = 樓層_迴路_cb.Text : PA2 = 表號_tb.Text : PA5 = 表頭_tb.Text : SQL_合約試算控制表_新增()
  2753. '------重新載入下拉清單---------------------------------------------------------------------------------------
  2754. 合約試算控制下拉清單() : Set_合約試算控制表_查詢() : If 系統語言 = "繁體中文" Then : MsgBox("新增完成!!") : Else : MsgBox("Added complete!!") : End If
  2755. End If : conn.Close()
  2756. End If
  2757. End If
  2758. End Sub
  2759. Private Sub 修改樓層_迴圈_bt_Click(sender As Object, e As EventArgs) Handles 修改樓層_迴圈_bt.Click
  2760. PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA4 = 樓層_迴路_cb.Text : SQL_合約試算控制表重複查詢()
  2761. If dr.Read() Then
  2762. If 系統語言 = "繁體中文" Then : MsgBox("[樓層/迴路]名稱重複,請重新輸入!!") : Else : MsgBox("[Floor/Circuit] Duplicate name, please re-enter!!") : End If : Else
  2763. PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA4 = 樓層_迴路_cb.Text : PA5 = 表頭_tb.Text : SQL_合約試算控制表_樓層迴路修改()
  2764. '------重新載入下拉清單---------------------------------------------------------------------------------------
  2765. 合約試算控制下拉清單() : Set_合約試算控制表_查詢() : If 系統語言 = "繁體中文" Then : MsgBox("修改完成!!") : Else : MsgBox("Modification complete!!") : End If
  2766. End If : conn.Close()
  2767. End Sub
  2768. Private Sub 材料加入1_bt_Click(sender As Object, e As EventArgs) Handles 材料加入1_bt.Click
  2769. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else
  2770. If 樓層_迴路_cb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("[樓層/迴路]沒有選擇!!") : Else : MsgBox("[Floor/Circuit] No choice!!") : End If : Else
  2771. If 料號1_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇物料!!") : Else : MsgBox("No material selected!!") : End If : Else
  2772. 存檔() : PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA6 = 料號1_tb.Text : SQL_合約試算明細表重複查詢()
  2773. If dr.Read() Then
  2774. If 系統語言 = "繁體中文" Then : MsgBox("要加入試算表的物料重複,請重新輸入!!")
  2775. Else : MsgBox("To add material duplicates to the trial balance, please re-enter!!") : End If
  2776. Else : conn.Close() : SQL_合約試算明細表_新增物料() : Set_試算明細表() : End If : conn.Close()
  2777. End If
  2778. End If
  2779. End If
  2780. End Sub
  2781. Private Sub 直接輸入_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 直接輸入_ch.Click
  2782. 直接輸入_ch.Checked = True : 使用計算機_ch.Checked = False
  2783. If 直接輸入_ch.Checked = False And 使用計算機_ch.Checked = True Then : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnF2
  2784. Else : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnEnter : End If
  2785. End Sub
  2786. Private Sub 使用計算機_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 使用計算機_ch.Click
  2787. 直接輸入_ch.Checked = False : 使用計算機_ch.Checked = True
  2788. If 直接輸入_ch.Checked = False And 使用計算機_ch.Checked = True Then : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnF2
  2789. Else : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnEnter : End If
  2790. End Sub
  2791. Private Sub 存檔()
  2792. If 合約編號_tb.Text = "" Or 表號_tb.Text = "" Then
  2793. If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If
  2794. Else
  2795. PA = 合約編號_tb.Text : PA1 = 表號_tb.Text
  2796. For i As Integer = 0 To 試算表_dgv.Rows.Count - 1
  2797. 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
  2798. 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
  2799. 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
  2800. 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
  2801. 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
  2802. 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
  2803. 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
  2804. 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
  2805. 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
  2806. 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
  2807. PA41 = 試算表_dgv.Rows(i).Cells(42).Value : BL1 = 試算表_dgv.Rows(i).Cells(43).Value : PA42 = 試算表_dgv.Rows(i).Cells(44).Value
  2808. SQL_合約試算明細表_修改()
  2809. Next i
  2810. End If
  2811. End Sub
  2812. Private Sub 存檔_bt_Click(sender As Object, e As EventArgs) Handles 存檔_bt.Click
  2813. 存檔() : If 系統語言 = "繁體中文" Then : MsgBox("存檔完成!!") : Else : MsgBox("Archive complete!!") : End If
  2814. End Sub
  2815. Private Sub 搜尋_bt_Click(sender As Object, e As EventArgs) Handles 搜尋_bt.Click
  2816. If 系統語言 = "繁體中文" Then : PA = InputBox("請輸入關鍵字!!") : Else : PA = InputBox("Please enter key words!!") : End If
  2817. '------對話框(2)-----------
  2818. If PA = "" Then : Else : Set_DGV1載入前設定() : SQL_建築物料請購單申請_物料清單三() : Set_DG1載入後設定() : 料號1_tb.Text = "" : End If
  2819. End Sub
  2820. Private Sub 刪除1_bt_Click(sender As Object, e As EventArgs) Handles 刪除1_bt.Click
  2821. Dim SS As String
  2822. If 系統語言 = "繁體中文" Then : SS = "是否要刪除這筆資料?" : Else : SS = "Do you want to delete this data?" : End If
  2823. Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel)
  2824. If aa = MsgBoxResult.Ok Then
  2825. PA = 合約編號_tb.Text : PA1 = 表號_tb.Text : PA43 = 料號1_tb.Text : PA2 = 表號_tb.Text : SQL_合約試算明細表_刪除()
  2826. If 系統語言 = "繁體中文" Then : MsgBox("刪除完成!!") : Else : MsgBox("Delete complete!!") : End If : Set_試算明細表()
  2827. End If
  2828. End Sub
  2829. '-----------------預估利潤存檔-------------------------------------------------------------------------------------------------------------------------------
  2830. Private Sub 預估利潤存檔()
  2831. If 預估利潤_tb.Text = "" Or 預估利潤_tb.Text = "0" Or 利潤比3_tb.Text = "0 %" Then : Else
  2832. If 預估工資總成本_tb.Text = "" Then : 預估工資總成本_tb.Text = "0" : End If : If 預估工資總報價_tb.Text = "" Then : 預估工資總報價_tb.Text = "0" : End If
  2833. If 利潤比1_tb.Text = "" Then : 利潤比1_tb.Text = "0 %" : End If : If 預估材料總成本_tb.Text = "" Then : 預估材料總成本_tb.Text = "0" : End If
  2834. If 預估材料總報價_tb.Text = "" Then : 預估材料總報價_tb.Text = "0" : End If : If 利潤比2_tb.Text = "" Then : 利潤比2_tb.Text = "0 %" : End If
  2835. If 總成本_tb.Text = "" Then : 總成本_tb.Text = "0" : End If : If 總報價_tb.Text = "" Then : 總報價_tb.Text = "0" : End If
  2836. If 利潤比3_tb.Text = "" Then : 利潤比3_tb.Text = "0 %" : End If : If 利潤比4_tb.Text = "" Then : 利潤比4_tb.Text = "0 %" : End If
  2837. If 預估利潤_tb.Text = "" Then : 預估利潤_tb.Text = "0" : End If
  2838. PA37 = 預估工資總成本_tb.Text : PA38 = 預估工資總報價_tb.Text : PA39 = Replace(Replace(利潤比1_tb.Text, " ", ""), "%", "")
  2839. PA40 = 預估材料總成本_tb.Text : PA41 = 預估材料總報價_tb.Text : PA42 = Replace(Replace(利潤比2_tb.Text, " ", ""), "%", "") : PA47 = 預估利潤_tb.Text
  2840. PA43 = 總成本_tb.Text : PA44 = 總報價_tb.Text : PA45 = Replace(Replace(利潤比3_tb.Text, " ", ""), "%", "") : PA46 = Replace(Replace(利潤比4_tb.Text, " ", ""), "%", "")
  2841. SQL_合約控制表預估利潤存檔()
  2842. End If
  2843. End Sub
  2844. '---------------------其他雜項功能--------------------------------------------------------------------------------------------------------------------------
  2845. Private Sub 彙總存檔_bt_Click(sender As Object, e As EventArgs) Handles 彙總存檔_bt.Click
  2846. PA = 合約編號_tb.Text : 預估利潤存檔() : If 系統語言 = "繁體中文" Then : MsgBox("存檔完成!!") : Else : MsgBox("Archive complete!!") : End If
  2847. End Sub
  2848. Private Sub 中文大寫3_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中文大寫3_ch.Click
  2849. 中文大寫3_ch.Checked = True : 中文小寫3_ch.Checked = False
  2850. ITEM4_cb.Items.Clear() : ITEM4_cb.Items.Add("") : ITEM4_cb.Items.Add("壹") : ITEM4_cb.Items.Add("貳") : ITEM4_cb.Items.Add("參") : ITEM4_cb.Items.Add("肆")
  2851. ITEM4_cb.Items.Add("伍") : ITEM4_cb.Items.Add("陸") : ITEM4_cb.Items.Add("柒") : ITEM4_cb.Items.Add("捌") : ITEM4_cb.Items.Add("玖") : ITEM4_cb.Items.Add("拾")
  2852. ITEM4_cb.Items.Add("拾壹") : ITEM4_cb.Items.Add("拾貳") : ITEM4_cb.Items.Add("拾參") : ITEM4_cb.Items.Add("拾肆") : ITEM4_cb.Items.Add("拾伍") : ITEM4_cb.Items.Add("拾陸")
  2853. ITEM4_cb.Items.Add("拾柒") : ITEM4_cb.Items.Add("拾捌") : ITEM4_cb.Items.Add("拾玖") : ITEM4_cb.Items.Add("貳拾")
  2854. End Sub
  2855. Private Sub 中文小寫3_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中文小寫3_ch.Click
  2856. 中文大寫3_ch.Checked = False : 中文小寫3_ch.Checked = True
  2857. ITEM4_cb.Items.Clear() : ITEM4_cb.Items.Add("") : ITEM4_cb.Items.Add("一") : ITEM4_cb.Items.Add("二") : ITEM4_cb.Items.Add("三") : ITEM4_cb.Items.Add("四")
  2858. ITEM4_cb.Items.Add("五") : ITEM4_cb.Items.Add("六") : ITEM4_cb.Items.Add("七") : ITEM4_cb.Items.Add("八") : ITEM4_cb.Items.Add("九") : ITEM4_cb.Items.Add("十")
  2859. ITEM4_cb.Items.Add("十一") : ITEM4_cb.Items.Add("十二") : ITEM4_cb.Items.Add("十三") : ITEM4_cb.Items.Add("十四") : ITEM4_cb.Items.Add("十五") : ITEM4_cb.Items.Add("十六")
  2860. ITEM4_cb.Items.Add("十七") : ITEM4_cb.Items.Add("十八") : ITEM4_cb.Items.Add("十九") : ITEM4_cb.Items.Add("二十")
  2861. End Sub
  2862. Private Sub 物料_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 物料_ch.Click
  2863. 物料_ch.Checked = True : BOM_ch.Checked = False : 合約_ch.Checked = False
  2864. 物料_p.Visible = True : BOM_p.Visible = False : 合約_p.Visible = False
  2865. End Sub
  2866. Private Sub BOM_ch_CheckedChanged(sender As Object, e As EventArgs) Handles BOM_ch.Click
  2867. 物料_ch.Checked = False : BOM_ch.Checked = True : 合約_ch.Checked = False
  2868. 物料_p.Visible = False : BOM_p.Visible = True : 合約_p.Visible = False
  2869. End Sub
  2870. Private Sub 合約_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 合約_ch.Click
  2871. 物料_ch.Checked = False : BOM_ch.Checked = False : 合約_ch.Checked = True
  2872. 物料_p.Visible = False : BOM_p.Visible = False : 合約_p.Visible = True
  2873. End Sub
  2874. Private Sub 合約編號1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合約編號1_cb.SelectedIndexChanged
  2875. 條件選擇 = 合約編號1_cb.Text : Set_合約清單()
  2876. End Sub
  2877. Private Sub 工程期1_ch_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 工程期1_ch.SelectedIndexChanged
  2878. 條件選擇 = 合約編號1_cb.Text : Set_合約清單()
  2879. End Sub
  2880. Private Sub 規格顯示修改_bt_Click(sender As Object, e As EventArgs) Handles 規格顯示修改_bt.Click
  2881. 利潤表_ch.Checked = False : Set_報價明細表_dgv_利潤表關閉()
  2882. If 報價明細表_dgv.Columns(43).Visible = False Then : For I As Integer = 43 To 50 : 報價明細表_dgv.Columns(I).Visible = True : Next
  2883. ElseIf 報價明細表_dgv.Columns(43).Visible = True Then : For I As Integer = 43 To 50 : 報價明細表_dgv.Columns(I).Visible = False : Next : End If
  2884. Set_合約報價明細表格式()
  2885. End Sub
  2886. Private Sub 合約編號清單_bt_Click(sender As Object, e As EventArgs) Handles 合約編號清單_bt.Click
  2887. If 合約_dgv.Rows.Count > 2999 Then
  2888. If 系統語言 = "繁體中文" Then : MsgBox("清單數量超過3000個,清通知系統管理員修改程式!!")
  2889. Else : MsgBox("The number of lists exceeds 3000, please notify the system administrator to modify the program!!") : End If : Else
  2890. For I As Integer = 0 To 3000 : PPBB(I) = "" : Next
  2891. For I As Integer = 0 To 合約_dgv.Rows.Count - 1 : PPBB(I) = 合約_dgv("合約編號", I).Value.ToString : NN1 = I : Next
  2892. 下拉清單_1.ShowDialog()
  2893. For I As Integer = 0 To 合約_dgv.Rows.Count - 1 : If PPAA = 合約_dgv("合約編號", I).Value.ToString Then : 選取位置 = I : Exit For : End If : Next : 合約讀取()
  2894. End If
  2895. End Sub
  2896. Private Sub 縮放_bt_Click_1(sender As Object, e As EventArgs) Handles 縮放_bt.Click
  2897. If 空間1.Visible = True Then
  2898. A3 = 空間2.Size.Width : B3 = 空間2.Size.Height
  2899. 空間1.Visible = False : 空間2.Location = New System.Drawing.Point(A1, B2) : 空間2.Size = New System.Drawing.Point((A2 - A1) + A3, B3)
  2900. Else
  2901. GCM_ERP_SYS.WindowState = 2 : 空間1.Visible = True : 空間2.Location = New System.Drawing.Point(A2, B2) : 空間2.Size = New System.Drawing.Point(A3, B3)
  2902. If 物料_ch.Checked = True Then : 物料_p.Visible = True : BOM_p.Visible = False : 合約_p.Visible = False
  2903. ElseIf BOM_ch.Checked = True Then : 物料_p.Visible = False : BOM_p.Visible = True : 合約_p.Visible = False
  2904. ElseIf 合約_ch.Checked = True Then : 物料_p.Visible = False : BOM_p.Visible = False : 合約_p.Visible = True : End If
  2905. End If
  2906. End Sub
  2907. Private Sub 新建_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 新建_ch.Click
  2908. 新建_ch.Checked = True : 改版_ch.Checked = False : 轉移_ch.Checked = False
  2909. 合約編號_n_cb.Text = "" : 合約編號1_n_tb.Text = "" : 合約編號2_n_tb.Text = "" : 合約編號3_n_tb.Text = ""
  2910. 合約編號_n_cb.Enabled = True : 合約編號1_n_tb.Enabled = True : 合約編號2_n_tb.Enabled = True
  2911. 新建_ch.ForeColor = Color.Red : 改版_ch.ForeColor = Color.Black : 轉移_ch.ForeColor = Color.Black
  2912. End Sub
  2913. Private Sub 改版_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 改版_ch.Click
  2914. 新建_ch.Checked = False : 改版_ch.Checked = True : 轉移_ch.Checked = False
  2915. 合約編號_o_cb.Text = 合約編號_cb.Text : 合約編號_n_cb.Text = 合約編號_cb.Text : 合約編號1_o_tb.Text = 合約編號1_tb.Text : 合約編號1_n_tb.Text = 合約編號1_tb.Text
  2916. 合約編號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 = ""
  2917. 合約編號_n_cb.Enabled = False : 合約編號1_n_tb.Enabled = False : 合約編號2_n_tb.Enabled = True
  2918. 新建_ch.ForeColor = Color.Black : 改版_ch.ForeColor = Color.Red : 轉移_ch.ForeColor = Color.Black
  2919. End Sub
  2920. Private Sub 轉移_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 轉移_ch.Click
  2921. 新建_ch.Checked = False : 改版_ch.Checked = False : 轉移_ch.Checked = True
  2922. 合約編號_o_cb.Text = 合約編號_cb.Text : 合約編號_n_cb.Text = 合約編號_cb.Text : 合約編號1_o_tb.Text = 合約編號1_tb.Text : 合約編號1_n_tb.Text = 合約編號1_tb.Text
  2923. 合約編號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 = ""
  2924. 合約編號_n_cb.Enabled = False : 合約編號1_n_tb.Enabled = False : 合約編號2_n_tb.Enabled = True
  2925. 新建_ch.ForeColor = Color.Black : 改版_ch.ForeColor = Color.Black : 轉移_ch.ForeColor = Color.Red
  2926. End Sub
  2927. Private Sub 啟用批量出貨_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 啟用批量選擇_ch.Click
  2928. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  2929. 報價明細表_dgv.Rows(i).Cells("S").Value = False : 報價明細表_dgv.Rows(i).DefaultCellStyle.ForeColor = Color.Black
  2930. Next
  2931. End Sub
  2932. Private Sub 查閱文件_bt_Click(sender As Object, e As EventArgs) Handles 查閱文件_bt.Click
  2933. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else
  2934. If 簽回檔 = False Then
  2935. If 系統語言 = "繁體中文" Then : MsgBox("該合約還沒有建立報價簽回文件!!") : Else : MsgBox("The contract has not created the quotation sign-back document!!") : End If : Else
  2936. PA1 = 合約編號_tb.Text : PA2 = "報價" : 文件查閱視窗.ShowDialog()
  2937. End If
  2938. End If
  2939. End Sub
  2940. Private Sub 詳細資料1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 詳細資料1_ch.Click
  2941. If 詳細資料1_ch.Checked = True Then : 詳細資料1_ch.Checked = True : Else : 詳細資料1_ch.Checked = False : End If : Set_BOM表明細()
  2942. End Sub
  2943. Private Sub 詳細資料_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 詳細資料_ch.Click
  2944. If 詳細資料_ch.Checked = True Then : 詳細資料_ch.Checked = True : Else : 詳細資料_ch.Checked = False : End If : Set_合約報價明細表1()
  2945. End Sub
  2946. Private Sub 詳細資料2_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 詳細資料2_ch.Click
  2947. If 詳細資料2_ch.Checked = True Then : 詳細資料2_ch.Checked = True : Else : 詳細資料2_ch.Checked = False : End If : Set_合約報價明細表()
  2948. End Sub
  2949. Private Sub 詳細資料3_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 詳細資料3_ch.Click
  2950. If 詳細資料3_ch.Checked = True Then : 詳細資料3_ch.Checked = True : Else : 詳細資料3_ch.Checked = False : End If : Set_試算明細表()
  2951. End Sub
  2952. Private Sub 縮放1_bt_Click(sender As Object, e As EventArgs) Handles 縮放1_bt.Click
  2953. If 合約_dgv.Visible = True Then
  2954. AA3 = 空間3.Size.Width : BB3 = 空間3.Size.Height : 合約_dgv.Visible = False
  2955. If 不再動作1 = False Then : 空間3.Location = New System.Drawing.Point(AA1, BB2) : 空間3.Size = New System.Drawing.Point((AA2 - AA1) + AA3, BB3) : End If
  2956. Else
  2957. 合約_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
  2958. End If
  2959. End Sub
  2960. Private Sub 縮放2_bt_Click(sender As Object, e As EventArgs) Handles 縮放2_bt.Click
  2961. Dim NX, NY As Integer : NX = 合約_dgv.Size.Width : NY = 合約_dgv.Size.Height
  2962. If 合約_dgv.Visible = False Then : 縮放1_bt.PerformClick() : End If
  2963. If 放大 = True Then
  2964. 合約_dgv.Size = New System.Drawing.Point(NX - 400, NY) : 放大 = False
  2965. 合約_dgv.Columns("工程名稱_中").Visible = False : 合約_dgv.Columns("審核通過").Visible = False : 合約_dgv.Columns("停止").Visible = False
  2966. Else
  2967. 合約_dgv.Size = New System.Drawing.Point(NX + 400, NY) : 放大 = True
  2968. 合約_dgv.Columns("工程名稱_中").Visible = True : 合約_dgv.Columns("審核通過").Visible = True : 合約_dgv.Columns("停止").Visible = True
  2969. End If
  2970. End Sub
  2971. Private Sub 發送_bt_Click(sender As Object, e As EventArgs) Handles 發送_bt.Click
  2972. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else
  2973. PA37 = 合約種類_cb.Text : PA36 = 合約種類_tb.Text : PA = 合約編號_tb.Text
  2974. PA36 = 客戶名稱_tb.Text : PA35 = 負責人_A_cb.Text : PA34 = 工程地點_tb.Text : PA33 = 客戶地址_tb.Text : PA32 = 工程名稱_中_tb.Text : PA31 = 工程名稱_英_tb.Text
  2975. PA30 = 選擇公司_cb.Text : PA29 = 負責人_B_cb.Text : PA28 = 我司地址_tb.Text : PA27 = NUD3.Value : PA26 = 工程款1_nud.Value : PA25 = 工程款2_nud.Value
  2976. PA24 = 工程款3_nud.Value : PA23 = 工程款4_nud.Value : PA22 = 工程款5_nud.Value : PA21 = 工期_nud.Value : PA20 = 逾期_bt.Text : PA19 = 最高扣款_bt.Text
  2977. PA18 = 逾期_英_bt.Text : PA17 = 最高扣款_英_bt.Text : PA16 = 減價_bt.Text : PA15 = 廠區_中文_tb.Text : PA14 = 頁數_bt.Text : PA12 = 合約種類_cb.Text
  2978. PA13 = Strings.Format(立約日期_dtp.Value, "yyyy/MM/dd") : PA44 = 合約編號2_tb.Text : PA45 = 合約編號3_tb.Text : PA46 = 合約編號1_tb.Text : PA47 = 工程期_ch.Text
  2979. BL1 = False : PA10 = 折讓比例_nud.Value : PA9 = 歸零位數_nud.Value : BL2 = 稅前歸零_ch.Checked : BL3 = 稅後歸零_ch.Checked
  2980. If 美金_ch.Checked = True Then : PA11 = "美金" : ElseIf 台幣_ch.Checked = True Then : PA11 = "台幣"
  2981. ElseIf 人民幣_ch.Checked = True Then : PA11 = "人民幣" : ElseIf 印尼盾_ch.Checked = True Then : PA11 = "印尼盾" : End If
  2982. 匯率() : PA48 = 匯率1 : SQL_合約修改1()
  2983. If 系統語言 = "繁體中文" Then : MsgBox("報價編輯完成,請通知主管放行!!") : Else
  2984. MsgBox("The quotation editing is completed, please notify the supervisor to release!!")
  2985. End If : 查詢_bt.PerformClick()
  2986. End If
  2987. End Sub
  2988. Private Sub 物料圖_pb_Click(sender As Object, e As EventArgs) Handles 物料圖_pb.Click
  2989. If IsNothing(物料圖_pb.Image) = False Then : 圖片傳遞 = 物料圖_pb.Image : 圖片放大視窗.ShowDialog() : End If
  2990. End Sub
  2991. Private Sub 物料圖1_pb_Click(sender As Object, e As EventArgs) Handles 物料圖1_pb.Click
  2992. If IsNothing(物料圖1_pb.Image) = False Then : 圖片傳遞 = 物料圖1_pb.Image : 圖片放大視窗.ShowDialog() : End If
  2993. End Sub
  2994. Private Sub 小間距_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 小間距_ch.Click
  2995. 小間距_ch.Checked = True : 中間距_ch.Checked = False : 中間距_ch.Checked = False : Set_清單1()
  2996. End Sub
  2997. Private Sub 中間距_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中間距_ch.Click
  2998. 小間距_ch.Checked = False : 中間距_ch.Checked = True : 中間距_ch.Checked = False : Set_清單1()
  2999. End Sub
  3000. Private Sub 大間距_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 大間距_ch.Click
  3001. 小間距_ch.Checked = False : 中間距_ch.Checked = False : 中間距_ch.Checked = True : Set_清單1()
  3002. End Sub
  3003. Private Sub 工資_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 工資_ch.Click
  3004. If 工資_ch.Checked = True Then : 工資_ch.Checked = True : Else : 工資_ch.Checked = False : End If
  3005. If 報價明細表_dgv.Columns(8).Visible = False Then : Set_報價明細表_dgv_利潤表關閉() : Else : Set_報價明細表_dgv_利潤表開啟() : End If : Set_合約報價明細表格式()
  3006. End Sub
  3007. Private Sub 材料_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 材料_ch.Click
  3008. If 材料_ch.Checked = True Then : 材料_ch.Checked = True : Else : 材料_ch.Checked = False : End If
  3009. If 報價明細表_dgv.Columns(8).Visible = False Then : Set_報價明細表_dgv_利潤表關閉() : Else : Set_報價明細表_dgv_利潤表開啟() : End If : Set_合約報價明細表格式()
  3010. End Sub
  3011. Private Sub 利潤表_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 利潤表_ch.Click
  3012. If 利潤表_ch.Checked = True Then : 利潤表_ch.Checked = True : Set_報價明細表_dgv_利潤表開啟() : Else : 利潤表_ch.Checked = False : Set_報價明細表_dgv_利潤表關閉() : End If
  3013. Set_合約報價明細表格式()
  3014. End Sub
  3015. Private Sub 合約改版_bt_Click(sender As Object, e As EventArgs) Handles 合約改版_bt.Click
  3016. If 合約編號_tb.Text = "" Then
  3017. If 系統語言 = "繁體中文" Then : MsgBox("請先選擇合約,才能進行改版複製!!") : Else : MsgBox("Please select the contract first before you can copy the revised version!!") : End If
  3018. Else
  3019. Dim SS1, SS2, SS3, SS4, SS5 As String
  3020. If 系統語言 = "繁體中文" Then
  3021. SS1 = "合約報價單改版後將發生下列變化,確認下列問題!!"
  3022. SS2 = "1、系統將依照舊版合約報價內容複製出新的合約報價。"
  3023. SS3 = "舊版合約報價將停用關閉,不在後續功能中顯示。"
  3024. SS4 = "3、請購、採購、入庫、出庫、工程等系統中與原編號"
  3025. SS5 = " 相連的資料都將歸檔到新的合約編號中。"
  3026. Else
  3027. SS1 = "The following changes will occur after the revision of the contract quotation, please confirm the following problems!!"
  3028. SS2 = "1. The system will copy the new contract quotation according to the content of the old contract quotation."
  3029. SS3 = "The old version of contract quotes will be disabled and will not be displayed in subsequent functions."
  3030. SS4 = "3. The data connected with the original number in the systems of requisition, procurement, storage, delivery, engineering and other systems will be archived in the new contract number."
  3031. SS5 = ""
  3032. End If
  3033. Dim aa As MsgBoxResult = MsgBox(SS1 & vbCrLf & SS2 & vbCrLf & SS3 & vbCrLf & SS4 & vbCrLf & SS5, MsgBoxStyle.OkCancel) '對話框(3)
  3034. If aa = MsgBoxResult.Ok Then
  3035. If 視窗4_pl.Visible = False Then
  3036. 新建_ch.Checked = False : 改版_ch.Checked = False : 轉移_ch.Checked = False
  3037. 合約編號_n_cb.Text = "" : 合約編號1_n_tb.Text = "" : 合約編號2_n_tb.Text = "" : 合約編號3_n_tb.Text = ""
  3038. 合約編號_n_cb.Enabled = False : 合約編號1_n_tb.Enabled = False : 合約編號2_n_tb.Enabled = False
  3039. 合約編號_o_cb.Text = 合約編號_cb.Text : 合約編號_n_cb.Text = 合約編號_cb.Text : 合約編號1_o_tb.Text = 合約編號1_tb.Text : 合約編號1_n_tb.Text = 合約編號1_tb.Text
  3040. 合約編號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 = ""
  3041. 新建_ch.ForeColor = Color.Black : 改版_ch.ForeColor = Color.Black : 轉移_ch.ForeColor = Color.Black
  3042. 視窗4_pl.Location = New System.Drawing.Point(520, 200) : 視窗4_pl.Visible = True : 視窗4_pl.BringToFront()
  3043. Else : 視窗4_pl.Visible = False : End If
  3044. End If
  3045. End If
  3046. End Sub
  3047. Private Sub 複製轉移_bt_Click(sender As Object, e As EventArgs) Handles 複製轉移_bt.Click
  3048. If 新建_ch.Checked = False And 改版_ch.Checked = False And 轉移_ch.Checked = False Then
  3049. If 系統語言 = "繁體中文" Then : MsgBox("請先選擇報價單複製的情況,才能往下運行!!")
  3050. Else : MsgBox("Please select the case of copying the quotation first, and then you can run down!!") : End If
  3051. 新建_ch.ForeColor = Color.Red : 改版_ch.ForeColor = Color.Red : 轉移_ch.ForeColor = Color.Red
  3052. Else
  3053. If 合約編號3_n_tb.Text = "" Then
  3054. If 系統語言 = "繁體中文" Then : MsgBox("請先填寫新合約的序號,才能往下運行!!")
  3055. Else : MsgBox("Please fill in the serial number of the new contract before you can proceed!!") : End If
  3056. Else
  3057. If 合約編號_n_cb.Text = "" Or 合約編號1_n_tb.Text = "" Or 合約編號2_n_tb.Text = "" Or 合約編號3_n_tb.Text = "" Then
  3058. If 系統語言 = "繁體中文" Then : MsgBox("合約號不完整!!") : Else : MsgBox("Did not choose our company!!") : End If
  3059. Else
  3060. Dim 合約編號條件 As Boolean = True
  3061. If 合約編號_n_cb.Text = "" Then
  3062. If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇我方公司!!") : Else : MsgBox("沒有選擇我方公司!!") : End If : 合約編號條件 = False : End If
  3063. If 合約編號1_n_tb.Text = "" Then
  3064. If 系統語言 = "繁體中文" Then : MsgBox("沒有甲方公司英文縮寫!!") : Else : MsgBox("There is no English abbreviation of Party A company!!") : End If : 合約編號條件 = False
  3065. Else
  3066. Dim d As Int32
  3067. For index = 0 To 合約編號1_n_tb.Text.Length - 1
  3068. d = Asc(合約編號1_n_tb.Text(index))
  3069. Dim 可能不行 As Boolean = False
  3070. If (d < 65 Or d > 90) Then : 可能不行 = True : End If 'c變數若在65~90是大寫的英文字母
  3071. If 可能不行 = True Then
  3072. If (d < 97 Or d > 122) Then : 可能不行 = True : Else : 可能不行 = False : End If 'c變數若在97~122是小寫的英文字母
  3073. If 可能不行 = True Then '然後查表, c變數若在48~57, 表示它是數字,
  3074. If (d < 48 Or d > 57) Then
  3075. If 系統語言 = "繁體中文" Then : MsgBox("甲方公司簡稱需要英文或是數字,不可以是中文或其他符號!!")
  3076. Else : MsgBox("Party A's company abbreviation needs to be in English or numbers, not Chinese or other symbols!!") : End If
  3077. 合約編號條件 = False : Exit For : End If
  3078. End If
  3079. End If
  3080. Next
  3081. End If
  3082. If 合約編號2_n_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有立約日期!!") : Else : MsgBox("There is no covenant date!!") : End If : 合約編號條件 = False
  3083. End If
  3084. Dim c As Int32 '然後查表, c變數若在48~57, 表示它是數字,
  3085. For index = 0 To 合約編號2_n_tb.Text.Length - 1
  3086. c = Asc(合約編號2_n_tb.Text(index))
  3087. If c < 48 Or c > 57 Then
  3088. If 系統語言 = "繁體中文" Then : MsgBox("立約日期只能是數字!!") : Else : MsgBox("Covenant date can only be a number!!") : End If
  3089. 合約編號條件 = False : Exit For : Else
  3090. If Len(合約編號2_n_tb.Text) <> 6 Then
  3091. If 系統語言 = "繁體中文" Then
  3092. MsgBox("立約日期的格式為YYMMDD (年兩位,月兩位,日兩位),數字規格不符!!")
  3093. Else
  3094. MsgBox("The format of the contract date is YYMMDD (two digits for the year, two digits for the month, and two digits for the day), and the numerical specifications do not match!!")
  3095. End If
  3096. 合約編號條件 = False : Exit For : End If
  3097. End If
  3098. Next
  3099. If 合約編號3_n_tb.Text = "" Then
  3100. If 系統語言 = "繁體中文" Then : MsgBox("沒有合約序號!!") : Else : MsgBox("No contract number!!") : End If : 合約編號條件 = False
  3101. ElseIf IsNumeric(合約編號3_n_tb.Text) = False Then
  3102. If 系統語言 = "繁體中文" Then : MsgBox("序號只能是數字!!") : Else : MsgBox("Serial numbers can only be numbers!!") : End If : 合約編號條件 = False
  3103. End If
  3104. If 合約編號條件 = False Then : Else
  3105. If 轉移_ch.Checked = True Then
  3106. '-----------這裡是以轉移為前提--------------------------------------------------------------------------------------------------------
  3107. PA = 合約編號_n_cb.Text & "-" & 合約編號1_n_tb.Text & " " & 合約編號2_n_tb.Text & "-" & 合約編號3_n_tb.Text : SQL_合約查詢()
  3108. If dr.Read() Then
  3109. If 系統語言 = "繁體中文" Then : MsgBox("系統內已有相同單號,無法直接進行合約號轉移!!")
  3110. Else : MsgBox("The same order number already exists in the system, and the contract number cannot be transferred directly!!") : End If : Else
  3111. PA17 = 合約編號_tb.Text : PA18 = 合約編號_n_cb.Text & "-" & 合約編號1_n_tb.Text & " " & 合約編號2_n_tb.Text & "-" & 合約編號3_n_tb.Text
  3112. PA19 = 合約編號1_n_tb.Text : PA20 = 合約編號2_n_tb.Text : PA21 = 合約編號3_n_tb.Text : PA22 = 合約編號_n_cb.Text
  3113. SQL_合約編號修改() : 視窗4_pl.Visible = False
  3114. If 系統語言 = "繁體中文" Then : MsgBox("合約複製與資料轉移完成!!") : Else : MsgBox("Contract copy and data transfer completed!!") : End If
  3115. Set_合約清單()
  3116. End If
  3117. Else
  3118. '-----------這裡是以新建為前提--------------------------------------------------------------------------------------------------------
  3119. PA = 合約編號_n_cb.Text & "-" & 合約編號1_n_tb.Text & " " & 合約編號2_n_tb.Text & "-" & 合約編號3_n_tb.Text : SQL_合約查詢()
  3120. If dr.Read() Then
  3121. If 系統語言 = "繁體中文" Then : MsgBox("系統內已有相同單號,無法用這個號碼生成新的合約!!")
  3122. Else : MsgBox("The same order number already exists in the system, and this number cannot be used to generate a new contract!!") : End If
  3123. Else
  3124. 資料數 = 報價總表_dgv.Rows.Count + 報價係數_dgv.Rows.Count + (報價明細表_dgv.Rows.Count * 2) + 報價總表_dgv.Rows.Count
  3125. 進度條視窗.Show()
  3126. PA1 = 合約編號_n_cb.Text & "-" & 合約編號1_n_tb.Text & " " & 合約編號2_n_tb.Text & "-" & 合約編號3_n_tb.Text
  3127. PA = 合約編號_tb.Text : PA2 = 合約編號_n_cb.Text : PA3 = 合約編號1_n_tb.Text : PA4 = 合約編號2_n_tb.Text : PA5 = 合約編號3_n_tb.Text
  3128. If 改版_ch.Checked = True Then
  3129. BL1 = True : SQL_合約停用() '-----原合約停用-------------
  3130. SQL_請購單改合約號() '-----請採購合約號變更-------
  3131. '暫無倉儲SQL掛合約號 '-----倉儲合約號變更---------
  3132. SQL_工程系統改合約號() '-----工程合約號變更---------
  3133. For i As Integer = 0 To 圖庫清單_dgv.Rows.Count - 1
  3134. 圖片庫 = 圖庫清單_dgv.Rows(i).Cells("資料庫").Value.ToString : SQL_圖庫系統改合約號() '-----圖庫合約號變更---------
  3135. Next
  3136. ElseIf 新建_ch.Checked = True Then
  3137. 'BL1 = True : SQL_合約停用()
  3138. End If
  3139. Dim 數量, 位置(20), 總表位置(20) As Integer : Dim 新編號, 舊編號, 連動(20) As String : 數量 = 0
  3140. 新編號 = PA1 : 舊編號 = PA
  3141. PA = 新編號 : 選擇項1_tb.Text = "" : 複製報價 = True
  3142. '-----取出舊總表連動位置--------------------------------------------------------------------
  3143. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  3144. MyModule1.計算顯示2() : MyModule1.進度條1()
  3145. If 報價總表_dgv.Rows(i).Cells("明細連動").Value.ToString() <> "" Then
  3146. 總表位置(數量) = i
  3147. For ii As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  3148. If 報價總表_dgv.Rows(i).Cells("明細連動").Value.ToString() = 報價明細表_dgv.Rows(ii).Cells("流水號").Value.ToString() Then
  3149. 位置(數量) = ii : Exit For
  3150. End If
  3151. Next : 數量 += 1
  3152. End If
  3153. Next
  3154. '-----生成新的報價係數----------------------------------------------------------------------
  3155. For i As Integer = 0 To 報價係數_dgv.Rows.Count - 1
  3156. MyModule1.計算顯示2() : MyModule1.進度條1()
  3157. PA2 = 報價係數_dgv("項目", i).Value.ToString : PA3 = 報價係數_dgv("係數", i).Value.ToString : PA4 = 報價係數_dgv("單位", i).Value.ToString
  3158. SQL_合約報價係數資料不重複() : If dr.Read Then : Else : 係數流水號() : SQL_合約報價係數_新增() : End If
  3159. Next : Set_合約報價係數() : 合約_lb.Text = "合約"
  3160. '-----生成新的合約明細----------------------------------------------------------------------
  3161. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  3162. MyModule1.計算顯示2() : MyModule1.進度條1()
  3163. PA2 = 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString() : PA3 = 報價明細表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString()
  3164. PA4 = 報價明細表_dgv.Rows(i).Cells("UNIT").Value.ToString() : PA5 = 報價明細表_dgv.Rows(i).Cells("QTY").Value.ToString()
  3165. PA6 = 報價明細表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString() : PA7 = 報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString()
  3166. PA8 = 報價明細表_dgv.Rows(i).Cells("REMARKS").Value.ToString()
  3167. PA10 = 報價明細表_dgv.Rows(i).Cells("實際數量").Value.ToString() : PA11 = 報價明細表_dgv.Rows(i).Cells("工資成本單價").Value.ToString()
  3168. PA12 = 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value.ToString() : PA13 = 報價明細表_dgv.Rows(i).Cells("材料成本單價").Value.ToString()
  3169. PA14 = 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value.ToString() : PA15 = 報價明細表_dgv.Rows(i).Cells("料號").Value.ToString()
  3170. PA16 = 報價明細表_dgv.Rows(i).Cells("材料係數").Value.ToString() : BL = 報價明細表_dgv.Rows(i).Cells("不計").Value
  3171. BL1 = 報價明細表_dgv.Rows(i).Cells("D1").Value : BL2 = 報價明細表_dgv.Rows(i).Cells("D2").Value : BL3 = 報價明細表_dgv.Rows(i).Cells("D3").Value
  3172. BL4 = 報價明細表_dgv.Rows(i).Cells("D4").Value : BL5 = 報價明細表_dgv.Rows(i).Cells("D5").Value : BL6 = 報價明細表_dgv.Rows(i).Cells("D6").Value
  3173. BL7 = 報價明細表_dgv.Rows(i).Cells("D7").Value : BL8 = 報價明細表_dgv.Rows(i).Cells("D8").Value : BL9 = 報價明細表_dgv.Rows(i).Cells("預設").Value
  3174. 明細表新增資料()
  3175. Next : 合約編號_tb.Text = 新編號 : Set_合約報價明細表()
  3176. '-----算出新明細連動編號--------------------------------------------------------------------
  3177. For i As Integer = 0 To 數量
  3178. For ii As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  3179. If ii = 位置(i) Then
  3180. 連動(i) = 報價明細表_dgv.Rows(ii).Cells("流水號").Value.ToString() : Exit For
  3181. End If
  3182. Next
  3183. Next
  3184. '-----生成新的合約總表----------------------------------------------------------------------
  3185. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  3186. MyModule1.計算顯示2() : MyModule1.進度條1() : PA = 合約編號_tb.Text
  3187. PA2 = 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString() : PA3 = 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString()
  3188. PA4 = 報價總表_dgv.Rows(i).Cells("UNIT").Value.ToString() : PA5 = 報價總表_dgv.Rows(i).Cells("QTY").Value.ToString()
  3189. PA6 = 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString() : PA7 = 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString()
  3190. PA8 = 報價總表_dgv.Rows(i).Cells("REMARKS").Value.ToString()
  3191. For ii As Integer = 0 To 數量
  3192. If 總表位置(ii) = i Then
  3193. 報價總表_dgv.Rows(i).Cells("明細連動").Value = 連動(ii) : PA10 = 連動(ii) : Exit For
  3194. Else
  3195. PA10 = ""
  3196. End If
  3197. Next
  3198. 合約報價總表_最後一筆資料()
  3199. SQL_合約報價總表_最後一筆排序()
  3200. If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "000" : End If : conn.Close() : NUM1 = Double.Parse(PA1) + 1
  3201. 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
  3202. SQL_合約報價總表_新增資料()
  3203. Next : Set_合約報價總表() : 報價總表_dgv_自動計算()
  3204. '-----生成新的合約控制----------------------------------------------------------------------
  3205. 合約_dgv.Enabled = False : 合約編號2_tb.Enabled = True : 合約編號3_tb.Enabled = True
  3206. If 新建_ch.Checked = True Then : 預設資料1() : End If
  3207. 合約編號_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
  3208. 存檔_tb.PerformClick() : 複製報價 = False
  3209. If 改版_ch.Checked = True Then
  3210. PA = 合約編號_o_cb.Text & "-" & 合約編號1_o_tb.Text & " " & 合約編號2_o_tb.Text & "-" & 合約編號3_o_tb.Text
  3211. SQL_合約控制表讀取()
  3212. If dr.Read Then
  3213. PA1 = dr("報價說明").ToString : PA11 = dr("驗收開始日期").ToString : PA12 = dr("驗收完成日期").ToString
  3214. PA14 = dr("驗收備註").ToString : PA16 = dr("保固地址").ToString : PA18 = dr("結案備註").ToString
  3215. PA19 = dr("工程主管").ToString : PA20 = dr("工地驗收備註").ToString : PA32 = dr("簽回檔圖庫").ToString
  3216. If dr("追加減").ToString = "" Then : PA2 = "0" : Else : PA2 = dr("追加減").ToString : End If
  3217. If dr("結算金額").ToString = "" Then : PA3 = "0" : Else : PA3 = dr("結算金額").ToString : End If
  3218. If dr("已請款").ToString = "" Then : PA4 = "0" : Else : PA4 = dr("已請款").ToString : End If
  3219. If dr("剩餘款").ToString = "" Then : PA5 = "0" : Else : PA5 = dr("剩餘款").ToString : End If
  3220. If dr("預付款").ToString = "" Then : PA6 = "0" : Else : PA6 = dr("預付款").ToString : End If
  3221. If dr("到貨款").ToString = "" Then : PA7 = "0" : Else : PA7 = dr("到貨款").ToString : End If
  3222. If dr("施工款").ToString = "" Then : PA8 = "0" : Else : PA8 = dr("施工款").ToString : End If
  3223. If dr("驗收款").ToString = "" Then : PA9 = "0" : Else : PA9 = dr("驗收款").ToString : End If
  3224. If dr("保留款").ToString = "" Then : PA10 = "0" : Else : PA10 = dr("保留款").ToString : End If
  3225. If dr("保固期限").ToString = "" Then : PA15 = "0" : Else : PA15 = dr("保固期限").ToString : End If
  3226. If dr("預估工資成本").ToString = "" Then : PA21 = "0" : Else : PA21 = dr("預估工資成本").ToString : End If
  3227. If dr("預估工資報價").ToString = "" Then : PA22 = "0" : Else : PA22 = dr("預估工資報價").ToString : End If
  3228. If dr("工資利潤比").ToString = "" Then : PA23 = "0" : Else : PA23 = dr("工資利潤比").ToString : End If
  3229. If dr("預估材料成本").ToString = "" Then : PA24 = "0" : Else : PA24 = dr("預估材料成本").ToString : End If
  3230. If dr("預估材料報價").ToString = "" Then : PA25 = "0" : Else : PA25 = dr("預估材料報價").ToString : End If
  3231. If dr("材料利潤比").ToString = "" Then : PA26 = "0" : Else : PA26 = dr("材料利潤比").ToString : End If
  3232. If dr("總成本").ToString = "" Then : PA27 = "0" : Else : PA27 = dr("總成本").ToString : End If
  3233. If dr("總報價").ToString = "" Then : PA28 = "0" : Else : PA28 = dr("總報價").ToString : End If
  3234. If dr("利潤比1").ToString = "" Then : PA29 = "0" : Else : PA29 = dr("利潤比1").ToString : End If
  3235. If dr("利潤比2").ToString = "" Then : PA30 = "0" : Else : PA30 = dr("利潤比2").ToString : End If
  3236. If dr("預估利潤").ToString = "" Then : PA31 = "0" : Else : PA31 = dr("預估利潤").ToString : End If
  3237. If IsDBNull(dr("驗收結果")) = True Then : PA13 = "False" : Else : PA13 = dr("驗收結果") : End If
  3238. If IsDBNull(dr("合約停止")) = True Then : PA17 = "False" : Else : PA17 = dr("合約停止") : End If
  3239. If IsDBNull(dr("報價簽回")) = True Then : PA33 = "False" : Else : PA33 = dr("報價簽回") : End If
  3240. If IsDBNull(dr("合約簽回")) = True Then : PA34 = "False" : Else : PA34 = dr("合約簽回") : End If
  3241. If IsDBNull(dr("請款簽回")) = True Then : PA35 = "False" : Else : PA35 = dr("請款簽回") : End If
  3242. If IsDBNull(dr("驗收簽回")) = True Then : PA36 = "False" : Else : PA36 = dr("驗收簽回") : End If
  3243. If IsDBNull(dr("保固簽回")) = True Then : PA37 = "False" : Else : PA37 = dr("保固簽回") : End If
  3244. If IsDBNull(dr("報價放行")) = True Then : PA38 = "False" : Else : PA38 = dr("報價放行") : End If
  3245. If IsDBNull(dr("其他文件")) = True Then : PA39 = "False" : Else : PA39 = dr("其他文件") : End If
  3246. End If
  3247. PA = 合約編號_n_cb.Text & "-" & 合約編號1_n_tb.Text & " " & 合約編號2_n_tb.Text & "-" & 合約編號3_n_tb.Text : SQL_合約控制表_改版修正()
  3248. End If
  3249. PA = "" : 視窗4_pl.Visible = False : MyModule1.計算顯示3()
  3250. If 系統語言 = "繁體中文" Then : MsgBox("合約複製與資料轉移完成!!") : Else : MsgBox("Duplikasi kontrak dan transfer data selesai!!") : End If
  3251. Set_合約清單()
  3252. End If
  3253. End If
  3254. End If
  3255. End If
  3256. End If
  3257. End If
  3258. End Sub
  3259. Private Sub 合約編號2_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合約編號2_cb.SelectedIndexChanged
  3260. Set_合約清單1()
  3261. End Sub
  3262. Private Sub 查詢1_bt_Click(sender As Object, e As EventArgs) Handles 查詢1_bt.Click
  3263. If 系統語言 = "繁體中文" Then : MsgBox("功能製作中!!") : Else : MsgBox("Feature in progress!!") : End If
  3264. End Sub
  3265. Private Sub 全部選擇_bt_Click(sender As Object, e As EventArgs) Handles 全部選擇_bt.Click
  3266. 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
  3267. End Sub
  3268. Private Sub 全部取消_bt_Click(sender As Object, e As EventArgs) Handles 全部取消_bt.Click
  3269. 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
  3270. End Sub
  3271. '----------------------自創視窗滑鼠拖曳功能---------------------------------------------------------------------------------------------------------
  3272. Dim OldX, OldY As Long : Dim drag As Boolean
  3273. Private Sub 編輯係數_bt_Click(sender As Object, e As EventArgs) Handles 編輯係數_bt.Click
  3274. OY2 = 報價明細表_dgv.Size.Height
  3275. 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
  3276. If OX1 = 報價係數_dgv.Size.Width And OY1 = 報價係數_dgv.Size.Height Then
  3277. 報價係數_dgv.Size = New System.Drawing.Point(OX1, OY1 + OY2) : Else : 報價係數_dgv.Size = New System.Drawing.Point(OX1, OY1) : End If
  3278. End Sub
  3279. Private Sub Cancel_bt_Click(sender As Object, e As EventArgs) Handles Cancel1_bt.Click
  3280. OY2 = 報價明細表_dgv.Size.Height
  3281. If 視窗1_pl.Visible = False Then : 視窗1_pl.Visible = True : 視窗1_pl.BringToFront() : Else : 視窗1_pl.Visible = False : End If
  3282. If OX1 = 報價係數_dgv.Size.Width And OY1 = 報價係數_dgv.Size.Height Then
  3283. 報價係數_dgv.Size = New System.Drawing.Point(OX1, OY1 + OY2) : Else : 報價係數_dgv.Size = New System.Drawing.Point(OX1, OY1) : End If
  3284. End Sub
  3285. Private Sub CanceL2_bt_Click(sender As Object, e As EventArgs) Handles CanceL2_bt.Click
  3286. If 視窗2_pl.Visible = False Then : 視窗2_pl.Visible = True : 視窗2_pl.BringToFront() : Else
  3287. 視窗2_pl.Visible = False : End If
  3288. End Sub
  3289. Private Sub CanceL3_bt_Click(sender As Object, e As EventArgs) Handles CanceL3_bt.Click
  3290. If 視窗3_pl.Visible = False Then : 視窗3_pl.Visible = True : 視窗3_pl.BringToFront() : Else
  3291. 視窗3_pl.Visible = False : End If
  3292. End Sub
  3293. Private Sub CanceL4_bt_Click(sender As Object, e As EventArgs) Handles CanceL4_bt.Click
  3294. If 視窗4_pl.Visible = False Then : 視窗4_pl.Visible = True : 視窗4_pl.BringToFront() : Else
  3295. 視窗4_pl.Visible = False : End If
  3296. End Sub
  3297. Private Sub 視窗1_pl_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗1_pl.MouseDown
  3298. If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If
  3299. End Sub
  3300. Private Sub 視窗1_pl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗1_pl.MouseMove
  3301. If drag Then : 視窗1_pl.Left = 視窗1_pl.Left + e.X - OldX : 視窗1_pl.Top = 視窗1_pl.Top + e.Y - OldY : End If
  3302. End Sub
  3303. Private Sub 視窗1_pl_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗1_pl.MouseUp
  3304. drag = False
  3305. End Sub
  3306. Private Sub 視窗2_pl_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗2_pl.MouseDown
  3307. If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If
  3308. End Sub
  3309. Private Sub 視窗2_pl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗2_pl.MouseMove
  3310. If drag Then : 視窗2_pl.Left = 視窗2_pl.Left + e.X - OldX : 視窗2_pl.Top = 視窗2_pl.Top + e.Y - OldY : End If
  3311. End Sub
  3312. Private Sub 視窗2_pl_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗2_pl.MouseUp
  3313. drag = False
  3314. End Sub
  3315. Private Sub 視窗3_pl_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗3_pl.MouseDown
  3316. If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If
  3317. End Sub
  3318. Private Sub 視窗3_pl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗3_pl.MouseMove
  3319. If drag Then : 視窗3_pl.Left = 視窗3_pl.Left + e.X - OldX : 視窗3_pl.Top = 視窗3_pl.Top + e.Y - OldY : End If
  3320. End Sub
  3321. Private Sub 視窗3_pl_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗3_pl.MouseUp
  3322. drag = False
  3323. End Sub
  3324. Private Sub 視窗4_pl_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗4_pl.MouseDown
  3325. If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If
  3326. End Sub
  3327. Private Sub 視窗4_pl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗4_pl.MouseMove
  3328. If drag Then : 視窗4_pl.Left = 視窗4_pl.Left + e.X - OldX : 視窗4_pl.Top = 視窗4_pl.Top + e.Y - OldY : End If
  3329. End Sub
  3330. Private Sub 視窗4_pl_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗4_pl.MouseUp
  3331. drag = False
  3332. End Sub
  3333. '----------------------列印成excel---------------------------------------------------------------------------------------------------------
  3334. Private Sub 列印成EXCEL_bt_Click(sender As Object, e As EventArgs) Handles 列印成EXCEL_bt.Click
  3335. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else
  3336. XN1 = 0
  3337. xlApp = CType(CreateObject("Excel.Application"), Application)
  3338. xlApp.Visible = True
  3339. xlApp.DisplayAlerts = True
  3340. xlApp.Application.WindowState = xlMaximized
  3341. xlBook = xlApp.Workbooks.Add
  3342. '----------------------------------------------------------------------------------------------------------------------
  3343. xlSheet = NewMethod(xlBook) : xlApp.Sheets(1).Select : xlApp.Sheets(1).Name = "明細表"
  3344. xlBook.Activate() : xlSheet.Activate()
  3345. xlSheet.Cells(2, 1) = "QUOTATION" : xlSheet.Cells(3, 7) = "NO : " & 合約編號_tb.Text
  3346. xlSheet.Cells(3, 1) = "業主名稱 : " & 客戶名稱_tb.Text : xlSheet.Cells(4, 7) = "Date : " & Strings.Format(Today(), "yyyy/MM/dd")
  3347. xlSheet.Cells(4, 1) = "工程項目 : " & 工程名稱_中_tb.Text & vbCrLf & 工程名稱_英_tb.Text
  3348. xlSheet.Cells(5, 1) = "ITEM" : xlSheet.Cells(5, 2) = "DESCRIPTION" : xlSheet.Cells(5, 3) = "UNIT"
  3349. xlSheet.Cells(5, 4) = "Q'TY" : xlSheet.Cells(5, 9) = "REMARKS"
  3350. If 工材分離_ch.Checked = False Then : xlSheet.Cells(5, 5) = "UNIT PRICE" & vbCrLf & "" & 幣別 : xlSheet.Cells(5, 7) = "AMOUNT" & vbCrLf & "" & 幣別 : Else
  3351. xlSheet.Cells(5, 5) = "工資報價單價" & vbCrLf & "Hrga satuan penawaran gaji" : xlSheet.Cells(5, 6) = "工資報價復價" & vbCrLf & "Total harga upah"
  3352. xlSheet.Cells(5, 7) = "材料報價單價" & vbCrLf & "Harga satuan kutipan material" : xlSheet.Cells(5, 8) = "材料報價複價" & vbCrLf & "Harga total kuotasi material"
  3353. End If
  3354. For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1
  3355. If 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString() = "*" Then : Else
  3356. xlSheet.Cells(6 + i, 1) = 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString()
  3357. End If
  3358. xlSheet.Cells(6 + i, 2) = 報價明細表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString()
  3359. xlSheet.Cells(6 + i, 3) = 報價明細表_dgv.Rows(i).Cells("UNIT").Value.ToString()
  3360. If CInt(報價明細表_dgv.Rows(i).Cells("QTY").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 4) = "" : Else
  3361. xlSheet.Cells(6 + i, 4) = 報價明細表_dgv.Rows(i).Cells("QTY").Value.ToString() : End If
  3362. xlSheet.Cells(6 + i, 9) = 報價明細表_dgv.Rows(i).Cells("REMARKS").Value.ToString()
  3363. If 工材分離_ch.Checked = False Then
  3364. If CInt(報價明細表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 5) = "" : Else
  3365. xlSheet.Cells(6 + i, 5) = 報價明細表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString() : End If
  3366. If CInt(報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 7) = "" : Else
  3367. xlSheet.Cells(6 + i, 7) = 報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString() : End If
  3368. Else
  3369. If CInt(報價明細表_dgv.Rows(i).Cells("工資報價單價").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 5) = "" : Else
  3370. xlSheet.Cells(6 + i, 5) = 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value.ToString() : End If
  3371. If CInt(報價明細表_dgv.Rows(i).Cells("工資報價後價").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 6) = "" : Else
  3372. xlSheet.Cells(6 + i, 6) = 報價明細表_dgv.Rows(i).Cells("工資報價後價").Value.ToString() : End If
  3373. If CInt(報價明細表_dgv.Rows(i).Cells("材料報價單價").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 7) = "" : Else
  3374. xlSheet.Cells(6 + i, 7) = 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value.ToString() : End If
  3375. If CInt(報價明細表_dgv.Rows(i).Cells("材料報價後價").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 8) = "" : Else
  3376. xlSheet.Cells(6 + i, 8) = 報價明細表_dgv.Rows(i).Cells("材料報價後價").Value.ToString() : End If
  3377. End If
  3378. XN2 = 6 + i
  3379. Next
  3380. AA(xlApp, xlSheet)
  3381. If 合約編號_cb.Text = "HX" Then : CC(xlApp, xlSheet) : Else : DD(xlApp, xlSheet) : End If : FF(xlApp, xlSheet)
  3382. '----------------------------------------------------------------------------------------------------------------------
  3383. xlSheet = NewMethod(xlBook) : xlApp.Sheets(1).Select : xlApp.Sheets(1).Name = "報價單"
  3384. xlBook.Activate() : xlSheet.Activate()
  3385. xlSheet.Cells(2, 1) = "QUOTATION" : xlSheet.Cells(4, 6) = "NO : " & 合約編號_tb.Text
  3386. xlSheet.Cells(4, 1) = "業主名稱 : " & 客戶名稱_tb.Text : xlSheet.Cells(5, 6) = "Date : " & Strings.Format(Today(), "yyyy/MM/dd")
  3387. xlSheet.Cells(5, 1) = "工程項目 : " & 工程名稱_中_tb.Text & vbCrLf & 工程名稱_英_tb.Text
  3388. xlSheet.Cells(6, 1) = "ITEM" : xlSheet.Cells(6, 2) = "DESCRIPTION" : xlSheet.Cells(6, 3) = "UNIT" : xlSheet.Cells(6, 5) = "UNIT PRICE" & vbCrLf & "" & 幣別
  3389. xlSheet.Cells(6, 6) = "AMOUNT" & vbCrLf & "" & 幣別 : xlSheet.Cells(6, 4) = "Q'TY" : xlSheet.Cells(6, 7) = "REMARKS"
  3390. For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1
  3391. If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString() = "*" Or 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString() = "@" Or
  3392. 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString() = "^" Then : Else
  3393. xlSheet.Cells(7 + i, 1) = 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString()
  3394. End If
  3395. xlSheet.Cells(7 + i, 2) = 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString()
  3396. xlSheet.Cells(7 + i, 3) = 報價總表_dgv.Rows(i).Cells("UNIT").Value.ToString()
  3397. If CInt(報價總表_dgv.Rows(i).Cells("QTY").Value.ToString()) = 0 Then : xlSheet.Cells(7 + i, 4) = "" : Else
  3398. xlSheet.Cells(7 + i, 4) = 報價總表_dgv.Rows(i).Cells("QTY").Value.ToString() : End If
  3399. If CInt(報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString()) = 0 Then : xlSheet.Cells(7 + i, 5) = "" : Else
  3400. xlSheet.Cells(7 + i, 5) = 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString() : End If
  3401. If CInt(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString()) = 0 Then : xlSheet.Cells(7 + i, 6) = "" : Else
  3402. xlSheet.Cells(7 + i, 6) = 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString() : End If
  3403. xlSheet.Cells(7 + i, 7) = 報價總表_dgv.Rows(i).Cells("REMARKS").Value.ToString()
  3404. XN1 = 8 + i
  3405. Next
  3406. xlSheet.Cells(XN1 + 1, 1) = "報價說明Offer descriptions:" : xlSheet.Cells(XN1 + 2, 1) = 報價說明_tb.Text
  3407. xlSheet.Cells(XN1 + 3, 1) = "客戶確認 (簽名,蓋章)" : xlSheet.Cells(XN1 + 3, 3) = "核准" : xlSheet.Cells(XN1 + 3, 7) = "經辦人"
  3408. xlSheet.Cells(XN1 + 4, 1) = "Customer confirmation ( signature ) : " : xlSheet.Cells(XN1 + 4, 3) = "Approved : " : xlSheet.Cells(XN1 + 4, 7) = "報價說明Offer descriptions:"
  3409. xlSheet.Cells(XN1 + 5, 7) = gUserName
  3410. xlSheet.Cells(XN1 + 6, 1) = "_________________________________" : xlSheet.Cells(XN1 + 6, 3) = "_________________________________"
  3411. xlSheet.Cells(XN1 + 6, 7) = "_________________________________"
  3412. BB(xlApp, xlSheet)
  3413. If 合約編號_cb.Text = "HX" Then : CC(xlApp, xlSheet) : Else : DD(xlApp, xlSheet) : End If : FF(xlApp, xlSheet)
  3414. '----------------------------------------------------------------------------------------------------------------------
  3415. xlApp.Sheets(3).Delete
  3416. xlSheet.PageSetup.PrintArea = ""
  3417. xlApp.Cells.Select()
  3418. xlApp.Application.WindowState = xlMinimized
  3419. If 系統語言 = "繁體中文" Then : MsgBox("列印完成!!") : Else : MsgBox("Printing is complete!!") : End If
  3420. End If
  3421. End Sub
  3422. Private Shared Function NewMethod(xlBook As Workbook) As Worksheet
  3423. Return CType(xlBook.Worksheets.Add, Worksheet)
  3424. End Function
  3425. Private Sub AA(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  3426. xlSheet.Cells.Select()
  3427. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  3428. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  3429. xlSheet.Range("A2:I2").Select()
  3430. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 14 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  3431. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  3432. xlSheet.Rows("1:1").Select : myExcel.Selection.RowHeight = 95
  3433. xlSheet.Rows("2:2").Select : myExcel.Selection.RowHeight = 30 : xlSheet.Rows("3:3").Select : myExcel.Selection.RowHeight = 20
  3434. xlSheet.Rows("4:4").Select : myExcel.Selection.RowHeight = 35 : xlSheet.Rows("5:5").Select : myExcel.Selection.RowHeight = 65
  3435. xlSheet.Rows("6:" & XN2).Select : myExcel.Selection.RowHeight = 35
  3436. If 工材分離_ch.Checked = True Then
  3437. xlSheet.Range("E5:H6").Select()
  3438. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 8 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  3439. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  3440. End If
  3441. xlSheet.Range("A5:I5").Select()
  3442. With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorAccent1 : .TintAndShade = 0.799981688894314
  3443. .PatternTintAndShade = 0 : End With
  3444. xlSheet.Range("A4").Select()
  3445. With myExcel.Selection : .HorizontalAlignment = xlGeneral : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3446. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  3447. xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 6
  3448. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False
  3449. .ReadingOrder = xlContext : .MergeCells = False : End With
  3450. xlSheet.Columns("C:D").Select : myExcel.Selection.ColumnWidth = 6 : xlSheet.Columns("I:I").Select : myExcel.Selection.ColumnWidth = 40
  3451. xlSheet.Columns("I:I").Select : myExcel.Selection.ColumnWidth = 18.5
  3452. If 工材分離_ch.Checked = False Then
  3453. xlSheet.Columns("G:H").Select : myExcel.Selection.ColumnWidth = 9 : xlSheet.Columns("E:F").Select : myExcel.Selection.ColumnWidth = 9
  3454. xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 50
  3455. Else
  3456. xlSheet.Columns("G:H").Select : myExcel.Selection.ColumnWidth = 13 : xlSheet.Columns("E:F").Select : myExcel.Selection.ColumnWidth = 13
  3457. xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 50
  3458. End If
  3459. xlSheet.Range("A2:I2").Select()
  3460. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3461. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3462. xlSheet.Range("A3:F3").Select()
  3463. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3464. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3465. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3466. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3467. xlSheet.Range("A4:F4").Select()
  3468. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3469. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3470. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3471. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3472. xlSheet.Range("G3:I3").Select()
  3473. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3474. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3475. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3476. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3477. xlSheet.Range("G4:I4").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 : myExcel.Selection.Merge
  3480. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3481. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3482. If 工材分離_ch.Checked = False Then
  3483. xlSheet.Range("E5:F5").Select()
  3484. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3485. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3486. xlSheet.Range("G5:H5").Select()
  3487. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3488. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3489. End If
  3490. xlSheet.Range("C5:H5").Select()
  3491. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3492. .ShrinkToFit = False : .ReadingOrder = xlContext : End With
  3493. For i As Integer = 6 To XN2
  3494. xlSheet.Range("E" & i & ":F" & i).Select()
  3495. If 工材分離_ch.Checked = False Then
  3496. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3497. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge : End If
  3498. xlSheet.Range("G" & i & ":H" & i).Select()
  3499. If 工材分離_ch.Checked = False Then
  3500. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3501. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge : End If
  3502. Next
  3503. xlSheet.Range("E6:H" & XN2).Select()
  3504. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3505. .ShrinkToFit = False : .ReadingOrder = xlContext : End With
  3506. myExcel.Selection.NumberFormatLocal = "#,##0_ "
  3507. xlSheet.Range("C6:D" & XN2).Select()
  3508. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3509. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  3510. xlSheet.Range("I6:I" & XN2).Select()
  3511. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3512. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  3513. xlSheet.Range("B6:B" & XN2).Select()
  3514. With myExcel.Selection : .HorizontalAlignment = xlGeneral : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  3515. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  3516. xlSheet.Range("A5:I5").Select()
  3517. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  3518. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3519. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3520. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3521. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3522. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3523. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3524. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  3525. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3526. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3527. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3528. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3529. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3530. myExcel.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
  3531. xlSheet.Range("A6:I" & XN2).Select()
  3532. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  3533. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3534. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3535. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3536. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3537. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3538. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3539. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  3540. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3541. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3542. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3543. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3544. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3545. xlSheet.Range("J17").Select() : myExcel.ActiveWindow.DisplayGridlines = False
  3546. xlSheet.Range("A4:F4").Select()
  3547. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False
  3548. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3549. xlSheet.Range("A5:I5").Select()
  3550. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .Orientation = 0
  3551. .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : End With
  3552. xlSheet.Range("A6:I" & XN2).Select()
  3553. With myExcel.Selection : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False
  3554. .ReadingOrder = xlContext : End With
  3555. End Sub
  3556. Private Sub BB(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  3557. xlSheet.Cells.Select()
  3558. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  3559. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  3560. xlSheet.Rows("2:2").Select
  3561. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 14 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  3562. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With
  3563. xlSheet.Rows("1:1").Select : myExcel.Selection.RowHeight = 95 : xlSheet.Rows("2:2").Select : myExcel.Selection.RowHeight = 30
  3564. xlSheet.Rows("4:4").Select : myExcel.Selection.RowHeight = 20 : xlSheet.Rows("5:5").Select : myExcel.Selection.RowHeight = 35
  3565. xlSheet.Rows("6:6").Select : myExcel.Selection.RowHeight = 40 : xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 6
  3566. xlSheet.Rows("7:" & XN1).Select : myExcel.Selection.RowHeight = 35
  3567. xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 60 : xlSheet.Columns("C:C").Select : myExcel.Selection.ColumnWidth = 6
  3568. xlSheet.Columns("D:D").Select : myExcel.Selection.ColumnWidth = 6 : xlSheet.Columns("E:E").Select : myExcel.Selection.ColumnWidth = 18
  3569. xlSheet.Columns("F:F").Select : myExcel.Selection.ColumnWidth = 18 : xlSheet.Columns("G:G").Select : myExcel.Selection.ColumnWidth = 18.5
  3570. xlSheet.Range("A2:G2").Select()
  3571. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3572. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3573. xlSheet.Range("A4:E4").Select()
  3574. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3575. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3576. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3577. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3578. xlSheet.Range("A5:E5").Select()
  3579. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3580. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3581. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3582. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3583. xlSheet.Range("F4:G4").Select()
  3584. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3585. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3586. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3587. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3588. xlSheet.Range("F5:G5").Select()
  3589. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3590. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3591. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3592. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3593. xlSheet.Range("A6:A" & XN1 - 1).Select()
  3594. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3595. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  3596. xlSheet.Range("C6:D" & XN1 - 1).Select()
  3597. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3598. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  3599. xlSheet.Range("E6:F6").Select()
  3600. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3601. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  3602. xlSheet.Range("A6:G6").Select()
  3603. With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorLight2
  3604. .TintAndShade = 0.799981688894314 : .PatternTintAndShade = 0 : End With
  3605. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  3606. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3607. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3608. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3609. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3610. With myExcel.Selection.Borders(xlInsideVertical) : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3611. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3612. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  3613. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3614. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3615. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3616. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3617. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3618. myExcel.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
  3619. xlSheet.Range("A7:G" & XN1 - 1).Select()
  3620. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  3621. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3622. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3623. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3624. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3625. With myExcel.Selection.Borders(xlInsideVertical) : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3626. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3627. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  3628. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3629. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3630. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3631. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With
  3632. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3633. xlSheet.Range("A" & XN1 + 1 & ":G" & XN1 + 1).Select()
  3634. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3635. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3636. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3637. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3638. xlSheet.Range("A" & XN1 + 2 & ":G" & XN1 + 2).Select()
  3639. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3640. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge
  3641. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3642. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3643. xlSheet.Range("A" & XN1 + 1 & ":G" & XN1 + 2).Select()
  3644. myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  3645. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3646. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3647. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3648. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  3649. myExcel.Selection.Borders(xlInsideVertical).LineStyle = xlNone : myExcel.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
  3650. xlSheet.Rows(XN1 + 2 & ":" & XN1 + 2).Select : myExcel.Selection.RowHeight = 100
  3651. xlSheet.Rows(XN1 + 3 & ":" & XN1 + 3).Select : myExcel.Selection.RowHeight = 30
  3652. With myExcel.Selection : .HorizontalAlignment = xlGeneral : .VerticalAlignment = xlBottom : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3653. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  3654. xlSheet.Rows(XN1 + 5 & ":" & XN1 + 5).Select : myExcel.Selection.RowHeight = 80
  3655. xlSheet.Range("H17").Select() : myExcel.ActiveWindow.DisplayGridlines = False
  3656. xlSheet.Range("E7:F" & XN1 - 1).Select() : myExcel.Selection.NumberFormatLocal = "#,##0_ "
  3657. xlSheet.Range("A5:E5").Select()
  3658. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False
  3659. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3660. xlSheet.Range("A6:G6").Select()
  3661. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False
  3662. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With
  3663. xlSheet.Range("A7:G" & XN1 - 1).Select()
  3664. With myExcel.Selection : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False
  3665. .ReadingOrder = xlContext : .MergeCells = False : End With
  3666. xlSheet.Range("A" & XN1 + 2 & ":G" & XN1 + 2).Select()
  3667. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlTop : .WrapText = True : .Orientation = 0 : .AddIndent = False
  3668. .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With
  3669. End Sub
  3670. Private Sub CC(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  3671. Clipboard.SetDataObject(PictureBox1.Image)
  3672. xlSheet.Range("A1").Select()
  3673. myExcel.ActiveSheet.Pictures.Paste.Select
  3674. myExcel.Selection.ShapeRange.Height = 93
  3675. myExcel.Selection.ShapeRange.IncrementLeft(0)
  3676. myExcel.Selection.ShapeRange.IncrementTop(0)
  3677. End Sub
  3678. Private Sub DD(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  3679. Clipboard.SetDataObject(PictureBox2.Image)
  3680. xlSheet.Range("A1").Select()
  3681. myExcel.ActiveSheet.Pictures.Paste.Select
  3682. myExcel.Selection.ShapeRange.Height = 93
  3683. myExcel.Selection.ShapeRange.IncrementLeft(0)
  3684. myExcel.Selection.ShapeRange.IncrementTop(0)
  3685. End Sub
  3686. Private Sub FF(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  3687. myExcel.Application.PrintCommunication = False : With myExcel.ActiveSheet.PageSetup : .PrintTitleRows = "$1:$5" : .PrintTitleColumns = "" : End With
  3688. myExcel.Application.PrintCommunication = True : myExcel.ActiveSheet.PageSetup.PrintArea = "" : myExcel.Application.PrintCommunication = False
  3689. With myExcel.ActiveSheet.PageSetup : .LeftHeader = "" : .CenterHeader = "" : .RightHeader = "" : .LeftFooter = "" : .CenterFooter = "第 &P 頁,共 &N 頁" : .RightFooter = ""
  3690. .LeftMargin = myExcel.Application.InchesToPoints(0.236220472440945) : .RightMargin = myExcel.Application.InchesToPoints(0.236220472440945)
  3691. .TopMargin = myExcel.Application.InchesToPoints(0.748031496062992) : .BottomMargin = myExcel.Application.InchesToPoints(0.748031496062992)
  3692. .HeaderMargin = myExcel.Application.InchesToPoints(0.31496062992126) : .FooterMargin = myExcel.Application.InchesToPoints(0.31496062992126)
  3693. .PrintHeadings = False : .PrintGridlines = False : .CenterHorizontally = True : .CenterVertically = False : .Draft = False
  3694. .FirstPageNumber = xlAutomatic : .BlackAndWhite = False : .Zoom = False : .FitToPagesWide = 1 : .FitToPagesTall = False : .OddAndEvenPagesHeaderFooter = False
  3695. .DifferentFirstPageHeaderFooter = False : .ScaleWithDocHeaderFooter = True : .AlignMarginsHeaderFooter = True
  3696. .EvenPage.LeftHeader.Text = "" : .EvenPage.CenterHeader.Text = "" : .EvenPage.RightHeader.Text = "" : .EvenPage.LeftFooter.Text = ""
  3697. .EvenPage.CenterFooter.Text = "" : .EvenPage.RightFooter.Text = "" : .FirstPage.LeftHeader.Text = "" : .FirstPage.CenterHeader.Text = ""
  3698. .FirstPage.RightHeader.Text = "" : .FirstPage.LeftFooter.Text = "" : .FirstPage.CenterFooter.Text = "" : .FirstPage.RightFooter.Text = ""
  3699. End With : myExcel.Application.PrintCommunication = True
  3700. End Sub
  3701. End Class