319 lines
13 KiB
Plaintext
319 lines
13 KiB
Plaintext
Compile function REACTOR_MODES_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 : REACTOR_MODES_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)
|
|
11/13/2024 djs Added "Add Existing Category" button
|
|
|
|
***********************************************************************************************************************/
|
|
#pragma precomp SRP_PreCompiler
|
|
#window REACTOR_MODES_EVENTS
|
|
|
|
$INSERT EVENT_SETUP
|
|
$INSERT LOGICAL
|
|
$Insert REACTOR_MODES_EQUATES
|
|
$Insert MSG_EQUATES
|
|
$Insert RLIST_EQUATES
|
|
|
|
Declare function Get_Property, Database_Services, Dialog_Box, Memberof, Sec_Group_Services, Error_Services
|
|
Declare function Popup
|
|
Declare subroutine Set_Property, rlist, Send_Event, Reactor_Modes_Services, errmsg, Error_Services, msg
|
|
Declare subroutine Reactor_Mode_Services, Database_Services, PlaceDialog
|
|
|
|
GoToEvent Event for CtrlEntId else
|
|
// Event not implemented
|
|
end
|
|
|
|
Return EventFlow or 1
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// EVENT HANDLERS
|
|
//-----------------------------------------------------------------------------
|
|
|
|
Event WINDOW.CREATE(CreateParam)
|
|
|
|
// Security Check
|
|
If MemberOf(@USER4,'ENGINEERING') OR MemberOf(@USER4,'SUPERVISOR') OR MemberOf(@User4, 'OI_ADMIN') then
|
|
Set_Property(@WINDOW : '.BTN_NEW_PROB_CAT', 'ENABLED', 1)
|
|
Set_Property(@WINDOW : '.BTN_DELETE_CAT', 'ENABLED', 1)
|
|
end
|
|
|
|
// Get List of Reactor Modes
|
|
Statement = 'SELECT REACTOR_MODES BY DESCRIPTION'
|
|
rlist(Statement, target_activelist$, '', '', '' )
|
|
ModeList = ''
|
|
IF @RecCount then
|
|
EoF = 0
|
|
NumKeys = @RecCount
|
|
Cnt = 0
|
|
Loop
|
|
ReadNext ReactorModeID Else EoF = 1
|
|
until EoF
|
|
ModeList<-1> = ReactorModeID
|
|
Repeat
|
|
end
|
|
// Populate list of current modes
|
|
Set_Property(@Window : '.CMB_REACTOR_MODE', 'LIST', ModeList)
|
|
// Populate Security Group options
|
|
GroupOptions = SEC_Group_Services('GetAllSecGroups')
|
|
Set_Property(@Window : '.CMB_ENTER_OPTIONS', 'LIST', GroupOptions)
|
|
Set_Property(@Window : '.CMB_EXIT_OPTIONS', 'LIST', GroupOptions)
|
|
// Populate Notifcation Group Options
|
|
NotifGrpOpts = Database_Services('ReadDataRow', 'APP_INFO', 'USER_CLASSES')
|
|
Set_Property(@Window : '.CMB_NOTIFY_OPTIONS', 'LIST', NotifGrpOpts)
|
|
|
|
PlaceDialog(-2, -2)
|
|
|
|
End Event
|
|
|
|
|
|
Event CMB_REACTOR_MODE.CHANGED
|
|
|
|
ReactorModeRecKey = Get_Property(@WINDOW : '.CMB_REACTOR_MODE', 'DEFPROP')
|
|
ReactorModeRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModeRecKey)
|
|
E10State = ReactorModeRec<REACTOR_MODES_E10_STATE$>
|
|
Description = ReactorModeRec<REACTOR_MODES_DESCRIPTION$>
|
|
Security = ReactorModeRec<REACTOR_MODES_SECURITY_LEVEL$>
|
|
ServiceCategoryNames = ReactorModeRec<REACTOR_MODES_SERVICE_CATEGORIES$>
|
|
ServiceCategoryIds = ReactorModeRec<REACTOR_MODES_SERVICE_CATEGORY_ID$>
|
|
ModeCategory = ReactorModeRec<REACTOR_MODES_MODE_CATEGORY$>
|
|
EnterPermissions = ReactorModeRec<REACTOR_MODES_GROUPS_ENTER$>
|
|
swap @VM with @FM in EnterPermissions
|
|
ExitPermissions = ReactorModeRec<REACTOR_MODES_GROUPS_RELEASE$>
|
|
swap @VM with @FM in ExitPermissions
|
|
NotificationActive = ReactorModeRec<REACTOR_MODES_NOTIFICATION_ACTIVE$>
|
|
NotificationClasses = ReactorModeRec<REACTOR_MODES_NOTIFY_CLASS$>
|
|
swap @VM with @FM in NotificationClasses
|
|
|
|
Icon = ReactorModeRec<REACTOR_MODES_ICON$> : '.bmp'
|
|
|
|
ServiceCategoryArr = ''
|
|
ServiceCategoryArr<1> = ServiceCategoryIds
|
|
ServiceCategoryArr<2> = ServiceCategoryNames
|
|
|
|
Set_Property(@Window:'.EDT_E10_STATE', 'TEXT', E10State)
|
|
Set_Property(@Window:'.EDT_DESCRIPTION', 'TEXT', Description)
|
|
Set_Property(@Window:'.EDT_SECURITY', 'TEXT',Security)
|
|
Set_Property(@Window:'.EDT_MODE_CATEGORY', 'TEXT',ModeCategory)
|
|
Set_Property(@Window:'.TBL_SERVICE_CATS', 'ARRAY', ServiceCategoryArr)
|
|
Set_Property(@Window: '.EDT_ENTER_PERMISSIONS', 'LIST', EnterPermissions)
|
|
Set_Property(@Window: '.EDT_EXIT_PERMISSIONS', 'LIST', ExitPermissions)
|
|
Set_Property(@Window: '.CHK_NOTIFICATION_ACTIVE', 'CHECK', NotificationActive)
|
|
Set_Property(@Window: '.EDT_NOTIFICATION_CLASSES', 'LIST', NotificationClasses)
|
|
Set_Property(@Window: '.CMB_ENTER_OPTIONS', 'TEXT' , '')
|
|
Set_Property(@Window: '.CMB_EXIT_OPTIONS', 'TEXT' , '')
|
|
Set_Property(@Window: '.CMB_NOTIFY_OPTIONS', 'TEXT' , '')
|
|
|
|
end event
|
|
|
|
|
|
Event BTN_NEW_PROB_CAT.CLICK
|
|
|
|
If MemberOf(@USER4,'ENGINEERING') OR MemberOf(@USER4,'SUPERVISOR') OR MemberOf(@User4, 'OI_ADMIN') then
|
|
ReactorModeRecKey = Get_Property(@WINDOW : '.CMB_REACTOR_MODE', 'DEFPROP')
|
|
test = Dialog_Box('NDW_ADD_PROB_CAT',@WINDOW,ReactorModeRecKey)
|
|
END else
|
|
ErrMsg('You must be authorized to change reactor mode categories')
|
|
Return
|
|
end
|
|
Send_Event(@Window : '.CMB_REACTOR_MODE', 'CHANGED')
|
|
|
|
end event
|
|
|
|
|
|
Event PUB_ADD_EXISTING_CAT.CLICK()
|
|
|
|
If MemberOf(@USER4,'ENGINEERING') OR MemberOf(@USER4,'SUPERVISOR') OR MemberOf(@User4, 'OI_ADMIN') then
|
|
ReactorModeRecKey = Get_Property(@WINDOW : '.CMB_REACTOR_MODE', 'DEFPROP')
|
|
SelCats = Popup(@Window, '', 'REACT_CAT_DESC')
|
|
If SelCats NE '' then
|
|
Done = False$
|
|
For each SelCat in SelCats using @FM setting fPos
|
|
SelCatId = SelCat<0, 1>
|
|
Reactor_Modes_Services('AddExistingServiceCategory', ReactorModeRecKey, SelCatId)
|
|
If Error_Services('HasError') then
|
|
Error_Services('DisplayError')
|
|
Done = True$
|
|
end
|
|
Until Done
|
|
Next SelCat
|
|
Send_Event(@Window : '.CMB_REACTOR_MODE', 'CHANGED')
|
|
end
|
|
end else
|
|
ErrMsg('You must be authorized to change reactor mode categories')
|
|
end
|
|
|
|
end event
|
|
|
|
|
|
Event BTN_DELETE_CAT.CLICK
|
|
|
|
If MemberOf(@USER4,'ENGINEERING') OR MemberOf(@USER4,'SUPERVISOR') OR MemberOf(@User4, 'OI_ADMIN') then
|
|
ReactorModeRecKey = Get_Property(@WINDOW : '.CMB_REACTOR_MODE', 'DEFPROP')
|
|
CatArray = Get_Property(@Window:'.TBL_SERVICE_CATS', 'ARRAY')
|
|
Selected = Get_Property(@Window: '.TBL_SERVICE_CATS', "SELPOS")<2>
|
|
CatId = CatArray<1,Selected>
|
|
Reactor_Modes_Services('DeleteServiceCategory',ReactorModeRecKey, CatId)
|
|
END else
|
|
ErrMsg('You must be authorized to change reactor mode categories')
|
|
Return
|
|
end
|
|
|
|
Send_Event(@Window : '.CMB_REACTOR_MODE', 'CHANGED')
|
|
|
|
end event
|
|
|
|
|
|
Event PUB_ADD_ENTER.CLICK
|
|
|
|
If MemberOf(@USER4,'ENGINEERING') OR MemberOf(@USER4,'SUPERVISOR') OR MemberOf(@User4, 'OI_ADMIN') then
|
|
ReactorModeRecKey = Get_Property(@WINDOW : '.CMB_REACTOR_MODE', 'DEFPROP')
|
|
Selected = Get_Property(@Window: '.CMB_ENTER_OPTIONS', "TEXT")
|
|
Reactor_Modes_Services('AddEnterPermission', ReactorModeRecKey, Selected)
|
|
if Error_Services('HasError') then
|
|
errorMsg = Error_Services('GetMessage')
|
|
msg( '', errorMsg )
|
|
end
|
|
end else
|
|
msg('', 'You must be authorized to change reactor mode records')
|
|
end
|
|
Send_Event(@Window : '.CMB_REACTOR_MODE', 'CHANGED')
|
|
|
|
end event
|
|
|
|
|
|
Event PUB_ADD_EXIT.CLICK
|
|
|
|
If MemberOf(@USER4,'ENGINEERING') OR MemberOf(@USER4,'SUPERVISOR') OR MemberOf(@User4, 'OI_ADMIN') then
|
|
ReactorModeRecKey = Get_Property(@WINDOW : '.CMB_REACTOR_MODE', 'DEFPROP')
|
|
Selected = Get_Property(@Window: '.CMB_EXIT_OPTIONS', "TEXT")
|
|
Reactor_Modes_Services('AddReleasePermission', ReactorModeRecKey, Selected)
|
|
if Error_Services('HasError') then
|
|
errorMsg = Error_Services('GetMessage')
|
|
msg( '', errorMsg )
|
|
end
|
|
end else
|
|
msg('', 'You must be authorized to change reactor mode records')
|
|
end
|
|
Send_Event(@Window : '.CMB_REACTOR_MODE', 'CHANGED')
|
|
|
|
end event
|
|
|
|
|
|
Event PUB_REMOVE_ENTER.CLICK
|
|
|
|
If MemberOf(@USER4,'ENGINEERING') OR MemberOf(@USER4,'SUPERVISOR') OR MemberOf(@User4, 'OI_ADMIN') then
|
|
ReactorModeRecKey = Get_Property(@WINDOW : '.CMB_REACTOR_MODE', 'DEFPROP')
|
|
EnterArray = Get_Property(@Window:'.EDT_ENTER_PERMISSIONS', 'ARRAY')
|
|
SelectedPos = Get_Property(@Window: '.EDT_ENTER_PERMISSIONS', "SELPOS")<2>
|
|
Selected = EnterArray<1,SelectedPos>
|
|
Reactor_Modes_Services('DeleteEnterPermission', ReactorModeRecKey, Selected)
|
|
if Error_Services('HasError') then
|
|
errorMsg = Error_Services('GetMessage')
|
|
msg( '', errorMsg )
|
|
end
|
|
end else
|
|
msg('', 'You must be authorized to change reactor mode records')
|
|
end
|
|
Send_Event(@Window : '.CMB_REACTOR_MODE', 'CHANGED')
|
|
|
|
end event
|
|
|
|
|
|
Event PUB_REMOVE_EXIT.CLICK
|
|
|
|
If MemberOf(@USER4,'ENGINEERING') OR MemberOf(@USER4,'SUPERVISOR') OR MemberOf(@User4, 'OI_ADMIN') then
|
|
ReactorModeRecKey = Get_Property(@WINDOW : '.CMB_REACTOR_MODE', 'DEFPROP')
|
|
ExitArray = Get_Property(@Window:'.EDT_EXIT_PERMISSIONS', 'ARRAY')
|
|
SelectedPos = Get_Property(@Window: '.EDT_EXIT_PERMISSIONS', "SELPOS")<2>
|
|
Selected = ExitArray<1,SelectedPos>
|
|
Reactor_Modes_Services('DeleteReleasePermission', ReactorModeRecKey, Selected)
|
|
if Error_Services('HasError') then
|
|
errorMsg = Error_Services('GetMessage')
|
|
msg( '', errorMsg )
|
|
end
|
|
end else
|
|
msg('', 'You must be authorized to change reactor mode records')
|
|
end
|
|
Send_Event(@Window : '.CMB_REACTOR_MODE', 'CHANGED')
|
|
|
|
end event
|
|
|
|
|
|
Event CHK_NOTIFICATION_ACTIVE.CLICK
|
|
|
|
If MemberOf(@USER4,'ENGINEERING') OR MemberOf(@USER4,'SUPERVISOR') OR MemberOf(@User4, 'OI_ADMIN') then
|
|
newNotify = Get_Property(@Window: '.CHK_NOTIFICATION_ACTIVE', 'CHECK')
|
|
ReactorModeRecKey = Get_Property(@WINDOW : '.CMB_REACTOR_MODE', 'DEFPROP')
|
|
ReactorModeRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModeRecKey)
|
|
ReactorModeRec<REACTOR_MODES_NOTIFICATION_ACTIVE$> = newNotify
|
|
Database_Services('WriteDataRow', 'REACTOR_MODES', ReactorModeRecKey, ReactorModeRec)
|
|
end else
|
|
msg('', 'You must be authorized to change reactor mode records')
|
|
end
|
|
Send_Event(@Window : '.CMB_REACTOR_MODE', 'CHANGED')
|
|
|
|
end event
|
|
|
|
|
|
Event PUB_ADD_NOTIFY.CLICK
|
|
|
|
If MemberOf(@USER4,'ENGINEERING') OR MemberOf(@USER4,'SUPERVISOR') OR MemberOf(@User4, 'OI_ADMIN') then
|
|
ReactorModeRecKey = Get_Property(@WINDOW : '.CMB_REACTOR_MODE', 'DEFPROP')
|
|
Selected = Get_Property(@Window: '.CMB_NOTIFY_OPTIONS', "TEXT")
|
|
Reactor_Modes_Services('AddNotificationGroup', ReactorModeRecKey, Selected)
|
|
if Error_Services('HasError') then
|
|
errorMsg = Error_Services('GetMessage')
|
|
msg( '', errorMsg )
|
|
end
|
|
end else
|
|
msg('', 'You must be authorized to change reactor mode records')
|
|
end
|
|
Send_Event(@Window : '.CMB_REACTOR_MODE', 'CHANGED')
|
|
|
|
end event
|
|
|
|
|
|
Event PUB_DELETE_NOTIFY.CLICK
|
|
|
|
If MemberOf(@USER4,'ENGINEERING') OR MemberOf(@USER4,'SUPERVISOR') OR MemberOf(@User4, 'OI_ADMIN') then
|
|
ReactorModeRecKey = Get_Property(@WINDOW : '.CMB_REACTOR_MODE', 'DEFPROP')
|
|
NotifArray = Get_Property(@Window:'.EDT_NOTIFICATION_CLASSES', 'ARRAY')
|
|
SelectedPos = Get_Property(@Window: '.EDT_NOTIFICATION_CLASSES', "SELPOS")<2>
|
|
Selected = NotifArray<1,SelectedPos>
|
|
Reactor_Modes_Services('DeleteNotificationGroup', ReactorModeRecKey, Selected)
|
|
if Error_Services('HasError') then
|
|
errorMsg = Error_Services('GetMessage')
|
|
msg( '', errorMsg )
|
|
end
|
|
end else
|
|
msg('', 'You must be authorized to change reactor mode records')
|
|
end
|
|
Send_Event(@Window : '.CMB_REACTOR_MODE', 'CHANGED')
|
|
|
|
end event
|
|
|