Jump to content

Is it possible


Recommended Posts

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?

Link to comment
Share on other sites

  • Moderators

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!

Link to comment
Share on other sites

#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 

Link to comment
Share on other sites

A working shell would be better  ... :D

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 by Jfish

Build your own poker game with AutoIt: pokerlogic.au3 | Learn To Program Using FREE Tools with AutoIt

Link to comment
Share on other sites

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.  o:)

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. 

#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)

Link to comment
Share on other sites

  • Moderators

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?

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.

Link to comment
Share on other sites

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 ...

#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 by Jfish

Build your own poker game with AutoIt: pokerlogic.au3 | Learn To Program Using FREE Tools with AutoIt

Link to comment
Share on other sites

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. 

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...