added the ability to add existing serv cats to reactor modes

This commit is contained in:
Infineon\StieberD 2024-11-13 16:53:40 -07:00
parent 18f97077e1
commit f7d3ab6756
7 changed files with 4536 additions and 999 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,87 @@
{
"header": {
"version": 1,
"type": "record"
},
"body": {
"record1": {
"<1>": "-1",
"<2>": "-1",
"<3>": "-1",
"<4>": "-1",
"<5>": "-2",
"<6>": {
"<6,1>": {
"<6,1,1>": "Segoe UI",
"<6,1,2>": "-12",
"<6,1,3>": "400",
"<6,1,4>": "0",
"<6,1,5>": "0",
"<6,1,6>": "0",
"<6,1,7>": "1",
"<6,1,8>": "0",
"<6,1,9>": "0",
"<6,1,10>": "0",
"<6,1,11>": "0",
"<6,1,12>": "0"
}
},
"<7>": "REACT_PROB_CAT",
"<8>": "BY REACTOR_PROBLEM_CATEGORY",
"<9>": {
"<9,1>": {
"<9,1,1>": "SEQ",
"<9,1,2>": "14",
"<9,1,3>": "R",
"<9,1,4>": "C",
"<9,1,5>": "MD0",
"<9,1,6>": "SEQ"
},
"<9,2>": {
"<9,2,1>": "REACTOR_PROBLEM_CATEGORY",
"<9,2,2>": "20",
"<9,2,3>": "L",
"<9,2,4>": "C",
"<9,2,5>": "",
"<9,2,6>": "Reactor Problem Category"
}
},
"<10>": "T",
"<11>": "2",
"<12>": "REACT_CAT_DESC",
"<13>": "",
"<14>": "E",
"<15>": "1",
"<16>": "1",
"<17>": "1",
"<18>": "1",
"<19>": "1",
"<20>": "1",
"<21>": "1",
"<22>": "0",
"<23>": "0",
"<24>": "0",
"<25>": "0",
"<26>": "",
"<27>": "",
"<28>": "",
"<29>": "0",
"<30>": "0",
"<31>": "0",
"<32>": "0",
"<33>": "0",
"<34>": "-2",
"<35>": "-2",
"<36>": "",
"<37>": "",
"<38>": "",
"<39>": "",
"<40>": "-2",
"<41>": "1000",
"<42>": "",
"<43>": "",
"<44>": "",
"<45>": ""
}
}
}

View File

@ -9,7 +9,7 @@
"<2>": "-2",
"<3>": "-1",
"<4>": "-1",
"<5>": "16777215",
"<5>": "-2",
"<6>": {
"<6,1>": {
"<6,1,1>": "Tahoma",
@ -75,7 +75,17 @@
"<32>": "0",
"<33>": "1",
"<34>": "16777215",
"<35>": "16777215"
"<35>": "16777215",
"<36>": "",
"<37>": "",
"<38>": "",
"<39>": "",
"<40>": "-2",
"<41>": "1000",
"<42>": "",
"<43>": "",
"<44>": "",
"<45>": ""
}
}
}

View File

@ -1,15 +1,47 @@
Compile function REACTOR_MODES_EVENTS(CtrlEntId, Event, @PARAMS)
/***********************************************************************************************************************
Declare function Get_Property, Database_Services, Dialog_Box, Memberof, Sec_Group_Services, Error_Services
Declare subroutine Set_Property, rlist, Send_Event, Reactor_Modes_Services, errmsg, Error_Services, msg, Database_Services
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.
$Insert REACTOR_MODES_EQUATES
$Insert MSG_EQUATES
$INSERT LOGICAL
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
@ -22,14 +54,14 @@ Return EventFlow or 1
//-----------------------------------------------------------------------------
Event WINDOW.CREATE(CreateParam)
//Security Check
// 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
EQU TARGET_ACTIVELIST$ to 5
//Get List of Reactor Modes
// Get List of Reactor Modes
Statement = 'SELECT REACTOR_MODES BY DESCRIPTION'
rlist(Statement, target_activelist$, '', '', '' )
ModeList = ''
@ -43,19 +75,23 @@ Event WINDOW.CREATE(CreateParam)
ModeList<-1> = ReactorModeID
Repeat
end
//Populate list of current modes
// Populate list of current modes
Set_Property(@Window : '.CMB_REACTOR_MODE', 'LIST', ModeList)
//Populate Security Group options
// 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
// 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$>
@ -72,7 +108,6 @@ Event CMB_REACTOR_MODE.CHANGED
NotificationClasses = ReactorModeRec<REACTOR_MODES_NOTIFY_CLASS$>
swap @VM with @FM in NotificationClasses
Icon = ReactorModeRec<REACTOR_MODES_ICON$> : '.bmp'
ServiceCategoryArr = ''
@ -91,8 +126,10 @@ Event CMB_REACTOR_MODE.CHANGED
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
@ -102,12 +139,38 @@ Event BTN_NEW_PROB_CAT.CLICK
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')
@ -120,9 +183,12 @@ Event BTN_DELETE_CAT.CLICK
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")
@ -135,9 +201,12 @@ Event PUB_ADD_ENTER.CLICK
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")
@ -150,9 +219,12 @@ Event PUB_ADD_EXIT.CLICK
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')
@ -167,9 +239,12 @@ Event PUB_REMOVE_ENTER.CLICK
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')
@ -184,9 +259,12 @@ Event PUB_REMOVE_EXIT.CLICK
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')
@ -197,9 +275,12 @@ Event CHK_NOTIFICATION_ACTIVE.CLICK
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")
@ -212,9 +293,12 @@ Event PUB_ADD_NOTIFY.CLICK
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')
@ -229,5 +313,6 @@ Event PUB_DELETE_NOTIFY.CLICK
msg('', 'You must be authorized to change reactor mode records')
end
Send_Event(@Window : '.CMB_REACTOR_MODE', 'CHANGED')
end event

View File

@ -1,14 +1,39 @@
Compile function REACTOR_MODES_Services(@Service, @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 SRP Computer Solutions, Inc.
Name : Reactor_Modes_Services
Description : Handler program for all module related services.
Notes : The generic parameters should contain all the necessary information to process the services. Often
this will be information like the data Record and Key ID.
Parameters :
Service [in] -- Name of the service being requested
Param1-10 [in/out] -- Additional request parameter holders
Response [out] -- Response to be sent back to the Controller (MCP) or requesting procedure
Metadata :
History : (Date, Initials, Notes)
11/13/2024 djs Added AddExistingServiceCategory
***********************************************************************************************************************/
#pragma precomp SRP_PreCompiler
$Insert LOGICAL
$Insert SERVICE_SETUP
$Insert REACTOR_MODES_EQUATES
$Insert REACT_PROB_CAT_EQUATES
$Insert REACTOR_EQUATES
$Insert RLIST_EQUATES
Declare function Database_Services, React_Prob_Cat_Services, Reactor_Modes_Services, Memberof, Error_Services
Declare subroutine Error_Services, Database_Services, delete, RList, Reactor_Services
#pragma precomp SRP_PreCompiler
$insert LOGICAL
$insert REACTOR_MODES_EQUATES
$Insert REACTOR_EQUATES
$insert rlist_equates
GoToService
Return Response or ""
@ -18,6 +43,7 @@ Return Response or ""
//-----------------------------------------------------------------------------
Service AddNotificationGroup(ReactorModesKey, Class)
If ReactorModesKey NE '' AND Class NE '' then
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey)
Locate Class in ReactorModesRec<REACTOR_MODES_NOTIFY_CLASS$> using @VM setting dummy then
@ -33,9 +59,12 @@ Service AddNotificationGroup(ReactorModesKey, Class)
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES: Null parameter ReactorModesKey or Class ID.')
Return
end
end service
Service DeleteNotificationGroup(ReactorModesKey, Class)
If ReactorModesKey NE '' AND Class NE '' then
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey,1,0,1)
@ -46,9 +75,12 @@ Service DeleteNotificationGroup(ReactorModesKey, Class)
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES: Null parameter ReactorModesKey or Class ID.')
end
end
end service
Service AddEnterPermission(ReactorModesKey, Group)
If ReactorModesKey NE '' AND Group NE '' then
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey)
Locate Group in ReactorModesRec<REACTOR_MODES_GROUPS_ENTER$> using @VM setting dummy then
@ -64,9 +96,12 @@ Service AddEnterPermission(ReactorModesKey, Group)
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES: Null parameter ReactorModesKey or Group ID.')
Return
end
end service
Service AddReleasePermission(ReactorModesKey, Group)
If ReactorModesKey NE '' AND Group NE '' then
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey)
Locate Group in ReactorModesRec<REACTOR_MODES_GROUPS_RELEASE$> using @VM setting dummy then
@ -82,9 +117,12 @@ Service AddReleasePermission(ReactorModesKey, Group)
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES: Null parameter ReactorModesKey or Group ID.')
Return
end
end service
Service AddServiceCategory(ReactorModesKey, NewServiceName, NewServiceCategory)
If ReactorModesKey EQ '' then
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES: Null parameter ReactorModesKey.')
Return
@ -97,35 +135,69 @@ Service AddServiceCategory(ReactorModesKey, NewServiceName, NewServiceCategory)
Database_Services('WriteDataRow','REACTOR_MODES',ReactorModesKey,ReactorModesRec,1,0,1)
End Service
Service AddExistingServiceCategory(ReactorModesKey, ServCatId)
If ReactorModesKey NE '' then
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey)
If Error_Services('NoError') then
If RowExists('REACT_PROB_CAT', ServCatId) then
ServName = Xlate('REACT_PROB_CAT', ServCatId, REACT_PROB_CAT_REACTOR_PROBLEM_CATEGORY$, 'X')
CurrCats = ReactorModesRec<REACTOR_MODES_SERVICE_CATEGORY_ID$>
Locate ServCatId in CurrCats using @VM setting vPos else
ReactorModesRec<REACTOR_MODES_SERVICE_CATEGORIES$, -1> = ServName
ReactorModesRec<REACTOR_MODES_SERVICE_CATEGORY_ID$, -1> = ServCatId
Database_Services('WriteDataRow', 'REACTOR_MODES', ReactorModesKey, ReactorModesRec, True$, False$, True$)
end
end else
Error_Services('Add', 'Error in ':Service:' service. REACT_PROB_CAT ':ServCatId:' does not exist!')
end
end
end else
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES: Null parameter ReactorModesKey.')
end
End Service
Service DeleteServiceCategory(ReactorModesKey, CatId)
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey,1,0,1)
Locate CatId in ReactorModesRec<REACTOR_MODES_SERVICE_CATEGORY_ID$> using @VM setting catPos then
ReactorModesRec = Delete(ReactorModesRec,REACTOR_MODES_SERVICE_CATEGORY_ID$,catPos,0)
ReactorModesRec = Delete(ReactorModesRec,REACTOR_MODES_SERVICE_CATEGORIES$,catPos,0)
end
Database_Services('WriteDataRow', 'REACTOR_MODES',ReactorModesKey,ReactorModesRec)
end service
Service DeleteEnterPermission(ReactorModesKey, Group)
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey,1,0,1)
Locate Group in ReactorModesRec<REACTOR_MODES_GROUPS_ENTER$> using @VM setting groupPos then
ReactorModesRec = Delete(ReactorModesRec,REACTOR_MODES_GROUPS_ENTER$,groupPos,0)
end
Database_Services('WriteDataRow', 'REACTOR_MODES',ReactorModesKey,ReactorModesRec)
end service
Service DeleteReleasePermission(ReactorModesKey, Group)
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey,1,0,1)
Locate Group in ReactorModesRec<REACTOR_MODES_GROUPS_RELEASE$> using @VM setting groupPos then
ReactorModesRec = Delete(ReactorModesRec,REACTOR_MODES_GROUPS_RELEASE$,groupPos,0)
end
Database_Services('WriteDataRow', 'REACTOR_MODES',ReactorModesKey,ReactorModesRec)
end service
Service GetAllModes()
Statement = 'SELECT REACTOR_MODES BY DESCRIPTION'
rlist( Statement, target_activelist$, '', '', '' )
ModeList = ''
@ -140,9 +212,12 @@ Service GetAllModes()
Repeat
end
Response = ModeList
end service
Service AvailableModes(ReactorModesKey, CurrUser, ReactNo)
CurrMode = ReactorModesKey
AllowedModes = ''
CurModeReleaseGroups = XLATE('REACTOR_MODES', ReactorModesKey, REACTOR_MODES_GROUPS_RELEASE$, 'X')
@ -223,9 +298,6 @@ Service AvailableModes(ReactorModesKey, CurrUser, ReactNo)
Next PossibleMode
end
Response = AllowedModes
end service