Anonymouse Posted June 20, 2008 Share Posted June 20, 2008 (edited) I tried searching for this, but I don't even know how to explain it. Sorry. What I'm Attempting is this: I have a 5 combo boxes, they all read from an .ini (because they have to be edited after compilation) 4 Of the Combo boxes Selection Choices depend on the Selection choice of the 1st one. So, say Combo #1 has 2 different selections, "ABC" and "123" If you select "ABC" then the next 4 combo boxes will be filled with all 26 letters of the alphabet to choose from (read from ini section [ABC]) If you select "123" then numbers 1-26 will be listed (read from ini section [123]) ----------- So how would I go about this? expandcollapse popup#include <GUIConstantsEx.au3> #include <ExcelCOM_UDF.au3> Opt('MustDeclareVars', 1) Global $PAIGVEC, $PAICOS, $msg, $Company, $Export, $CI, $var1, $var2 Dim $combo[4], $b GUICreate("My GUI combo") $PAIGVEC = IniReadSection("C:\\myfile.ini", "GVEC-Assembly") $PAICOS = IniReadSection("C:\\myfile.ini", "COS-Assembly") $CI = IniReadSection("C:\\myfile.ini", "Company") $combo[0] = GuiCtrlCreateCombo("", 10, 10) $combo[1] = GuiCtrlCreateCombo("", 10, 50) $combo[2] = GuiCtrlCreateCombo("", 10, 90) $combo[3] = GuiCtrlCreateCombo("", 10, 130) $Company = GUICtrlCreateCombo("", 10, 250) $Export = GuiCtrlCreateButton("Excel", 10, 170) For $a = 1 To $CI[0][0] GUICtrlSetData($Company, $CI[$a][1]) Next GUISetState() $var1 = IniRead("C:\myfile.ini", "Company", "C1", "NotFound") $var2 = IniRead("C:\myfile.ini", "Company", "C2", "NotFound") If $Company = $var1 Then For $a = 1 To $PAIGVEC[0][0] For $b = 0 To Ubound($combo) -1 GUICtrlSetData($combo[$b], $PAIGVEC[$a][1]) Next Next GUISetState() ElseIf $Company = $var2 Then For $a = 1 To $PAICOS[0][0] For $b = 0 To Ubound($combo) -1 GUICtrlSetData($combo[$b], $PAICOS[$a][1]) Next Next GUISetState() EndIf While 1 $msg = GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE Exit Case $Export _Export() EndSwitch WEnd Func _Export() Dim $PAU0, $PAU1, $PAU2, $PAU3 $PAU0 = GUICtrlRead($combo[0]) $PAU1 = GUICtrlRead($combo[1]) $PAU2 = GUICtrlRead($combo[2]) $PAU3 = GUICtrlRead($combo[3]) Local $oExcel = _ExcelBookOpen("C:\Documents and Settings\Nicker\Desktop\template.xls") _ExcelWriteCell($oExcel, "Unit 1", 13, 1) _ExcelWriteCell($oExcel, $PAU1, 14, 1) _ExcelWriteCell($oExcel, $PAU2, 15, 1) _ExcelWriteCell($oExcel, $PAU3, 16, 1) EndFunc Sorry if this is difficult to understand, let me know if you need anymore information. Edited June 20, 2008 by Anonymouse children may smile; the wise ponder- Dr. Holmes of Hardvard Medical School on an Ether BingeLove Makes The World Go Round?So does five shots of tequila. What's your point?[quote name='Valik' date='Jun 5 2008, 05:13 PM']wraithdu, 24 hours. Said I have a bad attitude, just driving the point home with a ban.[/quote]This is classic. :) Link to comment Share on other sites More sharing options...
enaiman Posted June 20, 2008 Share Posted June 20, 2008 (edited) Create a function using the following logic: Func Combo1Change() ; function called when something is changing in the combobox Select Case GUICtrlRead($combo1) = "ABC" ;set data in the other 4 combo's (A,B,C, ...) Case GUICtrlRead($combo1) = "123" ;set data in the other 4 combo's (1,2,3, ...) Case Else MsgBox(0, "Error", "Unknown Content") EndSelect EndFunc You will have to create a new Case for each different content. This is all you need; you will work a little on it but that's the idea. Edited June 20, 2008 by enaiman SNMP_UDF ... for SNMPv1 and v2c so far, GetBulk and a new example script wannabe "Unbeatable" Tic-Tac-Toe Paper-Scissor-Rock ... try to beat it anyway :) Link to comment Share on other sites More sharing options...
Linux Posted June 20, 2008 Share Posted June 20, 2008 hi! where does the #include <ExcelCOM_UDF.au3> comes from? also, use [ autoit ] and [ / autoit ] tags to put the code in a small block. Global $Value, $index,$tempString While 1 $msg = GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE Exit Case $Export _Export() case $combo[0];if combo is used ;read Value from combo $Value = GUICtrlRead($combo[0]) If $Value = "123" Then $tempString = "" for $index = 1 to 26 ;one example $tempString = $tempString & $index & "|" Next ;trim the last "|" $tempString = StringTrimRight($tempString,1) for $index = 1 to 3 GUICtrlSetData($combo[$index],"");Clean GUICtrlSetData($combo[$index],$tempString,"1");fill the combos Next Elseif $Value = "ABC" Then for $index = 1 to 3 ;other example GUICtrlSetData($combo[$index],"");Clean GUICtrlSetData($combo[$index],"A|B|C|D|E|F|G|H","A") Next EndIf EndSwitch WEnd hope it helps You can help! Donate to AutoIt! or, visit ClimatePREDICTION.netMy posts:Travian Bot Example (100+ servers) BETAHow to Host you code/app for free! (unlimited team number) (Public or Private)"Sir, we're surrounded!" "Excellent. We can attack in any direction!" Link to comment Share on other sites More sharing options...
Anonymouse Posted June 20, 2008 Author Share Posted June 20, 2008 (edited) http://www.autoitscript.com/forum/index.ph...02&hl=excelfor the excel UDF made by:SEO aka Locodarwin, DaLiMan, Stanley Lim, MikeOsdx, MRDev, big_daddy, PsaltyDSAlso, thank both of you. I understand more and more every day, I think writing and reading code for hours on end tends to make me overlook simple solutions -.-[Edit] I don't use autoit tags because I've seen people complain about them on occasion[/edit] Edited June 20, 2008 by Anonymouse children may smile; the wise ponder- Dr. Holmes of Hardvard Medical School on an Ether BingeLove Makes The World Go Round?So does five shots of tequila. What's your point?[quote name='Valik' date='Jun 5 2008, 05:13 PM']wraithdu, 24 hours. Said I have a bad attitude, just driving the point home with a ban.[/quote]This is classic. :) Link to comment Share on other sites More sharing options...
Anonymouse Posted June 20, 2008 Author Share Posted June 20, 2008 (edited) [solved] Sorta... I had to add a button to make it functional, is there any other way? Anyways, here is final code - just in case it's helpful to anyone searching the forums. expandcollapse popup#include <GUIConstantsEx.au3> #include <ExcelCOM_UDF.au3> Opt('MustDeclareVars', 1) Global $PAIGVEC, $PAICOS, $msg, $Company, $Export, $CI, $var1, $var2, $Select, $Value Dim $combo[4], $b GUICreate("My GUI combo") $PAIGVEC = IniReadSection("C:\\myfile.ini", "GVEC-Assembly") $PAICOS = IniReadSection("C:\\myfile.ini", "COS-Assembly") $CI = IniReadSection("C:\\myfile.ini", "Company") $combo[0] = GuiCtrlCreateCombo("", 10, 10) $combo[1] = GuiCtrlCreateCombo("", 10, 50) $combo[2] = GuiCtrlCreateCombo("", 10, 90) $combo[3] = GuiCtrlCreateCombo("", 10, 130) $Company = GUICtrlCreateCombo("", 10, 250) $Export = GuiCtrlCreateButton("Excel", 10, 170) $Select = GuiCtrlCreateButton("Select", 50, 170) For $a = 1 To $CI[0][0] GUICtrlSetData($Company, $CI[$a][1]) Next GUISetState() While 1 $msg = GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE Exit Case $Export _Export() Case $Select For $b = 0 To Ubound($combo) -1 GUICtrlSetData($combo[$b], "") Next GUISetState() $var1 = IniRead("C:\myfile.ini", "Company", "C1", "NotFound") $var2 = IniRead("C:\myfile.ini", "Company", "C2", "NotFound") $Value = GUICtrlRead($Company) If $Value = $var1 Then For $a = 1 To $PAIGVEC[0][0] For $b = 0 To Ubound($combo) -1 GUICtrlSetData($combo[$b], $PAIGVEC[$a][1]) Next Next GUISetState() Elseif $Value = $var2 Then For $a = 1 To $PAICOS[0][0] For $b = 0 To Ubound($combo) -1 GUICtrlSetData($combo[$b], $PAICOS[$a][1]) Next Next GUISetState() EndIf EndSwitch WEnd Func _Export() Dim $PAU0, $PAU1, $PAU2, $PAU3 $PAU0 = GUICtrlRead($combo[0]) $PAU1 = GUICtrlRead($combo[1]) $PAU2 = GUICtrlRead($combo[2]) $PAU3 = GUICtrlRead($combo[3]) Local $oExcel = _ExcelBookOpen("C:\template.xls") _ExcelWriteCell($oExcel, "Unit 1", 13, 1) _ExcelWriteCell($oExcel, $PAU1, 14, 1) _ExcelWriteCell($oExcel, $PAU2, 15, 1) _ExcelWriteCell($oExcel, $PAU3, 16, 1) EndFunc Edited June 20, 2008 by Anonymouse children may smile; the wise ponder- Dr. Holmes of Hardvard Medical School on an Ether BingeLove Makes The World Go Round?So does five shots of tequila. What's your point?[quote name='Valik' date='Jun 5 2008, 05:13 PM']wraithdu, 24 hours. Said I have a bad attitude, just driving the point home with a ban.[/quote]This is classic. :) Link to comment Share on other sites More sharing options...
solistic Posted August 9, 2008 Share Posted August 9, 2008 (edited) I don't know if it will help, but I recently wrote a small demo of dependent combo boxes:http://www.autoitscript.com/forum/index.php?showtopic=77915 Edited August 9, 2008 by solistic Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now