100 lines
4.8 KiB
Plaintext
100 lines
4.8 KiB
Plaintext
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
|