strate 0 Posted September 28, 2007 In the script below I want to be able drag a printer name into the treeview above it. Then when its dropped on to a instance of "Printer Needs Selected!" the printer name is in the treeview. To get the treeview to state "Printer Needs Selected!" you must click on a label choice. I can do everything except get the drag & drop to work. Any help would be greatly appreciated. expandcollapse popup#include <GUIConstants.au3> #Include <GuiStatusBar.au3> #include <GuiTreeView.au3> #include <Array.au3> #Include <GuiList.au3> #Include <File.au3> #include <Date.au3> #include <WindowsConstants.au3> Global $INIFile = @ScriptDir & '\Label App.ini' ;~ Global $INIFile = 'G:\Packaging\Shared\Prod. Clerk Tools\Bulk Label App\Bulk Label App V2\Bulk.ini' If Not FileExists($INIFile) Then MsgBox(4096,'Error','Unable to locate INI file. Program now closing.') Exit EndIf Global $LogFile = IniRead($INIFile,'Paths','Log','Error') & 'Label App User Log.txt' Global $TempFile = @TempDir & '\Label App.txt' Global $PrinterName = IniRead(IniRead($INIFile,'Paths','LabelView Label.ini File','ERROR'), 'Labelview', 'printer_name', '....') & ' on ' & IniRead(IniRead($INIFile,'Paths','LabelView Label.ini File','ERROR'), 'Labelview', 'port', '....') _Log($LogFile,'Program Initializing - Printer name is '&$PrinterName) Global $Kit_Weight, $Caution_Label Local $OldSelectedLabelCount Global Const $VK_NUMLOCK = 0x90 _Log($LogFile,'Program Initializing - Creating GUI') #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Labels", 882, 560, -1, -1) Global $a_PartsRightEdge[3] = [100,230,-1] Global $a_PartsText[3] = ["Ready...",'',''] $StatusBar1 = _GUICtrlStatusBarCreate ($Form1, $a_PartsRightEdge, $a_PartsText) $Group1 = GUICtrlCreateGroup("Label Options", 16, 8, 201, 65) GUICtrlSetColor(-1, 0x0000FF) $KitSetup = GUICtrlCreateCheckbox("Kit Setup", 32, 26, 169, 20,$BS_PUSHLIKE) $SingleLabel = GUICtrlCreateCheckbox("Single Label", 32, 45, 169, 20,$BS_PUSHLIKE) GUICtrlCreateGroup("", -99, -99, 1, 1) $Group2 = GUICtrlCreateGroup("Label Data", 16, 88, 201, 358) GUICtrlSetColor(-1, 0x0000FF) $Labe20 = GUICtrlCreateLabel("Sales Order Number:", 24, 112, 113, 16) $SalesOrder = GUICtrlCreateInput("", 24, 128, 37, 21,$ES_NUMBER) GUICtrlSetLimit($SalesOrder,5) $Label3 = GUICtrlCreateLabel("Customer Part Number:", 24, 160, 113, 16) $CustomerPartNumber = GUICtrlCreateInput("", 24, 176, 145, 21,$ES_UPPERCASE) GUICtrlSetTip(-1, "Must be the same as found in QAD.") $Label1 = GUICtrlCreateLabel("Kit Number:", 64, 208, 59, 16) $Label2 = GUICtrlCreateLabel("TRW", 24, 209, 40, 16) GUICtrlSetFont(-1, 11, 400, 0, "TRWLogo") GUICtrlSetColor(-1, 0xFF0000) $KitNumber = GUICtrlCreateInput("", 24, 224, 113, 21,$ES_UPPERCASE) $Label4 = GUICtrlCreateLabel("Description:", 24, 256, 60, 16) $Description = GUICtrlCreateButton("Click to enter description.", 24, 272, 145, 20, 0) GUICtrlSetCursor ($Description, 0) GUICtrlSetTip(-1, "Description is selected from user list.") $Label5 = GUICtrlCreateLabel("Due Date:", 24, 304, 53, 16) $DueDate = GUICtrlCreateInput("", 24, 320, 49, 21,$ES_NUMBER) GUICtrlSetLimit($DueDate, 6) $Label6 = GUICtrlCreateLabel("Quantity Requested:", 24, 352, 101, 16) $QtyRequested = GUICtrlCreateInput("", 24, 368, 97, 21,$ES_NUMBER) $Label7 = GUICtrlCreateLabel("Quantity Per Pallet:", 24, 400, 94, 16) $QtyPerPallet = GUICtrlCreateInput("", 24, 416, 97, 21,$ES_NUMBER) GUICtrlCreateGroup("", -99, -99, 1, 1) ;~ $Group3 = GUICtrlCreateGroup("Identification Labels", 240, 88, 201, 153) ;~ GUICtrlSetColor(-1, 0x0000FF) ;~ $Label8 = GUICtrlCreateLabel("Quantity on Label:", 256, 112, 90, 16) ;~ $IDQty = GUICtrlCreateInput("", 256, 128, 89, 21,$ES_NUMBER) ;~ $Label9 = GUICtrlCreateLabel("Number of labels with this quantity:", 256, 160, 167, 16) ;~ $IDQtyofLabels = GUICtrlCreateInput("", 256, 176, 89, 21,$ES_NUMBER) ;~ $IDAdd = GUICtrlCreateButton("Add", 256, 208, 89, 20, $BS_DEFPUSHBUTTON) ;~ GUICtrlCreateGroup("", -99, -99, 1, 1) ;~ GUICtrlSetCursor ($IDAdd, 0) $IDTreeView = GUICtrlCreateTreeView(664, 16, 201, 280, $TVS_NOSCROLL, $WS_EX_CLIENTEDGE) $IDTreeView_0 = GUICtrlCreateTreeViewItem("Address Label", $IDTreeView) $IDTreeView_1 = GUICtrlCreateTreeViewItem("", $IDTreeView_0) $IDTreeView_2 = GUICtrlCreateTreeViewItem("Standard Label Data", $IDTreeView) $IDTreeView_15 = GUICtrlCreateTreeViewItem("Sales Order", $IDTreeView_2) $IDTreeView_16 = GUICtrlCreateTreeViewItem("", $IDTreeView_15) $IDTreeView_5 = GUICtrlCreateTreeViewItem("Customer Part Number", $IDTreeView_2) $IDTreeView_6 = GUICtrlCreateTreeViewItem("", $IDTreeView_5) $IDTreeView_3 = GUICtrlCreateTreeViewItem("Kit Number", $IDTreeView_2) $IDTreeView_4 = GUICtrlCreateTreeViewItem("", $IDTreeView_3) $IDTreeView_7 = GUICtrlCreateTreeViewItem("Description", $IDTreeView_2) $IDTreeView_8 = GUICtrlCreateTreeViewItem("", $IDTreeView_7) $IDTreeView_9 = GUICtrlCreateTreeViewItem("Due Date", $IDTreeView_2) $IDTreeView_10 = GUICtrlCreateTreeViewItem("", $IDTreeView_9) $IDTreeView_11 = GUICtrlCreateTreeViewItem("Quantity Requested", $IDTreeView_2) $IDTreeView_12 = GUICtrlCreateTreeViewItem("", $IDTreeView_11) $IDTreeView_13 = GUICtrlCreateTreeViewItem("Quantity Per Pallet", $IDTreeView_2) $IDTreeView_14 = GUICtrlCreateTreeViewItem("", $IDTreeView_13) ;~ $Group4 = GUICtrlCreateGroup("Address Labels", 240, 8, 201, 65) ;~ GUICtrlSetColor(-1, 0x0000FF) ;~ $GMAddressLabels = GUICtrlCreateCheckbox("GM Address Labels", 256, 26, 169, 20,$BS_PUSHLIKE) ;~ $NONGMAddressLabels = GUICtrlCreateCheckbox("Non-GM Address Labels", 256, 45, 169, 20,$BS_PUSHLIKE) ;~ GUICtrlCreateGroup("", -99, -99, 1, 1) $List1 = GUICtrlCreateList("", 664, 308, 201, 123) $LoadPrintJob = GUICtrlCreateButton("Load Print Job", 713, 445, 100, 20) GUICtrlSetCursor ($LoadPrintJob, 0) $Print = GUICtrlCreateButton("Print", 16, 464, 201, 25) GUICtrlSetCursor ($Print, 0) $Clear = GUICtrlCreateButton("Clear", 16, 500, 201, 25);, 0) GUICtrlSetCursor ($Clear, 0) #region ; Label Selection Controls Dim $ADDRESS_SELECTION_GROUP_X = 240 Dim $ADDRESS_SELECTION_GROUP_Y = 10 Dim $ADDRESS_LABELS_GROUP = GUICtrlCreateGroup("Address Labels", $ADDRESS_SELECTION_GROUP_X - 10, $ADDRESS_SELECTION_GROUP_Y, 165, 127) Dim $ADDRESS_LIST = GUICtrlCreateList('', $ADDRESS_SELECTION_GROUP_X, $ADDRESS_SELECTION_GROUP_Y + 18, 145, 105,BitOR($WS_BORDER,$WS_VSCROLL,$LBS_DISABLENOSCROLL,$LBS_MULTIPLESEL)) GUICtrlSetData(-1,'GM Address Label|NON-GM Address Label','None') Dim $PACKAGING_SELECTION_GROUP_X = 240 Dim $PACKAGING_SELECTION_GROUP_Y = 140 Dim $PACKAGING_LABELS_GROUP = GUICtrlCreateGroup("Packaging Labels", $PACKAGING_SELECTION_GROUP_X - 10, $PACKAGING_SELECTION_GROUP_Y, 165, 127) Dim $PACKAGING_LABELS_LIST = GUICtrlCreateList('', $PACKAGING_SELECTION_GROUP_X, $PACKAGING_SELECTION_GROUP_Y + 18, 145, 105,BitOR($WS_BORDER,$WS_VSCROLL,$LBS_MULTIPLESEL,$LBS_DISABLENOSCROLL)) GUICtrlSetData(-1,'Unit Labels|Master Labels|GM Master','None') Dim $MISC_SELECTION_GROUP_X = 240 Dim $MISC_SELECTION_GROUP_Y = 270 Dim $MISC_LABELS_GROUP = GUICtrlCreateGroup("Misc. Labels", $MISC_SELECTION_GROUP_X - 10, $MISC_SELECTION_GROUP_Y, 165, 127) Dim $MISC_LIST = GUICtrlCreateList('', $MISC_SELECTION_GROUP_X, $MISC_SELECTION_GROUP_Y + 18, 145, 105,BitOR($WS_BORDER,$WS_VSCROLL,$LBS_MULTIPLESEL,$LBS_DISABLENOSCROLL)) GUICtrlSetData(-1,'Audit Tag|4X6 Over Pack Label|5X3 Over Pack Label','None') #endregion ;~ BitOr($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), ;~ $PrinterTreeView = GUICtrlCreateTreeView(410, 16, 201, 280, $TVS_HASLINES, $WS_EX_CLIENTEDGE) $PrinterTreeView = GUICtrlCreateTreeView(410, 16, 201, 280, BitOr($TVS_HASLINES,$TVS_SHOWSELALWAYS) , $WS_EX_CLIENTEDGE) GUICtrlSetState(-1,$GUI_DROPACCEPTED) $PrinterList = GUICtrlCreateList("",410,308,201,123) GUICtrlSetData(-1,_Identify_Printers()) GUICtrlSetState(-1,$GUI_DROPACCEPTED) GUICtrlSetState(-1,$GUI_DISABLE) _GUICtrlTreeViewExpand($IDTreeView) #EndRegion ### END Koda GUI section ### _Log($LogFile,'Program Initializing - GUI Created') $DataInputs = _ArrayCreate($SalesOrder,$KitNumber,$CustomerPartNumber,$Description,$DueDate,$QtyRequested,$QtyPerPallet) _SetDisplayData() ;~ _EnableAddressLabelOptions(0) _EnableLabelData(0) ;~ _EnableIDLabelData(0) ;~ _EnableListData(0) _EnableTreeViewData(0) _Log($LogFile,'Program Initializing - GUI controls set to a "fresh" state.') #region ; Check INI to decide whether or not to run LabelView If IniRead($INIFile,'Settings','Run LabelView','Error') = 1 Then If WinExists('Command File Monitor') <> 1 Then _Log($LogFile,'Program Initializing - Opening Labelview Command File Monitor.') _OpenLabelView() Do Sleep(25) Until WinExists('Command File Monitor') = 1 _Log($LogFile,'Program Initializing - Command File Monitor is ready.') EndIf EndIf #endregion GUISetState(@SW_SHOW) _Log($LogFile,'Program Initializing - Painting GUI.') ;_GUICtrlStatusBarSetText ($StatusBar1,"GUI Opened",1) $ProgressBar1 = _GUICtrlStatusBarCreateProgress ( $StatusBar1,1) GUICtrlSetColor($ProgressBar1,39950) $OldInput = '' ;~ If Not FileExists(@DesktopDir & "\Bulk Label App V2.lnk") Then ;~ FileCreateShortcut (@ScriptFullPath, @DesktopDir & "\Bulk Label App V2.lnk") ;~ EndIf ;~ If Not FileExists(@ProgramsDir & "\Bulk Label App V2.lnk") Then ;~ FileCreateShortcut (@ScriptFullPath, @ProgramsDir & "\Bulk Label App V2.lnk") ;~ EndIf $Inputs = _ArrayCreate('Edit1','Edit2','Edit3','Button6','Edit4','Edit5','Edit6','Edit7') While 1 _LabelSelectionUpdate() $nMsg = GUIGetMsg() Switch $nMsg Case $PrinterTreeView MsgBox(262144,'Debug line ~180','Selection:' & @lf & '$PrinterTreeView' & @lf & @lf & 'Return:' & @lf & $PrinterTreeView & @lf & @lf & '@Error:' & @lf & @Error) ;### Debug MSGBOX ;~ Case $GMAddressLabels ;~ If GUICtrlRead($GMAddressLabels) = 1 Then ;~ GUICtrlSetState($NONGMAddressLabels,$GUI_UNCHECKED) ;~ GUICtrlSetData($IDTreeView_1,'GM') ;~ _SetDisplayData() ;~ _EnableLabelData(1) ;~ _Log($LogFile,'User Action: GM address label style.') ;~ Else ;~ GUICtrlSetState($NONGMAddressLabels,$GUI_CHECKED) ;~ GUICtrlSetData($IDTreeView_1,'NON-GM') ;~ _SetDisplayData() ;~ _EnableLabelData(1) ;~ _Log($LogFile,'User Action: NON GM address label style.') ;~ EndIf ;~ Case $NONGMAddressLabels ;~ If GUICtrlRead($NONGMAddressLabels) = 1 Then ;~ GUICtrlSetState($GMAddressLabels,$GUI_UNCHECKED) ;~ GUICtrlSetData($IDTreeView_1,'NON-GM') ;~ _SetDisplayData() ;~ _EnableLabelData(1) ;~ _Log($LogFile,'User Action: NON GM address label style.') ;~ Else ;~ GUICtrlSetState($GMAddressLabels,$GUI_CHECKED) ;~ GUICtrlSetData($IDTreeView_1,'GM') ;~ _SetDisplayData() ;~ _EnableLabelData(1) ;~ _Log($LogFile,'User Action: GM address label style.') ;~ EndIf Case $KitSetup If GUICtrlRead($KitSetup) = 1 Then GUICtrlSetState($SingleLabel,$GUI_UNCHECKED) _SetDisplayData() _EnableLabelData(1) GUICtrlSetData ($ProgressBar1,1) ;~ _EnableAddressLabelOptions(1) _Log($LogFile,'User Action: Full kit setup style of production run.') Else GUICtrlSetState($SingleLabel,$GUI_CHECKED) _SetDisplayData() _EnableLabelData(1) GUICtrlSetData ($ProgressBar1,1) ;~ _EnableAddressLabelOptions(1) _Log($LogFile,'User Action: Bpkg/Brec style of production run.') EndIf Case $SingleLabel If GUICtrlRead($SingleLabel) = 1 Then GUICtrlSetState($KitSetup,$GUI_UNCHECKED) _SetDisplayData() _EnableLabelData(1) GUICtrlSetData ($ProgressBar1,1) ;~ _EnableAddressLabelOptions(1) _Log($LogFile,'User Action: Bpkg/Brec style of production run.') Else GUICtrlSetState($KitSetup,$GUI_CHECKED) _SetDisplayData() _EnableLabelData(1) GUICtrlSetData ($ProgressBar1,1) ;~ _EnableAddressLabelOptions(1) _Log($LogFile,'User Action: Full kit setup style of production run.') EndIf ;~ Case $IDAdd ;~ _Log($LogFile,'User Action: ID labels, "Add" button.') ;~ Local $QtyPerLabel = GUICtrlRead($IDQty) ;~ Local $QtyofLabels = GUICtrlRead($IDQtyofLabels) ;~ If $QtyPerLabel = '' Or $QtyofLabels = '' Then ;~ _Log($LogFile,'User Error: ID labels, data incomplete.') ;~ ContinueLoop ;~ EndIf ;~ _EnableListData(1) ;~ If $QtyofLabels > 1 Then ;~ _GUICtrlListAddItem($List1, $QtyofLabels & ' labels at a quantity of ' & $QtyPerLabel) ;~ _Log($LogFile,'Program Action: '& $QtyofLabels & ' labels at a quantity of ' & $QtyPerLabel & ' added to list.') ;~ Else ;~ _GUICtrlListAddItem($List1, $QtyofLabels & ' label at a quantity of ' & $QtyPerLabel) ;~ _Log($LogFile,'Program Action: '& $QtyofLabels & ' label at a quantity of ' & $QtyPerLabel & ' added to list.') ;~ EndIf ;~ GUICtrlSetData($IDQty,'') ;~ GUICtrlSetData($IDQtyofLabels,'') ;~ GUICtrlSetState($IDQty,$GUI_FOCUS) ;~ Case $IDRemove ;~ _Log($LogFile,'User Action: ID label Remove button') ;~ _Log($LogFile,'Program Action: Removed ' & _GUICtrlListGetText($List1,_GUICtrlListSelectedIndex($List1)) & ' from the list.') ;~ _GUICtrlListDeleteItem($List1, _GUICtrlListSelectedIndex($List1)) Case $Description _Log($LogFile,'User Action: Description button') HotKeySet('{ENTER}') _Description() GUICtrlSetState($DueDate,$GUI_FOCUS) Case $Clear _Log($LogFile,'User Action: Clear clicked.') ;~ _EnableAddressLabelOptions(0) _EnableLabelData(0) ;~ _EnableListData(0) _EnableTreeViewData(0) ;~ _EnableIDLabelData(0) _ClearAllInputs() _SetDisplayData() GUICtrlSetData($IDTreeView_1,'') ;~ GUICtrlSetState($NONGMAddressLabels,$GUI_UNCHECKED) ;~ GUICtrlSetState($GMAddressLabels,$GUI_UNCHECKED) ;~ GUICtrlSetState($BpkgBrec,$GUI_UNCHECKED) ;~ GUICtrlSetState($BulkESD,$GUI_UNCHECKED) _Log($LogFile,'Program Action: GUI controls set to a "fresh" state.') ;_GUICtrlStatusBarSetText ($StatusBar1,"Controls Reset",1) Case $Print _Log($LogFile,'User Action: Print clicked.') _Print() _Log($LogFile,'Program State: Program side of print process completed') ;_GUICtrlStatusBarSetText ($StatusBar1,"Printing complete inside the application.",1) Case $GUI_EVENT_CLOSE;, $Close _Log($LogFile,'User Action: Either "X" or "Close" button clicked.') Exit Case $PrinterList $s_Printer = _GUICtrlListGetSelItemsText($PrinterList) ;~ $s_Printer[1] EndSwitch ;~ If GUICtrlRead($SalesOrder) <> '' And GUICtrlRead($KitNumber) <> '' And GUICtrlRead($CustomerPartNumber) <> '' And GUICtrlRead($Description) <> 'Click to enter description.' And GUICtrlRead($DueDate) <> '' And GUICtrlRead($QtyRequested) <> '' And GUICtrlRead($QtyPerPallet) <> '' And GUICtrlGetState($IDQty) = 144 Then ;~ _EnableIDLabelData(1) ;~ _Log($LogFile,'Program Action: ID label controls enabled.') ;~ EndIf ;~ $Inputs = _ArrayCreate('Edit1','Edit2','Edit3','Button6','Edit4','Edit5','Edit6','Edit7') $NewInput = ControlGetFocus('Label') If $NewInput <> $OldInput Then If _ArraySearch($Inputs, $NewInput) <> -1 Then _SetDisplayData() $OldInput = $NewInput EndIf EndIf If StringInStr(ControlGetFocus($Form1),'Edit') Then HotKeySet('{ENTER}','_CatchEnterThenTab') ElseIf ControlGetFocus($Form1)='Button6' Then HotKeySet('{ENTER}') _Description() Else HotKeySet('{ENTER}') EndIf If @HOUR < 14 Then _Log($LogFile,'Program Action: Time is less than 14, running.') Exit EndIf If WinActive('Labels') Then _SetNumLock() WEnd Func _SetDisplayData() $Display = _ArrayCreate($IDTreeView_0,$IDTreeView_15,$IDTreeView_2,$IDTreeView_3,$IDTreeView_5,$IDTreeView_7,$IDTreeView_9,$IDTreeView_11,$IDTreeView_13) For $i = 1 To UBound($Display)-1 _GUICtrlTreeViewSetIcon($IDTreeView, $Display[$i], "shell32.dll", 50) Next ;~ $DataInputs = _ArrayCreate($SalesOrder,$KitNumber,$CustomerPartNumber,$Description,$DueDate,$QtyRequested,$QtyPerPallet) $TreeItems = _ArrayCreate($IDTreeView_16,$IDTreeView_4,$IDTreeView_6,$IDTreeView_8,$IDTreeView_10,$IDTreeView_12,$IDTreeView_14) For $i = 0 To UBound($DataInputs)-1 If GUICtrlRead($DataInputs[$i]) = '' Or GUICtrlRead($DataInputs[$i]) = 'Click to enter description.' Then GUICtrlSetData($TreeItems[$i],'') _GUICtrlTreeViewSetIcon($IDTreeView, $TreeItems[$i], "shell32.dll", 131) Else GUICtrlSetData($TreeItems[$i],GUICtrlRead($DataInputs[$i])) _GUICtrlTreeViewSetIcon($IDTreeView, $TreeItems[$i], "shell32.dll", 208) EndIf Next EndFunc ;~ Func _EnableAddressLabelOptions($View) ; 1=yes 0=no ;~ If $View = 1 Then ;~ GUICtrlSetState($NONGMAddressLabels,$GUI_ENABLE) ;~ GUICtrlSetState($GMAddressLabels,$GUI_ENABLE) ;~ _Log($LogFile,'Program Action: Enabled address label options.') ;~ EndIf ;~ If $View = 0 Then ;~ GUICtrlSetState($NONGMAddressLabels,$GUI_DISABLE) ;~ GUICtrlSetState($GMAddressLabels,$GUI_DISABLE) ;~ _Log($LogFile,'Program Action: Disabled address label options.') ;~ EndIf ;~ EndFunc Func _EnableLabelData($View) ; 1=yes 0=no If $View = 1 Then GUICtrlSetState($SalesOrder,$GUI_ENABLE) GUICtrlSetState($KitNumber,$GUI_ENABLE) GUICtrlSetState($CustomerPartNumber,$GUI_ENABLE) GUICtrlSetState($Description,$GUI_ENABLE) GUICtrlSetState($DueDate,$GUI_ENABLE) GUICtrlSetState($QtyRequested,$GUI_ENABLE) GUICtrlSetState($QtyPerPallet,$GUI_ENABLE) _EnableTreeViewData(1) GUICtrlSetState($SalesOrder,$GUI_FOCUS) _Log($LogFile,'Program Action: Enabled Label data controls.') ;_GUICtrlStatusBarSetText ($StatusBar1,"Enabled data controls.",1) EndIf If $View = 0 Then GUICtrlSetState($SalesOrder,$GUI_DISABLE) GUICtrlSetState($KitNumber,$GUI_DISABLE) GUICtrlSetState($CustomerPartNumber,$GUI_DISABLE) GUICtrlSetState($Description,$GUI_DISABLE) GUICtrlSetState($DueDate,$GUI_DISABLE) GUICtrlSetState($QtyRequested,$GUI_DISABLE) GUICtrlSetState($QtyPerPallet,$GUI_DISABLE) _EnableTreeViewData(0) _Log($LogFile,'Program Action: Disabled Label data controls.') ;_GUICtrlStatusBarSetText ($StatusBar1,"Disabled data controls.",1) EndIf EndFunc ;~ Func _EnableIDLabelData($View) ; 1=yes 0=no ;~ If $View = 1 Then ;~ GUICtrlSetState($IDQty,$GUI_ENABLE) ;~ GUICtrlSetState($IDQtyofLabels,$GUI_ENABLE) ;~ GUICtrlSetState($IDAdd,$GUI_ENABLE) ;~ GUICtrlSetState($Print,$GUI_ENABLE) ;~ GUICtrlSetState($Clear,$GUI_ENABLE) ;~ GUICtrlSetState($IDRemove,$GUI_ENABLE) ;~ EndIf ;~ If $View = 0 Then ;~ GUICtrlSetState($IDQty,$GUI_DISABLE) ;~ GUICtrlSetState($IDQtyofLabels,$GUI_DISABLE) ;~ GUICtrlSetState($IDAdd,$GUI_DISABLE) ;~ GUICtrlSetState($Print,$GUI_DISABLE) ;~ GUICtrlSetState($Clear,$GUI_DISABLE) ;~ GUICtrlSetState($IDRemove,$GUI_DISABLE) ;~ EndIf ;~ EndFunc ;~ Func _EnableListData($View) ; 1=yes 0=no ;~ If $View = 1 Then ;~ GUICtrlSetState($List1,$GUI_ENABLE) ;~ _Log($LogFile,'Program Action: Enabled ID label list.') ;~ EndIf ;~ If $View = 0 Then ;~ GUICtrlSetState($List1,$GUI_DISABLE) ;~ _Log($LogFile,'Program Action: Disabled ID label list.') ;~ EndIf ;~ EndFunc Func _EnableTreeViewData($View) ; 1=yes 0=no If $View = 1 Then GUICtrlSetState($IDTreeView,$GUI_ENABLE) _Log($LogFile,'Program Action: Enabled Label data visual.') ;_GUICtrlStatusBarSetText ($StatusBar1,"Enabled data tree.",1) EndIf If $View = 0 Then GUICtrlSetState($IDTreeView,$GUI_DISABLE) _Log($LogFile,'Program Action: Disabled Label data visual.') ;_GUICtrlStatusBarSetText ($StatusBar1,"Disabled data tree.",1) EndIf EndFunc Func _Description() _ListViewGUI('Descriptions on File:',IniRead($INIFile, 'Paths', 'Description File', 'Error')) GUICtrlSetState($DueDate,$GUI_FOCUS) EndFunc ;==>_Description Func _ListViewGUI($GUIName,$ListFileName) Local $s_FilePath Local $a_Description Local $ListData #region ; Ensure the file exists, if so open it. If $ListFileName = 'Error' Then MsgBox(4096,'Alert','Unable to load path to the description file from "'&$INIFile&'" file.') _Log($LogFile,'Unable to load path to the description file from "'&$INIFile&'" file.') EndIf $File = FileOpen($ListFileName,0) ; Check if file opened for reading OK If $file = -1 Then MsgBox(0, "Error", "Unable to locate description file.") Exit EndIf #endregion #region ; Create description list While 1 $line = FileReadLine($File) If @error = -1 Then ExitLoop $line = StringMid($line,2,StringLen($line)-2) $ListData = $ListData & $line & '|' Wend FileClose($file) _Log($LogFile,'Program Action: Description list created.') ;_GUICtrlStatusBarSetText ($StatusBar1,"Description list created.",1) #endregion $Desc = GuiCreate("Description", 210, 335,-1, -1 , BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS)) $Label__ListViewGUI = GuiCtrlCreateLabel ($GUIName, 10, 10, 190, 20) $List__ListViewGUI = GuiCtrlCreateList ("", 10, 30, 190, 279) GUICtrlSetdata(-1,$ListData) $bOk__ListViewGUI = GuiCtrlCreateButton("Ok" , 10 , 305, 50, 20,$BS_DEFPUSHBUTTON ) $bAdd__ListViewGUI = GuiCtrlCreateButton("Add" , 60 , 305, 50, 20) $bRemove__ListViewGUI = GuiCtrlCreateButton("Remove", 110, 305, 50, 20) $bClose__ListViewGUI = GuiCtrlCreateButton("Close" , 160, 305, 40, 20) GUICtrlSetState($List__ListViewGUI,$GUI_FOCUS) GuiSetState() WinSetOnTop($Desc,'',1) _Log($LogFile,'Program Action: Description GUI created.') ;_GUICtrlStatusBarSetText ($StatusBar1,"Description GUI created.",1) While 1 $msg = GuiGetMsg() Select Case $msg = $GUI_EVENT_CLOSE ; GUI Close _Log($LogFile,'User Action: Close "X" clicked.') WinSetOnTop("Description",'',0) GUIDelete() ExitLoop Case $msg = $bClose__ListViewGUI ; Button Close _Log($LogFile,'User Action: Close button clicked.') WinSetOnTop("Description",'',0) GUIDelete() ExitLoop Case $msg = $bAdd__ListViewGUI ; Add Description _Log($LogFile,'User Action: "Add" button clicked.') WinSetOnTop("Description",'',0) While 1 $sDescription = InputBox('Description','Enter New Description:','','',200,130) Select Case @error = 1 _Log($LogFile,'User Action: "Cancel" button clicked.') $sDescription = '' ExitLoop Case $sDescription = '' _Log($LogFile,'User Action: "Continue" button clicked - Input field blank.') ContinueLoop Case @error = 0 $sDescription = StringUpper($sDescription) FileWrite($ListFileName, '"' & $sDescription & '"' & @LF) _Log($LogFile,'Program Action: '&$sDescription&' added to the description file') ;_GUICtrlStatusBarSetText ($StatusBar1,$sDescription&' added to the description file.',1) GUICtrlSetData($Description,$sDescription) GUIDelete($Desc) ExitLoop(2) EndSelect WEnd Case $msg = $bOk__ListViewGUI ; Ok Selection _Log($LogFile,'User Action: "Ok" clicked') $sDescription = GUICtrlRead($List__ListViewGUI) If $sDescription = '' Then ContinueLoop WinSetOnTop("Description",'',0) GUIDelete($Desc) GUICtrlSetData($Description ,$sDescription) _Log($LogFile,'Program Action: '&$sDescription&' set on the description button.') ;_GUICtrlStatusBarSetText ($StatusBar1,$sDescription&' set on the description button.',1) ExitLoop Case $msg = $bRemove__ListViewGUI ; Remove Selection _Log($LogFile,'User Action: "Remove" clicked') _FileReadToArray($ListFileName,$a_Description) $sDescription = GUICtrlRead($List__ListViewGUI) If $sDescription = '' Then ContinueLoop $i_index = _ArraySearch($a_Description,'"'&$sDescription&'"') _ArrayDelete($a_Description,$i_index) FileDelete($ListFileName) _FileWriteFromArray($ListFileName,$a_Description,1) _Log($LogFile,'Program Action: '&$sDescription&' removed from the description file.') ;_GUICtrlStatusBarSetText ($StatusBar1,$sDescription&' removed from the description file.',1) WinSetOnTop("Description",'',0) MsgBox(4096,'Notice',$sDescription & ' removed from the list.') GUIDelete($Desc) ExitLoop EndSelect WEnd EndFunc Func _ClearAllInputs() ;~ $Inputs = _ArrayCreate($SalesOrder,$KitNumber,$CustomerPartNumber,$Description,$DueDate,$QtyRequested,$QtyPerPallet,$IDQty,$IDQtyofLabels) $Inputs = _ArrayCreate($SalesOrder,$KitNumber,$CustomerPartNumber,$Description,$DueDate,$QtyRequested,$QtyPerPallet) For $i = 0 To UBound($Inputs)-1 If $i = 3 Then GUICtrlSetData($Inputs[$i],'Click to enter description.') Else GUICtrlSetData($Inputs[$i],'') EndIf Next ;~ GUICtrlSetData($List1,'') EndFunc Func _DataVerification() #region ; Sales Order Number Global $sSalesOrder = GUICtrlRead($SalesOrder) If $sSalesOrder = '' Then MsgBox(4096, 'Error', 'Sales order number is invalid.' & @CRLF & @CRLF & 'Only digit (0-9) characters.') SetError(1) _Log($LogFile,'Program Action: Sales Order number is invalid, '&$sSalesOrder&'.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Sales Order number is invalid, '&$sSalesOrder,1) Return EndIf If StringLen($sSalesOrder) <> 5 Then MsgBox(4096, 'Error', 'Sales order number is not valid length.' & @CRLF & @CRLF & 'Must be five (5) digits in length.') SetError(1) _Log($LogFile,'Program Action: Sales Order number is invalid, '&$sSalesOrder&'.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Sales Order number is invalid, '&$sSalesOrder,1) Return EndIf If StringIsDigit($sSalesOrder) = 0 Then MsgBox(4096, 'Error', 'Sales order number is invalid.' & @CRLF & @CRLF & 'Only digit (0-9) characters.') SetError(1) _Log($LogFile,'Program Action: Sales Order number is invalid, '&$sSalesOrder&'.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Sales Order number is invalid, '&$sSalesOrder,1) Return EndIf _Log($LogFile,'Program Action: Sales Order '&$sSalesOrder&' is okay.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Sales Order is valid, '&$sSalesOrder,1) #endregion #region ; Customer Part Number Global $sCustomerPartNumber = GUICtrlRead($CustomerPartNumber) If $sCustomerPartNumber = '' Then MsgBox(4096, 'Error', 'Customer part number is blank.') SetError(2) _Log($LogFile,'Program Action: Customer part number is blank.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Customer part number is blank.',1) Return EndIf _Log($LogFile,'Program Action: Customer part number '&$sCustomerPartNumber&' is okay.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Customer part number '&$sCustomerPartNumber&' is okay.',1) #endregion #region ; TRW Kit Number Global $sKitNumber = GUICtrlRead($KitNumber) If $sKitNumber = '' Then MsgBox(4096, 'Error', 'TRW kit number is blank.') SetError(3) _Log($LogFile,'Program Action: TRW kit number is blank.') ;_GUICtrlStatusBarSetText ($StatusBar1,'TRW kit number is blank.',1) Return EndIf If FileExists(IniRead($INIFile,'Paths','Process Sheets','Error') & '\' & $sKitNumber & '.xls') = 0 Then MsgBox(4096, 'Error', "Process sheet doesn't exist for this kit number." & @CRLF & @CRLF & 'Unable to print labels, see production clerk.') SetError(3) _Log($LogFile,'Program Action: No process sheet for TRW kit number '&$sKitNumber&'.') ;_GUICtrlStatusBarSetText ($StatusBar1,'No process sheet for TRW kit number '&$sKitNumber&'.',1) Return EndIf _Log($LogFile,'Program Action: TRW kit number '&$sKitNumber&' is okay.') ;_GUICtrlStatusBarSetText ($StatusBar1,'TRW kit number '&$sKitNumber&' is okay.',1) #endregion #region ; Description Global $sDescription = GUICtrlRead($Description) If $sDescription = 'Click to Choose Description' Then MsgBox(4096, 'Error', 'Description is incorrect.') SetError(4) _Log($LogFile,'Program Action: Description is incorrect.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Description is incorrect.',1) Return EndIf _Log($LogFile,'Program Action: Description '&$sDescription&' is okay.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Description '&$sDescription&' is okay.',1) #endregion #region ; Due Date Global $sDueDate = GUICtrlRead($DueDate) If $sDueDate = '' Then MsgBox(4096, 'Error', 'Due date is blank.' & @CRLF & @CRLF & 'Only digit (0-9) characters.') SetError(5) _Log($LogFile,'Program Action: Date is blank.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Date is blank.',1) Return EndIf If StringLen($sDueDate) <> 6 Then MsgBox(4096, 'Error', 'Due date is not valid length.' & @CRLF & @CRLF & 'Must be six (6) digits in length.' & @CRLF & 'Example: 071307') SetError(5) _Log($LogFile,'Program Action: Date '&$sDueDate&' is invalid length.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Date '&$sDueDate&' is invalid length.',1) Return EndIf If StringIsDigit($sDueDate) = 0 Then MsgBox(4096, 'Error', 'Due date is invalid.' & @CRLF & @CRLF & 'Only digit (0-9) characters.') SetError(5) _Log($LogFile,'Program Action: Date '&$sDueDate&' is bad format.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Date '&$sDueDate&' is bad format.',1) Return EndIf $MONTH = StringLeft($sDueDate, 2) $DAY = StringMid($sDueDate, 3, 2) $YEAR = '20' & StringRight($sDueDate, 2) If _DateIsValid($YEAR & "/" & $MONTH & "/" & $DAY) = 0 Then MsgBox(4096, 'Error', 'Due date is invalid.' & @CRLF & @CRLF & 'Either it is entered wrong, or' & @CRLF & 'the date is impossible.') SetError(5) _Log($LogFile,'Program Action: Date '&$sDueDate&' is not possible.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Date '&$sDueDate&' is not possible.',1) Return EndIf _Log($LogFile,'Program Action: Date '&$sDueDate&' is possible.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Date '&$sDueDate&' is possible.',1) #endregion #region ; Quantity Requested Global $sQtyRequested = GUICtrlRead($QtyRequested) If $sQtyRequested = '' Then MsgBox(4096, 'Error', 'Quantity requested is blank.' & @CRLF & @CRLF & 'Only digit (0-9) characters.') SetError(6) _Log($LogFile,'Program Action: Quantity requested is blank.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Quantity requested is blank.',1) Return EndIf If StringIsDigit($sQtyRequested) = 0 Then MsgBox(4096, 'Error', 'Quantity requested is invalid.' & @CRLF & @CRLF & 'Only digit (0-9) characters.') SetError(6) _Log($LogFile,'Program Action: Quantity requested '&$sQtyRequested&' is bad.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Quantity requested '&$sQtyRequested&' is bad.',1) Return EndIf _Log($LogFile,'Program Action: Quantity requested '&$sQtyRequested&' is okay.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Quantity requested '&$sQtyRequested&' is okay.',1) #endregion #region ; Quantity Per Full Pallet Global $sQtyPerPallet = GUICtrlRead($QtyPerPallet) If $sQtyPerPallet = '' Then MsgBox(4096, 'Error', 'Quantity per full pallet is blank.' & @CRLF & @CRLF & 'Only digit (0-9) characters.') SetError(7) _Log($LogFile,'Program Action: Quantity per full pallet is blank.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Quantity per full pallet is blank.',1) Return EndIf If StringIsDigit($sQtyPerPallet) = 0 Then MsgBox(4096, 'Error', 'Quantity per full pallet is invalid.' & @CRLF & @CRLF & 'Only digit (0-9) characters.') SetError(7) _Log($LogFile,'Program Action: Quantity per full pallet '&$sQtyRequested&' is bad.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Quantity per full pallet '&$sQtyRequested&' is bad.',1) Return EndIf _Log($LogFile,'Program Action: Quantity per full pallet ('&$sQtyRequested&') is okay.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Quantity per full pallet ('&$sQtyRequested&') is okay.',1) #endregion SetError(0) _Log($LogFile,'Program Action: Data verified okay.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Data verified okay.',1) EndFunc ;==>_DataVerification Func _Print() Local $sAddress Local $sType #region ; Verify valid data entry. If invalid data exists it will prompt the user. _Log($LogFile,'Program Action: Data verification started.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Data verification started.',1) _DataVerification() If @error <> 0 Then Select Case @error = 1 GUICtrlSetState($SalesOrder, $GUI_ENABLE) GUICtrlSetState($SalesOrder, $GUI_FOCUS) _Log($LogFile,'Program Action: Sales Order input brought to focus.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Sales Order input brought to focus.',1) Return Case @error = 3 GUICtrlSetState($KitNumber, $GUI_ENABLE) GUICtrlSetState($KitNumber, $GUI_FOCUS) _Log($LogFile,'Program Action: Kit number input brought to focus.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Kit number input brought to focus.',1) Return Case @error = 2 GUICtrlSetState($CustomerPartNumber, $GUI_ENABLE) GUICtrlSetState($CustomerPartNumber, $GUI_FOCUS) _Log($LogFile,'Program Action: Customer part number input brought to focus.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Customer part number input brought to focus.',1) Return Case @error = 4 GUICtrlSetState($Description, $GUI_ENABLE) GUICtrlSetState($Description, $GUI_FOCUS) _Log($LogFile,'Program Action: Description button brought to focus.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Description button brought to focus.',1) Return Case @error = 5 GUICtrlSetState($DueDate, $GUI_ENABLE) GUICtrlSetState($DueDate, $GUI_FOCUS) _Log($LogFile,'Program Action: Due date input brought to focus.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Due date input brought to focus.',1) Return Case @error = 6 GUICtrlSetState($QtyRequested, $GUI_ENABLE) GUICtrlSetState($QtyRequested, $GUI_FOCUS) _Log($LogFile,'Program Action: Quantity requested input brought to focus.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Quantity requested input brought to focus.',1) Return Case @error = 7 GUICtrlSetState($QtyPerPallet, $GUI_ENABLE) GUICtrlSetState($QtyPerPallet, $GUI_FOCUS) _Log($LogFile,'Program Action: Quantity per pallet input brought to focus.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Quantity per pallet input brought to focus.',1) Return EndSelect EndIf #endregion #region ; Define Full and Partial Pallets Global $FULL_PALLETS = Int($sQtyRequested / $sQtyPerPallet) Global $PARTIAL = $sQtyRequested - ($sQtyPerPallet * $FULL_PALLETS) _Log($LogFile,'Program Action: Full and partial pallet calculated.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Full and partial pallet calculated.',1) #endregion #region ; Captailize Alpha Data $sCustomerPartNumber = StringUpper($sCustomerPartNumber) $sKitNumber = StringUpper($sKitNumber) $sDescription = StringUpper($sDescription) _Log($LogFile,'Program Action: Alphanumeric data capatilized.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Alphanumeric data capatilized.',1) #endregion #region ; Check/Write Kit Data IniReadSection(IniRead($INIFile,'Paths','Finished Kit Data','Error'),$sKitNumber & ',' & $sCustomerPartNumber) If @error Then IniWrite(IniRead($INIFile,'Paths','Finished Kit Data','Error'),$sKitNumber & ',' & $sCustomerPartNumber,'Description',$sDescription) If GUICtrlRead($BpkgBrec) = 1 Then $sType = 'Bpkg/Brec' _Log($LogFile,'Program Action: Bpkg/Brec added as finished kit type.') Else $sType = 'Bulk/ESD' _Log($LogFile,'Program Action: Bulk/ESD added as finished kit type.') EndIf IniWrite(IniRead($INIFile,'Paths','Finished Kit Data','Error'),$sKitNumber & ',' & $sCustomerPartNumber,'Type',$sType) If GUICtrlRead($NONGMAddressLabels) = 1 Then $sAddress = 'NON GM' _Log($LogFile,'Program Action: NON GM added as finished kit address label style.') Else $sAddress = 'GM' _Log($LogFile,'Program Action: GM added as finished kit address label style.') EndIf IniWrite(IniRead($INIFile,'Paths','Finished Kit Data','Error'),$sKitNumber & ',' & $sCustomerPartNumber,'Address Label Style',$sAddress) IniWrite(IniRead($INIFile,'Paths','Finished Kit Data','Error'),$sKitNumber & ',' & $sCustomerPartNumber,'Date & Time Entered',_NowCalc()) EndIf #endregion #region ; Write Pallet Data For $i = 1 To $FULL_PALLETS If GUICtrlRead($BpkgBrec) = 1 Then ; Audit Tag _AuditTag(IniRead($INIFile,'Paths','Barcoded Audit Tag','Error'),$sQtyPerPallet) _Log($LogFile,'Program Action: Barcoded audit tag print job data added to temp file. Quantity on pallet: '&$sQtyPerPallet) ;_GUICtrlStatusBarSetText ($StatusBar1,'Barcoded audit tag print job data added to temp file. Quantity on pallet: '&$sQtyPerPallet,1) Else _AuditTag(IniRead($INIFile,'Paths','Plain Audit Tag','Error'),$sQtyPerPallet) _Log($LogFile,'Program Action: Plain audit tag print job data added to temp file. Quantity on pallet: '&$sQtyPerPallet) ;_GUICtrlStatusBarSetText ($StatusBar1,'Plain audit tag print job data added to temp file. Quantity on pallet: '&$sQtyPerPallet,1) EndIf If GUICtrlRead($NONGMAddressLabels) = 1 Then ; Address Label _NonGMShippingLabel('1',IniRead($INIFile,'Paths','NON GM Address Label','Error'),$sQtyPerPallet) _Log($LogFile,'Program Action: NON GM address label print job data added to temp file. Quantity on pallet: '&$sQtyPerPallet) ;_GUICtrlStatusBarSetText ($StatusBar1,'NON GM address label print job data added to temp file. Quantity on pallet: '&$sQtyPerPallet,1) _DCXShipCodeLabel($sSalesOrder) Else _GMShippingLabels('4',$sQtyPerPallet) _Log($LogFile,'Program Action: GM address label print job data added to temp file. Quantity on pallet: '&$sQtyPerPallet) ;_GUICtrlStatusBarSetText ($StatusBar1,'GM address label print job data added to temp file. Quantity on pallet: '&$sQtyPerPallet,1) EndIf Next If $PARTIAL <> 0 Then If GUICtrlRead($BpkgBrec) = 1 Then ; Audit Tag _AuditTag(IniRead($INIFile,'Paths','Barcoded Audit Tag','Error'),$PARTIAL) _Log($LogFile,'Program Action: Barcoded audit tag print job data added to temp file. Quantity on partial pallet: '&$PARTIAL) ;_GUICtrlStatusBarSetText ($StatusBar1,'Barcoded audit tag print job data added to temp file. Quantity on partial pallet: '&$PARTIAL,1) Else _AuditTag(IniRead($INIFile,'Paths','Plain Audit Tag','Error'),$PARTIAL) _Log($LogFile,'Program Action: Plain audit tag print job data added to temp file. Quantity on partial pallet: '&$PARTIAL) ;_GUICtrlStatusBarSetText ($StatusBar1,'Plain audit tag print job data added to temp file. Quantity on partial pallet: '&$PARTIAL,1) EndIf If GUICtrlRead($NONGMAddressLabels) = 1 Then _NonGMShippingLabel('1',IniRead($INIFile,'Paths','NON GM Address Label','Error'),$PARTIAL) _Log($LogFile,'Program Action: NON GM address label print job data added to temp file. Quantity on partial pallet: '&$PARTIAL) ;_GUICtrlStatusBarSetText ($StatusBar1,'NON GM address label print job data added to temp file. Quantity on partial pallet: '&$PARTIAL,1) _DCXShipCodeLabel($sSalesOrder) Else _GMShippingLabels('4',$PARTIAL) _Log($LogFile,'Program Action: GM address label print job data added to temp file. Quantity on partial pallet: '&$PARTIAL) ;_GUICtrlStatusBarSetText ($StatusBar1,'GM address label print job data added to temp file. Quantity on partial pallet: '&$PARTIAL,1) EndIf EndIf #endregion #region ; Write ID Label Data ;~ For $i = 0 To _GUICtrlListCount($List1) -1 ;~ $value = _GUICtrlListGetText($List1, $i) ;~ $value = StringSplit($value,' ') ;~ If GUICtrlRead($NONGMAddressLabels) = 1 Then ; ID Labels ;~ _NonGMShippingLabel($value[1],IniRead($INIFile,'Paths','NON GM Bulk ID Label','Error'),$value[UBound($value)-1]) ;~ _Log($LogFile,'Program Action: NON GM ID label print job data added to temp file. Quantity on pallet: '&$value[UBound($value)-1] &' Number of labels: '&$value[1]) ;~ Else ;~ _GMShippingLabels($value[1],$value[UBound($value)-1]) ;~ _Log($LogFile,'Program Action: GM ID label print job data added to temp file. Quantity on pallet: '&$value[UBound($value)-1] &' Number of labels: '&$value[1]) ;~ EndIf ;~ Next #endregion FileCopy($TempFile,IniRead(IniRead($INIFile,'Paths','LabelView Label.ini File','ERROR'), 'Command File', 'Monitor Dir', '....') &'\Bulk.cmd') _Log($LogFile,'Program Action: Temp file copied to '&IniRead(IniRead($INIFile,'Paths','LabelView Label.ini File','ERROR'), 'Command File', 'Monitor Dir', '....') &'\Bulk.cmd') ;_GUICtrlStatusBarSetText ($StatusBar1,'Temp file copied to '&IniRead(IniRead($INIFile,'Paths','LabelView Label.ini File','ERROR'), 'Command File', 'Monitor Dir', '....') &'\Bulk.cmd',1) FileDelete($TempFile) _Log($LogFile,'Program Action: Temp file deleted.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Temp file deleted.',1) _ClearAllInputs() _Log($LogFile,'Program Action: All inputs cleared.') ;_GUICtrlStatusBarSetText ($StatusBar1,'All inputs cleared.',1) GUICtrlSetState($BpkgBrec,$GUI_UNCHECKED) GUICtrlSetState($BulkESD,$GUI_UNCHECKED) GUICtrlSetState($NONGMAddressLabels,$GUI_UNCHECKED) GUICtrlSetState($GMAddressLabels,$GUI_UNCHECKED) _SetDisplayData() ;~ _EnableAddressLabelOptions(0) _EnableLabelData(0) ;~ _EnableIDLabelData(0) ;~ _EnableListData(0) _EnableTreeViewData(0) _Log($LogFile,'Program Action: GUI controls set to a "fresh" state.') ;_GUICtrlStatusBarSetText ($StatusBar1,'GUI controls reset.',1) EndFunc Func _AuditTag($Label,$QOP) $Caution_Label = Caution_label($sKitNumber,$sCustomerPartNumber,$sSalesOrder,$QOP) FileWriteLine($TempFile, 'LABELNAME = "' & $Label & '"' & @CRLF & _ 'Printer = "' & $PrinterName & '"' & @CRLF & _ 'SO = "' & $sSalesOrder & '"' & @CRLF & _ 'Cust = "' & $sCustomerPartNumber & '"' & @CRLF & _ 'text16 = "' & $sKitNumber & '"' & @CRLF & _ 'Desc = "' & $sDescription & '"' & @CRLF & _ 'Due = "' & $sDueDate & '"' & @CRLF & _ 'qop = "' & $QOP & '"' & @CRLF & _ 'QTY = "' & $sQtyRequested & '"' & @CRLF & _ 'PER = "' & $sQtyPerPallet & '"' & @CRLF & _ 'Partial = "' & $PARTIAL & '"' & @CRLF & _ 'FP = "' & $FULL_PALLETS & '"' & @CRLF & _ 'Full_Weight = "' & $Kit_Weight * $QOP + 50 & '"' & @CRLF & _ 'Current_Weight = "' & $Kit_Weight * $QOP + 50 & '"' & @CRLF & _ 'Caution_Label = "' & $Caution_Label & '"' & @CRLF & _ 'LABELQUANTITY =1') EndFunc ;==>_AuditTag Func _DCXShipCodeLabel($sSalesOrder) Local $Ship_Code_Number = IniRead(IniRead($INIFile,'Paths','DCX Ship Code File','Error'), 'Ship Codes', $sSalesOrder, 'Error') If $Ship_Code_Number <> 'Error' Then FileWriteLine($TempFile, 'LABELNAME = "' & IniRead($INIFile,'Paths','DCX Ship Code Label','Error') & '"' & @CRLF & _ 'Printer = "' & $PrinterName & '"' & @CRLF & _ 'Text16 = "' & $Ship_Code_Number & '"' & @CRLF & _ 'LABELQUANTITY =1') _Log($LogFile,'Program Action: DCX ship code label print job data added to temp file. Code: '&$Ship_Code_Number) ;_GUICtrlStatusBarSetText ($StatusBar1,'DCX Ship code label.',1) EndIf EndFunc ;==>_DCXShipCodeLabel Func _NonGMShippingLabel($qty,$Label,$QOP) FileWriteLine($TempFile, 'LABELNAME = "' & $Label & '"' & @CRLF & _ 'Printer = "' & $PrinterName & '"' & @CRLF & _ 'Text19 = "' & $sSalesOrder & '"' & @CRLF & _ 'Part = "' & $sCustomerPartNumber & '"' & @CRLF & _ 'kit = "' & $sKitNumber & '"' & @CRLF & _ 'text14 = "' & $sDescription & '"' & @CRLF & _ 'QTY = "' & $QOP & '"' & @CRLF & _ 'LABELQUANTITY ='&$qty) EndFunc ;==>_NonGMShippingLabel Func _GMShippingLabels($qty,$QOP) FileWriteLine($TempFile, 'LabelName = "' & IniRead($INIFile,'Paths','GM Address Label','Error') & '"' & @CRLF & _ 'Printer = "' & $PrinterName & '"' & @CRLF & _ 'SO = "' & $sSalesOrder & '"' & @CRLF & _ 'Part = "' & $sCustomerPartNumber & '"' & @CRLF & _ 'text40 = "' & $sKitNumber & '"' & @CRLF & _ 'text38 = "' & $sDescription & '"' & @CRLF & _ 'QTY = "' & $QOP & '"' & @CRLF & _ 'LABELQUANTITY = '&$qty) EndFunc ;==>_GMShippingLabels Func Caution_label($sKitNumber,$sCustomerPartNumber,$sSalesOrder,$QOP) Local $Sales_Order_Customer = IniRead(IniRead($INIFile,'Paths','Finished Kit Data', "ERROR"),$sKitNumber & ',' & $sCustomerPartNumber, 'Heavy Load Label', "ERROR") $Kit_Weight = IniRead(IniRead($INIFile,'Paths','Finished Kit Data', "ERROR"),$sKitNumber&','&$sCustomerPartNumber, "Weight", "ERROR") If $Sales_Order_Customer = 'ERROR' Then _Log($LogFile,'Program Action: Opening heavy load label GUI.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Opening heavy load label GUI.',1) _HeavyLoadLabelGUI($sKitNumber,$sCustomerPartNumber,IniRead($INIFile,'Paths','Finished Kit Data', "ERROR")) EndIf If $Kit_Weight = 'ERROR' Then _Log($LogFile,'Program Action: Opening kit weight GUI.') ;_GUICtrlStatusBarSetText ($StatusBar1,'Opening kit weight GUI.',1) _KitWeightGUI($sKitNumber,$sCustomerPartNumber,IniRead($INIFile,'Paths','Finished Kit Data', "ERROR")) EndIf If $Kit_Weight * $QOP + 50 >= 800 Then Select Case $Sales_Order_Customer = "FORD" $Caution_Label = "Ford Heavy.bmp" _Log($LogFile,'Program Action: '&$Caution_Label&' selected as heavy load image.') ;_GUICtrlStatusBarSetText ($StatusBar1,$Caution_Label&' selected as heavy load image.',1) Return $Caution_Label Case Else $Caution_Label = "BonW Heavy.bmp" _Log($LogFile,'Program Action: '&$Caution_Label&' selected as heavy load image.') ;_GUICtrlStatusBarSetText ($StatusBar1,$Caution_Label&' selected as heavy load image.',1) Return $Caution_Label EndSelect Else $Caution_Label = "Nothing.bmp" ;Fake file _Log($LogFile,'Program Action: '&$Caution_Label&' selected as heavy load image.') ;_GUICtrlStatusBarSetText ($StatusBar1,$Caution_Label&' selected as heavy load image.',1) Return $Caution_Label EndIf EndFunc ;==>Caution_label Func _CatchEnterThenTab() Send('{TAB}') EndFunc Func _OpenLabelView() $s_LabelViewExe = RegRead('HKEY_CLASSES_ROOT\Lblvw.Document\shell\open\command','') $s_LabelViewExe = StringSplit($s_LabelViewExe,' ') $LabelView_PID = Run($s_LabelViewExe[1] & " /cmdm " & IniRead(IniRead($INIFile,'Paths','LabelView Label.ini File','ERROR'), 'Command File', 'Monitor Dir', '....')) _Log($LogFile,'Program Initializing - Waiting on Command File Monitor to open.') WinWait('Command File Monitor') WinActivate($Form1) WinWaitActive($Form1) EndFunc Func _GetNumLock() Local $ret $ret = DllCall("user32.dll","long","GetKeyState","long",$VK_NUMLOCK) Return $ret[0] EndFunc Func _SetNumLock() If _GetNumLock() = 0 Then ConsoleWrite('@@ Debug(865) : _GetNumLock() = ' & _GetNumLock() & @lf & '>Error code: ' & @error & @lf) ;### Debug Console Do Send('{NUMLOCK}') Sleep(200) Until _GetNumLock() = 1 EndIf EndFunc Func _LabelSelectionUpdate() Dim $a_ListBox[4] $a_ListBox[1] = $ADDRESS_LIST $a_ListBox[2] = $PACKAGING_LABELS_LIST $a_ListBox[3] = $MISC_LIST $SelectedLabelCount = 0 For $i = 1 To 3 $SelectedLabelCount += _GUICtrlListGetSelCount($a_ListBox[$i]) Next If $SelectedLabelCount <> $OldSelectedLabelCount Then _GUICtrlTreeViewDeleteAllItems ( $PrinterTreeView ) GUICtrlSetState($PrinterList,$GUI_DISABLE) GUICtrlSetData ( $PrinterList,'|'&_Identify_Printers()) Dim $a_list Dim $PrinterTreeViewItem[1][1][1] For $i = 1 to 3 $a_list = _GUICtrlListGetSelItemsText($a_ListBox[$i]) ReDim $PrinterTreeViewItem[Ubound($PrinterTreeViewItem,1)+1][Ubound($PrinterTreeViewItem,2)+1][Ubound($PrinterTreeViewItem,3)+1] Select Case $i = 1 $PrinterTreeViewItem[1][1][1] = _GUICtrlTreeViewInsertItem($PrinterTreeView,'Address Labels') Case $i = 2 $PrinterTreeViewItem[2][1][1] = _GUICtrlTreeViewInsertItem($PrinterTreeView,'Packaging Labels') Case $i = 3 $PrinterTreeViewItem[3][1][1] = _GUICtrlTreeViewInsertItem($PrinterTreeView,'Misc. Labels') EndSelect For $ii = 1 To Ubound($a_list) -1 ReDim $PrinterTreeViewItem[Ubound($PrinterTreeViewItem,1)][Ubound($PrinterTreeViewItem,2)+1][Ubound($PrinterTreeViewItem,3)] $PrinterTreeViewItem[Ubound($PrinterTreeViewItem,1)-1][Ubound($PrinterTreeViewItem,2)-1][Ubound($PrinterTreeViewItem,1)-1] = _GUICtrlTreeViewInsertItem($PrinterTreeView,$a_list[$ii],$PrinterTreeViewItem[$i][1][1]) ReDim $PrinterTreeViewItem[Ubound($PrinterTreeViewItem,1)][Ubound($PrinterTreeViewItem,2)][Ubound($PrinterTreeViewItem,3)+1] $PrinterTreeViewItem[Ubound($PrinterTreeViewItem,1)-1][Ubound($PrinterTreeViewItem,2)-1][Ubound($PrinterTreeViewItem,1)-1] = _GUICtrlTreeViewInsertItem($PrinterTreeView,'Printer Needs Selected!',$PrinterTreeViewItem[Ubound($PrinterTreeViewItem,1)-1][Ubound($PrinterTreeViewItem,2)-1][Ubound($PrinterTreeViewItem,1)-1]) _GUICtrlTreeViewExpand($PrinterTreeView) GUICtrlSetState($PrinterList,$GUI_ENABLE) Next Next $OldSelectedLabelCount = $SelectedLabelCount EndIf EndFunc ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;; 09/25/07 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Func _Identify_Printers() Local $key, $default, $i = 1, $list, $name If @OSTYPE = "WIN32_WINDOWS" Then ;for 95/98/Me $key = "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print\Printers" $default = RegRead("HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\Print\Printers", "Default") Else;WIN_NT type for NT/2000/XP/2003 $key = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" $default = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows", "Device") $default = StringLeft($default, StringInStr($default, ",") - 1);remove info after comma... EndIf ; ENUMERATE LOCAL PRINTERS While 1 RegRead($key, "") If @error = 1 Then ExitLoop Local $name = RegEnumKey($key, $i) If @error Then ExitLoop ;~ Local $port = " on " & RegRead($key & "\" & $name, "Port") ;~ If StringReplace($name,",","\") = $default Then $port = ' * DEFAULT * ' & $port ;~ $list = $list & StringReplace($name,",","\") & $port & @CRLF $list = $list & StringReplace($name,",","\") & '|' $i = $i + 1 WEnd If $list = "" Then $list = "No printers detected" & @CRLF Return $list EndFunc ;==>_Identify_Printers #region ; Kit Weight INI ;~ $s_CustomerPartNumber = '04721820AE' ;~ $s_Kit = 136041 ;~ $s_KitDataFile = 'C:\Testkitweight.ini' ;~ _KitWeightGUI($s_Kit,$s_CustomerPartNumber,$s_KitDataFile) Func _KitWeightGUI($s_Kit,$s_CustomerPartNumber,$s_KitDataFile) ;~ #include <GUIConstants.au3> ;~ #include <Array.au3> Local $i_Weight Local $msg Local $Form1, $Label1, $Label2, $CtrlB_Continue ; GUI Controls #Region ### START Koda GUI section ### Form= $Kit_Setup = GUICreate("Kit Setup", 265, 128, -1, -1) $Label1 = GUICtrlCreateLabel("Kit "&$s_Kit&" is currently not on file.", 8, 8, 260, 17) $Label2 = GUICtrlCreateLabel("To create labels for this kit you must enter the weight of a finished kit. The weight should be on your process sheet already.", 8, 32, 245, 49) $CtrlI_Weight = GUICtrlCreateInput("", 8, 96, 49, 21) GUICtrlSetCursor ($CtrlI_Weight, 5) $CtrlB_Continue = GUICtrlCreateButton("Continue", 104, 96, 145, 23, $BS_DEFPUSHBUTTON) GUICtrlSetCursor ($CtrlB_Continue, 0) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### WinSetOnTop($Kit_Setup,'',1) While 1 Sleep(10) $msg = GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE Exit Case $CtrlB_Continue $i_Weight = GUICtrlRead($CtrlI_Weight) If StringIsDigit($i_Weight)Then SetError(0) ElseIf StringRegExp($i_Weight,'[0123456789]*[.][0123456789]+') <> 0 Then SetError(0) Else SetError(1) EndIf If @error Then GUISetState(@SW_HIDE) MsgBox(4096+48,'Error','Invalid format, only digits (0-9) are acceptable.') GUICtrlSetData($CtrlI_Weight,'') GUICtrlSetState($CtrlI_Weight,$GUI_FOCUS) GUISetState(@SW_SHOW) ContinueLoop Else IniWrite($s_KitDataFile,$s_Kit&','&$s_CustomerPartNumber,'Weight',$i_Weight) WinSetOnTop($Kit_Setup,'',0) GUIDelete($Kit_Setup) ExitLoop EndIf EndSwitch WEnd EndFunc #endregion #region ; Customer Name - Sales Order Link INI ;~ #include <GUIConstants.au3> ;~ $s_CustomerPartNumber = '04721820AE' ;~ $s_Kit = 136041 ;~ $s_KitDataFile = 'C:\Testkitdata.ini' ;~ _HeavyLoadLabelGUI($s_Kit,$s_CustomerPartNumber,$s_KitDataFile) Func _HeavyLoadLabelGUI($s_Kit,$s_CustomerPartNumber,$s_KitDataFile) #Region ### START Koda GUI section ### Form= $Heavy_Load = GUICreate("Label Selection", 233, 388, -1, -1) $Label1 = GUICtrlCreateLabel("This sales order is currently not on file.", 16, 16, 183, 17) $Label2 = GUICtrlCreateLabel("Select the image below, that best suits the proper label, required for the customer.", 16, 40, 203, 33) $Pic1 = GUICtrlCreatePic("G:\Packaging\Labels\LVWIN70\PCX\Ford Heavy.bmp", 24, 88, 185, 137, BitOR($SS_NOTIFY,$WS_GROUP)) GUICtrlSetCursor ($Pic1, 0) $Pic2 = GUICtrlCreatePic("G:\Packaging\Labels\LVWIN70\PCX\BonW Heavy.bmp", 24, 240, 185, 121, BitOR($SS_NOTIFY,$WS_GROUP)) GUICtrlSetCursor ($Pic2, 0) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### WinSetOnTop($Heavy_Load,'',1) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Pic1 IniWrite($s_KitDataFile,$s_Kit&','&$s_CustomerPartNumber,'Heavy Load Label','Ford') ExitLoop Case $Pic2 IniWrite($s_KitDataFile,$s_Kit&','&$s_CustomerPartNumber,'Heavy Load Label','Other') ExitLoop EndSwitch WEnd WinSetOnTop($Heavy_Load,'',0) GUIDelete($Heavy_Load) EndFunc #endregion Func _Log($s_LogFile,$WhatToLog) Local $file = FileOpen($s_LogFile,1) FileWriteLine($file, _NowDate() & ' ' & _NowTime(5) & ' ' & $WhatToLog );& @CRLF) FileClose($file) EndFunc INI TreeViewA bus station is where a bus stops, a train station is where a train stops. Onmy desk I have a work station... Share this post Link to post Share on other sites
strate 0 Posted October 1, 2007 I'm guessing this isn't possible? INI TreeViewA bus station is where a bus stops, a train station is where a train stops. Onmy desk I have a work station... Share this post Link to post Share on other sites
qazwsx 0 Posted October 1, 2007 well i think its possible but it would be a work around is that ok? Share this post Link to post Share on other sites
strate 0 Posted October 1, 2007 I'm open for anything, except that it has to be limitless. INI TreeViewA bus station is where a bus stops, a train station is where a train stops. Onmy desk I have a work station... Share this post Link to post Share on other sites