open-insight/LSL2/STPROC/REACTOR_MODES_EVENTS.txt

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