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 Description = ReactorModeRec Security = ReactorModeRec ServiceCategoryNames = ReactorModeRec ServiceCategoryIds = ReactorModeRec ModeCategory = ReactorModeRec EnterPermissions = ReactorModeRec swap @VM with @FM in EnterPermissions ExitPermissions = ReactorModeRec swap @VM with @FM in ExitPermissions NotificationActive = ReactorModeRec NotificationClasses = ReactorModeRec swap @VM with @FM in NotificationClasses Icon = ReactorModeRec : '.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 = 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