856 lines
		
	
	
		
			37 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			856 lines
		
	
	
		
			37 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Function NDW_Main_Events(CtrlEntId, Event, @PARAMS)
 | |
| /***********************************************************************************************************************
 | |
| 
 | |
|     This program is proprietary and is not to be used by or disclosed to others, nor is it to be copied without written
 | |
|     permission from Infineon.
 | |
| 
 | |
|     Name        :   NDW_Main_Events
 | |
| 
 | |
|     Description :   This function acts as a commuter module for all events related to this window.
 | |
| 
 | |
|     Notes       :   Commuter Modules are automatically called from the Promoted_Events function which is called by the
 | |
|                     application-specific promoted event handler. This makes it possible to add QuickEvents that need to
 | |
|                     execute Basic+ logic without having use the Form Designer to make the association, although this is
 | |
|                     limited to the events which are currently promoted.
 | |
| 
 | |
|                     If the form needs to call the commuter module directly then the QuickEvent parameters should be
 | |
|                     formatted like this:
 | |
| 
 | |
|                         '@SELF','@EVENT',['@PARAM1','@PARAMx']
 | |
| 
 | |
|     Parameters  :
 | |
|         CtrlEntId   [in] -- The fully qualified name of the control calling the promoted event
 | |
|         Event       [in] -- The event being executed. See the Notes section regarding "PRE" events
 | |
|         Param1-15   [in] -- Additional event parameter holders
 | |
|         EventFlow  [out] -- Set to 1 or 0 so the calling event knows whether or not to chain forward. See comments in
 | |
|                             EVENT_SETUP insert
 | |
| 
 | |
|     History     :   (Date, Initials, Notes)
 | |
|         05/08/18    dmb     Created initial commuter module.
 | |
| 
 | |
| ***********************************************************************************************************************/
 | |
| 
 | |
| #pragma precomp SRP_PreCompiler
 | |
| #Window NDW_MAIN
 | |
| 
 | |
| $insert APP_INSERTS
 | |
| $insert EVENT_SETUP
 | |
| $insert MSG_EQUATES
 | |
| $insert ENVIRON_CONSTANTS
 | |
| $insert NOTIFICATION_EQUATES
 | |
| $insert REACT_MODE_EQU
 | |
| $insert REACT_UTIL_EQU
 | |
| $insert TOOL_EQUATES
 | |
| $insert RLIST_EQUATES
 | |
| $insert WO_LOG_EQUATES
 | |
| $insert REACTOR_CHILD_KEY_IDS_EQUATES
 | |
| 
 | |
| Equ WIDTH$  to 3
 | |
| Equ HEIGHT$ to 4
 | |
| 
 | |
| Declare function   GetCommandLine, MemberOf, obj_Install, obj_Notes_Sent, FindWindow, ShowWindow, Next_Key
 | |
| Declare function   Environment_Services, Reactor_Services, Database_Services, obj_Tool, Messaging_Services, SRP_JSON
 | |
| Declare function   Notes_Services, RTI_Xlate_Controller
 | |
| Declare subroutine Set_Env, obj_Appwindow, Get_BMP_Info, obj_Login, obj_Calib_List, End_Window, Start_Window, Next_Key
 | |
| Declare subroutine Database_Services, obj_React_Status, Obj_React_Mode, obj_Tool_Log, RList, Messaging_Services, RTP27
 | |
| Declare subroutine Notes_Services, Obj_Note_Ptrs, Comm_Note_Ptrs, SRP_Run_Command, PlaceDialog, GetEngineVersion
 | |
| 
 | |
| SubclassInfo    = Form_Services('FindSubclassControl')
 | |
| Subclass        = SubclassInfo<1>
 | |
| 
 | |
| // Update the arguments so that the OpenInsight OLE event will treate the ActiveX event as a native event handler.
 | |
| If Event EQ 'OLE' then
 | |
|     Transfer Event to OIEvent
 | |
|     Transfer Param1 to Event
 | |
|     Transfer Param2 to Param1
 | |
|     Transfer Param3 to Param2
 | |
|     Transfer Param4 to Param3
 | |
|     Transfer Param5 to Param4
 | |
|     Transfer Param6 to Param5
 | |
|     Transfer Param7 to Param6
 | |
|     Transfer Param8 to Param7
 | |
| end
 | |
| 
 | |
| 
 | |
| GoToEvent Event for CtrlEntID
 | |
| 
 | |
| Return EventFlow else EVENT_CONTINUE$
 | |
| 
 | |
| 
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| // Events
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| Event WINDOW.CREATE(CreateParam)
 | |
| 	
 | |
| 	Version      = ''
 | |
| 	GetEngineVersion(Version)
 | |
| 	MajorVersion = Version[1, 'F.']
 | |
| 	If MajorVersion GE 10 then
 | |
| 		// Stopgap performance fix for OI 10.2.2 RC1. Revelation will re-enable caching by default in 10.2.2 RC2.
 | |
| 		// Do not invoke this in OI 9 as the function does not exist!
 | |
| 		rv = RTI_Xlate_Controller('EnableCache')
 | |
| 	end
 | |
| 
 | |
|     Set_Property(@Window, '@INIT', True$)
 | |
|     
 | |
|     Server  = Environment_Services('GetServer')
 | |
|     Command = GetCommandLine()
 | |
|     Command = Trim(Command)
 | |
|     Convert ' ' to @FM in Command
 | |
|     Convert @Lower_Case to @Upper_Case in Command
 | |
|     NumArguments = DCount(Command, @FM)
 | |
|     Done    = False$
 | |
|     For ArgCnt = 1 to NumArguments
 | |
|         Argument = Command<ArgCnt>
 | |
|         If Argument[1, 3] EQ '/UN' then
 | |
|             @USER4 = Argument[-1, 'B=']
 | |
|             Done   = True$
 | |
|         end
 | |
|     Until Done
 | |
|     Next ArgCnt
 | |
| 
 | |
| 
 | |
|     IF @USER4 = 'INDEXER' THEN
 | |
|         void = Start_Window( 'IDXSVR', '', '', '', '' )
 | |
|         Post_Event(@Window, 'CLOSE')
 | |
|         RETURN 0
 | |
|     END
 | |
| 
 | |
|     IF @USER4 = 'VISION' THEN
 | |
|         void = Start_Window( 'VISION_COMM', @WINDOW, '', '', '' )
 | |
|         RETURN 0
 | |
|     END
 | |
| 
 | |
|     IF @USER4 = 'ADCSVR' THEN
 | |
|         void = Start_Window( 'SERVICE_MANAGER', '', '', '', '' )
 | |
|         Post_Event(@Window, 'CLOSE')
 | |
|         RETURN 0
 | |
|     END
 | |
| 
 | |
|     IF @USER4 = 'SAP' THEN
 | |
|         void = Start_Window( 'DIALOG_SAP_COMM', '', '', '', '')
 | |
|         Post_Event(@Window, 'CLOSE')
 | |
|         RETURN 0
 | |
|     END
 | |
|     
 | |
|     IF @USER4 = 'MESSENGER' THEN
 | |
|         void = Start_Window('NDW_MESSAGE_LISTENER', '', '', '', '')
 | |
|         Post_Event(@Window, 'CLOSE')
 | |
|         RETURN 0
 | |
|     END
 | |
| 
 | |
|     // The messaging port the messaging processor uses isn't open for between the app servers and the DB servers.
 | |
|     // Don't start the messaging processor on the app server to avoid boot up delays.
 | |
|     If ( (Server NE 'MESSA005') and (Server NE 'MESSA012') ) then Start_Window('NDW_MESSAGING_PROCESSOR', @Window)
 | |
| 
 | |
|     AccessLevel    = Dialog_Box('LOGON', @Window)
 | |
| 
 | |
|     If (AccessLevel EQ -1) OR (AccessLevel EQ '') then
 | |
|         Set_Property(@Window, '@CLOSE', 1)
 | |
|         Post_Event(@Window, 'CLOSE')
 | |
|         // This prevents OI from throwing an error message if the cancel button is pressed on the LOGON form.
 | |
|         //If (Server EQ 'MESST5201') or (Server EQ 'MESST5202') then Utility("DESTROY", "SYSTEM")
 | |
|     end
 | |
|     
 | |
|     If AccessLevel GE 0 then
 | |
| 
 | |
|         IF MemberOf(@USER4, 'OI_ADMIN') OR @USER4 = 'MIS' THEN
 | |
|             Set_Env(ENV_DEBUGGER_ENABLED$, 1, 1)
 | |
|             Set_Env(ENV_DEBUGGER_INTERCEPT_PROC$,'',1)
 | |
|             
 | |
|             * This section added 9/17/2014 JCH for FTPQueueing for manual batch transmits
 | |
|             
 | |
|             OPEN 'FTP_QUEUE' TO FTPQueue THEN
 | |
|                 SELECT FTPQueue
 | |
|                 
 | |
|                 RecCnt = 0
 | |
|                 Done = 0
 | |
|                 LOOP
 | |
|                     READNEXT QueueKey ELSE Done = 1
 | |
|                 UNTIL Done
 | |
|                     RecCnt += 1
 | |
|                 REPEAT
 | |
|                 
 | |
|                 Set_Property(@Window : '.PUB_SHIP_DATA_QUEUE','DEFPROP',RecCnt:' in Ship Data Queue')
 | |
|                 Set_Property(@Window : '.PUB_SHIP_DATA_QUEUE','VISIBLE',1)
 | |
|             END
 | |
|             
 | |
|         END ELSE
 | |
|             
 | |
|             Set_Env(ENV_DEBUGGER_ENABLED$, 2, 1)
 | |
|             Set_Env(ENV_DEBUGGER_INTERCEPT_PROC$,'EPI_USER_DEBUG',1)
 | |
| 
 | |
|             Set_Property(@Window : '.PUB_SHIP_DATA_QUEUE','VISIBLE',0)
 | |
|         END
 | |
| 
 | |
| 
 | |
|         IF MemberOf(@USER4,'OI_ADMIN') THEN
 | |
| 
 | |
|             * This section added 7/31/2015 JCH for Shipment eMail Queueing for manual batch transmits
 | |
|             
 | |
|             OPEN 'SHIP_EMAIL_QUEUE' TO Ship_eMailQueue THEN
 | |
|                 SELECT Ship_eMailQueue
 | |
|                 
 | |
|                 RecCnt = 0
 | |
|                 Done = 0
 | |
|                 LOOP
 | |
|                     READNEXT QueueKey ELSE Done = 1
 | |
|                 UNTIL Done
 | |
|                     RecCnt += 1
 | |
|                 REPEAT
 | |
|                 
 | |
|                 Set_Property(@Window : '.PUB_SHIP_DOC_QUEUE','DEFPROP',RecCnt:' in Ship Doc Queue')
 | |
|                 Set_Property(@Window : '.PUB_SHIP_DOC_QUEUE','VISIBLE',1)
 | |
|             END
 | |
| 
 | |
|         END
 | |
| 
 | |
|         Company     = obj_Install('Get_Prop','CompTitle')
 | |
|         WinTitle    = Get_Property(@WINDOW,'TEXT')
 | |
|         Machine     = ''
 | |
|         If (Server EQ 'MESST5201') or (Server EQ 'MESST5202') then 
 | |
|             Machine = 'Server - ' : Server
 | |
|         end else
 | |
|             Machine = 'Client'
 | |
|         end
 | |
| 
 | |
|         WinTitle    = Get_Property(@WINDOW,'TEXT')
 | |
|         LSL2Version = Xlate('LSL_USERS', @User4, 'LSL2_VERSION', 'X')
 | |
|         OCXVersion  = Xlate('LSL_USERS', @User4, 'OCX_VERSION', 'X')
 | |
|         OIVersion   = Get_Property('SYSTEM', 'VERSION')
 | |
|         OIVersion   = OIVersion<2>
 | |
|         Set_Property(@WINDOW,'TEXT',Company:' ':WinTitle: ' - ':Machine: ' - v':LSL2Version:' - OCX v':OCXVersion:' - OpenInsight v':OIVersion)
 | |
| 
 | |
|         rv  = Set_Property(@WINDOW:'.CURRENT_USER', 'TEXT', 'User: ':oconv( @user4, '[XLATE_CONV,LSL_USERS*FIRST_LAST]' ))
 | |
|         rv  = Set_Property(@WINDOW:'.OLE_PIC_CURRENT_USER','OLE.Caption','User: ':OCONV( @USER4, '[XLATE_CONV,LSL_USERS*FIRST_LAST]' ))
 | |
|         rv  = Set_Property(@WINDOW:'.OLE_PIC_CURRENT_USER','OLE.CaptionColor', 'RGB(0,93,169)')
 | |
|         rv  = Set_Property(@WINDOW:'.GROUP_1', 'VISIBLE', 1)
 | |
| 
 | |
|         Recipients    = XLATE('NOTIFICATION','CONFIG_LIMITED',NOTIFICATION_USER_ID$,'X')
 | |
| 
 | |
|         LOCATE @USER4 IN Recipients USING @VM SETTING Pos THEN
 | |
|             obj_Login('LateShip')
 | |
|         END
 | |
| 
 | |
|         NotesSent   = obj_Notes_Sent('GetUserKeys',@USER4)
 | |
|         NewMessages = XLATE('NOTE_PTRS',@USER4,'NEW_MESSAGES','X')
 | |
| 		
 | |
| 		ShowPTO = XLATE('APP_INFO', 'MATERIAL_SCAN_FORM_SHOW', 1, 'X')
 | |
| 
 | |
| 		If ShowPTO NE '1' then
 | |
| 			Set_Property(@WINDOW:'.MENU.MATERIAL.MATERIAL_SCAN','VISIBLE',0)
 | |
| 		end
 | |
|         
 | |
|         IF MemberOf(@USER4, 'SPEC_CHANGE') OR MemberOf(@USER4, 'OI_ADMIN') THEN
 | |
|             Set_Property(@WINDOW:'.MENU.ENGINEERING.TOOL_CLASS_-_RECIPES__PATTERNS','VISIBLE',1)
 | |
|             Set_Property(@WINDOW:'.MENU.ADM.TOOLS.PRS_STAGE_DEFAULTS','VISIBLE',1)
 | |
|         END ELSE
 | |
|             Set_Property(@WINDOW:'.MENU.ENGINEERING.TOOL_CLASS_-_RECIPES__PATTERNS','VISIBLE',0)
 | |
|             Set_Property(@WINDOW:'.MENU.ADM.TOOLS.PRS_STAGE_DEFAULTS','VISIBLE',0)
 | |
|         END
 | |
| 
 | |
|         Ctrls  = @WINDOW:'.MENU.ADMIN.FABTIME_SUPPORT':@RM      ; Props  = 'ENABLED':@RM
 | |
|         Ctrls := @WINDOW:'.MENU.MAINT.REACTOR_MAINTENANCE':@RM  ; Props := 'ENABLED':@RM
 | |
|         Ctrls := @WINDOW:'.MENU.ADM.TOOLS':@RM                  ; Props := 'ENABLED':@RM
 | |
|         Ctrls := @WINDOW:'.MENU.ADM.RAS':@RM                    ; Props := 'ENABLED':@RM
 | |
|         Ctrls := @WINDOW:'.MENU.ADM.DEVELOPER':@RM              ; Props := 'ENABLED':@RM
 | |
|         Ctrls := @WINDOW:'.MENU.ADMIN.DEV.ARCHIVE'              ; Props := 'ENABLED'  
 | |
|         IF Memberof(@user4, 'OI_ADMIN') OR Memberof(@user4, 'BUSINESS_ADMINS') THEN
 | |
|             Vals = 1
 | |
|         END ELSE
 | |
|             Vals = 0
 | |
|         END
 | |
|         Set_Property(Ctrls,Props,Vals)                                        ; * Sets the enabled property ON/OFF for the record mark delimited variables Ctrls,Props, and Vals
 | |
| 
 | |
| 		If MemberOf(@User4, 'OI_ADMIN') OR MemberOf(@User4, 'BUSINESS_ADMINS') then
 | |
| 			Set_Property(@Window : '.MENU.ADM.SYSTEM_CONFIG', 'ENABLED', 1)
 | |
| 		end else
 | |
| 			Set_Property(@Window : '.MENU.ADM.SYSTEM_CONFIG', 'ENABLED', 0)
 | |
| 		end
 | |
| 		
 | |
|         Ctrls := @WINDOW:'.MENU.ADMIN.SAP_INTERFACE':@RM        ; Props := 'ENABLED':@RM
 | |
|         Ctrls := @WINDOW:'.MENU.ADM.WAREHOUSE':@RM              ; Props := 'ENABLED':@RM
 | |
|         Ctrls := @WINDOW:'.MENU.ADMIN.SAP_INTERFACE.SAP_COMM_MONITOR':@RM   ; Props := 'VISIBLE':@RM
 | |
| 		
 | |
|         IF Memberof(@user4, 'OI_ADMIN') OR Memberof(@user4, 'OI_SUPERUSER') THEN     
 | |
|             Vals = 1
 | |
|         END ELSE
 | |
|             Vals = 0
 | |
|         END
 | |
|         Set_Property(Ctrls,Props,Vals)                                        ; * Sets the enabled property ON/OFF for the record mark delimited variables Ctrls,Props, and Vals
 | |
| 
 | |
|         Ctrls  = @WINDOW:'.MENU.ADM.THRUPUT_TARGETS':@RM        ; Props  = 'ENABLED':@RM
 | |
|         Ctrls := @WINDOW:'.MENU.PROD.REACTOR_RUN'               ; Props := 'ENABLED'
 | |
|         IF Memberof(@user4,'CONFIG_LIMITED') THEN
 | |
|             Vals = 1
 | |
|         END ELSE
 | |
|             Vals = 0
 | |
|         END
 | |
|         Set_Property(Ctrls,Props,Vals)                                        ; * Sets the enabled property ON/OFF for the record mark delimited variables Ctrls,Props, and Vals
 | |
| 
 | |
|         If Not(MemberOf(@USER4, 'LEAD')) AND Not(MemberOf(@USER4, 'SUPERVISOR')) AND Not(MemberOf(@USER4, 'MAINTENANCE')) then
 | |
|             Set_Property(@Window : '.MENU.ADMIN.MASS_TOOL_MODE_CHANGE', 'VISIBLE', 0)
 | |
|             Set_Property(@Window : '.MENU.ADMIN.MASS_REACTOR_MODE_CHANGE', 'VISIBLE', 0)
 | |
|         end
 | |
|         
 | |
|         UseFQAMatScan = Database_Services('ReadDataRow', 'APP_INFO', 'USE_FQA_MAT_SCAN')
 | |
|         If UseFQAMatScan EQ 1 OR MemberOf(@User4, 'OI_TEST') then
 | |
|             Set_Property(@Window:'.MENU.MATERIAL.FQA_MAT_SCAN', 'VISIBLE', 1)
 | |
|             Set_Property(@Window:'.MENU.MATERIAL.FQA_LABEL_CHECK', 'VISIBLE', 0)
 | |
|         end else
 | |
|             Set_Property(@Window:'.MENU.MATERIAL.FQA_MAT_SCAN', 'VISIBLE', 0)
 | |
|             Set_Property(@Window:'.MENU.MATERIAL.FQA_LABEL_CHECK', 'VISIBLE', 1)
 | |
|         end
 | |
|         
 | |
|         If MemberOf(@User4, 'PRODUCTION_LEADERSHIP') or MemberOf(@User4, 'OI_ADMIN') then
 | |
|         	Set_Property(@Window:'.MENU.ADMIN.FEATURE_FLAGS', 'ENABLED', True$)
 | |
|         end
 | |
|         
 | |
|         stat = Set_Property(@WINDOW,'TIMER',5000:@FM:1)    ;* Start the Keep Alive Timer event and run every 20 Minutes * * * * * * * * * * * *
 | |
| 
 | |
|         Set_Property(@Window:".OLE_SNOOZE", "OLE.Icon", "BMPS\do-not-disturb-mode.png")
 | |
|         Set_Property(@Window:".OLE_NOTES", "OLE.Font", @SVM:10)
 | |
|         Set_Property(@Window:".OLE_SNOOZE", "OLE.Font", @SVM:10)
 | |
|         Gosub SetSnoozeButtonState
 | |
|         PlaceDialog(-2, -2)
 | |
|         Set_Property(@Window, 'VISIBLE', 1)
 | |
|         Eventflow = 0
 | |
|         
 | |
|     end Else
 | |
|         Set_Property(@Window, 'VISIBLE', 2)
 | |
|         Post_Event(@Window, 'CLOSE')
 | |
|     end
 | |
|     
 | |
| end event
 | |
| 
 | |
| 
 | |
| Event WINDOW.CLOSE(CancelFlag)
 | |
| 
 | |
|     Void = Set_Property(@WINDOW,'TIMER','')
 | |
|     UNLOCK All
 | |
| 
 | |
| end event
 | |
| 
 | |
| 
 | |
| Event WINDOW.TIMER()
 | |
| 
 | |
|     OnInit = Get_Property(@Window, '@INIT')
 | |
|     If OnInit Then    	
 | |
|         Gosub Setup_OLE_Controls
 | |
|         Size            = Get_Property(@Window, 'SIZE')
 | |
|         ScreenSize      = Get_Property('SYSTEM', 'SIZE')
 | |
|         TrackingSize    = ''
 | |
|         TrackingSize<1> = Size<3>
 | |
|         TrackingSize<2> = Size<4>
 | |
|         TrackingSize<3> = ScreenSize<1>
 | |
|         TrackingSize<4> = ScreenSize<2>
 | |
|         Set_Property(@Window, 'TRACKINGSIZE', TrackingSize)
 | |
|         Set_Property(@Window, '@INIT', False$)
 | |
|         Post_Event(@Window, 'OMNIEVENT')
 | |
|     End
 | |
|     
 | |
|     Close   = Get_Property(@Window, '@CLOSE')
 | |
|     CurrDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTS')
 | |
| 
 | |
|     OPEN 'SYSLISTS' TO ListsFile THEN
 | |
|         Station = @STATION
 | |
|         Station = Station[1,'_']		
 | |
|         ListKey = Station:'*KEEP_ALIVE'
 | |
|         ListRec = @USER4:@FM:CurrDTM
 | |
|         WRITE ListRec ON ListsFile,ListKey ELSE NULL
 | |
|     END
 | |
|     
 | |
|     Snoozed = Notes_Services('CheckForNotificationSnooze', @USER4)
 | |
|     NotesSentKeys = Notes_Services('GetNewMessages', @User4); *Gets all new messages
 | |
|     if NotesSentKeys then
 | |
|         DisplayNotification = False$
 | |
|         for each NotesSent in NotesSentKeys using @VM
 | |
|             NotesSentRec = Database_Services('ReadDataRow', 'NOTES_SENT', NotesSent)
 | |
|             if Not(NotesSentRec<2>) then
 | |
|                 //Messaging_Services('SetPopupMessage', '','','You have new messages!')
 | |
|                 DisplayNotification = True$
 | |
|                 NotesSentRec<2>     = True$
 | |
|                 Database_Services('WriteDataRow', 'NOTES_SENT', NotesSent, NotesSentRec)
 | |
|             end
 | |
|         Next NotesSent
 | |
|         if DisplayNotification and Snoozed EQ FALSE$ then Messaging_Services('SetPopupMessage', '','',"You've got mail! =)")
 | |
|     end
 | |
|     
 | |
|     Notes_Services('UpdateNotes', @User4)
 | |
|     If Error_Services('HasError') then Error_Services('DisplayError')
 | |
|     NewMessages = Notes_Services('GetUnreadMessageCount', @User4)
 | |
|     
 | |
|     ColorFill   = ''
 | |
|     if NewMessages then
 | |
|         Set_Property(@Window:".OLE_NOTES", "OLE.Icon", "BMPS\envelope-regular.png")
 | |
|         ColorFill<1> = "Vertical(Gradient(RGB(252,212,66), (252,212,66)),Border(RGB(252,212,66)),Rounded(1))"
 | |
|         ColorFill<2> = "Vertical(Gradient(RGB(252,212,66) L=70, RGB(252,212,66) L=70), Border(RGB(252,212,66)),Rounded(1))"
 | |
|         ColorFill<3> = "Vertical(Gradient(RGB(252,212,66) L=40, RGB(252,212,66) L=40), Border(RGB(252,212,66)),Rounded(1))"
 | |
|         ColorFill<5> = "Vertical(Gradient(RGB(252,212,66), (252,212,66)),Border(RGB(252,212,66)),Rounded(1))"
 | |
|     end else
 | |
|         Set_Property(@Window:".OLE_NOTES", "OLE.Icon", "BMPS\envelope-open-regular.png")
 | |
|         ColorFill<1> = "Vertical(Gradient(RGB(155,186,67), (155,186,67)),Border(RGB(155,186,67)),Rounded(1))"
 | |
|         ColorFill<2> = "Vertical(Gradient(RGB(155,186,67) L=60, RGB(155,186,67) L=60), Border(RGB(155,186,67)),Rounded(1))"
 | |
|         ColorFill<3> = "Vertical(Gradient(RGB(155,186,67) L=40, RGB(155,186,67) L=40), Border(RGB(155,186,67)),Rounded(1))"
 | |
|         ColorFill<5> = "Vertical(Gradient(RGB(155,186,67), (155,186,67)),Border(RGB(155,186,67)),Rounded(1))"
 | |
|     end
 | |
|     Set_Property(@Window : '.OLE_NOTES', "OLE.Background", ColorFill)
 | |
|     Set_Property(@Window:".OLE_NOTES", "OLE.Caption", NewMessages)
 | |
|     
 | |
|     IF Get_Property('NOTE_PTRS', 'VISIBLE') then
 | |
|         Post_Event('NOTE_PTRS', 'OMNIEVENT')
 | |
|     end
 | |
|    
 | |
|     Gosub SetSnoozeButtonState
 | |
|     
 | |
|     Set_Property(@WINDOW:'.CURRENT_TIME','TEXT','Current Time: ':OCONV( TIME(), 'MTHS' ))
 | |
|     Set_Property(@WINDOW:'.CURRENT_DATE','TEXT','Date: ':OCONV( DATE(), 'D2/' ))
 | |
|     If Get_Property(@Window, '@CLOSE') then
 | |
|         Send_Event(@Window, 'CLOSE')
 | |
|     end
 | |
| 
 | |
| end event
 | |
| 
 | |
| 
 | |
| Event PUB_SHIP_DATA_QUEUE.CLICK()
 | |
| 
 | |
|     Start_Window('DIALOG_FTP_QUEUE', @Window)
 | |
| 
 | |
| end event
 | |
| 
 | |
| 
 | |
| Event PUB_SHIP_DOC_QUEUE.CLICK()
 | |
| 
 | |
|     Start_Window('DIALOG_EMAIL_SHIPMENT', @Window)
 | |
|     
 | |
| end event
 | |
| 
 | |
| 
 | |
| Event MENU.REACT_STAT.MENU()
 | |
| 	
 | |
|     Start_Window('REACT_STATUS_EVEN',@WINDOW,'')
 | |
|     Start_Window('REACT_STATUS_ODD',@WINDOW,'')
 | |
|     Start_Window('TOOL_STATUS',@WINDOW,'')
 | |
| 
 | |
| end event
 | |
| 
 | |
| 
 | |
| Event MENU.WIN.PROD.RMC.MENU()
 | |
| 
 | |
|     IF MemberOf(@USER4, 'DATA_ENTRY') OR MemberOf(@USER4, 'SUPERVISOR') THEN
 | |
|         Start_Window('REACT_MODE_CHG', @WINDOW, '*CENTER','','')
 | |
|     END ELSE
 | |
|         MsgInfo = ''
 | |
|         MsgInfo<MCOL$>    = -2
 | |
|         MsgInfo<MROW$>    = -2
 | |
|         MsgInfo<MTEXT$> = 'You must be a Supervisor or Technician in order to change reactor modes...'
 | |
|         MsgInfo<MICON$> = 'H'
 | |
|         void = Msg('',MsgInfo)
 | |
|     END
 | |
| 
 | |
| end event
 | |
| 
 | |
| 
 | |
| Event MENU.ADMIN.SAP_INTERFACE.SAP_COMM_MONITOR.MENU()
 | |
| 
 | |
|     rv  = Start_Window('DIALOG_SAP_COMM', '')
 | |
| 
 | |
| end event
 | |
| 
 | |
| 
 | |
| Event MENU.ADMIN.TOOLS_EVAC.MENU()
 | |
| 
 | |
|     // Require the user to acknowledge using their application password.
 | |
|     MsgOverride             = ''
 | |
|     MsgOverride<MDEFBTN$>   = 2 ; // Default to Cancel button.
 | |
|     Valid                   = Msg(@Window, MsgOverride, 'OK_CANCEL', '', 'Evac Procedures' : @FM : 'Please confirm that you wish to put all tools into Evac mode.')
 | |
| 
 | |
|     If Valid EQ '' then
 | |
|         UserName    = Oconv(@USER4, '[XLATE_CONV,LSL_USERS*FIRST_LAST]')
 | |
|         CurrDate    = Date()
 | |
|         CurrTime    = Time()
 | |
|         EvacMode    = 'Facilities (UnSched)'
 | |
|         EvacNotes   = 'Fab Evac'
 | |
|         NumberTools = 0
 | |
| 
 | |
|         // Step 1 - Update the Reactor Tools. This logic is based on the script event handler in the REACT_MODE_CHG.APPLY
 | |
|         // pushbutton control.
 | |
| 
 | |
|         ReactorNos  = Reactor_Services('GetReactorNumbers')
 | |
|         For Each ReactorNo in ReactorNos using @FM
 | |
|             ReactModeRow    = Database_Services('ReadDataRow', 'CONFIG', 'REACT_MODE' : ReactorNo)
 | |
|             ReactModeDesc   = ReactModeRow<Mode$>
 | |
|             If ReactModeDesc _NEC 'Shutdown' then
 | |
|                 ReactUtilID     = ReactModeRow<ReactUtilID$>
 | |
|                 ReactLogID      = ReactModeRow<ReactorLogID$>
 | |
|                 If ReactUtilID NE '' then
 | |
|                     ReactUtilRow                                = Database_Services('ReadDataRow', 'REACT_UTIL', ReactUtilID)
 | |
|                     ReactUtilRow<REACT_UTIL_END_DATE$>          = CurrDate
 | |
|                     ReactUtilRow<REACT_UTIL_END_TIME$>          = CurrTime
 | |
|                     ReactUtilRow<REACT_UTIL_MODE_FINISH_USER$>  = @USER4
 | |
|                     Database_Services('WriteDataRow', 'REACT_UTIL', ReactUtilID, ReactUtilRow, True$, '', True$)
 | |
|                 end else
 | |
|                     ReactUtilRow                                = ''
 | |
|                 end
 | |
| 
 | |
|                 hReactUtil                                      = Database_Services('GetTableHandle', 'REACT_UTIL')
 | |
|                 KeyToUse                                        = Next_Key('REACT_UTIL', hReactUtil, 'NEXT', '')
 | |
|                 NewReactUtilRow                                 = ''
 | |
|                 NewReactUtilRow<REACT_UTIL_REACTOR$>            = ReactorNo
 | |
|                 NewReactUtilRow<REACT_UTIL_NOTES$>              = EvacNotes
 | |
|                 NewReactUtilRow<REACT_UTIL_MODE$>               = 'S'
 | |
|                 NewReactUtilRow<REACT_UTIL_START_DATE$>         = CurrDate
 | |
|                 NewReactUtilRow<REACT_UTIL_START_TIME$>         = CurrTime
 | |
|                 NewReactUtilRow<REACT_UTIL_MODE_START_USER$>    = @USER4
 | |
|                 WorkOrderNo                                     = ReactUtilRow<REACT_UTIL_WO$>
 | |
|                 NewReactUtilRow<REACT_UTIL_WO$>                 = WorkOrderNo
 | |
|                 NewReactUtilRow<REACT_UTIL_CUST_NO$>            = Xlate('WO_LOG', WorkOrderNo, WO_LOG_CUST_NO$, 'X')
 | |
|                 NewReactUtilRow<REACT_UTIL_REACTOR_LOG_ID$>     = ''
 | |
|                 Database_Services('WriteDataRow', 'REACT_UTIL', KeyToUse, NewReactUtilRow, True$, '', True$)
 | |
|                 Database_Services('ReleaseKeyIDLock', 'REACT_UTIL', KeyToUse)
 | |
|                 Next_Key('REACT_UTIL', HReactUtil, 'UPDATE', KeyToUse)
 | |
| 
 | |
|                 NewReactModeRow                 = ''
 | |
|                 NewReactModeRow<Mode$>          = EvacMode
 | |
|                 NewReactModeRow<Username$>      = UserName
 | |
|                 NewReactModeRow<Date$>          = Oconv(CurrDate, 'D4/')
 | |
|                 NewReactModeRow<Time$>          = Oconv(CurrTime, 'MTH')
 | |
|                 NewReactModeRow<ReactUtilID$>   = KeyToUse
 | |
|                 NewReactModeRow<ReactorLogID$>  = ''
 | |
|                 NewReactModeRow<Note$>          = EvacNotes
 | |
| 
 | |
|                 CurrDTM     = NewReactModeRow<Date$> : ' ' : NewReactModeRow<Time$>
 | |
|                 PrevModeKey = Xlate('REACTOR_CHILD_KEY_IDS', ReactorNo, REACTOR_CHILD_KEY_IDS_REACT_MODE_KEY_IDS$, 'X')<1, 1>
 | |
|                 OpenDTM     = Field(PrevModeKey, '*', 2)
 | |
|                 OpenDTM     = Oconv(OpenDTM, 'DT4/^S')
 | |
|                 CurrMode    = Oconv(Xlate('REACTOR', ReactorNo, 'CURR_MODE', 'X'), '[REACT_MODE_CONV]')
 | |
|                 ProdModes   = 'Production':@VM
 | |
|                 ProdModes  := 'Production (incr sampling)'
 | |
|                 Locate CurrMode in ProdModes Using @VM Setting vPos then
 | |
|                     Locate EvacMode in ProdModes Using @VM Setting vPos else
 | |
|                         OutOfProdDTM    = NewReactModeRow<Date$> : ' ' : NewReactModeRow<Time$>
 | |
|                         obj_React_Status('SetOutOfProdDTM', ReactorNo : @RM : OutOfProdDTM)
 | |
|                     end ; // End of check on New Mode
 | |
|                 end ; // End of check on Current Mode
 | |
| 
 | |
|                 Database_Services('WriteDataRow', 'CONFIG', 'REACT_MODE' : ReactorNo, NewReactModeRow, True$, '', True$)
 | |
|                 If Error_Services('NoError') then
 | |
|                     NumberTools    += 1
 | |
|                     If CurrMode NE '' then
 | |
|                         // Close the currently active mode
 | |
|                         crParms  = ReactorNo
 | |
|                         crParms := @RM : OpenDTM
 | |
|                         crParms := @RM : CurrDTM
 | |
|                         crParms := @RM : @USER4
 | |
|                         crParms := @RM : NewReactModeRow<Note$>
 | |
|                         crParms := @RM : NewReactModeRow<ReactUtilID$>
 | |
|                         crParms := @RM : NewReactModeRow<ReactorLogID$>
 | |
|                         obj_React_Mode('Close', crParms)
 | |
|                     end
 | |
|                     // Create new active mode record
 | |
|                     crParms  = ReactorNo
 | |
|                     crParms := @RM : CurrDTM
 | |
|                     crParms := @RM : @USER4
 | |
|                     crParms := @RM : NewReactModeRow<Mode$>
 | |
|                     crParms := @RM : NewReactModeRow<Note$>
 | |
|                     crParms := @RM : NewReactModeRow<ReactUtilID$>
 | |
|                     crParms := @RM : NewReactModeRow<ReactorLogID$>
 | |
|                     obj_React_Mode('Create', crParms)
 | |
|                 end
 | |
|             end
 | |
|         Next ReactorNo
 | |
| 
 | |
|         // Step 2 - Update the Silicon Tools. This logic is based on the TBClick gosub in the Comm_Dialog_Tool_Status
 | |
|         // commuter module. This commuter module supports the TOOL_STATUS form.
 | |
| 
 | |
|         ToolIDs = obj_Tool('KeysByType')    ; // All tool IDs sorted by TOOL_TYPE
 | |
|         For Each ToolID in ToolIDs using @VM
 | |
|             ToolRow     = Database_Services('ReadDataRow', 'TOOL', ToolID)
 | |
|             CurrModeKey = ToolRow<TOOL_CURR_MODE_KEY$>
 | |
|             CurrMode    = Xlate('TOOL', ToolID, 'CURR_MODE', 'X')<1, 1>
 | |
|             If CurrMode NE 'OUT' AND CurrMode NE 'FACILITIES (UnSched)' then
 | |
|                 If CurrMode EQ '' then
 | |
|                     obj_Tool_Log('InitialLog', ToolID)
 | |
|                     CurrMode    = 'OUT'
 | |
|                 end
 | |
| 
 | |
|                 NumberTools    += 1
 | |
|                 CurrModeDTM     = Field(CurrModeKey, '*', 2)
 | |
|                 CurrModeDTM     = Oconv(CurrModeDTM, 'DT4/^S')
 | |
|                 Parms           = ToolID : @RM
 | |
|                 Parms          := CurrModeDTM : @RM
 | |
|                 Parms          := 'FACILITIES (UnSched)' : @RM
 | |
|                 Parms          := EvacNotes
 | |
|                 obj_Tool_Log('SetMode', Parms)
 | |
|             end
 | |
|         Next ToolID
 | |
| 
 | |
|         // Step 3 - Update the GaN Tools. This logic is based on the ToolOptions gosub in the GaN_Tool_Status commuter
 | |
|         // module. This commuter module supports the GAN_TOOL_STATUS form.
 | |
| 
 | |
|         SelectSent  = 'SELECT TOOL WITH TOOL_PROC "G" AND WITH CLASS NE "G_REACT" BY TOOL_WH BY TOOL_TYPE'
 | |
|         RList(SelectSent, TARGET_ACTIVELIST$, '', '', '')
 | |
| 	    EOF         = False$
 | |
| 	    Loop
 | |
| 	        Readnext ToolID else EOF = True$
 | |
|         Until EOF
 | |
|             ToolRow     = Database_Services('ReadDataRow', 'TOOL', ToolID)
 | |
|             CurrModeKey = ToolRow<TOOL_CURR_MODE_KEY$>
 | |
|             CurrMode    = Xlate('TOOL', ToolID, 'CURR_MODE', 'X')<1, 1>
 | |
|             If CurrMode NE 'OUT' AND CurrMode NE 'FACILITIES (UnSched)' then
 | |
|                 If CurrMode EQ '' then
 | |
|                     obj_Tool_Log('InitialLog', ToolID)
 | |
|                     CurrMode    = 'OUT'
 | |
|                 end
 | |
| 
 | |
|                 NumberTools    += 1
 | |
|                 CurrModeDTM     = Field(CurrModeKey, '*', 2)
 | |
|                 CurrModeDTM     = Oconv(CurrModeDTM, 'DT4/^S')
 | |
|                 Parms           = ToolID : @RM
 | |
|                 Parms          := CurrModeDTM : @RM
 | |
|                 Parms          := 'FACILITIES (UnSched)' : @RM
 | |
|                 Parms          := EvacNotes
 | |
|                 obj_Tool_Log('SetMode', Parms)
 | |
|             end
 | |
| 	    Repeat
 | |
| 	    Msg(@Window, '', 'OK', '', 'Evac Procedures' : @FM : NumberTools : ' tools have been placed into Evac mode.')
 | |
|     end
 | |
| 
 | |
| end event
 | |
| 
 | |
| 
 | |
| Event MENU.ADMIN.DEVELOPER.SESSION_MANAGER.MENU()
 | |
| 
 | |
|     rv  = Start_Window('NDW_SESSION_MANAGER', '')
 | |
| 
 | |
| end event
 | |
| 
 | |
| 
 | |
| Event OLE_NOTES.OnClick(Point, Button, Shift, Ctrl)
 | |
|     
 | |
|     rv  = Start_Window('NOTE_PTRS', '')
 | |
|     
 | |
| end event
 | |
| 
 | |
| 
 | |
| Event OLE_SNOOZE.OnClick(Point, Button, Shift, Ctrl)
 | |
| 	
 | |
|     Snoozed = Notes_Services('CheckForNotificationSnooze', @USER4)
 | |
|     If Snoozed then
 | |
|     	Notes_Services('AllowNewMessageNotifications', @USER4)
 | |
|     end else
 | |
| 		Notes_Services('SnoozeNewMessageNotifications', @USER4)
 | |
| 	end
 | |
|     Gosub SetSnoozeButtonState
 | |
|     
 | |
| end event
 | |
| 
 | |
| 
 | |
| Event OLE_WIP_STATUS.OnClick(Point, Button, Shift, Ctrl)
 | |
|     
 | |
|     Start_Window('REACT_STATUS_EVEN',@WINDOW,'')
 | |
|     Start_Window('REACT_STATUS_ODD',@WINDOW,'')
 | |
|     Start_Window('TOOL_STATUS',@WINDOW,'')
 | |
|     
 | |
| end event
 | |
| 
 | |
| 
 | |
| Event OLE_RDS.OnClick(Point, Button, Shift, Ctrl)
 | |
|     
 | |
|     rv  = Start_Window('RDS', '')
 | |
|     
 | |
| end event
 | |
| 
 | |
| Event OLE_WM_OUT.OnClick(Point, Button, Shift, Ctrl)
 | |
|     
 | |
|     rv  = Start_Window('WM_OUT', '')
 | |
|     
 | |
| end event
 | |
| 
 | |
| Event OLE_WORK_ORDER.OnClick(Point, Button, Shift, Ctrl)
 | |
|     
 | |
|     rv  = Start_Window('NDW_WO_LOG', '')
 | |
|     
 | |
| end event
 | |
| 
 | |
| Event OLE_LOG_TEST_RUN.OnClick(Point, Button, Shift, Ctrl)
 | |
|     
 | |
|     rv  = Start_Window('NDW_LOG_TEST_WAFER_USAGE', '')
 | |
|     
 | |
| end event
 | |
| 
 | |
| 
 | |
| Event MENU.MAINTENANCE.0311_OCAP_FORM.MENU()
 | |
|     
 | |
|     Command = 'start microsoft-edge:https://messa014.infineon.com:5022/'
 | |
|     SRP_Run_Command(Command, '', '', '')
 | |
|     
 | |
| end event
 | |
| 
 | |
| 
 | |
| Event MENU.PROD.NDW_RDS_QUERY.MENU()
 | |
|     
 | |
|     SelRDSKeys = Dialog_Box('NDW_RDS_QUERY', @Window)
 | |
|     IF SelRDSKeys NE '' THEN
 | |
|         Void = Start_Window( 'RDS', @window, SelRDSKeys:'*CENTER', '', '' )
 | |
|     END
 | |
|     
 | |
| end event
 | |
| 
 | |
| 
 | |
| Event WINDOW.OMNIEVENT(Message, Param1, Param2, Param3, Param4)
 | |
| 	
 | |
|     Gosub FixFont   
 | |
| 
 | |
| End event
 | |
| 
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| // Internal GoSubs
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| Setup_OLE_Controls:
 | |
| 
 | |
| 	PlaceDialog(-2, -2)
 | |
| 
 | |
|     Qualify     = ''
 | |
|     Qualify<1>  = 1
 | |
|     Qualify<4>  = 0
 | |
| 
 | |
|     Ctrl    = @Window : '.OLE_LAUNCHER'
 | |
|     Send_Message(Ctrl, 'QUALIFY_EVENT', 'OLE.OnLaunchAttempt', Qualify)
 | |
|     Send_Message(@Window : '.OLE_NOTES', 'QUALIFY_EVENT', 'OLE.OnClick', Qualify)
 | |
|     FontArray = Get_Property(@Window:'.OLE_NOTES', 'OLE.Font')
 | |
|     FontArray<1, 1, 2> = 14
 | |
|     Set_Property(@Window:".OLE_NOTES", "OLE.Font", FontArray)
 | |
|     
 | |
|     Send_Message(@Window : '.OLE_SNOOZE', 'QUALIFY_EVENT', 'OLE.OnClick', Qualify)
 | |
|     FontArray<1, 1, 2> = 10
 | |
|     Set_Property(@Window:".OLE_SNOOZE", "OLE.Font", FontArray)
 | |
|     
 | |
|     ColorFill = ''
 | |
|     FontArray<1, 1, 2> = 11
 | |
| 	Send_Message(@Window : '.OLE_WIP_STATUS', 'QUALIFY_EVENT', 'OLE.OnClick', Qualify)
 | |
|     Set_Property(@Window:".OLE_WIP_STATUS", "OLE.Font", FontArray)
 | |
|     ColorFill<1> = "White"
 | |
|     ColorFill<2> = "White"
 | |
|     ColorFill<3> = "White"
 | |
|     ColorFill<5> = "White"
 | |
|     Set_Property(@Window:".OLE_WIP_STATUS", "OLE.ForeColor", ColorFill)
 | |
|     ColorFill = ''
 | |
|     ColorFill<1> = "Vertical(Gradient(RGB(10, 130, 118), (10, 130, 118)),Border(RGB(10, 130, 118)),Rounded(1))"
 | |
|     ColorFill<2> = "Vertical(Gradient(RGB(10, 130, 118) L=40, RGB(10, 130, 118) L=40), Border(RGB(10, 130, 118)),Rounded(1))"
 | |
|     ColorFill<3> = "Vertical(Gradient(RGB(10, 130, 118) L=20, RGB(10, 130, 118) L=20), Border(RGB(10, 130, 118)),Rounded(1))"
 | |
|     ColorFill<5> = "Vertical(Gradient(RGB(10, 130, 118), (10, 130, 118)),Border(RGB(10, 130, 118)),Rounded(1))"
 | |
|     Set_Property(@Window : '.OLE_WIP_STATUS', "OLE.Background", ColorFill)
 | |
|     Set_Property(@Window:".OLE_WIP_STATUS", "OLE.Caption", "WIP Status")
 | |
|     
 | |
|     ColorFill = ''
 | |
|     Send_Message(@Window : '.OLE_RDS', 'QUALIFY_EVENT', 'OLE.OnClick', Qualify)
 | |
|     Set_Property(@Window:".OLE_RDS", "OLE.Font", FontArray)
 | |
|     ColorFill<1> = "White"
 | |
|     ColorFill<2> = "White"
 | |
|     ColorFill<3> = "White"
 | |
|     ColorFill<5> = "White"
 | |
|     Set_Property(@Window:".OLE_RDS", "OLE.ForeColor", ColorFill)
 | |
|     ColorFill = ''
 | |
|     ColorFill<1> = "Vertical(Gradient(RGB(10, 130, 118), (10, 130, 118)),Border(RGB(10, 130, 118)),Rounded(1))"
 | |
|     ColorFill<2> = "Vertical(Gradient(RGB(10, 130, 118) L=40, RGB(10, 130, 118) L=40), Border(RGB(10, 130, 118)),Rounded(1))"
 | |
|     ColorFill<3> = "Vertical(Gradient(RGB(10, 130, 118) L=20, RGB(10, 130, 118) L=20), Border(RGB(10, 130, 118)),Rounded(1))"
 | |
|     ColorFill<5> = "Vertical(Gradient(RGB(10, 130, 118), (10, 130, 118)),Border(RGB(10, 130, 118)),Rounded(1))"
 | |
|     Set_Property(@Window : '.OLE_RDS', "OLE.Background", ColorFill)
 | |
|     Set_Property(@Window:".OLE_RDS", "OLE.Caption", "RDS")
 | |
|     
 | |
|     ColorFill = ''
 | |
|     Send_Message(@Window : '.OLE_WM_OUT', 'QUALIFY_EVENT', 'OLE.OnClick', Qualify)
 | |
|     Set_Property(@Window:".OLE_WM_OUT", "OLE.Font", FontArray)
 | |
|     ColorFill<1> = "White"
 | |
|     ColorFill<2> = "White"
 | |
|     ColorFill<3> = "White"
 | |
|     ColorFill<5> = "White"
 | |
|     Set_Property(@Window:".OLE_WM_OUT", "OLE.ForeColor", ColorFill)
 | |
|     ColorFill = ''
 | |
|     ColorFill<1> = "Vertical(Gradient(RGB(10, 130, 118), (10, 130, 118)),Border(RGB(10, 130, 118)),Rounded(1))"
 | |
|     ColorFill<2> = "Vertical(Gradient(RGB(10, 130, 118) L=40, RGB(10, 130, 118) L=40), Border(RGB(10, 130, 118)),Rounded(1))"
 | |
|     ColorFill<3> = "Vertical(Gradient(RGB(10, 130, 118) L=20, RGB(10, 130, 118) L=20), Border(RGB(10, 130, 118)),Rounded(1))"
 | |
|     ColorFill<5> = "Vertical(Gradient(RGB(10, 130, 118), (10, 130, 118)),Border(RGB(10, 130, 118)),Rounded(1))"
 | |
|     Set_Property(@Window : '.OLE_WM_OUT', "OLE.Background", ColorFill)
 | |
|     Set_Property(@Window:".OLE_WM_OUT", "OLE.Caption", "WM Out")
 | |
|     
 | |
|     ColorFill = ''
 | |
|     Send_Message(@Window : '.OLE_WORK_ORDER', 'QUALIFY_EVENT', 'OLE.OnClick', Qualify)
 | |
|     Set_Property(@Window:".OLE_WORK_ORDER", "OLE.Font", FontArray)
 | |
|     ColorFill<1> = "White"
 | |
|     ColorFill<2> = "White"
 | |
|     ColorFill<3> = "White"
 | |
|     ColorFill<5> = "White"
 | |
|     Set_Property(@Window:".OLE_WORK_ORDER", "OLE.ForeColor", ColorFill)
 | |
|     ColorFill = ''
 | |
|     ColorFill<1> = "Vertical(Gradient(RGB(10, 130, 118), (10, 130, 118)),Border(RGB(10, 130, 118)),Rounded(1))"
 | |
|     ColorFill<2> = "Vertical(Gradient(RGB(10, 130, 118) L=40, RGB(10, 130, 118) L=40), Border(RGB(10, 130, 118)),Rounded(1))"
 | |
|     ColorFill<3> = "Vertical(Gradient(RGB(10, 130, 118) L=20, RGB(10, 130, 118) L=20), Border(RGB(10, 130, 118)),Rounded(1))"
 | |
|     ColorFill<5> = "Vertical(Gradient(RGB(10, 130, 118), (10, 130, 118)),Border(RGB(10, 130, 118)),Rounded(1))"
 | |
|     Set_Property(@Window : '.OLE_WORK_ORDER', "OLE.Background", ColorFill)
 | |
|     Set_Property(@Window:".OLE_WORK_ORDER", "OLE.Caption", "Work Order")
 | |
|     
 | |
|     ColorFill    = ''
 | |
|     Send_Message(@Window : '.OLE_LOG_TEST_RUN', 'QUALIFY_EVENT', 'OLE.OnClick', Qualify)
 | |
|     Set_Property(@Window:".OLE_LOG_TEST_RUN", "OLE.Font", FontArray)
 | |
|     ColorFill<1> = "White"
 | |
|     ColorFill<2> = "White"
 | |
|     ColorFill<3> = "White"
 | |
|     ColorFill<5> = "White"
 | |
|     Set_Property(@Window:".OLE_LOG_TEST_RUN", "OLE.ForeColor", ColorFill)
 | |
|     ColorFill    = ''
 | |
|     ColorFill<1> = "Vertical(Gradient(RGB(10, 130, 118), (10, 130, 118)),Border(RGB(10, 130, 118)),Rounded(1))"
 | |
|     ColorFill<2> = "Vertical(Gradient(RGB(10, 130, 118) L=40, RGB(10, 130, 118) L=40), Border(RGB(10, 130, 118)),Rounded(1))"
 | |
|     ColorFill<3> = "Vertical(Gradient(RGB(10, 130, 118) L=20, RGB(10, 130, 118) L=20), Border(RGB(10, 130, 118)),Rounded(1))"
 | |
|     ColorFill<5> = "Vertical(Gradient(RGB(10, 130, 118), (10, 130, 118)),Border(RGB(10, 130, 118)),Rounded(1))"
 | |
|     Set_Property(@Window : '.OLE_LOG_TEST_RUN', "OLE.Background", ColorFill)
 | |
|     Set_Property(@Window:".OLE_LOG_TEST_RUN", "OLE.Caption", "Log TW Usage")
 | |
|     
 | |
| return
 | |
| 
 | |
| 
 | |
| SetSnoozeButtonState:
 | |
| 	
 | |
| 	Snoozed = Notes_Services('CheckForNotificationSnooze', @USER4)
 | |
| 	ColorFill   = ''
 | |
| 	If Snoozed then
 | |
| 		ColorFill<1> = "Vertical(Gradient(RGB(108, 180, 173), (108, 180, 173)),Border(RGB(108, 180, 173)),Rounded(1))"
 | |
| 		ColorFill<2> = "Vertical(Gradient(RGB(108, 180, 173) L=60, RGB(108, 180, 173) L=60), Border(RGB(108, 180, 173)),Rounded(1))"
 | |
|         ColorFill<3> = "Vertical(Gradient(RGB(108, 180, 173) L=40, RGB(108, 180, 173) L=40), Border(RGB(108, 180, 173)),Rounded(1))"
 | |
|         ColorFill<5> = "Vertical(Gradient(RGB(108, 180, 173), (108, 180, 173)),Border(RGB(108, 180, 173)),Rounded(1))"
 | |
| 		Set_Property(@Window:".OLE_SNOOZE", "OLE.Caption", "Do Not Disturb On")
 | |
| 	end else
 | |
| 		ColorFill<1> = "Vertical(RGB(141,135,134), Border(RGB(141,135,134)), Rounded(1))"
 | |
| 		ColorFill<2> = "Vertical(Gradient(RGB(141,135,134) L=60,RGB(141,135,134) L=60, Border(RGB(141,135,134)) Rounded(1))"
 | |
| 		ColorFill<3> = "Vertical(Gradient(RGB(141,135,134) L=40,RGB(141,135,134) L=40, Border(RGB(141,135,134)) Rounded(1))"
 | |
| 		ColorFill<5> = "Vertical(RGB(141,135,134), Border(RGB(141,135,134)), Rounded(1))"
 | |
| 		Set_Property(@Window:".OLE_SNOOZE", "OLE.Caption", "Do Not Disturb Off")
 | |
| 	end
 | |
| 	Set_Property(@Window : '.OLE_SNOOZE', "OLE.Background", ColorFill)
 | |
| 	
 | |
| return
 | |
| 
 | |
| 
 | |
| FixFont:
 | |
| 	
 | |
|     FontArray = Get_Property(@Window:'.OLE_NOTES', 'OLE.Font')
 | |
|     FontArray<1, 1, 2> = 14
 | |
|     Set_Property(@Window:".OLE_NOTES", "OLE.Font", FontArray)
 | |
|     FontArray<1, 1, 2> = 10
 | |
|     Set_Property(@Window:".OLE_SNOOZE", "OLE.Font", FontArray)
 | |
|     FontArray<1, 1, 2> = 11
 | |
|     Set_Property(@Window:".OLE_WIP_STATUS", "OLE.Font", FontArray)
 | |
|     Set_Property(@Window:".OLE_RDS", "OLE.Font", FontArray)
 | |
|     Set_Property(@Window:".OLE_WM_OUT", "OLE.Font", FontArray)
 | |
|     Set_Property(@Window:".OLE_WORK_ORDER", "OLE.Font", FontArray)
 | |
|     Set_Property(@Window:".OLE_LOG_TEST_RUN", "OLE.Font", FontArray)
 | |
|     Set_Property(@Window:".OLE_PIC_CURRENT_USER", "OLE.Font", FontArray)
 | |
|         
 | |
| return
 | |
| 
 | |
| 
 | |
| 
 |