From bc1bbf48f25a39207de9791cf6fd9c6588a5525d Mon Sep 17 00:00:00 2001 From: Anton Date: Fri, 5 Feb 2021 13:48:37 +0100 Subject: [PATCH] Database to Datatable --- Databas.xlsx | Bin 34390 -> 40804 bytes Wardrobe/GUI.vb | 164 +++++++++++++++++++++++++++++++----------------- 2 files changed, 105 insertions(+), 59 deletions(-) diff --git a/Databas.xlsx b/Databas.xlsx index e34c956da8a1ea0745062289201a4b82509b1f5c..200971c392e36747f6f50f8a761ecd0fa354e336 100644 GIT binary patch delta 17392 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 dz+{#-DW zR7L~kIsb2}YKsmV+nTXC7#g4~lkx|JEO@H-HjrW{8iJe#VR7S0visV7YPI0qfz_tX zB?A1Hi$p%gkUTI0SlgEx3_#WyjEIzfL5n(%M^O)kl5W)3wy3Nm^r{Vum_&=vEmrz! zyAFCL38-;OU~C43-xn1CzM7DVO6-33W?@+%?FCnkxa`11ey)d7m>*+*&XT z(1ZIK@!O+$!lRp;VJuHO(@Na-i!5IoDSUr#oWlzrM)dG|kJt*L*q-%!VZ7-b6H-AT zw4jUkK;Cl(VWOxAhWp}SC%CZH`R0UNYb~79>qPsRb*^69EfIZ#xp^VE11i1b$$2xn z?JZfH|7hKxav^&Gql0yvXU-e@Fk*a<=W)yq+DNEXjjm_6HEGl>5jDT#0V>eGp6Qn}i3UHjDk6o2G}c5iJ)>zzQh##Cu4IdPA^vp>RH%6p z`|a8f0=k&)^yC1hc8Ns$7+eo9dWxC-r&>>&rP*=MxL$vGIon9XjgGr&gF|?>a zbY73X;7~YzT_a;bdo{_f<8=UBF8DGSqi_Ar9)m)C8FVlas31&PGxi^i6T1Cu|AQ8^ z+2v|G{|r4AN*2jqtlEUy7#xlCHR8s_QtHSKdfBKq9+g1k^tFHHRc^ZcbqeKp>#pNK z(Jxd2Rrz%wJm{RFyN3s>|9*S3Ld(Y_Oun{>i1eY>*?`_#&Y#`wMN9&)G&w@C9Xi=! zS`!pgoK7jN9`j8_+FyG*KQHbL0gE2bAIie)miw9PPAQwh4x_B~Xn9?Q+)!Z(1ZxcI zy+5L#Y_|fME1t=1{ypcOqpt=3RFkjemLhJ$xjR;Q&i>>tdUD|D>NuS{<){IR!E$vhllQF+Bm=N>B-`r9DF-vj+Y_Ym*gqfX|Rp3&IAsZ7OlpCm1nBJIZ8fsdIjL92P$PEWQI$l+iXF2 z2?0~f2(pZL4^!u#B4H}&Kht|ZS*kX%rOp(8ZgH9Ci&|nT8|^EO%4~d-Ug2gPTI4;peC4KO)a^c(gAUIt?$U|9tATtI+<6~Y78(eMH6e=}P~ zl1@w>8&>~1@8bEyjb0;Mk!0q9fZ4tga8y6rntlpNsjfVE(5(GADX$38Ko@pf=B})_au*e zD@COa%O$;9SA!zHP_p|$tqalh+pq<0W8}cR?PNX$qp0zyO2xXoawG>qn~f9spuo>2 z)Myzx0ojL!3*rp6-CM$MeZ^SvJx!=X>fC$FSN(Gf6gBEi(%s91GEk{kp-VVRsVi9r+~@gg25bw0wV(W$t~wX1wv#dU@Ri@Y9D5Ogw(= z2Fdjp1%FYK{o@h7uh`(AYcony=%na>2`pg1 zjHJp0f4tP7=wppY9@IWpBON`66H4>;S;s#-9>t8qFgkK^L)Ggy) zg=vTj8PHRTzCpd+tF5>`6HAp@iJDd`e)2H6!PDgmP$aJTq0$XDfe+KjZL_1-Ng(zvj8wMp(LJq_W@|u&WONA@ zv-?zrPP7){Zz|ADR!{7Pf3x~rwE>Q|Q`b$ zf`p`~vRZ59f?(2GM}0MSi4F0OkwNIng>G&_@2);74^Zt>)pMUy9viWt#hpv85vfQf z^@Tu>AtLuGc(3@ubl9QjE#lmX$j8e5{tgND&u$L*8VrvhjB-Vh@DUOxFdrd70?1HX zj!tJo^R1i#RK1WO1$6|#m5xd)-{*c)yS+NW!z=^)Rp+dw_Ie*pPM*G67Nm|)Jvx%X zxy?^G_558gS4cy9z${v*zc-Zk^IqQK$mKX`=^(N6(ge-#M4Ja95$C9L(0KM#psJ3Z zlN}lvmshmH_oX1TQF(op(}5&jLjZk2NwI(a651+*;x$WAMd*1Gd2z9YLriQDJKi5U zsBMKoH*WjSsCgbz$UBt^lSiD|qkSE-suj?D^u?w|M4~jlWA?)_a-Zo4W7pa1THzwluUbYu+M2$8?gEO7h0H?V(d?%`9h3LlKqYsEp#onPqbRd@6gY^$ zwm~}E6^%m|PSSi!=A_bPxA(B7$JHHrS`&ABK7Fj>Kni1f&}As}^RW$5;~-cVs-lsH z(MY8cTKoyC=_+Yvf=TV_hp5>`xsFxHoPtfZy&71t&OGb|v=8!pBVe3@m)g65%8i4i zB67`;s)I8Yywif?f_UI8K*L0%Z_${os^<(k1Z|!P1FDvfqR?+%tnSN6G^X+hQ#F@yO@Vmp*>B(J0 z@^kO>o~i5PYweONp!wxGdkkPxXW$-FI@?AG$J!imw(a-sHFtcP6jQq2duDOnXqaFJ;UgiOh|_P(?A1x&u?r{G+_4c;7eoA5O}u^j5U|F z?JF&u2{jhsE(5HO+YV$QOq)ALk1tHl0GXx*R+jPlbW-Bf;DXmP*G-z+tr6nv7j~>P zp#V~3Qzd?g9nJfgQ058#Wu zozjTS8UEd_EJcpU*}6A!JLMB8C&twJ*eg}^BQg7xb11*(b`>q|r31BTQ)op2zlz$t znUX$A@0N@|pG&^ayjetXeMzZ+L|GGkAEWT7r^&lw_G=t^7(FQ3j=aD!E3o)tx*{aViKg7XRX~v zsd92%rqE9Y@a||%rlXPNKAjgzAenzI>5|A+9Q8aPI(9+H>@;Mi?OiS^-1>CGzJ4)x zahe2l5FQ_cu&a3UD>et`9oE3SD>k0CVZT)$&8bJ3z2Ohh8olCO6Py4%!h?*5bZ)UW z#$MT=v0i70$O>hh!)a)wAmR!J{$B7Ut{y{*%{sg#bx$q@TWYO@-f4gB2SqVhnu?3f zH!3u_@DUsp`&lecMrA0_FF3PIskO3Sqn|z`jn4L>ahNz!uuEZb%9{9x{$_P4UZuYV zbiyc7xTV%ULn2Qy03uq{RCdN%!KJ>Y(A)+SGo7`l&Y= z&JWb7qXWaL{u!W;3k64tp%Y45XJZ70XUvEJb6AoyF-4ZG5Y!Q3ZWGes%u^0f7mf?s57B5o-($|I(~DAmv`-3sJ| zxR^65S5xYj9xNlsfJ|{u&!7mZu@g^gZ5Ca<0db5gy_TxPDk=2!7`30e`0JHoRqQ;Q zwYAT|x_L2I=()BSOE#?^|3o}cX!J%*?+jOLqmN$uw#2UVqKoQtXp8H##pMKm;RGFaADS_4d0vC1BUn9(^4XGzQssopBTR@0`jc7Vlrwj%Qc(Guc5)(OB9nz3hB%QD|b#b^FC5pIiqc* ztf4%%bWgK|jbeiIQP&g~1`M)7%`@LFm2=sb5*}4f2+! za`inrnqmY3mz-^1-4qq14ltBoCXMx8$WnU%JdOi>Drir}-h8U6TJ)Oo#4Bf62k}fW zgRPjlJdq85p-Xavf68Yxdw>g|lbu63#zi_-AXabT3qjQS9h%dWU`CGEvRnN~GLPAH zOLQ#>OGt2-T-(=8QI5uxX;P1+5Ltx- z)F4jF2~w|OQNcK~ z8J4|IiZ$Ym2jpj?2@wEfUT%{u8(>78up?Qj?#LnL=aqzr30kjY^v%x%Tb5wm6>@+LqqZALK8M0v5?i5{Emb}TS@!tTBSKWshEu+Pk3@h^9 z1E3W%N8l{U8Ms670cLNMOo5GpO~eKm-*VNf*dh$kmyB{DhXOVDWYtEAa-p?rtZLRp zOw%vBBfH;W47Ev&T)$=vAnQ2U1?$rY+&F=gkXuhl&?39g;k8fE+G{t5?54*!ht*AS zdu_ETSzo#?N-+TRYq=-lQI6EhK6rMJdlo^pJCu!{Cg2~sM z2>PTmI!9WFNs2u5%6=fzsd%=K%=VCBJ04-w z@^O<8WUu$Sk=F>065{6Q&r`@h!o6*+6MrPO$L0p0E$I_JP4vX%#4-Fh&z#rCCDk{P zcK&MQIm*06imSurHHTH2(ds;qj$r1DPv-*ncd=Mj&NIN9w<>X`onh z+8X-DiJM?4^*v)KKW5kgtDQCD_J!}8jMLk>CP*PtwbsjFFXcAA#}A1)L^vX2#3^W47Z76S1;-mev)26!=6OQX z6??j2)|vss*37n`T6NV)&n<35JEo{~qJ;8xV~xnIi4)>edxw=sXt0Bx*_Q0FO5N-- z!*_2=*%2{u49mtSGBOOygHYLSUt-rL-XFR0zy2`#LUG2;T@)r(`&sS^ZLb_hNaCoE z5tR$~t)QeP$pBKC>~Z-K^Y{eW#>OTTNWnv6Z|^*JsE)|%tzbQ=BCL{Wyg?R3wm665 zL45XC!XUnK!W%YR?E_V}EEXY@7$@&~IKI9eI58D>NGl?_B<(eu!M`cXWs7+Qd1_rP z?iY>yL1;W1wbqYr$kik!xZgI`beer}hQ+3%I7}#1fNpKYDp{59acOF1Lv;y;VvuGZ zayZ&Kf}zAK9j(!JVxwVf*mxu6d!jThZf9g-<%+@`1cwxEZ%(+)9&L$g4m)afswE}^ zifVC6E-c2UMQ}n#_0+K11kI13kSU~Dd)Gdf8Ik_pYmJd(ETovku|%QDv@*plPD2fC z@+k%gOckiPX`^i9K-d0Z{3oF*Sx2;m&CzS=F-_7~PqIWS*8Yj0vZmQ8JCglsotUYm z&;kDxnN;_jfhV~E&P^_U)7d7bs5Qvt-{4@WIZaWO_DHcxd|9nGb_#Ur<4{IL1 zh}6L)PV1MS)Z?_X8%Nx9XeU0ydik*!FT?~%UparjTAbh^b^qfU49U;L)HKun5h;ps zbz`wSyJdOs>A#719WMH_Y;ye_0_z2GH`_yw+TkCY9{xNH8$X-A{y7#bCkYCadW*w~ z(Rl}-xjKK{tF1ve*&o#xHqw4QR&Kj*jvp6pI?r_@;Ys(sMSbKudUd;$XyaH}%xWC( zvO7N;M$NiIS;uaBVf}l42ps331ZJl|gYJ3su)(=OYM*(a!FfQD%7jSpJU@_wzrlim z^#ZH(HUPS@WJmU_uJ`nxV`Xz;q!Z2=M;9Tm+r+DmpfqxAMFLRWNj~M-!{1_a&x?_JD)Rip3R_+5RqTr4kX%Zd4e(i@cxn zIas6>o85|_Y0#~;Qg~(g=5e7LYmv?qH(eeTzpg}bmv(Kl?kNI?kxM_keQ;-v{$RpB z-9WIKTQNNiQ(U?ev$Q)tDVQiYeLU6Wj&U%p1(e*1R05I1)@i&YR2Z)WJSLlNNdinE z1K>p?TNE&jE~SHqKQ+WsC0T|{?=8r_WkRF#hCOja7>hfeB?Nf5dF)=#67jlu*<@W@ z(N3hU4~#FSzd!1)e1CgGJg+nWc-%guyBq;MjJ6EkUUrAq-#s$DG#$^vao2@CA8!UD z&fA`@fA^!D+D4;%eu(YS^q9Y>b_e!W0YpPyAAV#j8sm{0%jLkid{VtPH36?=MswX1 zSa934MPb^8(9c@0wONgM(8cH<(a2wbIAfRo6#0qRL2cC3!-MbZud~6&m7Z0}g8^=L zTx#_n&)4`9jE==8(hD5dFj8TXDj9}{#p?^?ebKY40Xr3zA;$q4Q!rhk$r; z{wfT5+$D1M9@9+@G;!NUv-7%nqnX+x65&5_RUd}niS*1kZJTl>)43HB<)x&dtV?k? z;WxH#P-4#GVo(V6CV0NG<8)CwXLfr<60k*3Sy zx22IYF&4oLiOm~m?kqrT>pvmR)5;=8pvYQz9O3yd||1E&SL8@J&kGf;9_KVlx>b2}`i8vY4kEvW;?jP1kL!`vPO>IkN zwd%fY^=;g0sJ{wLa4C7d>o5DAJjf&BB`_1Rb^G9XG*rzLXZ_xoea(DZsC6Wuwg(&$3QZ8_-k*L$K-JGCNjl>hm>rdywoQVx~1nqVT2qPbHi$N;7jq?o^appIX z=4e{vG-)4W9@`dOWULAc54)IKK(I<>RdObs4&klmG$2C_vq{T?+GQxX0U z{mC?b5v#5L81`W^qM@a4z)a9orX`Fa0XG|dAg%(FCKxL~`ts$Emj4@`O@l6~*V@lT zM1P*><5`1PCwYqA-YsRFFHC!F_y^hL#K!tQWK3Q7Fyr9;%6{LB@YbB_SlHa-laNKA zy#U%0?q=S$(|IP<37iYKx3l^z^o1;{27eavqHVpcU^RxzN7EoebR}bn>c9&T-{Mif z^kMa5FwrIe5H<|168}&pV?Z335TVy>ASv&%En{=5i&yy9Y^B3T4+wx;c}jX72k@s_ z7tcV!%GCwbbSRPw9dPs{2s2*3h2K-S;ArG=?igURsOG50R9#2(>v}#$e6zx4?yu;$ z(^Xo%ZIH$}hvU+;&6y3i`?cg6&gHSH7sn;;KIm%PVOGD0IO{g zjO?J6EtrexFx!_^vwO{~?ik-#qqF94=bAZE4R=#rQ=_e?HNyb7gAL1u`fkkfWc)L zN0?iK-)941Yc_K6?lh|C8sw;!`c)VLiln0ql)}?n#p(re8kG-oPHw-tWui&k{`9>r zWjM7cl+CV$PYfbH%mgz_NLl?X|{H!T$=fwXLmHa>a^- zsx%K$%Ck_=-1VK?0sKu~C}Wvd(Y7BP4@CqpFf1@2Ng56yQhnKJix16rz2r57MTA`i z$i4v2X#=i;lAMARi)H3!O^U7X16Ie3I*#I5XpnUW_T~GuC=c*kM6s`2+;q8JvFlje zvVofv%DwnuSpsq8W%ZeVtmPnQl*#G;$Z+>>6a-y3b|dFu7GzHSc2p?rqe z-gIOSb$uRiD3A3Sz{D$VY@%Eefd8Vw?Axjw;Mj`Mh1EzpbNr>^dM(#Z5BajpyIR*C5`AGhEL|aAF?!FTw{LtJUS6_)zJl^O zMStBqL*i?q_By*OhmkJFS!m4Sw<4+AGQJi1PPssUNa|1umy)$hbfD@BB-Dg|x9X+) z0{CmrLV)G40TxJ?{mH9Sdg4d03DCc2vON z6;W8d8395k`K=0F3GMfs$)LQd`Ivz<7)=EJly{={k{L9On23zU(r0`|MSTY(@=W?5 zlM)F49E+?G90Xzd7Cg}ct+=5@Z0)?mTGe&MZxpsHaalJ`OvHujMk*>22vX0mA<53vm1HTvDH1-R%Q;Vhe-e>u!WPp1zC|^D32~1bk1#cz>LrI8XVTTDD zLF=0kr4Y&{1yC2hSvMd;>0%bBYn6p9ekKG!vVtXsM7SkBQG=(m1}QDZxje(*qIf}f zM(gib2NLbk+U$M_pVsSgm?y&}*wqnKuA`=k$yg4}kfO2q&HGtCuV(SGg{~k?8%@G9 z>YIW8;si{)TwtFqRO8UH&G{dw==5lcY7b9DBIZEEp$5L7sDwXluSbdiQ6GS0TrF;!8w5*&NINz zPW0ehKsTp_{I9MMK;mE$psgn}&?2}K7~#bXQV#(K2YvCGfCql{BmsU3W(KBtUIOVu zm_ZF*iQw?~h?`869|RF~kYOkVIN;0IZMF|89^)w>)aNVlZ_`6<+gLaB-%{cfa5cQ& zQF|4PW$qGU0qsE4sc+-`s9+wt4U!}eHac)gvV|=ZW{W9)=848 zV?{%s7XF}6G}E;KmJg(@NH=I6U?8+Z;p21@nil_<_eeXD+;Yw^uncU<`T(wS)n$zq zE~O7~Yaz4D7g6;g8S<4bNm6(?w5tR&%lgoLo4uSnJJaN+PM}%MuASG55RNQDbcl5y z^DesWAp}cx0EXa;_me+|y&WJr|71u(Pf9Vwj^k}p(FFd2%i*`>(|Nut@Xs(y1fREIe0^B$gfGiM*iAVTGLl9<1i0j?3Vkh1 zRZt?73uy5=8sa%K#3`fB)R%)p0F^MBs%9!JHbGb}e6#vlQM~)eVSyJ`OEc5b@%FRy za45t#B{gk1IIhA4y2G-1&(N%K3~ux9vA`zcA)rbwI=uOI!a0?NE_(HVnD@@fw+-u{ zxf*7=edx;WKhpSR5iL&=b*sITgdR4#1&+vy{_s?#w#Pu0xkOY&A6Q=-z)gB^B&XFu zgdX1+asN?-rVBFGXF{C-eK>HHFmG(Gr|d@@-G)35cJ&p@gWEeN9<w6tpWk7ieKIrAf4EFwV0izf|BMWr zNWlhA$ z!Us}kq5)|$2q5Tffy$ZGK#L3lNO8M=p?_y$6a6~{f9$N#|F?Nyv<|?9OiH4ENBIW; z?Y{uX&OqEOK?pQApjws)goX!@B^w7=mc<33=k-tX;iGBd^U "" + tempDT.Columns.Add(columnName, GetType(String)) + columnCounter = columnCounter + 1 + columnName = activeSheet.Cells(1, columnCounter).Value + numOfColumns = numOfColumns + 1 + End While + + Dim rowCounter As Integer = 2 + Dim rowValue As String = activeSheet.Cells(rowCounter, 1).Value + While rowValue <> "" + tempDT.Rows.Add() + For j = 0 To numOfColumns - 1 + tempDT.Rows(tempDT.Rows.Count - 1)(j) = activeSheet.Cells(rowCounter, j + 1).Value + Next + rowCounter = rowCounter + 1 + rowValue = activeSheet.Cells(rowCounter, 1).Value + End While + + dataBase.Add(activeSheet.Name, tempDT) + Next + ' HANTERA OLIKA LÄNGDER PÅ COLUMNER End Sub ' --- Retrive parameters for the drawing box --- @@ -318,41 +357,34 @@ Public Class GUI ' --- When user changes grating type --- Private Sub ComboBox_TypeChooser_TextChanged(sender As Object, e As EventArgs) Handles ComboBox_TypeChooser.TextChanged - gratingType = ComboBox_TypeChooser.Text ComboBox_Material.Enabled = True ComboBox_Material.Items.Clear() - Dim materialSheet As Excel.Worksheet - materialSheet = excelWB.Sheets("Material") + gratingType = ComboBox_TypeChooser.Text - Dim typeColumn As Integer - typeColumn = Get_ColumnIndex("TYPE", materialSheet) - - - Dim materialColumn As Integer - materialColumn = Get_ColumnIndex("MATERIAL", materialSheet) - - Dim typeInExcel As String - Dim rowCounter As Integer = 2 - typeInExcel = materialSheet.Cells(rowCounter, typeColumn).value - While typeInExcel <> "" - If gratingType = typeInExcel Then - ComboBox_Material.Items.Add(materialSheet.Cells(rowCounter, materialColumn).Value) + Dim materialDT As DataTable = dataBase("Material") + Dim typeColumn As Integer = Get_ColumnIndex("TYPE", materialDT) + Dim materialColumn As Integer = Get_ColumnIndex("MATERIAL", materialDT) + Dim typeInDT As String = materialDT.Rows(0)(typeColumn) + For i = 0 To materialDT.Rows.Count - 1 + If gratingType = materialDT.Rows(i)(typeColumn) Then + ComboBox_Material.Items.Add(materialDT.Rows(i)(materialColumn)) End If - rowCounter = rowCounter + 1 - typeInExcel = materialSheet.Cells(rowCounter, typeColumn).value - End While + Try + typeInDT = materialDT.Rows(i + 1)(typeColumn) + Catch ex As Exception + End Try + Next ComboBox_Material.Text = ComboBox_Material.Items(0) End Sub - Private Function Get_ColumnIndex(columnName As String, activeSheet As Excel.Worksheet) - Dim columnIndex As Integer = 0 - Dim columnCounter As Integer = 1 - While columnIndex = 0 - If activeSheet.Cells(1, columnCounter).value = columnName Then - columnIndex = activeSheet.Cells(1, columnCounter).column - + Private Function Get_ColumnIndex(columnName As String, activeDT As DataTable) + Dim columnIndex As Integer = -1 + Dim columnCounter As Integer = 0 + While columnIndex = -1 + If activeDT.Columns(columnCounter).ColumnName = columnName Then + columnIndex = columnCounter End If columnCounter = columnCounter + 1 End While @@ -360,61 +392,59 @@ Public Class GUI Return columnIndex End Function - ' --- When user changes grating material --- Private Sub ComboBox_Material_TextChanged(sender As Object, e As EventArgs) Handles ComboBox_Material.TextChanged ComboBox_MeshSize.Enabled = True - ComboBox_MeshSize.Items.Clear() gratingMaterial = ComboBox_Material.Text - Dim serratedSheet As Excel.Worksheet - serratedSheet = excelWB.Sheets("Serrated") + Dim serratedDT As DataTable = dataBase("Serrated") + Dim typeColumn As Integer = Get_ColumnIndex("TYPE", serratedDT) + Dim materialColumn As Integer = Get_ColumnIndex("MATERIAL", serratedDT) - Dim typeColumn As Integer - typeColumn = Get_ColumnIndex("TYPE", serratedSheet) - - - Dim materialColumn As Integer - materialColumn = Get_ColumnIndex("MATERIAL", serratedSheet) - - Dim typeInExcel As String - Dim materialInExcel As String Dim removeCheckBox As Boolean = True - Dim rowCounter As Integer = 2 - materialInExcel = serratedSheet.Cells(rowCounter, materialColumn).value - typeInExcel = serratedSheet.Cells(rowCounter, typeColumn).value + Dim typeInDT As String = serratedDT.Rows(0)(typeColumn) + Dim materialInDT As String = serratedDT.Rows(0)(materialColumn) If serratedCheckBoxBol = False Then - While typeInExcel <> "" - If gratingType = typeInExcel And gratingMaterial = materialInExcel Then - Dim serratedCheckBox As New CheckBox + For i = 0 To serratedDT.Rows.Count - 1 + If gratingType = typeInDT And gratingMaterial = materialInDT Then serratedCheckBox.Name = "CheckBox_Serrated" serratedCheckBox.Text = "Serrated" serratedCheckBox.Left = 115 serratedCheckBox.Top = 115 + AddHandler serratedCheckBox.CheckedChanged, AddressOf CheckBox_Serrated_CheckedChanged Me.Controls.Add(serratedCheckBox) serratedCheckBoxBol = True - Exit While + Exit For End If - rowCounter = rowCounter + 1 - typeInExcel = serratedSheet.Cells(rowCounter, typeColumn).value - materialInExcel = serratedSheet.Cells(rowCounter, materialColumn).value - End While + Try + typeInDT = serratedDT.Rows(i + 1)(typeColumn) + materialInDT = serratedDT.Rows(i + 1)(materialColumn) + Catch ex As Exception + End Try + Next Else - While typeInExcel <> "" - If gratingType = typeInExcel And gratingMaterial = materialInExcel Then + For i = 0 To serratedDT.Rows.Count - 1 + If gratingType = typeInDT And gratingMaterial = materialInDT Then removeCheckBox = False - Exit While + Exit For End If - rowCounter = rowCounter + 1 - typeInExcel = serratedSheet.Cells(rowCounter, typeColumn).value - materialInExcel = serratedSheet.Cells(rowCounter, materialColumn).value - End While + Try + typeInDT = serratedDT.Rows(i + 1)(typeColumn) + materialInDT = serratedDT.Rows(i + 1)(materialColumn) + Catch ex As Exception + End Try + Next If serratedCheckBoxBol = True And removeCheckBox = True Then + RemoveHandler serratedCheckBox.CheckedChanged, AddressOf CheckBox_Serrated_CheckedChanged Me.Controls.RemoveByKey("CheckBox_Serrated") serratedCheckBoxBol = False End If End If + ' UPDATE MESHES + + + ' Add Meshes If gratingType = "Pressure Welded" Then ComboBox_MeshSize.Items.Add("12x100 (B9)") 'Tillfällig @@ -434,6 +464,22 @@ Public Class GUI End If End Sub + + Private Sub CheckBox_Serrated_CheckedChanged(sender As Object, e As EventArgs) + If sender.Checked Then + ' UPDATE MESHES + Else + ' UPDATE MESHES + End If + End Sub + + Private Sub Update_AvalaibleMeshes() + ComboBox_MeshSize.Items.Clear() + + + ComboBox_MeshSize.Items.Add("12x100 (B9)") + End Sub + ' --- When user changes mesh size --- Private Sub ComboBox_MeshSize_TextChanged(sender As Object, e As EventArgs) Handles ComboBox_MeshSize.TextChanged ComboBox_Height.Enabled = True