Compile insert Event_Setup /*********************************************************************************************************************** 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 SRP Computer Solutions, Inc. Name : Event_Setup Description : Declarations and equates used by the form event commuters. Notes : Event_Setup also populates several variables that will often be useful within event handler code. History : (Date, Initials, Notes) 08/13/10 dmb Original programmer. ***********************************************************************************************************************/ Declare function Get_Property, Set_Property, Get_Current_Event, Get_Window_ID, Get_Record // Return values to indicate how the event flow should continue. Equ EVENT_STOP$ to 0 ; // Event flow should stop Equ EVENT_CONTINUE$ to 1 ; // Event flow should continue until a later process changes this value Equ EVENT_CONTINUE_NO_PROMOTED$ to 2 ; // Event flow should by-pass the promoted (generic) logic but allow the system event handler to execute Equ EVENT_CONTINUE_NO_SYSTEM$ to 3 ; // Event flow should execute the promoted (generic) logic but stop the system event handler from executing Equ EVENT_SYSTEM_ONLY$ to 4 ; // Event flow should execute the system event handler only (normal option for third-party windows running in FrameWorks) // Make sure any event parameters which have not been assigned are nulled. If Assigned(CtrlEntId) else CtrlEntId = '' If Assigned(Event) else Event = '' If Assigned(Param1) else Param1 = '' If Assigned(Param2) else Param2 = '' If Assigned(Param3) else Param3 = '' If Assigned(Param4) else Param4 = '' If Assigned(Param5) else Param5 = '' If Assigned(Param6) else Param6 = '' If Assigned(Param7) else Param7 = '' If Assigned(Param8) else Param8 = '' If Assigned(Param9) else Param9 = '' If Assigned(Param10) else Param10 = '' If Assigned(Param11) else Param11 = '' If Assigned(Param12) else Param12 = '' If Assigned(Param13) else Param13 = '' If Assigned(Param14) else Param14 = '' If Assigned(Param15) else Param15 = '' // Get the design time name of the window in case this is a multi-instance window. Window = @Window[1, 'F*'] MDIFrame = Get_Property(@Window, 'MDIFRAME') Parent = Get_Property(@Window, 'PARENT') If MDIFrame EQ '' then MDIFrame = Parent ; // Dialog boxes won't set the MDIFRAME property so use the PARENT property. // Always get the CtrlClassID since we are not passing it through the event parameters. CtrlClassId = Get_Property(CtrlEntId, 'TYPE') // Get the name of the control on the window based on the CtrlClassId. Begin Case Case CtrlClassId EQ 'WINDOW' Control = Window Case CtrlClassId EQ 'RADIOBUTTON' Control = Field(CtrlEntId, '.', 2, 2) Case CtrlClassId EQ 'MENU' Control = CtrlEntId[-1, 'B.'] Case 1 Control = Field(CtrlEntId, '.', 2, 1) End Case // If this is an OLE control, get the ProgID. ProgID = '' If CtrlClassId EQ 'OLECONTROL' then ProgID = Get_Property(CtrlEntId, 'ORIG_TEXT') // Get the Event Type so generic event functionality can be executed properly. EventType = Get_Current_Event() // Combine the event type and control into an event action. If EventType EQ 'OLE' then // Because the Promoted_Events function transfers parameters, this will only appear correctly in a commuter module. EventAction = Event : '.' : Control end else EventAction = EventType : '.' : Control end // Get the current window's key ID. Strip off the @SVM if this window is ignoring self-locks. KeyID = Get_Property(@Window, 'ID')[1, 'F' : @SVM] // If KeyID is null then check to see if the key controls are populated. If so, then this is probably a locked record. // ID properties are null with locked records. If KeyID EQ '' then KeyID = Get_Window_ID(@Window) end // Get the current window's record. Record = Get_Property(@Window, 'ATRECORD') // If the window uses QuickEvents to call the commuter module, check for @EVENT in the event parameter. This is here for // backwards compatability. OpenInsight 7.1 and higher automatically swaps @EVENT with the actual event. Prior versions // of OpenInsight will just pass the literal through. Therefore, this will swap out @EVENT with the actual event. If Event EQ '@EVENT' then Swap '@EVENT' with EventType in Event