trdunsworth Posted November 21, 2014 Posted November 21, 2014 I'm working on a program with a colleague. He wants to create a function which takes 3 parameters and then loop through two arrays which I think we can do well enough. However, we want this to be attached to a GUI form we've built so when the user clicks a button, it will invoke the function which then takes the local variables as the parameters for the function and executes it. I know that GUICtrlSetOnEvent can't take parameters, but is there a way to get around this and make this work?
Jfish Posted November 21, 2014 Posted November 21, 2014 Sounds like you just need to wire that button to the function and pass the function the parameters. Are the parameters coming from your GUI's input? Build your own poker game with AutoIt: pokerlogic.au3 | Learn To Program Using FREE Tools with AutoIt
Moderators JLogan3o13 Posted November 21, 2014 Moderators Posted November 21, 2014 Jfish is correct, but you're going to have to provide us with some sort of reproducer - even just the shell of your GUI - in order for us to be of assistance. Help us help you "Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball How to get your question answered on this forum!
trdunsworth Posted November 21, 2014 Author Posted November 21, 2014 expandcollapse popup#include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <EditConstants.au3> #include <WindowsConstants.au3> #include <DateTimeConstants.au3> #include <IE.au3> #include <InetConstants.au3> #include <StringConstants.au3> #include <FileConstants.au3> #include <Excel.au3> #include <MsgBoxConstants.au3> Opt('GUIOnEventMode', 1) GUICreate("JCSO NCIC Entry", 1500, 900) GUISetOnEvent($GUI_EVENT_CLOSE, 'GUIExit') Global $sFont = "Calibri" ;LICENSE VARIABLES Global $FLmke Global $FLori Global $FLlic Global $FLlis Global $FLliy Global $FLlit Global $FLdot Global $FLoca Global $FLnic Global $FLlki Global $FLlka Global $FLnoa Global $FLmis Global $FLdor Global $FLofc Global $FLdoe Global $FLop1 Global $FLdo2 Global $FLop2 Global $FLdom Global $FLop3 Global $FLdoc Global $FLop4 ;Menu Creation Local $filemenu = GUICtrlCreateMenu("&File") Local $helpmenu = GUICtrlCreateMenu("?") Local $openItem = GUICtrlCreateMenuItem("&Open", $filemenu) Local $saveItem = GUICtrlCreateMenuItem("&Save", $filemenu) Local $infoItem = GUICtrlCreateMenuItem("Info", $helpmenu) Local $exitItem = GUICtrlCreateMenuItem("E&xit", $filemenu) ;Tab Creation GUICtrlCreateTab(0,0,1500,880) ;Create the License Plate Tab GUICtrlCreateTabItem("License Plate") ;Create the form labels GUICtrlCreateLabel("Message Key (MKE)", 20, 40, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Originating Agency (ORI)", 20, 80, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("License Plate No. (LIC)", 20, 120, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("License Plate St. (LIS)", 20, 160, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Expiration Year (LIY)", 20, 200, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("License Plate Type (LIT)", 20, 240, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Date of Theft (DOT)", 20, 280, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Case Number (OCA)", 20, 320, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("NCIC Number (NIC)", 20, 360, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Linking Agency Id (LKI)", 20, 400, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Linking Case Number (LKA)", 20, 440, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Notify Originating Agency (NOA)", 20, 480, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Miscellaneous Info (MIS)", 20, 520, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("ENTRY & SECOND PARTY CHECK", 550, 40, 200, 75) GUICtrlSetFont(-1, 10, 700, 6, $sFont, 5) GUICtrlCreateLabel("", 500, 60, 200, 75) GUICtrlCreateLabel("Date Received", 500, 80, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Date of Entry", 500, 160, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Date of Second Party Check", 500, 240, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Modify Date", 500, 320, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Clear, Cancel, or Locate Date", 500, 400, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Officer/Agency", 500, 120, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Operator", 500, 200, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Operator", 500, 280, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Operator", 500, 360, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Operator", 500, 440, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) ;Create the Input parameters $FLmke = GUICtrlCreateCombo("", 225, 40, 200, 25) $FLori = GUICtrlCreateInput("", 225, 80, 200, 25) $FLlic = GUICtrlCreateInput("", 225, 120, 200, 25) $FLlis = GUICtrlCreateCombo("", 225, 160, 200, 25) $FLliy = GUICtrlCreateInput("", 225, 200, 200, 25) $FLlit = GUICtrlCreateCombo("", 225, 240, 200, 25) $FLdot = GUICtrlCreateDate("", 225, 280, 200, 25, $DTS_SHORTDATEFORMAT) $FLoca = GUICtrlCreateInput("", 225, 320, 200, 25) $FLnic = GUICtrlCreateInput("", 225, 360, 200, 25) $FLlki = GUICtrlCreateInput("", 225, 400, 200, 25) $FLlka = GUICtrlCreateInput("", 225, 440, 200, 25) $FLnoa = GUICtrlCreateInput("", 225, 480, 200, 25) $FLmis = GUICtrlCreateInput("", 225, 520, 200, 150) $FLdor = GUICtrlCreateDate("", 675, 80, 200, 25, $DTS_SHORTDATEFORMAT) $FLofc = GUICtrlCreateInput("", 675, 120, 200, 25) $FLdoe = GUICtrlCreateDate("", 675, 160, 200, 25, $DTS_SHORTDATEFORMAT) $FLop1 = GUICtrlCreateInput("", 675, 200, 200, 25) $FLdo2 = GUICtrlCreateDate("", 675, 240, 200, 25, $DTS_SHORTDATEFORMAT) $FLop2 = GUICtrlCreateInput("", 675, 280, 200, 25) $FLdom = GUICtrlCreateDate("", 675, 320, 200, 25, $DTS_SHORTDATEFORMAT) $FLop3 = GUICtrlCreateInput("", 675, 360, 200, 25) $FLdoc = GUICtrlCreateDate("", 675, 400, 200, 25, $DTS_SHORTDATEFORMAT) $FLop4 = GUICtrlCreateInput("", 675, 440, 200, 25) Local $mke Local $ori Local $lic Local $lis Local $liy Local $lit Local $dot Local $oca Local $lki Local $lka Local $noa Local $mis Local $nic Local $dor Local $ofc Local $doe Local $op1 Local $do2 Local $op2 Local $dom Local $op3 Local $doc Local $op4 ;Fill the Combo Box data GUICtrlSetData($FLlis, $stateList) GUICtrlSetData($FLlit, $ptList) GUICtrlSetData($FLmke, $catList) Local $oFileName = "StolenPlate" Local $aInputVal[23] = [$mke, $ori, $lic, $lis, $liy, $lit, $dot, $oca, $lki, $lka, $noa, $mis, $nic, $dor, $ofc, $doe, $op1, $do2, $op2, $dom, $op3, $doc, $op4] Local $aInputLoc[23] = ["C3","C5","C7","C9","C11","C13","C15","F3","F5","F7","F9","F11","F13","C21","F21","C22","F22","C23","F23","C24","F24","C25","F25"] ;Button 1 GUICtrlCreateButton("REJIS Entry", 1390, 760, 100, 30) GUICtrlSetOnEvent(-1, 'PlateToRejis') ;Button 2 GUICtrlCreateButton("Print Preview", 1390, 800, 100, 30) ;GUICtrlSetOnEvent(-1, "TempForm") Func TempForm($oFileName, $aInpulVal, $aInputLoc) ;**************************************************************************** ; CREATE TEM FORM FROM CALLED DEFAULT FORM, RENAME, AND SAVE ;**************************************************************************** Local $oTempFile = $oFileName&@ComputerName&@MDAY&@HOUR&@MIN&@SEC ;Create application object and open example workbook Local $oAppl = _Excel_Open(False) ;If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookSaveAs Example", "Error creating the Excel application object.", & @CRLF & "@error = " & @error & ", @extended = " & @extended) Local $oWorkbook = _Excel_BookOpen($oAppl, @ScriptDir & "\"&$oFileName&".xlsx") If @error Then MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookSaveAs Example", "Error opening workbook '" & @ScriptDir & "\Forms\"&$oFileName&".xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oAppl) Exit EndIf ;**************************************************************************** ; SAVE THE WORKBOOK (xlsx) TO ANOTHER DIRECTORY AND OPEN ;**************************************************************************** Local $sWorkbook = @ScriptDir&"\archive\"&$oTempFile&".xlsx" _Excel_BookSaveAs($oWorkbook, $sWorkbook) If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookSaveAs Example 1", "Error saving workbook to '" & $sWorkbook & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_BookClose($oWorkBook) OpnWrt($oTempFile,$aInputVal,$aInputLoc) EndFunc Func OpnWrt($oFileName, $aInputVal, $aInputLoc) ; Create application object and open example workbook Local $oAppl = _Excel_Open() If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookSaveAs Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended) Local $oWorkbook = _Excel_BookOpen($oAppl, @ScriptDir & "\archive\"&$oFileName&".xlsx") If @error Then MsgBox($MB_SYSTEMMODAL, "Open Temp Doc", "Error opening workbook '" & @ScriptDir & "\Forms\"&$oFileName&".xlsx'." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oAppl) Exit EndIf ;**************************************************************************** ; WRITE DATA FROM GUI TO TEMP EXCEL DOC ;**************************************************************************** For $a = 0 to UBound($aInputVal) -1 _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aInputVal[$a], $aInputLoc[$a]) Next If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Example 3", "Error writing to worksheet." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_BookSave($oWorkBook) $oAppl = _Excel_Open() EndFunc Ok, that's a bit long, but it's the shell of the GUI function. The PlateToRejis function works fine so is not included. I've wondered if we even need to put the parameters in the function or just let them get called as they are
Jfish Posted November 21, 2014 Posted November 21, 2014 (edited) A working shell would be better ... I see two functions with three parameters: TempForm($oFileName, $aInpulVal, $aInputLoc) and OpnWrt($oFileName, $aInputVal, $aInputLoc) You would need to tie one or both of them to the desired buttons and make sure the parameters being supplied have the appropriate scope so they can be read when called as part of the function. Edited November 21, 2014 by Jfish Build your own poker game with AutoIt: pokerlogic.au3 | Learn To Program Using FREE Tools with AutoIt
trdunsworth Posted November 21, 2014 Author Posted November 21, 2014 Sorry the whole thing is several hundred lines. So I was trying to edit for time purposes. I figured you wouldn't want to read some of the other stuff in there. The second function is called in the first above it. (Not my code, I'm incorporating the other code and trying to finish off the wiring. expandcollapse popup#include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <EditConstants.au3> #include <WindowsConstants.au3> #include <DateTimeConstants.au3> #include <IE.au3> #include <InetConstants.au3> #include <StringConstants.au3> #include <FileConstants.au3> #include <Excel.au3> #include <MsgBoxConstants.au3> ; Changes to OnEvent Mode Opt('GUIOnEventMode', 1) AutoItSetOption("WinTitleMatchMode",2) AutoItSetOption("MouseCoordMode", 2) GUICreate("JCSO NCIC Entry", 1500, 900) GUISetOnEvent($GUI_EVENT_CLOSE, 'GUIExit') GUISetIcon("icon.ico") Global $sFont = "Calibri" ;LICENSE VARIABLES Global $FLmke Global $FLori Global $FLlic Global $FLlis Global $FLliy Global $FLlit Global $FLdot Global $FLoca Global $FLnic Global $FLlki Global $FLlka Global $FLnoa Global $FLmis Global $FLdor Global $FLofc Global $FLdoe Global $FLop1 Global $FLdo2 Global $FLop2 Global $FLdom Global $FLop3 Global $FLdoc Global $FLop4 ;MISSING PERSON VARIABLES Global $FMmke Global $FMori Global $FMdlc Global $FMoca Global $FMmnp Global $FMmpc Global $FMnoa Global $FMnam Global $FMsex Global $FMrac Global $FMpob Global $FMdob Global $FMhgt Global $FMwgt Global $FMeye Global $FMhai Global $FMfbi Global $FMskn Global $FMsmt Global $FMfpc Global $FMmnu Global $FMsoc Global $FMdna Global $FMdlo Global $FMcmc Global $FMctz Global $FMbxr Global $FMcrc Global $FMvrx Global $FMblt Global $FMfpa Global $FMoln Global $FMols Global $FMoly Global $FMlic Global $FMlis Global $FMliy Global $FMlit Global $FMvin Global $FMvyr Global $FMvma Global $FMvst Global $FMvco Global $FMlki Global $FMlka Global $FMjwl Global $FMjwt Global $FMmis Global $FMnic Global $FMdor Global $FMdoe Global $FMdo2 Global $FMdom Global $FMdoc Global $FMofc Global $FMop1 Global $FMop2 Global $FMop3 Global $FMop4 ;WARRANTS VARIABLES Global $FWmke Global $FWori Global $FWnam Global $FWsex Global $FWrac Global $FWpob Global $FWdob Global $FWhgt Global $FWwgt Global $FWeye Global $FWhai Global $FWfbi Global $FWskn Global $FWsmt Global $FWfpc Global $FWmnu Global $FWsoc Global $FWdna Global $FWdno Global $FWcmc Global $FWctz Global $FWetn Global $FWoff Global $FWdow Global $FWoca Global $FWwno Global $FWcti Global $FWnoa Global $FWexl Global $FWado Global $FWlki Global $FWlka Global $FWoln Global $FWols Global $FWoly Global $FWlic Global $FWlis Global $FWliy Global $FWlit Global $FWvin Global $FWvyr Global $FWvma Global $FWvmo Global $FWvst Global $FWvco Global $FWfnam Global $FWfdob Global $FWfsoc Global $FWfmnu Global $FWfoln Global $FWfols Global $FWfoly Global $FWadd Global $FWdda Global $FWsnu Global $FWsna Global $FWcty Global $FWsta Global $FWzip Global $FWcou Global $FWmis Global $FWocc Global $FWnic Global $FWdor Global $FWdoe Global $FWdo2 Global $FWdom Global $FWdoc Global $FWofc Global $FWop1 Global $FWop2 Global $FWop3 Global $FWop4 ; PROTECTION ORDER VARIABLES Global $FPmke Global $FPori Global $FPnam Global $FPsex Global $FPrac Global $FPpob Global $FPdob Global $FPhgt Global $FPwgt Global $FPeye Global $FPhai Global $FPfbi Global $FPskn Global $FPetn Global $FPsmt Global $FPfpc Global $FPmnu Global $FPsoc Global $FPdna Global $Fpdlo Global $FPcmc Global $FPctz Global $FPpco Global $FPbrd Global $FPisd Global $FPoca Global $FPpno Global $FPexp Global $FPcti Global $FPnoa Global $FPoln Global $FPols Global $FPoly Global $FPlic Global $FPlis Global $FPliy Global $FPlit Global $FPvin Global $FPvyr Global $FPvmo Global $FPvst Global $FPvco Global $FPpnam Global $FPpdob Global $FPpsex Global $FPprac Global $FPpsoc Global $FPmis Global $FPnic Global $FPdor Global $FPdoe Global $FPdo2 Global $FPdom Global $FPdoc Global $FPofc Global $FPop1 Global $FPop2 Global $FPop3 Global $FPop4 ; VEHICLE VARIABLES Global $FVmke Global $FVori Global $FVdot Global $FVoca Global $FVoan Global $FVopt Global $FVlic Global $FVlis Global $FVliy Global $FVlit Global $FVvin Global $FVvyr Global $FVvma Global $FVvmo Global $FVvst Global $FVvco Global $FVnoa Global $FVlki Global $FVlka Global $FVimn Global $FVimt Global $FVnic Global $FVdor Global $FVdoe Global $FVdo2 Global $FVdom Global $FVdoc Global $FVofc Global $FVop1 Global $FVop2 Global $FVop3 Global $FVop4 ; DROP DOWN ARRAYS Global $stateArray[66] = ["Alabama", "Alaska", "Alberta", "Arizona", "Arkansas", "British Columbia", "California", "Colorado", "Connecticut", "Delaware", "District of Columbia", "Florida", "Georgia", "Gov't Plate", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Manitoba", "Maryland", "Massachusets", "Mexico", "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska", "Nevada", "New Brunswick", "Newfoundland & Labrador", "New Hampshire", "New Jersey", "New Mexico", "New York", "North Carolina", "North Dakota", "Northwest Territories", "Nova Scotia", "Ohio", "Oklahoma", "Ontario", "Oregon", "Pennsylvania", "Prince Edward Island", "Quebec", "Rhode Island", "Saskatchewan", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington", "West Virginia", "Wisconsin", "Wyoming", "Yukon Territory", "Other"] Global $ptArray[29] = ["Passenger Car", "Personalized", "Ambulance", "Antique", "Apportioned", "Profession", "Legislator", "Justice", "Law Enforcement", "Handicapped", "Organization", "Motorcycle", "Truck-Tractor", "Trailer (all)", "Disabled Veteran", "Dealer (Auto)", "Doctor", "Amateur Radio", "College", "Temporary", "State Owned", "County", "Municipal", "Taxi", "U.S. Govt. Vehicle", "Truck", "Military Vehicle", "Manufacturer", "POW"] Global $raceArray[7] = ["Alaskan Native", "American Indian", "Asian", "Black", "Pacific Islander", "Unkown", "White"] Global $categoryArray[3] = ["Stolen/Missing Lic (All Issued) - 14", "Stolen/Missing Lic (Single Place) - 15", "Lost License/Tag - 16"] Global $missingArray[8] = ["Catastrophe Victim", "Contact Witness Program", "Disappearance Involuntary", "Juvenile Other (13-17 yoa)", "Adult Other (specify in remarks)", "Physically or Mentally Disabled", "Physical Safety Endangered", "Walkaway"] Global $sexArray[3] = ["Male", "Female", "Unknown"] Global $eyeArray[10] = ["Black", "Blue", "Brown", "Green", "Grey", "Hazel", "Maroon", "Multi Color", "Pink", "Unknown"] Global $hairArray[13] = ["Black", "Blond-Strawberry", "Blue", "Brown", "Green", "Grey", "Orange", "Pink", "Purple", "Red or Auburn", "Sandy", "White", "Unknown"] Global $skinArray[13] = ["Albino", "Black", "Dark", "Dark Brown", "Fair", "Light", "Light Brown", "Medium Brown", "Medium", "Olive", "Ruddy", "Sallow", "Yellow"] Global $extrArray[10] = ["Full Extradition - (1)", "Limited U.S Extradition - (2)", "Extradition - Surrounding States Only - (3)", "Extradition Limited Missouri Only - (4)", "Pending Extradition - (5)", "Intrastate (Entire State) - (S)", "Partial Intrastate - (P)", "Adjoining Counties - (C)", "Greater Metro Area(Local area) - (L)", "No Extradition - (N)"] Global $cmcArray[16] = ["Alcoholic", "Allergies", "Armed and Dangerous", "Diabetic", "Epilepsy", "Escape Risk", "Explosives Expertise", "Heart Condition", "Hemophiliac", "Known to Abuse Drugs", "Martial Arts Expertise", "Medication Required", "Other - Enter Caution Description", "Sexually Violent Predator", "Suicidal", "Violent Tendencies"] Global $rgbArray[34] = ["Amethyst (purple)", "Beige", "Black", "Blue", "Bronze", "Brown", "Burgundy (purple)", "Camouflage", "Chrome", "Copper", "Cream", "Dark Blue", "Gold", "Gray", "Green", "Dark Green", "Light Green", "Ivory", "Lavendar (purple)", "Light Blue", "Maroon", "Mauve (purple)", "Multicolored", "Orange", "Pink", "Purple", "Red", "Silver", "Tan", "Taupe (brown)", "Teal (green)", "Turquoise (blue)", "White", "Yellow"] Global $vcatArray[8] = ["Failure To Return-41","Miscellaneous-45","Owner Forgot Where Parked-42","Repossessed-60","Stolen Vehicle-10","Wanted Felony-20","Wanted Misdemeanor-21","Wanted Ordinance-22"] $stateList = "" For $i = 0 To UBound($stateArray,1) -1 $stateList &= "|" & $stateArray[$i] Next $ptList = "" For $j = 0 To UBound($ptArray,1) -1 $ptList &= "|" & $ptArray[$j] Next $raceList = "" For $k = 0 to UBound($raceArray,1) -1 $raceList &= "|" & $raceArray[$k] Next $catList = "" For $l = 0 to UBound($categoryArray,1) -1 $catList &= "|" & $categoryArray[$l] Next $missList = "" For $m = 0 to UBound($missingArray,1) -1 $missList &= "|" & $missingArray[$m] Next $sexList = "" For $n = 0 to UBound($sexArray,1) -1 $sexList &= "|" & $sexArray[$n] Next $eyeList = "" For $o = 0 to UBound($eyeArray,1) -1 $eyeList &= "|" & $eyeArray[$o] Next $hairList = "" For $p = 0 to UBound($hairArray, 1) -1 $hairList &= "|" & $hairArray[$p] Next $skinList = "" For $q = 0 to UBound($skinArray, 1) -1 $skinList &= "|" & $skinArray[$q] Next $extrList = "" For $r = 0 to UBound($extrArray, 1) -1 $extrList &= "|" & $extrArray[$r] Next $cmcList = "" For $s = 0 to UBound($cmcArray, 1) -1 $cmcList &= "|" & $cmcArray[$s] Next $rgbList = "" For $t = 0 to UBound($rgbArray, 1) -1 $rgbList &= "|" & $rgbArray[$t] Next $vcatList = "" For $u = 0 to UBound($vcatArray, 1) -1 $vcatList &= "|" & $vcatArray[$u] Next ;Menu Creation Local $filemenu = GUICtrlCreateMenu("&File") Local $helpmenu = GUICtrlCreateMenu("?") Local $openItem = GUICtrlCreateMenuItem("&Open", $filemenu) Local $saveItem = GUICtrlCreateMenuItem("&Save", $filemenu) Local $infoItem = GUICtrlCreateMenuItem("Info", $helpmenu) Local $exitItem = GUICtrlCreateMenuItem("E&xit", $filemenu) ;Tab Creation GUICtrlCreateTab(0,0,1500,880) ;Create the License Plate Tab GUICtrlCreateTabItem("License Plate") ;Create the form labels GUICtrlCreateLabel("Message Key (MKE)", 20, 40, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Originating Agency (ORI)", 20, 80, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("License Plate No. (LIC)", 20, 120, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("License Plate St. (LIS)", 20, 160, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Expiration Year (LIY)", 20, 200, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("License Plate Type (LIT)", 20, 240, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Date of Theft (DOT)", 20, 280, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Case Number (OCA)", 20, 320, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("NCIC Number (NIC)", 20, 360, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Linking Agency Id (LKI)", 20, 400, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Linking Case Number (LKA)", 20, 440, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Notify Originating Agency (NOA)", 20, 480, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Miscellaneous Info (MIS)", 20, 520, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("ENTRY & SECOND PARTY CHECK", 550, 40, 200, 75) GUICtrlSetFont(-1, 10, 700, 6, $sFont, 5) GUICtrlCreateLabel("", 500, 60, 200, 75) GUICtrlCreateLabel("Date Received", 500, 80, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Date of Entry", 500, 160, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Date of Second Party Check", 500, 240, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Modify Date", 500, 320, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Clear, Cancel, or Locate Date", 500, 400, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Officer/Agency", 500, 120, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Operator", 500, 200, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Operator", 500, 280, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Operator", 500, 360, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Operator", 500, 440, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) ;Create the Input parameters $FLmke = GUICtrlCreateCombo("", 225, 40, 200, 25) $FLori = GUICtrlCreateInput("", 225, 80, 200, 25) $FLlic = GUICtrlCreateInput("", 225, 120, 200, 25) $FLlis = GUICtrlCreateCombo("", 225, 160, 200, 25) $FLliy = GUICtrlCreateInput("", 225, 200, 200, 25) $FLlit = GUICtrlCreateCombo("", 225, 240, 200, 25) $FLdot = GUICtrlCreateDate("", 225, 280, 200, 25, $DTS_SHORTDATEFORMAT) $FLoca = GUICtrlCreateInput("", 225, 320, 200, 25) $FLnic = GUICtrlCreateInput("", 225, 360, 200, 25) $FLlki = GUICtrlCreateInput("", 225, 400, 200, 25) $FLlka = GUICtrlCreateInput("", 225, 440, 200, 25) $FLnoa = GUICtrlCreateInput("", 225, 480, 200, 25) $FLmis = GUICtrlCreateInput("", 225, 520, 200, 150) $FLdor = GUICtrlCreateDate("", 675, 80, 200, 25, $DTS_SHORTDATEFORMAT) $FLofc = GUICtrlCreateInput("", 675, 120, 200, 25) $FLdoe = GUICtrlCreateDate("", 675, 160, 200, 25, $DTS_SHORTDATEFORMAT) $FLop1 = GUICtrlCreateInput("", 675, 200, 200, 25) $FLdo2 = GUICtrlCreateDate("", 675, 240, 200, 25, $DTS_SHORTDATEFORMAT) $FLop2 = GUICtrlCreateInput("", 675, 280, 200, 25) $FLdom = GUICtrlCreateDate("", 675, 320, 200, 25, $DTS_SHORTDATEFORMAT) $FLop3 = GUICtrlCreateInput("", 675, 360, 200, 25) $FLdoc = GUICtrlCreateDate("", 675, 400, 200, 25, $DTS_SHORTDATEFORMAT) $FLop4 = GUICtrlCreateInput("", 675, 440, 200, 25) Local $mke Local $ori Local $lic Local $lis Local $liy Local $lit Local $dot Local $oca Local $lki Local $lka Local $noa Local $mis Local $nic Local $dor Local $ofc Local $doe Local $op1 Local $do2 Local $op2 Local $dom Local $op3 Local $doc Local $op4 ;Fill the Combo Box data GUICtrlSetData($FLlis, $stateList) GUICtrlSetData($FLlit, $ptList) GUICtrlSetData($FLmke, $catList) Local $oFileName = "StolenPlate" Local $aInputVal[23] = [$mke, $ori, $lic, $lis, $liy, $lit, $dot, $oca, $lki, $lka, $noa, $mis, $nic, $dor, $ofc, $doe, $op1, $do2, $op2, $dom, $op3, $doc, $op4] Local $aInputLoc[23] = ["C3","C5","C7","C9","C11","C13","C15","F3","F5","F7","F9","F11","F13","C21","F21","C22","F22","C23","F23","C24","F24","C25","F25"] ;Button 1 GUICtrlCreateButton("REJIS Entry", 1390, 760, 100, 30) GUICtrlSetOnEvent(-1, 'PlateToRejis') ;Button 2 GUICtrlCreateButton("Print Preview", 1390, 800, 100, 30) ;GUICtrlSetOnEvent(-1, "TempForm") Func TempForm($oFileName, $aInpulVal, $aInputLoc) ;**************************************************************************** ; CREATE TEM FORM FROM CALLED DEFAULT FORM, RENAME, AND SAVE ;**************************************************************************** Local $oTempFile = $oFileName&@ComputerName&@MDAY&@HOUR&@MIN&@SEC ;Create application object and open example workbook Local $oAppl = _Excel_Open(False) ;If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookSaveAs Example", "Error creating the Excel application object.", & @CRLF & "@error = " & @error & ", @extended = " & @extended) Local $oWorkbook = _Excel_BookOpen($oAppl, @ScriptDir & "\"&$oFileName&".xlsx") If @error Then MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookSaveAs Example", "Error opening workbook '" & @ScriptDir & "\Forms\"&$oFileName&".xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oAppl) Exit EndIf ;**************************************************************************** ; SAVE THE WORKBOOK (xlsx) TO ANOTHER DIRECTORY AND OPEN ;**************************************************************************** Local $sWorkbook = @ScriptDir&"\archive\"&$oTempFile&".xlsx" _Excel_BookSaveAs($oWorkbook, $sWorkbook) If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookSaveAs Example 1", "Error saving workbook to '" & $sWorkbook & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_BookClose($oWorkBook) OpnWrt($oTempFile,$aInputVal,$aInputLoc) EndFunc Func OpnWrt($oFileName, $aInputVal, $aInputLoc) ; Create application object and open example workbook Local $oAppl = _Excel_Open() If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookSaveAs Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended) Local $oWorkbook = _Excel_BookOpen($oAppl, @ScriptDir & "\archive\"&$oFileName&".xlsx") If @error Then MsgBox($MB_SYSTEMMODAL, "Open Temp Doc", "Error opening workbook '" & @ScriptDir & "\Forms\"&$oFileName&".xlsx'." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oAppl) Exit EndIf ;**************************************************************************** ; WRITE DATA FROM GUI TO TEMP EXCEL DOC ;**************************************************************************** For $a = 0 to UBound($aInputVal) -1 _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aInputVal[$a], $aInputLoc[$a]) Next If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Example 3", "Error writing to worksheet." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_BookSave($oWorkBook) $oAppl = _Excel_Open() EndFunc Func PlateToRejis() Local $mke = GUICtrlRead($FLmke) Local $ori = GUICtrlRead($FLori) Local $lic = GUICtrlRead($FLlic) Local $lis = GUICtrlRead($FLlis) Local $liy = GUICtrlRead($FLliy) Local $lit = GUICtrlRead($FLlit) Local $dot = GUICtrlRead($FLdot) Local $oca = GUICtrlRead($FLoca) Local $nic = GUICtrlRead($FLnic) Local $lki = GUICtrlRead($FLlki) Local $lka = GUICtrlRead($FLlka) Local $noa = GUICtrlRead($FLnoa) Local $mis = GUICtrlRead($FLmis) Local $dor = GUICtrlRead($FLdor) Local $doe = GUICtrlRead($FLdoe) Local $op1 = GUICtrlRead($FLop1) Local $do2 = GUICtrlRead($FLdo2) Local $op2 = GUICtrlRead($FLop2) Local $dom = GUICtrlRead($FLdom) Local $op3 = GUICtrlRead($FLop3) Local $doc = GUICtrlRead($FLdoc) Local $op4 = GUICtrlRead($FLop4) If WinActivate("REJIS - HOME") = 0 Then MsgBox(0, "Error", "The REJIS Home Window is not open, please re-open it and re-submit the query") ;Exit EndIf WinActivate("REJIS - HOME") Local $oIE = _IEAttach("REJIS - HOME") Local $oIE_Frame = _IEFrameGetObjByName($oIE, "MENUFRAME") Local $oForm = _IEFormGetCollection($oIE_Frame, 0) Local $oSelect = _IEFormElementGetObjByName($oForm, "pages") _IEFormElementOptionSelect($oSelect, "Vehicle Enter Stolen License", 1, "byText") Sleep(2000) Local $oIE2 = _IEAttach("REJIS - Vehicle Enter Stolen License") Local $oIEFrame2 = _IEFrameGetObjByName($oIE2, "MAIN") Local $oIE_Frame2 = _IEFrameGetObjByName($oIEFrame2, "TOP") Local $oForm2 = _IEGetObjByName($oIE_Frame2, "inquiry") Local $oOri = _IEGetObjByName($oForm2, "ori") Local $oMke = _IEGetObjByName($oForm2, "category") Local $oLic = _IEGetObjByName($oForm2, "lic") Local $oLis = _IEGetObjByName($oForm2, "lic_state") Local $oLiy = _IEGetObjByName($oForm2, "lic_year") Local $oLit = _IEGetObjByName($oForm2, "veh_lic_type") Local $oDot1 = _IEGetObjByName($oForm2, "report_date_mm") Local $oDot2 = _IEGetObjByName($oForm2, "report_date_dd") Local $oDot3 = _IEGetObjByName($oForm2, "report_date_yy") Local $oComp1 = _IEGetObjByName($oForm2, "comp1") Local $oComp2 = _IEGetObjByName($oForm2, "comp2") Local $oMis = _IEGetObjByName($oForm2, "ncic_misc") Local $RptDate = StringSplit($dot,"/",0) _IEFormElementSetValue($oOri, $ori) _IEFormElementOptionSelect($oMke, $mke, 1, "byText") _IEFormElementSetValue($oLic, $lic) _IEFormElementOptionSelect($oLis, $lis, 1, "byText") _IEFormElementSetValue($oLiy, $liy) _IEFormElementOptionSelect($oLit, $lit, 1, "byText") _IEFormElementSetValue($oDot1, $RptDate[1]) _IEFormElementSetValue($oDot2, $RptDate[2]) _IEFormElementSetValue($oDot3, $RptDate[3]) _IEFormElementSetValue($oComp1, StringLeft($oca, 2)) _IEFormElementSetValue($oComp2, StringRight($oca, 6)) _IEFormElementSetValue($oMis, $mis) EndFunc GUISetState(@SW_SHOW) ;OnEvent mode While 1 Sleep(500) WEnd Func GUIExit() Exit EndFunc That's the whole of it and where I'm running into the headache is Button 2 The print preview button. I get an error is I take out the comment in front of the GUICtrlSetOnEvent and I understand that, but it sounds like I should just take those parameters out of TempForm and just call it as is. (If I am understanding this correctly)
Moderators SmOke_N Posted November 21, 2014 Moderators Posted November 21, 2014 I know your head must be spinning, there are things all over the place there lol. Before I offer some constructive criticism on your setup, let me try to help with your main issue. As you have noticed, you cannot pass parameters with an onevent method. So you have to really just make the params you want global if they need to be accessed ( or static, but that's a different setup within a function ). These three vars: TempForm($oFileName, $aInpulVal, $aInputLoc) <-- Make those global and fill them where ever you normally would. Then remove the params from that function so it's just: TempForm() ---- To help you maintain your code, you should separate your work bits into separate include files, and try to keep everything as compartmentalized as possible. If that code gets any bigger, and I am sure it will, it's going to be a mess to try and debug. On that point, debugging I mean, put more debug code in there. Personally, I'd rather have something fail with my own personal error codes that I can easily find and fix, than a hard crash in front of a client. Good luck P.S. Are you an attorney? trdunsworth 1 Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.
czardas Posted November 21, 2014 Posted November 21, 2014 (edited) Instead of passing parameters, have you tried simply accessing the values you need directly: by assigning them to three Global variables. SmOke_N got there first. Edited November 21, 2014 by czardas operator64 ArrayWorkshop
Jfish Posted November 21, 2014 Posted November 21, 2014 The second parameter in your function is also mispelled ... $aInpulVal - it does not match the name of the array above it. Build your own poker game with AutoIt: pokerlogic.au3 | Learn To Program Using FREE Tools with AutoIt
Jfish Posted November 21, 2014 Posted November 21, 2014 (edited) This "might" be a quick fix to your issues. I changed the name of that array, removed on event mode, and wired the buttons to a new switch at the bottom. The print preview button does stuff now - but I don't have your data to test ... expandcollapse popup#include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <EditConstants.au3> #include <WindowsConstants.au3> #include <DateTimeConstants.au3> #include <IE.au3> #include <InetConstants.au3> #include <StringConstants.au3> #include <FileConstants.au3> #include <Excel.au3> #include <MsgBoxConstants.au3> ; Changes to OnEvent Mode ;Opt('GUIOnEventMode', 1) AutoItSetOption("WinTitleMatchMode",2) AutoItSetOption("MouseCoordMode", 2) GUICreate("JCSO NCIC Entry", 1500, 900) GUISetOnEvent($GUI_EVENT_CLOSE, 'GUIExit') GUISetIcon("icon.ico") Global $sFont = "Calibri" ;LICENSE VARIABLES Global $FLmke Global $FLori Global $FLlic Global $FLlis Global $FLliy Global $FLlit Global $FLdot Global $FLoca Global $FLnic Global $FLlki Global $FLlka Global $FLnoa Global $FLmis Global $FLdor Global $FLofc Global $FLdoe Global $FLop1 Global $FLdo2 Global $FLop2 Global $FLdom Global $FLop3 Global $FLdoc Global $FLop4 ;MISSING PERSON VARIABLES Global $FMmke Global $FMori Global $FMdlc Global $FMoca Global $FMmnp Global $FMmpc Global $FMnoa Global $FMnam Global $FMsex Global $FMrac Global $FMpob Global $FMdob Global $FMhgt Global $FMwgt Global $FMeye Global $FMhai Global $FMfbi Global $FMskn Global $FMsmt Global $FMfpc Global $FMmnu Global $FMsoc Global $FMdna Global $FMdlo Global $FMcmc Global $FMctz Global $FMbxr Global $FMcrc Global $FMvrx Global $FMblt Global $FMfpa Global $FMoln Global $FMols Global $FMoly Global $FMlic Global $FMlis Global $FMliy Global $FMlit Global $FMvin Global $FMvyr Global $FMvma Global $FMvst Global $FMvco Global $FMlki Global $FMlka Global $FMjwl Global $FMjwt Global $FMmis Global $FMnic Global $FMdor Global $FMdoe Global $FMdo2 Global $FMdom Global $FMdoc Global $FMofc Global $FMop1 Global $FMop2 Global $FMop3 Global $FMop4 ;WARRANTS VARIABLES Global $FWmke Global $FWori Global $FWnam Global $FWsex Global $FWrac Global $FWpob Global $FWdob Global $FWhgt Global $FWwgt Global $FWeye Global $FWhai Global $FWfbi Global $FWskn Global $FWsmt Global $FWfpc Global $FWmnu Global $FWsoc Global $FWdna Global $FWdno Global $FWcmc Global $FWctz Global $FWetn Global $FWoff Global $FWdow Global $FWoca Global $FWwno Global $FWcti Global $FWnoa Global $FWexl Global $FWado Global $FWlki Global $FWlka Global $FWoln Global $FWols Global $FWoly Global $FWlic Global $FWlis Global $FWliy Global $FWlit Global $FWvin Global $FWvyr Global $FWvma Global $FWvmo Global $FWvst Global $FWvco Global $FWfnam Global $FWfdob Global $FWfsoc Global $FWfmnu Global $FWfoln Global $FWfols Global $FWfoly Global $FWadd Global $FWdda Global $FWsnu Global $FWsna Global $FWcty Global $FWsta Global $FWzip Global $FWcou Global $FWmis Global $FWocc Global $FWnic Global $FWdor Global $FWdoe Global $FWdo2 Global $FWdom Global $FWdoc Global $FWofc Global $FWop1 Global $FWop2 Global $FWop3 Global $FWop4 ; PROTECTION ORDER VARIABLES Global $FPmke Global $FPori Global $FPnam Global $FPsex Global $FPrac Global $FPpob Global $FPdob Global $FPhgt Global $FPwgt Global $FPeye Global $FPhai Global $FPfbi Global $FPskn Global $FPetn Global $FPsmt Global $FPfpc Global $FPmnu Global $FPsoc Global $FPdna Global $Fpdlo Global $FPcmc Global $FPctz Global $FPpco Global $FPbrd Global $FPisd Global $FPoca Global $FPpno Global $FPexp Global $FPcti Global $FPnoa Global $FPoln Global $FPols Global $FPoly Global $FPlic Global $FPlis Global $FPliy Global $FPlit Global $FPvin Global $FPvyr Global $FPvmo Global $FPvst Global $FPvco Global $FPpnam Global $FPpdob Global $FPpsex Global $FPprac Global $FPpsoc Global $FPmis Global $FPnic Global $FPdor Global $FPdoe Global $FPdo2 Global $FPdom Global $FPdoc Global $FPofc Global $FPop1 Global $FPop2 Global $FPop3 Global $FPop4 ; VEHICLE VARIABLES Global $FVmke Global $FVori Global $FVdot Global $FVoca Global $FVoan Global $FVopt Global $FVlic Global $FVlis Global $FVliy Global $FVlit Global $FVvin Global $FVvyr Global $FVvma Global $FVvmo Global $FVvst Global $FVvco Global $FVnoa Global $FVlki Global $FVlka Global $FVimn Global $FVimt Global $FVnic Global $FVdor Global $FVdoe Global $FVdo2 Global $FVdom Global $FVdoc Global $FVofc Global $FVop1 Global $FVop2 Global $FVop3 Global $FVop4 ; DROP DOWN ARRAYS Global $stateArray[66] = ["Alabama", "Alaska", "Alberta", "Arizona", "Arkansas", "British Columbia", "California", "Colorado", "Connecticut", "Delaware", "District of Columbia", "Florida", "Georgia", "Gov't Plate", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Manitoba", "Maryland", "Massachusets", "Mexico", "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska", "Nevada", "New Brunswick", "Newfoundland & Labrador", "New Hampshire", "New Jersey", "New Mexico", "New York", "North Carolina", "North Dakota", "Northwest Territories", "Nova Scotia", "Ohio", "Oklahoma", "Ontario", "Oregon", "Pennsylvania", "Prince Edward Island", "Quebec", "Rhode Island", "Saskatchewan", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington", "West Virginia", "Wisconsin", "Wyoming", "Yukon Territory", "Other"] Global $ptArray[29] = ["Passenger Car", "Personalized", "Ambulance", "Antique", "Apportioned", "Profession", "Legislator", "Justice", "Law Enforcement", "Handicapped", "Organization", "Motorcycle", "Truck-Tractor", "Trailer (all)", "Disabled Veteran", "Dealer (Auto)", "Doctor", "Amateur Radio", "College", "Temporary", "State Owned", "County", "Municipal", "Taxi", "U.S. Govt. Vehicle", "Truck", "Military Vehicle", "Manufacturer", "POW"] Global $raceArray[7] = ["Alaskan Native", "American Indian", "Asian", "Black", "Pacific Islander", "Unkown", "White"] Global $categoryArray[3] = ["Stolen/Missing Lic (All Issued) - 14", "Stolen/Missing Lic (Single Place) - 15", "Lost License/Tag - 16"] Global $missingArray[8] = ["Catastrophe Victim", "Contact Witness Program", "Disappearance Involuntary", "Juvenile Other (13-17 yoa)", "Adult Other (specify in remarks)", "Physically or Mentally Disabled", "Physical Safety Endangered", "Walkaway"] Global $sexArray[3] = ["Male", "Female", "Unknown"] Global $eyeArray[10] = ["Black", "Blue", "Brown", "Green", "Grey", "Hazel", "Maroon", "Multi Color", "Pink", "Unknown"] Global $hairArray[13] = ["Black", "Blond-Strawberry", "Blue", "Brown", "Green", "Grey", "Orange", "Pink", "Purple", "Red or Auburn", "Sandy", "White", "Unknown"] Global $skinArray[13] = ["Albino", "Black", "Dark", "Dark Brown", "Fair", "Light", "Light Brown", "Medium Brown", "Medium", "Olive", "Ruddy", "Sallow", "Yellow"] Global $extrArray[10] = ["Full Extradition - (1)", "Limited U.S Extradition - (2)", "Extradition - Surrounding States Only - (3)", "Extradition Limited Missouri Only - (4)", "Pending Extradition - (5)", "Intrastate (Entire State) - (S)", "Partial Intrastate - (P)", "Adjoining Counties - (C)", "Greater Metro Area(Local area) - (L)", "No Extradition - (N)"] Global $cmcArray[16] = ["Alcoholic", "Allergies", "Armed and Dangerous", "Diabetic", "Epilepsy", "Escape Risk", "Explosives Expertise", "Heart Condition", "Hemophiliac", "Known to Abuse Drugs", "Martial Arts Expertise", "Medication Required", "Other - Enter Caution Description", "Sexually Violent Predator", "Suicidal", "Violent Tendencies"] Global $rgbArray[34] = ["Amethyst (purple)", "Beige", "Black", "Blue", "Bronze", "Brown", "Burgundy (purple)", "Camouflage", "Chrome", "Copper", "Cream", "Dark Blue", "Gold", "Gray", "Green", "Dark Green", "Light Green", "Ivory", "Lavendar (purple)", "Light Blue", "Maroon", "Mauve (purple)", "Multicolored", "Orange", "Pink", "Purple", "Red", "Silver", "Tan", "Taupe (brown)", "Teal (green)", "Turquoise (blue)", "White", "Yellow"] Global $vcatArray[8] = ["Failure To Return-41","Miscellaneous-45","Owner Forgot Where Parked-42","Repossessed-60","Stolen Vehicle-10","Wanted Felony-20","Wanted Misdemeanor-21","Wanted Ordinance-22"] $stateList = "" For $i = 0 To UBound($stateArray,1) -1 $stateList &= "|" & $stateArray[$i] Next $ptList = "" For $j = 0 To UBound($ptArray,1) -1 $ptList &= "|" & $ptArray[$j] Next $raceList = "" For $k = 0 to UBound($raceArray,1) -1 $raceList &= "|" & $raceArray[$k] Next $catList = "" For $l = 0 to UBound($categoryArray,1) -1 $catList &= "|" & $categoryArray[$l] Next $missList = "" For $m = 0 to UBound($missingArray,1) -1 $missList &= "|" & $missingArray[$m] Next $sexList = "" For $n = 0 to UBound($sexArray,1) -1 $sexList &= "|" & $sexArray[$n] Next $eyeList = "" For $o = 0 to UBound($eyeArray,1) -1 $eyeList &= "|" & $eyeArray[$o] Next $hairList = "" For $p = 0 to UBound($hairArray, 1) -1 $hairList &= "|" & $hairArray[$p] Next $skinList = "" For $q = 0 to UBound($skinArray, 1) -1 $skinList &= "|" & $skinArray[$q] Next $extrList = "" For $r = 0 to UBound($extrArray, 1) -1 $extrList &= "|" & $extrArray[$r] Next $cmcList = "" For $s = 0 to UBound($cmcArray, 1) -1 $cmcList &= "|" & $cmcArray[$s] Next $rgbList = "" For $t = 0 to UBound($rgbArray, 1) -1 $rgbList &= "|" & $rgbArray[$t] Next $vcatList = "" For $u = 0 to UBound($vcatArray, 1) -1 $vcatList &= "|" & $vcatArray[$u] Next ;Menu Creation Local $filemenu = GUICtrlCreateMenu("&File") Local $helpmenu = GUICtrlCreateMenu("?") Local $openItem = GUICtrlCreateMenuItem("&Open", $filemenu) Local $saveItem = GUICtrlCreateMenuItem("&Save", $filemenu) Local $infoItem = GUICtrlCreateMenuItem("Info", $helpmenu) Local $exitItem = GUICtrlCreateMenuItem("E&xit", $filemenu) ;Tab Creation GUICtrlCreateTab(0,0,1500,880) ;Create the License Plate Tab GUICtrlCreateTabItem("License Plate") ;Create the form labels GUICtrlCreateLabel("Message Key (MKE)", 20, 40, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Originating Agency (ORI)", 20, 80, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("License Plate No. (LIC)", 20, 120, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("License Plate St. (LIS)", 20, 160, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Expiration Year (LIY)", 20, 200, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("License Plate Type (LIT)", 20, 240, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Date of Theft (DOT)", 20, 280, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Case Number (OCA)", 20, 320, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("NCIC Number (NIC)", 20, 360, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Linking Agency Id (LKI)", 20, 400, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Linking Case Number (LKA)", 20, 440, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Notify Originating Agency (NOA)", 20, 480, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Miscellaneous Info (MIS)", 20, 520, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("ENTRY & SECOND PARTY CHECK", 550, 40, 200, 75) GUICtrlSetFont(-1, 10, 700, 6, $sFont, 5) GUICtrlCreateLabel("", 500, 60, 200, 75) GUICtrlCreateLabel("Date Received", 500, 80, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Date of Entry", 500, 160, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Date of Second Party Check", 500, 240, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Modify Date", 500, 320, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Clear, Cancel, or Locate Date", 500, 400, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Officer/Agency", 500, 120, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Operator", 500, 200, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Operator", 500, 280, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Operator", 500, 360, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) GUICtrlCreateLabel("Operator", 500, 440, 200, 75) GUICtrlSetFont(-1, 10, 700, 1, $sFont, 5) ;Create the Input parameters $FLmke = GUICtrlCreateCombo("", 225, 40, 200, 25) $FLori = GUICtrlCreateInput("", 225, 80, 200, 25) $FLlic = GUICtrlCreateInput("", 225, 120, 200, 25) $FLlis = GUICtrlCreateCombo("", 225, 160, 200, 25) $FLliy = GUICtrlCreateInput("", 225, 200, 200, 25) $FLlit = GUICtrlCreateCombo("", 225, 240, 200, 25) $FLdot = GUICtrlCreateDate("", 225, 280, 200, 25, $DTS_SHORTDATEFORMAT) $FLoca = GUICtrlCreateInput("", 225, 320, 200, 25) $FLnic = GUICtrlCreateInput("", 225, 360, 200, 25) $FLlki = GUICtrlCreateInput("", 225, 400, 200, 25) $FLlka = GUICtrlCreateInput("", 225, 440, 200, 25) $FLnoa = GUICtrlCreateInput("", 225, 480, 200, 25) $FLmis = GUICtrlCreateInput("", 225, 520, 200, 150) $FLdor = GUICtrlCreateDate("", 675, 80, 200, 25, $DTS_SHORTDATEFORMAT) $FLofc = GUICtrlCreateInput("", 675, 120, 200, 25) $FLdoe = GUICtrlCreateDate("", 675, 160, 200, 25, $DTS_SHORTDATEFORMAT) $FLop1 = GUICtrlCreateInput("", 675, 200, 200, 25) $FLdo2 = GUICtrlCreateDate("", 675, 240, 200, 25, $DTS_SHORTDATEFORMAT) $FLop2 = GUICtrlCreateInput("", 675, 280, 200, 25) $FLdom = GUICtrlCreateDate("", 675, 320, 200, 25, $DTS_SHORTDATEFORMAT) $FLop3 = GUICtrlCreateInput("", 675, 360, 200, 25) $FLdoc = GUICtrlCreateDate("", 675, 400, 200, 25, $DTS_SHORTDATEFORMAT) $FLop4 = GUICtrlCreateInput("", 675, 440, 200, 25) Local $mke Local $ori Local $lic Local $lis Local $liy Local $lit Local $dot Local $oca Local $lki Local $lka Local $noa Local $mis Local $nic Local $dor Local $ofc Local $doe Local $op1 Local $do2 Local $op2 Local $dom Local $op3 Local $doc Local $op4 ;Fill the Combo Box data GUICtrlSetData($FLlis, $stateList) GUICtrlSetData($FLlit, $ptList) GUICtrlSetData($FLmke, $catList) Local $oFileName = "StolenPlate" Local $aInputVal[23] = [$mke, $ori, $lic, $lis, $liy, $lit, $dot, $oca, $lki, $lka, $noa, $mis, $nic, $dor, $ofc, $doe, $op1, $do2, $op2, $dom, $op3, $doc, $op4] Local $aInputLoc[23] = ["C3","C5","C7","C9","C11","C13","C15","F3","F5","F7","F9","F11","F13","C21","F21","C22","F22","C23","F23","C24","F24","C25","F25"] ;Button 1 $b1=GUICtrlCreateButton("REJIS Entry", 1390, 760, 100, 30) ;GUICtrlSetOnEvent(-1, 'PlateToRejis') ;Button 2 $b2=GUICtrlCreateButton("Print Preview", 1390, 800, 100, 30) ;GUICtrlSetOnEvent($b2, "TempForm") Func TempForm($oFileName, $aInpulVal, $aInputLoc) ;**************************************************************************** ; CREATE TEM FORM FROM CALLED DEFAULT FORM, RENAME, AND SAVE ;**************************************************************************** Local $oTempFile = $oFileName&@ComputerName&@MDAY&@HOUR&@MIN&@SEC ;Create application object and open example workbook Local $oAppl = _Excel_Open(False) ;If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookSaveAs Example", "Error creating the Excel application object.", & @CRLF & "@error = " & @error & ", @extended = " & @extended) Local $oWorkbook = _Excel_BookOpen($oAppl, @ScriptDir & "\"&$oFileName&".xlsx") If @error Then MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookSaveAs Example", "Error opening workbook '" & @ScriptDir & "\Forms\"&$oFileName&".xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oAppl) Exit EndIf ;**************************************************************************** ; SAVE THE WORKBOOK (xlsx) TO ANOTHER DIRECTORY AND OPEN ;**************************************************************************** Local $sWorkbook = @ScriptDir&"\archive\"&$oTempFile&".xlsx" _Excel_BookSaveAs($oWorkbook, $sWorkbook) If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookSaveAs Example 1", "Error saving workbook to '" & $sWorkbook & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_BookClose($oWorkBook) OpnWrt($oTempFile,$aInputVal,$aInputLoc) EndFunc Func OpnWrt($oFileName, $aInputVal, $aInputLoc) ; Create application object and open example workbook Local $oAppl = _Excel_Open() If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookSaveAs Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended) Local $oWorkbook = _Excel_BookOpen($oAppl, @ScriptDir & "\archive\"&$oFileName&".xlsx") If @error Then MsgBox($MB_SYSTEMMODAL, "Open Temp Doc", "Error opening workbook '" & @ScriptDir & "\Forms\"&$oFileName&".xlsx'." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oAppl) Exit EndIf ;**************************************************************************** ; WRITE DATA FROM GUI TO TEMP EXCEL DOC ;**************************************************************************** For $a = 0 to UBound($aInputVal) -1 _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aInputVal[$a], $aInputLoc[$a]) Next If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Example 3", "Error writing to worksheet." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_BookSave($oWorkBook) $oAppl = _Excel_Open() EndFunc Func PlateToRejis() Local $mke = GUICtrlRead($FLmke) Local $ori = GUICtrlRead($FLori) Local $lic = GUICtrlRead($FLlic) Local $lis = GUICtrlRead($FLlis) Local $liy = GUICtrlRead($FLliy) Local $lit = GUICtrlRead($FLlit) Local $dot = GUICtrlRead($FLdot) Local $oca = GUICtrlRead($FLoca) Local $nic = GUICtrlRead($FLnic) Local $lki = GUICtrlRead($FLlki) Local $lka = GUICtrlRead($FLlka) Local $noa = GUICtrlRead($FLnoa) Local $mis = GUICtrlRead($FLmis) Local $dor = GUICtrlRead($FLdor) Local $doe = GUICtrlRead($FLdoe) Local $op1 = GUICtrlRead($FLop1) Local $do2 = GUICtrlRead($FLdo2) Local $op2 = GUICtrlRead($FLop2) Local $dom = GUICtrlRead($FLdom) Local $op3 = GUICtrlRead($FLop3) Local $doc = GUICtrlRead($FLdoc) Local $op4 = GUICtrlRead($FLop4) If WinActivate("REJIS - HOME") = 0 Then MsgBox(0, "Error", "The REJIS Home Window is not open, please re-open it and re-submit the query") ;Exit EndIf WinActivate("REJIS - HOME") Local $oIE = _IEAttach("REJIS - HOME") Local $oIE_Frame = _IEFrameGetObjByName($oIE, "MENUFRAME") Local $oForm = _IEFormGetCollection($oIE_Frame, 0) Local $oSelect = _IEFormElementGetObjByName($oForm, "pages") _IEFormElementOptionSelect($oSelect, "Vehicle Enter Stolen License", 1, "byText") Sleep(2000) Local $oIE2 = _IEAttach("REJIS - Vehicle Enter Stolen License") Local $oIEFrame2 = _IEFrameGetObjByName($oIE2, "MAIN") Local $oIE_Frame2 = _IEFrameGetObjByName($oIEFrame2, "TOP") Local $oForm2 = _IEGetObjByName($oIE_Frame2, "inquiry") Local $oOri = _IEGetObjByName($oForm2, "ori") Local $oMke = _IEGetObjByName($oForm2, "category") Local $oLic = _IEGetObjByName($oForm2, "lic") Local $oLis = _IEGetObjByName($oForm2, "lic_state") Local $oLiy = _IEGetObjByName($oForm2, "lic_year") Local $oLit = _IEGetObjByName($oForm2, "veh_lic_type") Local $oDot1 = _IEGetObjByName($oForm2, "report_date_mm") Local $oDot2 = _IEGetObjByName($oForm2, "report_date_dd") Local $oDot3 = _IEGetObjByName($oForm2, "report_date_yy") Local $oComp1 = _IEGetObjByName($oForm2, "comp1") Local $oComp2 = _IEGetObjByName($oForm2, "comp2") Local $oMis = _IEGetObjByName($oForm2, "ncic_misc") Local $RptDate = StringSplit($dot,"/",0) _IEFormElementSetValue($oOri, $ori) _IEFormElementOptionSelect($oMke, $mke, 1, "byText") _IEFormElementSetValue($oLic, $lic) _IEFormElementOptionSelect($oLis, $lis, 1, "byText") _IEFormElementSetValue($oLiy, $liy) _IEFormElementOptionSelect($oLit, $lit, 1, "byText") _IEFormElementSetValue($oDot1, $RptDate[1]) _IEFormElementSetValue($oDot2, $RptDate[2]) _IEFormElementSetValue($oDot3, $RptDate[3]) _IEFormElementSetValue($oComp1, StringLeft($oca, 2)) _IEFormElementSetValue($oComp2, StringRight($oca, 6)) _IEFormElementSetValue($oMis, $mis) EndFunc GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg case $b1 PlateToRejis() case $b2 TempForm($oFileName, $aInputVal, $aInputLoc) Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func GUIExit() Exit EndFunc Oh yeah, and @SmOke_N and @czardas are right about the better approach being what they said. Edited November 21, 2014 by Jfish trdunsworth 1 Build your own poker game with AutoIt: pokerlogic.au3 | Learn To Program Using FREE Tools with AutoIt
trdunsworth Posted November 21, 2014 Author Posted November 21, 2014 Thank you all. SmOke_N Nope, Not a lawyer, work with a sheriff's office. However, I know where you're coming from with that. I should have thought about making those global. With the two arrays, those are going to change size in each place, so I'm thinking just set them as eg. Global $aInputVal[] and then add the correct parameter lists in the individual tabs. Jfish, I might end up going with that. Either way, I appreciate both of the ideas and I will incorporate them in this. Yes, it's going to be huge when it finishes out. However, down the road, I can see it modularized better.
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