Compile insert SRP_EVENT_SETUP 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 // 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*"] // Get the name of the control on the window. Get all reasonable parts of the control name. Control = Field(CtrlEntId, ".", 2, 3) // If there is no control then assume the window is the control. If Control EQ "" then Control = Window // Always get the CtrlClassID since we are not passing it through the event parameters. CtrlClassId = Get_Property(CtrlEntId, "TYPE") // 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, "RECORD") // 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