Jump to content
Sign in to follow this  

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?

Share this post


Link to post
Share on other sites

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!

Share this post


Link to post
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 

Share this post


Link to post
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

Share this post


Link to post
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)

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
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

Share this post


Link to post
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. 

Share this post


Link to post
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
Sign in to follow this  

  • Similar Content

    • By Dan_555
      Hi, here are few functions for the ListBox.
      I have searched the forum, but most of the functions are for listview, so i took one example code from melba23 (clear selection) and
      wrote few more functions. (Because my current project needs them).
       
      These functions work only on a Multi-selection ListBox .
      The functions do: Clear Selection, Delete Selected items, Invert Selection, Move selected items up and down.
       The example code has 2 Listboxes. The selected items on the left ListBox can be moved up and down. The right Listbox has buttons for the other functions.
      #include <GUIConstantsEx.au3> #include <GuiListBox.au3> #include <WindowsConstants.au3> Global $hForm1 = GUICreate("Listbox test", 349, 287) $LB_1 = GUICtrlCreateList("", 6, 40, 157, 244, BitOR($LBS_NOTIFY, $LBS_MULTIPLESEL, $WS_HSCROLL, $WS_VSCROLL, $LBS_DISABLENOSCROLL)) $LB_2 = GUICtrlCreateList("", 179, 40, 157, 244, BitOR($LBS_NOTIFY, $LBS_MULTIPLESEL , $WS_HSCROLL, $WS_VSCROLL, $LBS_DISABLENOSCROLL)) $BL_1 = GUICtrlCreateButton("Up", 20, 3, 35, 18) $BL_2 = GUICtrlCreateButton("Down", 60, 3, 35, 18) $BR_1 = GUICtrlCreateButton("Up", 200, 3, 35, 18) $BR_2 = GUICtrlCreateButton("Down", 240, 3, 35, 18) $BR_3 = GUICtrlCreateButton("Reverse Sel", 272, 22, 68, 17) $BR_4 = GUICtrlCreateButton("Clear Sel", 217, 22, 52, 17) $BR_5 = GUICtrlCreateButton("Delete", 175, 22, 40, 17) $BR_6 = GUICtrlCreateButton("Populate", 290, 3, 50, 18) GUISetState(@SW_SHOW) For $x = 0 To 50 If $x <= 10 Then GUICtrlSetData($LB_1, $x & " test", 0) GUICtrlSetData($LB_2, $x & " Test", 0) Next While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $BL_1 $a = Listbox_ItemMoveUD($LB_1, -1) If $a > -1 Then WinSetTitle($hForm1, "", "Moved items: " & $a) Case $BL_2 $a = Listbox_ItemMoveUD($LB_1, 1) If $a > -1 Then WinSetTitle($hForm1, "", "Moved items: " & $a) Case $BR_1 Listbox_ItemMoveUD($LB_2, -1) Case $BR_2 Listbox_ItemMoveUD($LB_2, 1) Case $BR_3 Listbox_ReverseSelection($LB_2) Case $BR_4 Listbox_ClearSelection($LB_2) Case $BR_5 Listbox_DeleteSelectedItems($LB_2) Case $br_6 ;Populate GUICtrlSetData($LB_2, "") ; Clears the listbox For $x = 0 To 50 GUICtrlSetData($LB_2, $x & " Test", 0) Next EndSwitch WEnd ;note $hLB_ID - is the Listbox id Func Listbox_DeleteSelectedItems($hLB_ID) local $aSel = _GUICtrlListBox_GetSelItems($hLB_ID) Local $i For $i = $aSel[0] To 1 Step -1 _GUICtrlListBox_DeleteString($hLB_ID, $aSel[$i]) Next EndFunc ;==>Listbox_DeleteSelectedItems Func Listbox_ClearSelection($hLB_ID) Local $aSel = _GUICtrlListBox_GetSelItems($hLB_ID) ;Code from Melba23 - Autoit Forum For $i = 1 To $aSel[0] _GUICtrlListBox_SetSel($hLB_ID, $aSel[$i], False) Next EndFunc ;==>Listbox_ClearSelection Func Listbox_ReverseSelection($hLB_ID) Local $i Local $aCou = _GUICtrlListBox_GetCount($hLB_ID) Local $cSel = _GUICtrlListBox_GetCaretIndex($hLB_ID) ;Save the caret For $i = 0 To $aCou _GUICtrlListBox_SetSel($hLB_ID, $i, Not (_GUICtrlListBox_GetSel($hLB_ID, $i))) Next _GUICtrlListBox_SetCaretIndex($hLB_ID, $cSel) ;Restore the caret EndFunc ;==>Listbox_ReverseSelection Func Listbox_ItemMoveUD($hLB_ID, $iDir = -1) ;Listbox_ItemMoveUD - Up/Down - Works only on multiple selection listbox ($LBS_MULTIPLESEL) ;$iDir: -1 up, 1 down ;Return values -1 nothing to do, 0 nothing moved, >0 performed moves Local $iCur, $iNxt, $aCou, $aSel, $i, $m = 0 ;Current, next, Count, Selection, loop , movecount $aSel = _GUICtrlListBox_GetSelItems($hLB_ID) ;Put selected items in an array $aCou = _GUICtrlListBox_GetCount($hLB_ID) ;Get total item count of the listbox WinSetTitle ($hForm1,"",$aSel[0]) Select Case $iDir = -1 ;Move Up For $i = 1 To $aSel[0] If $aSel[$i] > 0 Then $iNxt = _GUICtrlListBox_GetText($hLB_ID, $aSel[$i] - 1) ;Save the selection index - 1 text _GUICtrlListBox_ReplaceString($hLB_ID, $aSel[$i] - 1, _GUICtrlListBox_GetText($hLB_ID, $aSel[$i])) ;Replace the index-1 text with the index text _GUICtrlListBox_ReplaceString($hLB_ID, $aSel[$i], $iNxt) ;Replace the selection with the saved var $m = $m + 1 EndIf Next For $i = 1 To $aSel[0] ;Restore the selections after moving If $aSel[$i] > 0 Then _GUICtrlListBox_SetSel($hLB_ID, $aSel[$i] - 1, 1) EndIf Next Return $m Case $iDir = 1 ;Move Down If $aSel[0] > 0 Then For $i = $aSel[0] To 1 Step -1 If $aSel[$i] < $aCou - 1 Then $iNxt = _GUICtrlListBox_GetText($hLB_ID, $aSel[$i] + 1) _GUICtrlListBox_ReplaceString($hLB_ID, $aSel[$i] + 1, _GUICtrlListBox_GetText($hLB_ID, $aSel[$i])) _GUICtrlListBox_ReplaceString($hLB_ID, $aSel[$i], $iNxt) $m = $m + 1 EndIf Next EndIf For $i = $aSel[0] To 1 Step -1 ;Restore the selections after moving If $aSel[$i] < $aCou - 1 Then _GUICtrlListBox_SetSel($hLB_ID, $aSel[$i] + 1, 1) EndIf Next Return $m EndSelect Return -1 EndFunc ;==>Listbox_ItemMoveUD  
    • By GNGNUT
      Hi guys
      what i am trying to do is have My Gui LIve update Out of focus, so i can have this on a 2nd monitor streaming live updates while i continue to work on other screen, 
      i have been googling and looking at other threads about focus and stuff , but they do not seem to match what I'm after, 

      to be clear - i am not wanting to put focus on the GUI for it to auto update values, 
       
      if you have any positive feed back on the script while you read - i would be more then happy to accept - as im still building my Knowledge of this coding, 
      and stream line is always better Garbage code writing, 
       
      Kind regards 
      Gngnut
       
      #include <MemoryConstants.au3> #include <MsgBoxConstants.au3> #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> Global $currentTime,$currentTimeValue,$v,$Label_Time,$Form1 Global $Label_C2_1,$Label_C2_2,$Label_C2_3,$Label_C2_4,$Label_C2_5,$Label_C2_6,$Label_C2_7 Global $Label_C3_1,$Label_C3_2,$Label_C3_3,$Label_C3_4,$Label_C3_5,$Label_C3_6,$Label_C3_7 ;~ Default Hight for boxs $Hight = 40 $lenght = 180 ;; As per nines comments moved out side of the While loop, AdlibRegister(UpdateTime,250) AdlibRegister(updateValues,500) AdlibRegister(Warning,250) hotkeyset ("{ESC}",Terminate) ;; <<< Used to Quit the programe $aMemStats = MemGetStats() MyGui() ;; running the GUI #Region ### START Koda GUI section ### Form= func MyGui() $ServerName=@ComputerName ; ### Change to your location of image $Image = "C:\Users\gngnut\OneDrive\Pictures\Computer.jpg" ; Creating the form With the Labels $Form1 = GUICreate("My System Status", 800, 750, 225, 173,BitOR($WS_SYSMENU,$WS_MAXIMIZEBOX,$WS_MINIMIZEBOX));$WS_POPUP)) $Pic1 = GUICtrlCreatePic($Image, 0, 0, 800, 750) ;;; #### Column 1 $Label_C1_1 = GUICtrlCreateLabel("Total load currently on RAM:", 71, 192, 180, $Hight, BitOR($SS_CENTER,"")) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C1_2 = GUICtrlCreateLabel("Total physical RAM:", 71, 248, 180, $Hight, BitOR($SS_CENTER,"")) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C1_3 = GUICtrlCreateLabel("Available physical RAM:", 71, 304, 180, $Hight, BitOR($SS_CENTER,"")) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C1_4 = GUICtrlCreateLabel("Total Page Size:", 71, 360, 180, $Hight, BitOR($SS_CENTER,"")) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C1_5 = GUICtrlCreateLabel("Available Page Size:", 71, 416, 180, $Hight, BitOR($SS_CENTER,"")) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C1_6 = GUICtrlCreateLabel("Total virtual Size:", 71, 472, 180, $Hight, BitOR($SS_CENTER,"")) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C1_7 = GUICtrlCreateLabel("Available virtual RAM:", 71, 528, 180, $Hight, BitOR($SS_CENTER,"")) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") ;;; #### Column 2 $Label_C2_1 = GUICtrlCreateLabel($aMemStats[$MEM_LOAD] & " %", 311, 192, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) $colour=0xFEF200 GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C2_2 = GUICtrlCreateLabel($aMemStats[$MEM_TOTALPHYSRAM] & ' Kb' , 311, 248, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C2_3 = GUICtrlCreateLabel($aMemStats[$MEM_AVAILPHYSRAM] & ' Kb', 311, 304, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C2_4 = GUICtrlCreateLabel($aMemStats[$MEM_TOTALPAGEFILE] & ' Kb', 311, 360, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C2_5 = GUICtrlCreateLabel($aMemStats[$MEM_AVAILPAGEFILE] & ' Kb', 311, 416, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C2_6 = GUICtrlCreateLabel($aMemStats[$MEM_TOTALVIRTUAL] & ' Kb' , 311, 472, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C2_7 = GUICtrlCreateLabel($aMemStats[$MEM_AVAILVIRTUAL] & ' Kb', 311, 528, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") ;;; #### Column 3 $Label_C3_2 = GUICtrlCreateLabel(Round($aMemStats[$MEM_TOTALPHYSRAM]/1024/1024, 2) & ' Gb', 551, 248, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C3_3 = GUICtrlCreateLabel(Round($aMemStats[$MEM_AVAILPHYSRAM]/1024/1024, 2) & ' Gb', 551, 304, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C3_4 = GUICtrlCreateLabel(Round($aMemStats[$MEM_TOTALPAGEFILE]/1024/1024, 2) & ' Gb', 551, 360, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C3_5 = GUICtrlCreateLabel(Round($aMemStats[$MEM_AVAILPAGEFILE]/1024/1024, 2) & ' Gb', 551, 416, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C3_6 = GUICtrlCreateLabel(Round($aMemStats[$MEM_TOTALVIRTUAL]/1024/1024, 2) & ' Gb', 551, 472, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C3_7 = GUICtrlCreateLabel(Round($aMemStats[$MEM_AVAILVIRTUAL]/1024/1024, 2) & ' Gb', 551, 528, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_Server = GUICtrlCreateLabel($ServerName, 551, 600, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_Time = GUICtrlCreateLabel($currentTime , 71, 600, 180, $Hight, bitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") GUISetState(@SW_SHOWNORMAL) #EndRegion ### END Koda GUI section ### EndFunc While 1 Sleep(1000) ; sets a delay of 1 sec per 1000 WEnd ;; close down the Application func Terminate() exit EndFunc ;; Updating Time func UpdateTime() $currentTime = @HOUR&":"& @MIN &":"& @SEC ControlSetText($Form1,"",$Label_Time, $currentTime) EndFunc ;; currently changing the CPU % lable Func Warning() if $aMemStats[$MEM_LOAD] <=40 Then ; Green GUICtrlSetbkColor($Label_C2_1,0x2BFC0B) ElseIf $aMemStats[$MEM_LOAD] >40 and $aMemStats[$MEM_LOAD] <= 80 Then GUICtrlSetbkColor($Label_C2_1,0xFDBE01) Elseif $aMemStats[$MEM_LOAD] > 80 Then GUICtrlSetBkColor($Label_C2_1, 0xEE0C0C) EndIf EndFunc ;; Updating The Lable values of column 2 Only if the values change func updateValues() $aMemStats = MemGetStats() if GUICtrlRead($Label_C2_1) <> $aMemStats[$MEM_LOAD] Then ControlSetText($Form1,"",$Label_C2_1,$aMemStats[$MEM_LOAD]) endif If GUICtrlRead($Label_C2_2) <> $aMemStats[$MEM_TOTALPHYSRAM] & ' Kb' then ControlSetText($Form1,"",$Label_C2_2,$aMemStats[$MEM_TOTALPHYSRAM] & ' Kb') endif If GUICtrlRead($Label_C2_3) <> $aMemStats[$MEM_AVAILPHYSRAM] & ' Kb' then ControlSetText($Form1,"",$Label_C2_3,$aMemStats[$MEM_AVAILPHYSRAM] & ' Kb') endif If GUICtrlRead($Label_C2_4) <> $aMemStats[$MEM_TOTALPAGEFILE] & ' Kb' then ControlSetText($Form1,"",$Label_C2_4,$aMemStats[$MEM_TOTALPAGEFILE] & ' Kb') endif If GUICtrlRead($Label_C2_5) <> $aMemStats[$MEM_AVAILPAGEFILE] & ' Kb' then ControlSetText($Form1,"",$Label_C2_5,$aMemStats[$MEM_AVAILPAGEFILE] & ' Kb') endif If GUICtrlRead($Label_C2_6) <> $aMemStats[$MEM_TOTALVIRTUAL] & ' Kb' then ControlSetText($Form1,"",$Label_C2_6,$aMemStats[$MEM_TOTALVIRTUAL] & ' Kb') endif If GUICtrlRead($Label_C2_7) <> $aMemStats[$MEM_AVAILVIRTUAL] & ' Kb' then ControlSetText($Form1,"",$Label_C2_7,$aMemStats[$MEM_AVAILVIRTUAL] & ' Kb') endif EndFunc  
    • By PeterVerbeek
      This topic give you access to an AutoIt functions library I maintain which is called PAL, Peter's AutoIt Library. The latest version 1.20 contains 197 functions divided into these topics:
      window, desktop and monitor mouse and GUI GUI controls including graphical buttons (jpg, png) logics and mathematics include constants string, xml string and file string dialogues and progress bars data lists: lists, stacks, shift registers and key maps (a.ka. dictionaries) miscellaneous: logging/debugging, process and system info Change log and files section  on the PAL website (SourceForge).
      A lot of these functions were created in the development of Peace, Peter's Equalizer APO Configuration Extension, which is a user interface for the system-wide audio driver called Equalizer APO.
    • By jantograaf
      Hi all,
      I've been looking around the forum and testing different ways of getting a 'drop zone' to work in my script, but I can't seem to get any response from the event listener. Code compiles perfectly. Chaning the control from a label to an input- or edit-field doesn't change its behaviour, still no response when a file is dropped on there...
      It might just be that I am overlooking a simple detail, so I'm hoping for an extra pair of eyes here or there who can spot why this isn't working as it should. 
      I have another 3500+ lines script where I have basically the same bit of code, and it seems to work in there without problems.
      So, here it goes:
      Global $DD_GUI = GUICreate("DicomDrop",200,200,-1,-1,BitOR($WS_SYSMENU,$WS_POPUP),$WS_EX_ACCEPTFILES) GUISetBkColor(0x030303,$DD_GUI) $DD_GUI_DRAGLABEL = GUICtrlCreateLabel("",0,0,32,32,-1, $GUI_WS_EX_PARENTDRAG) $DD_GUI_DRAGIMAGE = GUICtrlCreateIcon(@ScriptFullPath,201,0,0,32,32) $DD_GUI_TITLELABEL = GUICtrlCreateLabel("DicomDrop",50,10,100,20,$SS_CENTER) GUICtrlSetFont($DD_GUI_TITLELABEL,8,$FW_SEMIBOLD,$GUI_FONTNORMAL,"Verdana") GUICtrlSetColor($DD_GUI_TITLELABEL,0xFFFFFF) $DD_GUI_CLOSE = GUICtrlCreateButton("X",174,4,24,24,$BS_FLAT) GUICtrlSetBkColor($DD_GUI_CLOSE,0x030303) GUICtrlSetColor($DD_GUI_CLOSE,0xFFFFFF) Global $DD_GUI_DROPZONE = GUICtrlCreateLabel("",10,42,180,148) GUICtrlSetState(-1,8) GUICtrlSetBkColor($DD_GUI_DROPZONE,0x181818) GUISetState(@SW_SHOW,$DD_GUI) Local $DD_MSG = 0 While 1 $DD_MSG = GUIGetMsg() Select Case $DD_MSG = $GUI_EVENT_CLOSE ConsoleWrite(@CRLF & "Debug -- Closed by GUI_EVENT_CLOSE") DD_EXIT() Case $DD_MSG = $GUI_EVENT_DROPPED If @GUI_DropId = $DD_GUI_DROPZONE Then Local $DroppedFile = @GUI_DragFile GUIDelete() ConsoleWrite(@CRLF & "Debug -- Dropped file : " & $DroppedFile) EndIf Case $DD_MSG = $DD_GUI_CLOSE ConsoleWrite(@CRLF & "Debug -- Closed by DD_GUI_CLOSEIMAGE") DD_EXIT() EndSelect WEnd Func DD_EXIT() GUIDelete($DD_GUI) Exit EndFunc If anyone has any idea whatsoever, please let me know 🙂
      Thanks in advance and kind regards,
      Jan
    • By Rabu
      I want to use the winsock overlapped/completion routine method of i/o, but how do I get the pointer to my user function.  I know it is possible because when using the old method of windows messages, the user function name was used instead of a pointer.
×
×
  • Create New...