ready for UAT

final commit

added PSN to reactor maintenance report query dialog
This commit is contained in:
Infineon\StieberD 2025-04-04 17:19:10 -07:00 committed by Stieber Daniel (CSC FI SPS MESLEO)
parent 8b0eb3e468
commit 333cf0b8e2
25 changed files with 36334 additions and 15275 deletions

View File

@ -5,7 +5,7 @@
},
"body": {
"record1": {
"<1>": "declare subroutine btree.extract, update_index, rlist, end_dialog\r\ndeclare subroutine activate_save_select\r\ndeclare function msg, key_sort, utility, fieldcount, ex_vm_rem\r\n$insert lsl_users_equ\r\n$insert msg_equates\r\n$insert rlist_equates\r\n\r\nWithStmt = ''\r\n\r\nGrid = .grid->check\r\nif Grid then\r\n Grid = 'GRID '\r\nend else\r\n Grid = ''\r\nend\r\n\r\nStartDateFrom = .start_date_from->text\r\nStartDateThru = .start_date_thru->text\r\nReactors = .reactors->array\r\nReactors = ex_vm_rem(Reactors)\r\n\r\nif StartDateFrom = '' Or StartDateThru = '' then\r\n MsgInfo = ''\r\n MsgInfo<mtext$> = 'You must enter a date from and thru...'\r\n MsgInfo<micon$> = '!'\r\n Void = msg( '', MsgInfo )\r\n return 0\r\nend\r\n\r\nBegDteNum = Iconv(StartDateFrom,'D')\r\nEndDteNum = Iconv(StartDateThru,'D')\r\nDteDifNum = EndDteNum - BegDteNum\r\nIf DteDifNum < 0 Then\r\n MsgInfo = ''\r\n MsgInfo<mtext$> = 'Date From can not be greater than Date Thru...'\r\n MsgInfo<micon$> = '!'\r\n Void = msg( '', MsgInfo )\r\n return 0\r\nend\r\n\r\nProblemCategories = .react_probs_cat->array\r\nProblemCategories = ex_vm_rem(ProblemCategories<1>)\r\nServiceIDs = .react_servs->array\r\nServiceIDs = ex_vm_rem(ServiceIDs<1>)\r\n\r\nParameterString = ''\r\nParameterString := StartDateFrom:'*'\r\nParameterString := StartDateThru:'*'\r\nParameterString := Reactors:'*'\r\nParameterString := ProblemCategories:'*'\r\nParameterString := ServiceIDs:'*'\r\nParameterString := Grid\r\n\r\nend_dialog( @window, ParameterString )\r\nreturn 0\r\n"
"<1>": "declare subroutine btree.extract, update_index, rlist, end_dialog\r\ndeclare subroutine activate_save_select\r\ndeclare function msg, key_sort, utility, fieldcount, ex_vm_rem\r\n$insert lsl_users_equ\r\n$insert msg_equates\r\n$insert rlist_equates\r\n\r\nWithStmt = ''\r\n/*\r\nGrid = .grid->check\r\nif Grid then\r\n Grid = 'GRID '\r\nend else\r\n Grid = ''\r\nend\r\n*/\r\nStartDateFrom = .start_date_from->text\r\nStartDateThru = .start_date_thru->text\r\nReactors = .reactors->array\r\nReactors = ex_vm_rem(Reactors)\r\n\r\nif StartDateFrom = '' Or StartDateThru = '' then\r\n MsgInfo = ''\r\n MsgInfo<mtext$> = 'You must enter a date from and thru...'\r\n MsgInfo<micon$> = '!'\r\n Void = msg( '', MsgInfo )\r\n return 0\r\nend\r\n\r\nBegDteNum = Iconv(StartDateFrom,'D')\r\nEndDteNum = Iconv(StartDateThru,'D')\r\nDteDifNum = EndDteNum - BegDteNum\r\nIf DteDifNum < 0 Then\r\n MsgInfo = ''\r\n MsgInfo<mtext$> = 'Date From can not be greater than Date Thru...'\r\n MsgInfo<micon$> = '!'\r\n Void = msg( '', MsgInfo )\r\n return 0\r\nend\r\n\r\nProblemCategories = .react_probs_cat->array\r\nProblemCategories = ex_vm_rem(ProblemCategories<1>)\r\nServiceIDs = .react_servs->array\r\nServiceIDs = ex_vm_rem(ServiceIDs<1>)\r\nPSNs = .EDT_PSNS->ARRAY\r\nPSNs = ex_vm_rem(PSNs<1>)\r\n\r\nParameterString = ''\r\nParameterString := StartDateFrom:'*'\r\nParameterString := StartDateThru:'*'\r\nParameterString := Reactors:'*'\r\nParameterString := ProblemCategories:'*'\r\nParameterString := ServiceIDs:'*'\r\nParameterString := PSNs:'*'\r\nParameterString := .chk_include_ri_ids->check:'*'\r\nParameterString := .chk_include_inj_settings->check:'*'\r\nParameterString := .chk_include_reactor_ratios->check\r\n\r\nend_dialog( @window, ParameterString )\r\nreturn 0\r\n"
}
}
}

View File

@ -0,0 +1,11 @@
{
"header": {
"version": 1,
"type": "record"
},
"body": {
"record1": {
"<1>": "declare function send_event, post_event\r\n\r\nVoid = send_event( @window:'.EDT_PSNS', 'OPTIONS' )\r\nVoid = post_event( @window:'.EDT_PSNS', 'LOSTFOCUS' )\r\nRETURN 1"
}
}
}

View File

@ -0,0 +1,11 @@
{
"header": {
"version": 1,
"type": "record"
},
"body": {
"record1": {
"<1>": "declare function entid, repository, send_event\r\ndeclare subroutine rlist\r\n$insert popup_equates\r\n$insert rlist_equates\r\n\r\nSelPos = .EDT_PSNS->selpos\r\nCurRow = SelPos<2>\r\nPopRec = entid( @appid<1>, 'POPUP', '', 'SHOW_PROD_SPEC' )\r\nOverRide = ''\r\nOverRide<pselect$> = 2\r\nStmt = 'SELECT PROD_SPEC BY-DSND SEQ'\r\nrlist( Stmt, target_activelist$, '', '', '' )\r\nChoosen = repository( 'EXECUTE', PopRec, @window, OverRide )\r\nif Choosen then\r\n convert @fm to @vm in Choosen\r\n\tCurArray = .EDT_PSNS->array\r\n\tCurArray = delete( CurArray, 1, CurRow, 0 )\r\n\tCurArray = insert( CurArray, 1, CurRow, 0, Choosen )\r\n\t.EDT_PSNS->Array = CurArray \r\nend\r\nRETURN 0"
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

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,226 @@
{
"header": {
"version": 1,
"type": "record"
},
"body": {
"record1": {
"<1>": "-1",
"<2>": "-1",
"<3>": "-1",
"<4>": "-1",
"<5>": "-2",
"<6>": {
"<6,1>": {
"<6,1,1>": "Tahoma",
"<6,1,2>": "-11",
"<6,1,3>": "400",
"<6,1,4>": "0",
"<6,1,5>": "0",
"<6,1,6>": "5",
"<6,1,7>": "0",
"<6,1,8>": "39",
"<6,1,9>": "0",
"<6,1,10>": "0",
"<6,1,11>": "0",
"<6,1,12>": "0",
"<6,1,13>": "11",
"<6,1,14>": "2",
"<6,1,15>": "0",
"<6,1,16>": "21"
}
},
"<7>": "REACTOR_RATIOS",
"<8>": {
"<8,1>": {
"<8,1,1>": {
"<8,1,1,1>": "BY REACTOR_NO BY-DSND RATIO_SET_DTM",
"<8,1,1,2>": ""
}
}
},
"<9>": {
"<9,1>": {
"<9,1,1>": "REACTOR_NO",
"<9,1,2>": "6",
"<9,1,3>": "C",
"<9,1,4>": "C",
"<9,1,5>": "MD0",
"<9,1,6>": "Reactor No"
},
"<9,2>": {
"<9,2,1>": "RATIO_SET_DTM",
"<9,2,2>": "16",
"<9,2,3>": "C",
"<9,2,4>": "C",
"<9,2,5>": "DT/^S",
"<9,2,6>": "Ratio Set Dtm"
},
"<9,3>": {
"<9,3,1>": "RATIO_1",
"<9,3,2>": "7",
"<9,3,3>": "C",
"<9,3,4>": "C",
"<9,3,5>": "MD3,",
"<9,3,6>": "Ratio 1"
},
"<9,4>": {
"<9,4,1>": "RATIO_2",
"<9,4,2>": "7",
"<9,4,3>": "C",
"<9,4,4>": "C",
"<9,4,5>": "MD3,",
"<9,4,6>": "Ratio 2"
},
"<9,5>": {
"<9,5,1>": "RATIO_3",
"<9,5,2>": "7",
"<9,5,3>": "C",
"<9,5,4>": "C",
"<9,5,5>": "MD3,",
"<9,5,6>": "Ratio 3"
},
"<9,6>": {
"<9,6,1>": "RATIO_4",
"<9,6,2>": "7",
"<9,6,3>": "C",
"<9,6,4>": "C",
"<9,6,5>": "MD3,",
"<9,6,6>": "Ratio 4"
},
"<9,7>": {
"<9,7,1>": "RATIO_5",
"<9,7,2>": "7",
"<9,7,3>": "C",
"<9,7,4>": "C",
"<9,7,5>": "MD3,",
"<9,7,6>": "Ratio 5"
},
"<9,8>": {
"<9,8,1>": "RATIO_6",
"<9,8,2>": "7",
"<9,8,3>": "C",
"<9,8,4>": "C",
"<9,8,5>": "MD3,",
"<9,8,6>": "Ratio 6"
},
"<9,9>": {
"<9,9,1>": "RATIO_7",
"<9,9,2>": "7",
"<9,9,3>": "C",
"<9,9,4>": "C",
"<9,9,5>": "MD3,",
"<9,9,6>": "Ratio 7"
},
"<9,10>": {
"<9,10,1>": "RATIO_8",
"<9,10,2>": "7",
"<9,10,3>": "C",
"<9,10,4>": "C",
"<9,10,5>": "MD3,",
"<9,10,6>": "Ratio 8"
},
"<9,11>": {
"<9,11,1>": "RATIO_9",
"<9,11,2>": "7",
"<9,11,3>": "C",
"<9,11,4>": "C",
"<9,11,5>": "MD3,",
"<9,11,6>": "Ratio 9"
},
"<9,12>": {
"<9,12,1>": "RATIO_10",
"<9,12,2>": "7",
"<9,12,3>": "C",
"<9,12,4>": "C",
"<9,12,5>": "MD3,",
"<9,12,6>": "Ratio 10"
},
"<9,13>": {
"<9,13,1>": "RATIO_11",
"<9,13,2>": "7",
"<9,13,3>": "C",
"<9,13,4>": "C",
"<9,13,5>": "MD3,",
"<9,13,6>": "Ratio 11"
},
"<9,14>": {
"<9,14,1>": "RATIO_12",
"<9,14,2>": "7",
"<9,14,3>": "C",
"<9,14,4>": "C",
"<9,14,5>": "MD3,",
"<9,14,6>": "Ratio 12"
},
"<9,15>": {
"<9,15,1>": "RATIO_13",
"<9,15,2>": "7",
"<9,15,3>": "C",
"<9,15,4>": "C",
"<9,15,5>": "MD3,",
"<9,15,6>": "Ratio 13"
},
"<9,16>": {
"<9,16,1>": "RATIO_14",
"<9,16,2>": "7",
"<9,16,3>": "C",
"<9,16,4>": "C",
"<9,16,5>": "MD3,",
"<9,16,6>": "Ratio 14"
},
"<9,17>": {
"<9,17,1>": "RATIO_15",
"<9,17,2>": "7",
"<9,17,3>": "C",
"<9,17,4>": "C",
"<9,17,5>": "MD3,",
"<9,17,6>": "Ratio 15"
},
"<9,18>": {
"<9,18,1>": "RATIO_16",
"<9,18,2>": "7",
"<9,18,3>": "C",
"<9,18,4>": "C",
"<9,18,5>": "MD3,",
"<9,18,6>": "Ratio 16"
}
},
"<10>": "T",
"<11>": "1",
"<12>": "Reactor Injector Settings",
"<13>": "1",
"<14>": "F",
"<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>": "1",
"<31>": "0",
"<32>": "0",
"<33>": "1",
"<34>": "15400411",
"<35>": "16777215",
"<36>": "",
"<37>": "",
"<38>": "",
"<39>": "",
"<40>": "-2",
"<41>": "1000",
"<42>": "",
"<43>": "",
"<44>": "",
"<45>": ""
}
}
}

View File

@ -9,7 +9,7 @@
"<2>": "-1",
"<3>": "-1",
"<4>": "-1",
"<5>": "16777215",
"<5>": "-2",
"<6>": {
"<6,1>": {
"<6,1,1>": "Tahoma",
@ -30,27 +30,27 @@
"<6,1,16>": "21"
}
},
"<7>": "REACTOR_LOG",
"<7>": "REACTOR_INJECTOR_SETTINGS",
"<8>": {
"<8,1>": {
"<8,1,1>": {
"<8,1,1,1>": "WITH INJ_SET_REACT_NO NE \"\" BY REACTOR BY-DSND INJ_SET_DTM ",
"<8,1,1,1>": "BY REACTOR BY-DSND INJ_SET_DTM ",
"<8,1,1,2>": ""
}
}
},
"<9>": {
"<9,1>": {
"<9,1,1>": "REACTOR",
"<9,1,1>": "REACTOR_NO",
"<9,1,2>": "4",
"<9,1,3>": "C",
"<9,1,4>": "C",
"<9,1,5>": "MD0",
"<9,1,6>": "Reactor"
"<9,1,6>": "Reactor No"
},
"<9,2>": {
"<9,2,1>": "INJ_TYPE_DESC",
"<9,2,2>": "8",
"<9,2,2>": "25",
"<9,2,3>": "C",
"<9,2,4>": "C",
"<9,2,5>": "[CONV_CODE_DESC,REACT_INJ_TYPE]",
@ -65,12 +65,44 @@
"<9,3,6>": "Inj Set Dtm"
},
"<9,4>": {
"<9,4,1>": "INJ_SET_DISP",
"<9,4,2>": "26",
"<9,4,1>": "INJECTOR_1",
"<9,4,2>": "16",
"<9,4,3>": "C",
"<9,4,4>": "C",
"<9,4,5>": "",
"<9,4,6>": "Inj Set Disp"
"<9,4,5>": "MD3",
"<9,4,6>": "Injector 1"
},
"<9,5>": {
"<9,5,1>": "INJECTOR_2",
"<9,5,2>": "16",
"<9,5,3>": "C",
"<9,5,4>": "C",
"<9,5,5>": "MD3",
"<9,5,6>": "Injector 2"
},
"<9,6>": {
"<9,6,1>": "INJECTOR_3",
"<9,6,2>": "16",
"<9,6,3>": "C",
"<9,6,4>": "C",
"<9,6,5>": "MD3",
"<9,6,6>": "Injector 3"
},
"<9,7>": {
"<9,7,1>": "INJECTOR_4",
"<9,7,2>": "16",
"<9,7,3>": "C",
"<9,7,4>": "C",
"<9,7,5>": "MD3",
"<9,7,6>": "Injector 4"
},
"<9,8>": {
"<9,8,1>": "INJECTOR_5",
"<9,8,2>": "16",
"<9,8,3>": "C",
"<9,8,4>": "C",
"<9,8,5>": "MD3",
"<9,8,6>": "Injector 5"
}
},
"<10>": "T",
@ -98,7 +130,17 @@
"<32>": "0",
"<33>": "1",
"<34>": "15400411",
"<35>": "16777215"
"<35>": "16777215",
"<36>": "",
"<37>": "",
"<38>": "",
"<39>": "",
"<40>": "-2",
"<41>": "1000",
"<42>": "",
"<43>": "",
"<44>": "",
"<45>": ""
}
}
}

View File

@ -132,7 +132,24 @@
"<25>": "0",
"<26>": "",
"<27>": "",
"<28>": ""
"<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

@ -767,8 +767,8 @@ ReactNo = Get_Property(@WINDOW:'.REACT_NO','DEFPROP')
IF ReactNo NE '' THEN
TypeOver = ''
TypeOver<PDISPLAY$> = 'WITH INJ_SET_REACT_NO = ':ReactNo:' BY-DSND INJ_SET_DTM'
TypeOver = ''
TypeOver<PDISPLAY$> = 'WITH REACTOR_NO = ':ReactNo:' BY-DSND INJ_SET_DTM'
void = Popup(@WINDOW,TypeOver,'REACT_INJ_SETTINGS')
@ -1107,3 +1107,4 @@ return

File diff suppressed because it is too large Load Diff

View File

@ -6,17 +6,19 @@ COMPILE SUBROUTINE Print_Reactor_Maint1(Dummy)
*/
DECLARE SUBROUTINE Utility, ErrMsg, Set_Status, Set_Printer, RList
DECLARE FUNCTION Set_Printer, Get_Printer, Msg, Get_Status, Printer_Select, obj_Install, Dialog_Box
DECLARE SUBROUTINE Utility, ErrMsg, Set_Status, Set_Printer, RList, Push.Select, Pop.Select, Run_Report
DECLARE FUNCTION Set_Printer, Get_Printer, Msg, Get_Status, Printer_Select, obj_Install, Dialog_Box
DECLARE FUNCTION Reactor_Services
$INSERT OIPRINT_EQUATES
$INSERT INVOICE_EQU
$INSERT APPCOLORS
$INSERT MSG_EQUATES
EQU TAB$ TO \09\
EQU TARGET_ACTIVELIST$ TO 5
Equ BASE_NUM_COLS$ to 9
Equ REPORT_WIDTH$ to 14670
EQU TAB$ TO \09\
EQU TARGET_ACTIVELIST$ TO 5
ErrorTitle = 'Error in stored procedure Print_Reactor_Maint'
@ -32,23 +34,24 @@ OPEN 'DICT.REACTOR_LOG' TO @DICT ELSE
RETURN
END
Params = Dialog_Box( 'REACTOR_LOG_SRPT1', @WINDOW, '*CENTER' )
IF Params = 'CANCEL' OR Params = '' THEN
RETURN
END
CONVERT '*' TO @FM IN Params
StartDateFrom = Params<1>
StartDateThru = Params<2>
Reactors = Params<3>
ProblemCats = Params<4>
ServiceIDs = Params<5>
WithStmt = ''
StartDateFrom = Params<1>
StartDateThru = Params<2>
Reactors = Params<3>
ProblemCats = Params<4>
ServiceIDs = Params<5>
PSNs = Params<6>
IncludeReactItemIds = Params<7>
IncludeInjSettings = Params<8>
IncludeReactRatios = Params<9>
WithStmt = ''
IF StartDateFrom AND StartDateThru THEN
WithStmt:= 'WITH START_DATE FROM "':StartDateFrom:'" TO "':StartDateThru:'"'
@ -79,6 +82,12 @@ IF ServiceIDs <> '' THEN
WithStmt :=' AND WITH REACT_SERV_ID = ':ServiceIDs
END
IF PSNs <> '' THEN
SWAP @VM WITH "' '" IN PSNs
PSNs = "'":PSNs:"'"
WithStmt :=' AND WITH PROD_SPEC_NO = ':PSNs
END
IF Reactors <> '' THEN
SWAP "'" WITH '' IN Reactors
SWAP " " WITH ", " IN Reactors
@ -120,9 +129,9 @@ PageInfo<7> = LETTER ;* Pagesize
PageSetup = '1' ;* Landscape = 1
PrintSetup = '2' ;* Preview Normal
PrintPath = Printer_Select()
PrintSetup<1, 2> = 0
If PrintPath EQ '' then return
PrintPath = ''
stat = Set_Printer('INIT',FileName,Title,PageInfo,PageSetup,PrintSetup,PrintPath)
IF stat < 0 THEN GOTO OIPrintErr
@ -151,18 +160,41 @@ FirstPass = 1
LastRecord = 0
FirstLine = 1
* Make Column Heading
NumCols = BASE_NUM_COLS$
// 14670 width to work with
colHead = '' ; colFmt = ''
colHead<1,1> = 'R' ; colFmt<1,1> = '^360'
colHead<1,2> = 'Problem Cat Desc' ; colFmt<1,2> = '<1800'
colHead<1,3> = 'Serv':CRLF$:'ID' ; colFmt<1,3> = '^540'
colHead<1,4> = 'Reactor Svc Desc' ; colFmt<1,4> = '<3600'
colHead<1,5> = 'Tech' ; colFmt<1,5> = '^1080'
colHead<1,6> = 'Reactor Item ID' ; colFmt<1,6> = '<2160'
colHead<1,7> = 'Notes' ; colFmt<1,7> = '<3600'
colHead<1,8> = 'Start' ; colFmt<1,8> = '^810'
colHead<1,9> = 'Hrs' ; colFmt<1,9> = '>720'
* Make Column Heading
If IncludeReactItemIds then
NumCols += 1
end
If IncludeInjSettings then
NumCols += 1
end
If IncludeReactRatios then
NumCols += 1
end
colHead = '' ; colFmt = ''
colHead<1,-1> = 'R' ; colFmt<1,-1> = '^':(REPORT_WIDTH$ * (.050 * (BASE_NUM_COLS$ / NumCols) ) )
colHead<1,-1> = 'PSN' ; colFmt<1,-1> = '^':(REPORT_WIDTH$ * (.049 * (BASE_NUM_COLS$ / NumCols) ) )
colHead<1,-1> = 'Problem Cat Desc' ; colFmt<1,-1> = '<':(REPORT_WIDTH$ * (.117 * (BASE_NUM_COLS$ / NumCols) ) )
colHead<1,-1> = 'Serv':CRLF$:'ID' ; colFmt<1,-1> = '^':(REPORT_WIDTH$ * (.073 * (BASE_NUM_COLS$ / NumCols) ) )
colHead<1,-1> = 'Reactor Svc Desc' ; colFmt<1,-1> = '<':(REPORT_WIDTH$ * (.258 * (BASE_NUM_COLS$ / NumCols) ) )
colHead<1,-1> = 'Tech' ; colFmt<1,-1> = '^':(REPORT_WIDTH$ * (.068 * (BASE_NUM_COLS$ / NumCols) ) )
If IncludeReactItemIds then
colHead<1,-1> = 'Reactor Item ID' ; colFmt<1,-1> = '<':(REPORT_WIDTH$ * ( 1 / NumCols) )
end
If IncludeInjSettings then
colHead<1,-1> = 'Inj Settings' ; colFmt<1,-1> = '<':(REPORT_WIDTH$ * ( 1 / NumCols) - 50 )
end
If IncludeReactRatios then
colHead<1,-1> = 'Ratios' ; colFmt<1,-1> = '<':(REPORT_WIDTH$ * ( 1 / NumCols) + 150 )
end
colHead<1,-1> = 'Notes' ; colFmt<1,-1> = '<':(REPORT_WIDTH$ * (.248 * (BASE_NUM_COLS$ / NumCols) ) )
colHead<1,-1> = 'Start' ; colFmt<1,-1> = '^':(REPORT_WIDTH$ * (.079 * (BASE_NUM_COLS$ / NumCols) ) )
colHead<1,-1> = 'Hrs' ; colFmt<1,-1> = '>':(REPORT_WIDTH$ * (.043 * (BASE_NUM_COLS$ / NumCols) ) )
* Zero Accumulators For Each Break
@ -207,26 +239,45 @@ END
@RECCOUNT += 1
* CALCULATE VALUE(S) FOR COLUMN(S)
S.ATID = {@ID}
S.Reactor={REACTOR}
S.React_Prob_Cat_Desc = {REACT_PROB_CAT_DESC}
S.React_Serv_ID = {REACT_SERV_ID}
S.React_Serv_Desc = {REACT_SERV_DESC}
S.Tech = {TECH_SIG}
S.Notes = {NOTES}
S.StartDTM = OCONV({START_DATE},'D2/'):' ':OCONV({START_TIME},'MTS')
S.Elapsed_Hours = {ELAPSED_HOURS}
S.React_Item_IDS = {REACT_ITEM_IDS}
S.Reactor = {REACTOR}
S.PSN = {PROD_SPEC_NO}
S.React_Prob_Cat_Desc = {REACT_PROB_CAT_DESC}
S.React_Serv_ID = {REACT_SERV_ID}
S.React_Serv_Desc = {REACT_SERV_DESC}
S.Tech = {TECH_SIG}
S.Notes = {NOTES}
S.StartDTM = OCONV({START_DATE},'D2/'):' ':OCONV({START_TIME},'MTS')
S.Elapsed_Hours = {ELAPSED_HOURS}
S.React_Item_IDS = {REACT_ITEM_IDS}
Push.Select(f1, f2, f3, f4)
S.InjSettings = ''
InjSettings = OConv(Reactor_Services('GetInjectorSettingsByReactorLog', @ID), 'MD3,')
NumSettings = DCount(InjSettings, @VM)
If NumSettings GT 0 then
For SettingIndex = 1 to NumSettings
S.InjSettings<0, SettingIndex> = 'Inj ':SettingIndex:': ':InjSettings<0, SettingIndex>
Next SettingIndex
end
Pop.Select(f1, f2, f3, f4)
Push.Select(f1, f2, f3, f4)
S.ReactorRatios = ''
ReactorRatios = OConv(Reactor_Services('GetRatiosByReactorLog', @ID), 'MD3,')
NumRatios = DCount(ReactorRatios, @VM)
If NumRatios GT 0 then
For RatioIndex = 1 to NumRatios
S.ReactorRatios<0, RatioIndex> = 'Ratio ':RatioIndex:': ':ReactorRatios<0, RatioIndex>
Next RatioIndex
end
Pop.Select(f1, f2, f3, f4)
SWAP @VM WITH CRLF$ IN S.React_Prob_Cat_Desc
SWAP @VM WITH CRLF$ IN S.React_Serv_ID
SWAP @VM WITH CRLF$ IN S.React_Serv_Desc
SWAP @VM WITH CRLF$ IN S.Notes
SWAP @VM WITH CRLF$ IN S.React_Item_IDS
SWAP @VM WITH CRLF$ IN S.InjSettings
SWAP @VM WITH CRLF$ IN S.ReactorRatios
* TEST FOR CONTROL BREAK(S)
@ -277,10 +328,6 @@ IF LastRecord THEN
GOSUB PrintTable
*status = Set_Printer('TEXT','')
*status = Set_Printer('TEXT',@RECCOUNT:' Records Processed')
GOTO Bail
END
@ -301,16 +348,25 @@ END
* Print Detail Line
colData = ""
colData<1,1> = S.Reactor
colData<1,2> = S.React_Prob_Cat_Desc
colData<1,3> = S.React_Serv_ID
colData<1,4> = S.React_Serv_Desc
colData<1,5> = S.Tech
colData<1,6> = S.React_Item_IDS
colData<1,7> = S.Notes
colData<1,8> = S.StartDTM
colData<1,9> = OCONV(S.Elapsed_Hours,'MD2')
colData = ""
colData<1,-1> = S.Reactor
colData<1,-1> = S.PSN
colData<1,-1> = S.React_Prob_Cat_Desc
colData<1,-1> = S.React_Serv_ID
colData<1,-1> = S.React_Serv_Desc
colData<1,-1> = S.Tech
If IncludeReactItemIds then
colData<1,-1> = S.React_Item_IDS
end
If IncludeInjSettings then
colData<1,-1> = S.InjSettings
end
If IncludeReactRatios then
colData<1,-1> = S.ReactorRatios
end
colData<1,-1> = S.Notes
colData<1,-1> = S.StartDTM
colData<1,-1> = OCONV(S.Elapsed_Hours,'MD2')
GOSUB PrintTable
@ -342,7 +398,6 @@ RETURN
PrintTable:
* * * * * *
stat = Set_Printer('CALCTABLE',colFmt:@FM:colData)
TableSize = Get_Printer('CALCTABLE')
TableHeight = TableSize<2>
@ -375,278 +430,3 @@ END
RETURN
/*
* ZERO ACCUMULATORS FOR EACH BREAK
Elapsed_Hours.Reactor.Total=0
Elapsed_Hours.Reactor.Count=0
Elapsed_Hours.Grand.Total=0
Elapsed_Hours.Grand.Count=0
* NULL PREVIOUS BREAK BUCKETS
Prev.Reactor=''
Last.Reactor.Break = 1
* * * * * * *
READRECORD:
* * * * * * *
IF @RECCOUNT GE 10 THEN
Last.Record=1
Reactor.Break=1
REACTOR=Prev.Reactor
REACTOR=Prev.Reactor
GOTO BREAKS
END
*
*
* ZERO BREAK FLAGS TO FALSE
*
Reactor.Break=0
*
*
READNEXT @ID, WHICH.VALUE ELSE
IF STATUS() GT 0 THEN
STATX = SET_FSERROR()
RETURN
END
IF @FILE.ERROR<1> EQ 421 THEN
STATX = SET_FSERROR()
GOTO READRECORD
END
IF @FILE.ERROR<1> NE 111 THEN
@ANS = @FILE.ERROR<1>
STATX = SEND_DYN( {RLIST_TEXT_4} )
READERR += 1
GOTO READRECORD
END
Last.Record=1
Reactor.Break=1
REACTOR=Prev.Reactor
END
@FILE.ERROR.MODE=0
S.ATID = @ID
IF FirstPass AND Last.Record THEN
STATX = SEND_DYN( {RLIST_TEXT_2} )
RETURN
END
IF Last.Record THEN GOTO BREAKS
IF @REDUCTION.DONE THEN
READO @RECORD FROM FILE.IN, @ID ELSE
@FILE.ERROR.MODE = 0
IF STATUS() GT 0 THEN
STATX = SET_FSERROR()
RETURN
END
IF @FILE.ERROR<1> NE 100 THEN
READERR += 1
END
GOTO READRECORD
END
END
@RECCOUNT += 1
* CALCULATE VALUE(S) FOR COLUMN(S)
S.ATID={@ID}
I.ATID=S.ATID
S.Reactor={REACTOR}
I.Reactor=S.Reactor
S.Reactor1={REACTOR}
I.Reactor1=S.Reactor1
M.REACT_PROB_CAT_DESC={REACT_PROB_CAT_DESC}<1,WHICH.VALUE> ; P.REACT_PROB_CAT_DESC=1 ; C.REACT_PROB_CAT_DESC=7
* INITIALIZE MULTIVALUE BREAK CHECK VARIABLE
S.REACT_PROB_CAT_DESC = M.REACT_PROB_CAT_DESC
M.REACT_SERV_ID={REACT_SERV_ID}<1,WHICH.VALUE> ; P.REACT_SERV_ID=1 ; C.REACT_SERV_ID=7
* INITIALIZE MULTIVALUE BREAK CHECK VARIABLE
S.REACT_SERV_ID = M.REACT_SERV_ID
M.REACT_SERV_DESC={REACT_SERV_DESC}<1,WHICH.VALUE> ; P.REACT_SERV_DESC=1 ; C.REACT_SERV_DESC=7
* INITIALIZE MULTIVALUE BREAK CHECK VARIABLE
S.REACT_SERV_DESC = M.REACT_SERV_DESC
S.TECH_SIG={TECH_SIG}
I.TECH_SIG=S.TECH_SIG
M.NOTES=FMT({NOTES},"T#20") ; P.NOTES=1 ; C.NOTES=7
* INITIALIZE TEXT BREAK CHECK VARIABLE(S)
S.NOTES = M.NOTES
S.START_DATE={START_DATE}
I.START_DATE=S.START_DATE
S.Elapsed_Hours={Elapsed_Hours}
I.Elapsed_Hours=S.Elapsed_Hours
PREVIOUS.MARK.LEVEL=0
* TEST FOR CONTROL BREAK(S)
IF (S.Reactor NE Prev.Reactor) OR Reactor.Break THEN
REACTOR=Prev.Reactor
Prev.Reactor=S.Reactor
Reactor.Break+=1
END
IF FirstPass THEN
FirstPass=0
GOTO DETAIL
END
* * * * * *
BREAKS:
* * * * * *
* PRINT BREAK TOTAL(S) AND ACCUMULATE TOTAL(S)
IF Reactor.Break THEN
STATX = SEND_DYN("")
PRINTLINE = ""
PRINTLINE := FMT("***" : "", "R#14") : TAB$
PRINTLINE := SPACE(14) : TAB$
PRINTLINE := SPACE(24) : TAB$
PRINTLINE := SPACE(14) : TAB$
PRINTLINE := SPACE(20) : TAB$
PRINTLINE := SPACE(20) : TAB$
PRINTLINE := SPACE(20) : TAB$
PRINTLINE := SPACE(11) : TAB$
PRINTLINE := FMT(OCONV(Elapsed_Hours.Reactor.Total ,"MD2") , "R#16")
STATX = SEND_DYN( PRINTLINE )
STATX = SEND_DYN("")
Elapsed_Hours.Grand.Total+=Elapsed_Hours.Reactor.Total
Elapsed_Hours.Reactor.Total=0
Elapsed_Hours.Grand.Count+=Elapsed_Hours.Reactor.Count
Elapsed_Hours.Reactor.Count=0
END
* PERFORM LAST RECORD OUTPUT IF DONE
IF Last.Record THEN
STATX = SEND_DYN("")
PRINTLINE = ""
PRINTLINE := FMT("***" : "", "R#14") : TAB$
PRINTLINE := SPACE(14) : TAB$
PRINTLINE := SPACE(24) : TAB$
PRINTLINE := SPACE(14) : TAB$
PRINTLINE := SPACE(20) : TAB$
PRINTLINE := SPACE(20) : TAB$
PRINTLINE := SPACE(20) : TAB$
PRINTLINE := SPACE(11) : TAB$
PRINTLINE := FMT(OCONV(Elapsed_Hours.Grand.Total ,"MD2") , "R#16")
STATX = SEND_DYN( PRINTLINE )
STATX = SEND_DYN("")
@ANS=@RECCOUNT
STATX = SEND_DYN( {RLIST_TEXT_1} )
IF READERR THEN
@ANS=READERR
STATX = SEND_DYN( {RLIST_TEXT_3} )
END
RETURN
END
* * * * * * *
DETAIL:
* * * * * * *
* REMOVE APPROPRIATE VALUE FROM MULTI-VALUED COLUMN(S)
NEW.MARK.LEVEL=0
IF C.REACT_PROB_CAT_DESC GE PREVIOUS.MARK.LEVEL THEN
REMOVE I.REACT_PROB_CAT_DESC FROM M.REACT_PROB_CAT_DESC AT P.REACT_PROB_CAT_DESC SETTING C.REACT_PROB_CAT_DESC
S.REACT_PROB_CAT_DESC=I.REACT_PROB_CAT_DESC
END
IF C.REACT_PROB_CAT_DESC GT NEW.MARK.LEVEL THEN NEW.MARK.LEVEL=C.REACT_PROB_CAT_DESC
IF C.REACT_SERV_ID GE PREVIOUS.MARK.LEVEL THEN
REMOVE I.REACT_SERV_ID FROM M.REACT_SERV_ID AT P.REACT_SERV_ID SETTING C.REACT_SERV_ID
S.REACT_SERV_ID=I.REACT_SERV_ID
END
IF C.REACT_SERV_ID GT NEW.MARK.LEVEL THEN NEW.MARK.LEVEL=C.REACT_SERV_ID
IF C.REACT_SERV_DESC GE PREVIOUS.MARK.LEVEL THEN
REMOVE I.REACT_SERV_DESC FROM M.REACT_SERV_DESC AT P.REACT_SERV_DESC SETTING C.REACT_SERV_DESC
S.REACT_SERV_DESC=I.REACT_SERV_DESC
END
IF C.REACT_SERV_DESC GT NEW.MARK.LEVEL THEN NEW.MARK.LEVEL=C.REACT_SERV_DESC
IF C.NOTES GE PREVIOUS.MARK.LEVEL THEN
REMOVE I.NOTES FROM M.NOTES AT P.NOTES SETTING C.NOTES
S.NOTES=I.NOTES
END
IF C.NOTES GT NEW.MARK.LEVEL THEN NEW.MARK.LEVEL=C.NOTES
* DO CONVERSIONS IF ANY
IF S.Reactor NE "" THEN S.Reactor=OCONV(S.Reactor,"MD0")
IF S.Reactor1 NE "" THEN S.Reactor1=OCONV(S.Reactor1,"MD0")
IF S.REACT_SERV_ID NE "" THEN S.REACT_SERV_ID=OCONV(S.REACT_SERV_ID,"MD0")
IF S.START_DATE NE "" THEN S.START_DATE=OCONV(S.START_DATE,"D2/")
IF S.Elapsed_Hours NE "" THEN S.Elapsed_Hours=OCONV(S.Elapsed_Hours,"MD2")
* ACCUMULATE TOTAL(S)
IF NUM(I.Elapsed_Hours) AND I.Elapsed_Hours NE "" THEN
Elapsed_Hours.Reactor.Total+=I.Elapsed_Hours
Elapsed_Hours.Reactor.Count+=1
I.Elapsed_Hours=''
END
* PRINT DETAIL LINE
PRINTLINE = ""
PRINTLINE := FMT( S.Reactor, "R#14") : TAB$
PRINTLINE := FMT( S.Reactor1, "R#14") : TAB$
PRINTLINE := FMT( S.REACT_PROB_CAT_DESC, "L#24") : TAB$
PRINTLINE := FMT( S.REACT_SERV_ID, "R#14") : TAB$
PRINTLINE := FMT( S.REACT_SERV_DESC, "L#20") : TAB$
PRINTLINE := FMT( S.TECH_SIG, "L#20") : TAB$
PRINTLINE := FMT( S.NOTES, "L#20") : TAB$
PRINTLINE := FMT( S.START_DATE, "R#11") : TAB$
PRINTLINE := FMT( S.Elapsed_Hours, "R#16")
STATX = SEND_DYN( PRINTLINE )
IF NEW.MARK.LEVEL THEN
S.Reactor=''
S.Reactor1=''
S.REACT_PROB_CAT_DESC=''
S.REACT_SERV_ID=''
S.REACT_SERV_DESC=''
S.TECH_SIG=''
S.NOTES=''
S.START_DATE=''
S.Elapsed_Hours=''
PREVIOUS.MARK.LEVEL=NEW.MARK.LEVEL
GOTO DETAIL
END
GOTO READRECORD
END
*/

View File

@ -165,7 +165,7 @@ Event WINDOW.OMNIEVENT(Message, Param1, Param2, Param3, Param4)
CtrlMap = Get_Property(@Window, 'CTRLMAP')
For each Ctrl in CtrlMap using @FM setting fPos
CtrlType = Get_Property(Ctrl, 'TYPE')
If Not( (Ctrl EQ @Window:'.OLE_EDT_NOTES') or (Ctrl EQ @Window:'.PUB_ADD_COMMENT') or (Ctrl EQ @Window:'.NEW_BUTTON') or (Ctrl EQ @Window:'.PRINT_ROOT_CAUSE') or (Ctrl EQ @Window:'.BUTTON_18') or (Ctrl EQ @Window:'.LU_RL_NO') or (CtrlType EQ 'STATIC') or (Ctrl EQ @Window:'.TECH_SIGN') or (CtrlType EQ 'WINDOW') or (Ctrl EQ @Window:'.PHX_BTN_CLEAR') or (Ctrl EQ @Window:'.TAB') or (IndexC(Ctrl, 'QBF', 1) GT 0) or (Ctrl EQ @Window:'.REACTOR_LOG_NO') or (CtrlType EQ 'GROUPBOX') ) then
If Not( (Ctrl EQ @Window:'.OLE_EDT_NOTES') or (Ctrl EQ @Window:'.PUB_ADD_COMMENT') or (Ctrl EQ @Window:'.NEW_BUTTON') or (Ctrl EQ @Window:'.PRINT_ROOT_CAUSE') or (Ctrl EQ @Window:'.BUTTON_18') or (Ctrl EQ @Window:'.LU_RL_NO') or (CtrlType EQ 'STATIC') or (Ctrl EQ @Window:'.TECH_SIGN') or (CtrlType EQ 'WINDOW') or (Ctrl EQ @Window:'.PHX_BTN_CLEAR') or (Ctrl EQ @Window:'.TAB') or (IndexC(Ctrl, 'QBF', 1) GT 0) or (Ctrl EQ @Window:'.REACTOR_LOG_NO') or (CtrlType EQ 'GROUPBOX') or (Ctrl EQ @Window:'.INJ_SETTING_HIST') or (Ctrl EQ @Window:'.PUB_RATIO_HISTORY') ) then
Set_Property(Ctrl, 'ENABLED', (Signature EQ ''))
end
Next Ctrl
@ -281,3 +281,4 @@ UpdateNotes:
return

View File

@ -184,17 +184,17 @@ Service SignReactorLog(ReactorLogID, UserID)
end
If ErrorMsg EQ '' then
// Check if injector settings have been entered
ReactInjSetting = ReactorLogRec<REACTOR_LOG_INJ_SETTING$>
If ReactInjSetting NE '' then
plParms = 'REACT_STATE':@RM
plParms := ReactorNo:@RM
plParms := REACT_STATE_CURR_INJ_RL_ID$:@RM
plParms := ReactorLogID:@RM
obj_Post_Log('Create',plParms)
If Get_Status(ErrCode) then
ErrorMsg = 'Error in ':Service:' service. Error calling obj_Post_Log("Create"). Error code: ':ErrCode:'.'
end
end
* ReactInjSetting = ReactorLogRec<REACTOR_LOG_INJ_SETTING$>
* If ReactInjSetting NE '' then
* plParms = 'REACT_STATE':@RM
* plParms := ReactorNo:@RM
* plParms := REACT_STATE_CURR_INJ_RL_ID$:@RM
* plParms := ReactorLogID:@RM
* obj_Post_Log('Create',plParms)
* If Get_Status(ErrCode) then
* ErrorMsg = 'Error in ':Service:' service. Error calling obj_Post_Log("Create"). Error code: ':ErrCode:'.'
* end
* end
If ErrorMsg EQ '' then
// Check reactor prevent maintenance records
CurServices = ReactorLogRec<REACTOR_LOG_REACT_SERV_ID$>
@ -974,3 +974,4 @@ ClearCursors:
return

View File

@ -167,3 +167,4 @@ write '' on SysListsTable, ListsId else
end
return 0

View File

@ -55,8 +55,12 @@ $Insert IQS_VIOL_DATA_EQUATES
$Insert FEATURE_FLAGS_EQUATES
$Insert REACT_PROB_CAT_EQUATES
$Insert NICA_ORDERS_EQUATES
$Insert REACTOR_INJECTOR_SETTINGS_EQUATES
$Insert REACTOR_RATIOS_EQUATES
$Insert REACT_STATE_EQUATES
Equ WOCust$ to 2
Equ WOCust$ to 2
Equ SECONDS_IN_DAY$ to 86400
// Uptime Percentage Equates
Equ PRODUCTIVE$ to 1
@ -68,13 +72,13 @@ Equ ENG$ to 5
Declare subroutine Error_Services, Reactor_Services, Memory_Services, RList, Database_Services, SRP_JSON
Declare subroutine Excel_Services, Schedule_Services, Logging_Services, Set_Status, obj_React_Status, Errmsg
Declare subroutine Obj_Notes, Btree.Extract, SRP_Fastarray, Delay, Mona_Services, SRP_List, Msg, Rds_Services
Declare subroutine React_Assign_Conv, Nica_Orders_Services, obj_React_Mode, Reactor_Log_Services
Declare subroutine React_Assign_Conv, Nica_Orders_Services, obj_React_Mode, Reactor_Log_Services, obj_Post_Log
Declare function SRP_Array, Reactor_Services, Memory_Services, Database_Services, SRP_Sort_Array, Excel_Services
Declare function SRP_Math, SRP_Hash, SRP_JSON, Epi_Part_Services, Schedule_Services, Date_Services, Environment_Services
Declare function Logging_Services, GetCommandLine, NextKey, Reactor_Log_Services, SRP_DateTime, ole_getwebpage
Declare function Datetime, Reactor_Modes_Services, Work_Order_Services, React_Mode_NG_Services, Lsl_Users_Services
Declare function SRP_Time, Rds_Services, SRP_Fastarray, Httpclient_Services, SRP_List, Utility, Memberof, Error_Services
Declare function Nica_Orders_Services, Max
Declare function Nica_Orders_Services, Max, RTI_CreateGUID
// Report paths for various performance report services.
TemplatesFolder = Environment_Services('GetApplicationRootPath') : '\Reports\Scheduler\Templates\'
@ -2116,6 +2120,15 @@ Service CreateReactModeChange(UserID, ReactNo, Mode, ModeSubCat, ModeText, Force
RLRec<reactor_log_react_util_id$> = NewRUKey
RLRec<reactor_log_react_prob_cat_id$> = ModeSubCatID
CurrWoNo = Xlate('CONFIG', 'WO_DAILY_SCHED':ReactNo, 'F2', 'X')
CurrWoNo = CurrWoNo[1, 'F ']
If CurrWoNo NE '' then
CurrPSNo = Xlate('WO_LOG', CurrWoNo, 'PS_NO', 'X')
end else
CurrPSNo = ''
end
RLRec<REACTOR_LOG_PROD_SPEC_NO$> = CurrPSNo
Database_Services('WriteDataRow', 'REACTOR_LOG', NewRLKey, RLRec)
If Error_Services('NoError') then
Database_Services('WriteDataRow', 'REACT_UTIL', NewRUKey, RUtilRec)
@ -3738,6 +3751,7 @@ Service GetActiveProveInProgresses(ReactNo)
end service
Service GetActiveProveInOrderIds(ReactNo)
If ReactNo NE '' then
@ -3760,6 +3774,495 @@ Service GetIdleStartupRequired(ReactNo)
end service
Service GetCurrentInjectorSettings(ReactorNo)
ErrorMsg = ''
CurrInjSettings = ''
If ReactorNo NE '' then
If RowExists('REACTOR', ReactorNo) then
Open 'DICT.REACTOR_INJECTOR_SETTINGS' to hDict then
Query = 'REACTOR_NO':@VM:ReactorNo:@FM
Query := 'ACTIVE':@VM:True$:@FM
KeyList = ''
Option = 'E'
Flag = ''
Btree.Extract(Query, 'REACTOR_INJECTOR_SETTINGS', hDict, KeyList, Option, Flag)
If Flag EQ 0 then
Begin Case
Case DCount(KeyList, @VM) EQ 0
CurrInjSettings<0, 1> = ''
CurrInjSettings<0, 2> = ''
CurrInjSettings<0, 3> = ''
CurrInjSettings<0, 4> = ''
CurrInjSettings<0, 5> = ''
Case DCount(KeyList, @VM) EQ 1
SettingsRec = Database_Services('ReadDataRow', 'REACTOR_INJECTOR_SETTINGS', KeyList)
If Error_Services('NoError') then
CurrInjSettings<0, 1> = SettingsRec<REACTOR_INJECTOR_SETTINGS.INJECTOR_1$>
CurrInjSettings<0, 2> = SettingsRec<REACTOR_INJECTOR_SETTINGS.INJECTOR_2$>
CurrInjSettings<0, 3> = SettingsRec<REACTOR_INJECTOR_SETTINGS.INJECTOR_3$>
CurrInjSettings<0, 4> = SettingsRec<REACTOR_INJECTOR_SETTINGS.INJECTOR_4$>
CurrInjSettings<0, 5> = SettingsRec<REACTOR_INJECTOR_SETTINGS.INJECTOR_5$>
end
Case DCount(KeyList, @VM) GT 1
ErrorMsg = 'Error in ':Service:' service. Multiple active REACTOR_INJECTOR_SETTINGS records returned.'
End Case
end else
ErrorMsg = 'Error in ':Service:' service. Error calling Btree.Extract.'
end
end else
ErrorMsg = 'Error in ':Service:' service. Error opening DICT.REACTOR_INJECTOR_SETTINGS.'
end
end else
ErrorMsg = 'Error in ':Service:' service. REACTOR, ':ReactorNo:', does not exist.'
end
end else
ErrorMsg = 'Error in ':Service:' service. Null ReactorNo passed into service.'
end
If ErrorMsg EQ '' then
Response = CurrInjSettings
end else
Error_Services('Add', ErrorMsg)
end
end service
Service GetCurrentRatios(ReactorNo)
ErrorMsg = ''
CurrRatios = ''
If ReactorNo NE '' then
If RowExists('REACTOR', ReactorNo) then
Open 'DICT.REACTOR_RATIOS' to hDict then
Query = 'REACTOR_NO':@VM:ReactorNo:@FM
Query := 'ACTIVE':@VM:True$:@FM
KeyList = ''
Option = 'E'
Flag = ''
Btree.Extract(Query, 'REACTOR_RATIOS', hDict, KeyList, Option, Flag)
If Flag EQ 0 then
NumRatios = ''
ReactorType = Xlate('REACTOR', ReactorNo, REACTOR_REACT_TYPE$, 'X')
Begin Case
Case ReactorNo EQ 73
// OpenInsight needs to be updated to support reactor type HTR+, which requires 16 ratios.
NumRatios = 16
Case ReactorType EQ 'ASM' or ReactorType EQ 'ASM+'
NumRatios = 10
Case ReactorType EQ 'HTR'
NumRatios = 12
Case Otherwise$
ErrorMsg = 'Error in ':Service:' service. Error determining number '
ErrorMsg := 'of Ratios required for reactor ':ReactorNo:'.'
End Case
If ErrorMsg EQ '' then
Begin Case
Case DCount(KeyList, @VM) EQ 0
For RatioIndex = 1 to NumRatios
CurrRatios<0, RatioIndex> = ''
Next RatioIndex
Case DCount(KeyList, @VM) EQ 1
SettingsRec = Database_Services('ReadDataRow', 'REACTOR_RATIOS', KeyList)
If Error_Services('NoError') then
For RatioIndex = 0 to (NumRatios - 1)
CurrRatios<0, RatioIndex + 1> = SettingsRec<REACTOR_RATIOS.RATIO_1$ + RatioIndex>
Next RatioIndex
end
Case DCount(KeyList, @VM) GT 1
ErrorMsg = 'Error in ':Service:' service. Multiple active REACTOR_RATIOS records returned.'
End Case
end
end else
ErrorMsg = 'Error in ':Service:' service. Error calling Btree.Extract.'
end
end else
ErrorMsg = 'Error in ':Service:' service. Error opening DICT.REACTOR_RATIOS.'
end
end else
ErrorMsg = 'Error in ':Service:' service. REACTOR, ':ReactorNo:', does not exist.'
end
end else
ErrorMsg = 'Error in ':Service:' service. Null ReactorNo passed into service.'
end
If ErrorMsg EQ '' then
Response = CurrRatios
end else
Error_Services('Add', ErrorMsg)
end
end service
Service GetRatiosByReactorLog(ReactorLogId)
RatiosKey = ''
Ratios = ''
ErrorMsg = ''
ReactorNo = ''
If ReactorLogId NE '' then
If RowExists('REACTOR_LOG', ReactorLogId) then
Query = 'SELECT REACTOR_RATIOS WITH REACTOR_LOG_ID EQ ':Quote(ReactorLogId)
Query := ' BY-DSND RATIO_SET_DTM'
RList(Query, TARGET_ACTIVELIST$)
ErrCode = ''
If Not(Get_Status(ErrCode)) then
If @RecCount GT 0 then
ReadNext RatiosKey else
ErrorMsg = 'Error in ':Service:' service. Error looking up reactor '
ErrorMsg := 'ratios associated with REACTOR_LOG ':ReactorLogId:'.'
end
ClearSelect TARGET_ACTIVELIST$
end
end else
ErrorMsg = 'Error in ':Service:' service. Error looking up reactor '
ErrorMsg := 'ratios associated with REACTOR_LOG ':ReactorLogId:'.'
end
end else
ErrorMsg = 'Error in ':Service:' service. REACTOR_LOG ':ReactorLogId:' does not exist.'
end
end else
ErrorMsg = 'Error in ':Service:' service. Null ReactorLogId passed into service.'
end
If ErrorMsg EQ '' then
If RatiosKey NE '' then
RatiosRec = Database_Services('ReadDataRow', 'REACTOR_RATIOS', RatiosKey)
If Error_Services('NoError') then
If ReactorNo EQ '' then ReactorNo = Xlate('REACTOR_LOG', ReactorLogId, 'REACTOR', 'X')
If ReactorNo NE '' then
NumRatios = Reactor_Services('GetNumRatios', ReactorNo)
For RatioIndex = 0 to (NumRatios - 1)
Ratios<0, RatioIndex + 1> = RatiosRec<REACTOR_RATIOS.RATIO_1$ + RatioIndex>
Next RatioIndex
end else
ErrorMsg = 'Error in ':Service:' service. Null Reactor in REACTOR_LOG ':ReactorLogId:'.'
end
end else
ErrorMsg = 'Error in ':Service:' service. Error reading REACTOR_RATIOS record ':RatiosKey:'.'
end
end
end
If ErrorMsg EQ '' then
Response = Ratios
end else
Error_Services('Add', ErrorMsg)
end
end service
Service GetInjectorSettingsByReactorLog(ReactorLogId)
ReactInjSetKey = ''
InjSettings = ''
ErrorMsg = ''
If ReactorLogId NE '' then
If RowExists('REACTOR_LOG', ReactorLogId) then
Query = 'SELECT REACTOR_INJECTOR_SETTINGS WITH REACTOR_LOG_ID EQ ':Quote(ReactorLogId)
Query := ' BY-DSND INJ_SET_DTM'
RList(Query, TARGET_ACTIVELIST$)
ErrCode = ''
If Not(Get_Status(ErrCode)) then
If @RecCount GT 0 then
ReadNext ReactInjSetKey else
ErrorMsg = 'Error in ':Service:' service. Error looking up reactor injector '
ErrorMsg := 'settings associated with REACTOR_LOG ':ReactorLogId:'.'
end
ClearSelect TARGET_ACTIVELIST$
end
end else
ErrorMsg = 'Error in ':Service:' service. Error looking up reactor injector '
ErrorMsg := 'settings associated with REACTOR_LOG ':ReactorLogId:'.'
end
end else
ErrorMsg = 'Error in ':Service:' service. REACTOR_LOG ':ReactorLogId:' does not exist.'
end
end else
ErrorMsg = 'Error in ':Service:' service. Null ReactorLogId passed into service.'
end
If ErrorMsg EQ '' then
If ReactInjSetKey NE '' then
ReactInjSetRec = Database_Services('ReadDataRow', 'REACTOR_INJECTOR_SETTINGS', ReactInjSetKey)
If Error_Services('NoError') then
For InjIndex = 0 to 4
InjSettings<0, InjIndex + 1> = ReactInjSetRec<REACTOR_INJECTOR_SETTINGS.INJECTOR_1$ + InjIndex>
Next InjIndex
end else
ErrorMsg = 'Error in ':Service:' service. Error reading REACTOR_INJECTOR_SETTINGS record ':ReactInjSetKey:'.'
end
end
end
If ErrorMsg EQ '' then
Response = InjSettings
end else
Error_Services('Add', ErrorMsg)
end
end service
Service SetNewInjectorSettings(ReactorNo, InjSettings)
// Injector settings should be passed in internal format (MD3)
ErrorMsg = ''
If ReactorNo NE '' then
If RowExists('REACTOR', ReactorNo) then
If InjSettings NE '' then
If DCount(InjSettings, @VM) EQ 5 then
For each InjSetting in InjSettings using @VM setting vPos
If InjSettings EQ '' then ErrorMsg = 'Error in ':Service:' service. Injector setting ':vPos:' is missing.'
Until ErrorMsg NE ''
Next InjSetting
If ErrorMsg EQ '' then
CurrInjSettings = Reactor_Services('GetCurrentInjectorSettings', ReactorNo)
If (CurrInjSettings NE InjSettings) then
CurrRlId = Xlate('CONFIG', 'REACT_MODE':ReactorNo, 8, 'X')
If CurrRlId NE '' then
Query = 'REACTOR_NO':@VM:ReactorNo:@FM:'ACTIVE':@VM:True$:@FM
Open 'DICT.REACTOR_INJECTOR_SETTINGS' to hDict then
Option = 'E'
ActiveInjSettingsKeys = ''
Flag = ''
Btree.Extract(Query, 'REACTOR_INJECTOR_SETTINGS', hDict, ActiveInjSettingsKeys, Option, Flag)
If Flag EQ 0 then
If ActiveInjSettingsKeys NE '' then
Open 'REACTOR_INJECTOR_SETTINGS' to hTable then
For each ActiveInjSettingsKey in ActiveInjSettingsKeys using @VM
WriteV False$ on hTable, ActiveInjSettingsKey, REACTOR_INJECTOR_SETTINGS.ACTIVE$ else
ErrorMsg = 'Error in ':Service:' service. Error setting previous injector '
ErrorMsg := 'settings to inactive. File error: ':@File_Error
end
Until ErrorMsg NE ''
Next ActiveInjSettingsKey
end else
ErrorMsg = 'Error in ':Service:' service. Error opening REACTOR_INJECTOR_SETTINGS to '
ErrorMsg := 'invalidate previous settings.'
end
end
If ErrorMsg EQ '' then
NewInjSettingsKey = RTI_CreateGUID()
If NewInjSettingsKey NE '' then
NewInjSettingsRec = ''
NewInjSettingsRec<REACTOR_INJECTOR_SETTINGS.REACTOR_LOG_ID$> = CurrRlId
NewInjSettingsRec<REACTOR_INJECTOR_SETTINGS.REACTOR_NO$> = ReactorNo
NewInjSettingsRec<REACTOR_INJECTOR_SETTINGS.INJ_SET_DTM$> = Datetime()
NewInjSettingsRec<REACTOR_INJECTOR_SETTINGS.ACTIVE$> = True$
For InjIndex = 0 to 4
NewInjSettingsRec<REACTOR_INJECTOR_SETTINGS.INJECTOR_1$ + InjIndex> = InjSettings<0, InjIndex + 1>
Next InjIndex
Database_Services('WriteDataRow', 'REACTOR_INJECTOR_SETTINGS', NewInjSettingsKey, NewInjSettingsRec)
If Error_Services('NoError') then
plParms = 'REACT_STATE':@RM
plParms := ReactorNo:@RM
plParms := REACT_STATE_CURR_INJ_RL_ID$:@RM
plParms := CurrRlId:@RM
obj_Post_Log('Create',plParms)
If Get_Status(ErrCode) then
ErrorMsg = 'Error in ':Service:' service. Error calling obj_Post_Log("Create"). '
ErrorMsg := 'Error code: ':ErrCode:'.'
end
end else
ErrorMsg = Error_Services('GetMessage')
end
end else
ErrorMsg = 'Error in ':Service:' service. Error creating new REACTOR_INJECTOR_SETTINGS record.'
end
end
end else
ErrorMsg = 'Error in ':Service:' service. Error calling Btree.Extract.'
end
end else
ErrorMsg = 'Error in ':Service:' service. Error opening DICT.REACTOR_INJECTOR_SETTINGS'
end
end else
ErrorMsg = 'Error in ':Service:' service. Error reading current REACTOR_LOG Id.'
end
end else
ErrorMsg = 'Error in ':Service:' service. Input InjSettings are the same as the current InjSettings.'
end
end
end else
ErrorMsg = 'Error in ':Service:' service. All five injector settings are required.'
end
end else
ErrorMsg = 'Error in ':Service:' service. Null InjSettings passed into service.'
end
end else
ErrorMsg = 'Error in ':Service:' service. REACTOR, ':ReactorNo:', does not exist.'
end
end else
ErrorMsg = 'Error in ':Service:' service. Null ReactorNo passed into service.'
end
If ErrorMsg EQ '' then
Response = True$
end else
Error_Services('Add', ErrorMsg)
Response = False$
end
end service
Service SetNewRatios(ReactorNo, Ratios)
// Ratios should be passed in internal format (MD3)
ErrorMsg = ''
If ReactorNo NE '' then
If RowExists('REACTOR', ReactorNo) then
If Ratios NE '' then
Ratios = SRP_Array('Clean', Ratios, 'Trim', @VM)
NumRatios = Reactor_Services('GetNumRatios', ReactorNo)
If Error_Services('NoError') then
If DCount(Ratios, @VM) EQ NumRatios then
For each Ratio in Ratios using @VM setting vPos
Begin Case
Case Ratio EQ ''
ErrorMsg = 'Error in ':Service:' service. Ratio ':vPos:' is missing.'
Case OConv(Ratio, 'MD3') LT 30
ErrorMsg = 'Error in ':Service:' service. Invalid Ratio value. Ratio ':vPos:' is less than 30.'
Case OConv(Ratio, 'MD3') GT 100
ErrorMsg = 'Error in ':Service:' service. Invalid Ratio value. Ratio ':vPos:' is greater than 100.'
End Case
Until ErrorMsg NE ''
Next Ratio
If ErrorMsg EQ '' then
CurrRatios = Reactor_Services('GetCurrentRatios', ReactorNo)
If (CurrRatios NE Ratios) then
CurrRlId = Xlate('CONFIG', 'REACT_MODE':ReactorNo, 8, 'X')
If CurrRlId NE '' then
Query = 'REACTOR_NO':@VM:ReactorNo:@FM:'ACTIVE':@VM:True$:@FM
Open 'DICT.REACTOR_RATIOS' to hDict then
Option = 'E'
ActiveRatiosKeys = ''
Flag = ''
Btree.Extract(Query, 'REACTOR_RATIOS', hDict, ActiveRatiosKeys, Option, Flag)
If Flag EQ 0 then
If ActiveRatiosKeys NE '' then
Open 'REACTOR_RATIOS' to hTable then
For each ActiveRatiosKey in ActiveRatiosKeys using @VM
WriteV False$ on hTable, ActiveRatiosKey, REACTOR_RATIOS.ACTIVE$ else
ErrorMsg = 'Error in ':Service:' service. Error setting previous ratios '
ErrorMsg := 'record to inactive. File error: ':@File_Error
end
Until ErrorMsg NE ''
Next ActiveRatiosKey
end else
ErrorMsg = 'Error in ':Service:' service. Error opening REACTOR_RATIOS table to '
ErrorMsg := 'invalidate previous ratios.'
end
end
If ErrorMsg EQ '' then
NewRatiosKey = RTI_CreateGUID()
If NewRatiosKey NE '' then
NewRatiosRec = ''
NewRatiosRec<REACTOR_RATIOS.REACTOR_LOG_ID$> = CurrRlId
NewRatiosRec<REACTOR_RATIOS.REACTOR_NO$> = ReactorNo
NewRatiosRec<REACTOR_RATIOS.RATIO_SET_DTM$> = Datetime()
NewRatiosRec<REACTOR_RATIOS.ACTIVE$> = True$
For RatioIndex = 0 to (NumRatios - 1)
NewRatiosRec<REACTOR_RATIOS.RATIO_1$ + RatioIndex> = Ratios<0, RatioIndex + 1>
Next RatioIndex
Database_Services('WriteDataRow', 'REACTOR_RATIOS', NewRatiosKey, NewRatiosRec)
If Error_Services('NoError') then
plParms = 'REACT_STATE':@RM
plParms := ReactorNo:@RM
plParms := REACT_STATE_CURR_RATIO_RL_ID$:@RM
plParms := CurrRlId:@RM
obj_Post_Log('Create',plParms)
If Get_Status(ErrCode) then
ErrorMsg = 'Error in ':Service:' service. Error calling obj_Post_Log("Create"). '
ErrorMsg = 'Error code: ':ErrCode:'.'
end
end else
ErrorMsg = Error_Services('GetMessage')
end
end else
ErrorMsg = 'Error in ':Service:' service. Error creating new REACTOR_RATIOS record.'
end
end
end else
ErrorMsg = 'Error in ':Service:' service. Error calling Btree.Extract.'
end
end else
ErrorMsg = 'Error in ':Service:' service. Error opening DICT.REACTOR_RATIOS'
end
end else
ErrorMsg = 'Error in ':Service:' service. Error reading current REACTOR_LOG Id.'
end
end else
ErrorMsg = 'Error in ':Service:' service. Input Ratios are the same as the current Ratios.'
end
end
end else
ErrorMsg = 'Error in ':Service:' service. Reactor ':ReactorNo:' requires ':NumRatios:' values '
ErrorMsg := 'for ratios. Only ':DCount(Ratios, @VM):' were supplied.'
end
end else
ErrorMsg = 'Error in ':Service:' service. Error determining number of required ratios '
ErrorMsg := 'for reactor ':ReactorNo:'. Error message: ':Error_Services("GetMessage")
end
end else
ErrorMsg = 'Error in ':Service:' service. Null Ratios passed into service.'
end
end else
ErrorMsg = 'Error in ':Service:' service. REACTOR, ':ReactorNo:', does not exist.'
end
end else
ErrorMsg = 'Error in ':Service:' service. Null ReactorNo passed into service.'
end
If ErrorMsg EQ '' then
Response = True$
end else
Error_Services('Add', ErrorMsg)
Response = False$
end
end service
Service GetNumRatios(ReactorNo)
ErrorMsg = ''
NumRatios = ''
If (ReactorNo NE '') then
If RowExists('REACTOR', ReactorNo) then
ReactorType = Xlate('REACTOR', ReactorNo, REACTOR_REACT_TYPE$, 'X')
Begin Case
Case ReactorNo EQ 73
// OpenInsight needs to be updated to support reactor type HTR+, which requires 16 ratios.
NumRatios = 16
Case ReactorType EQ 'ASM' or ReactorType EQ 'ASM+'
NumRatios = 10
Case ReactorType EQ 'HTR'
NumRatios = 12
Case Otherwise$
ErrorMsg = 'Error in ':Service:' service. Error determining number '
ErrorMsg := 'of Ratios required for reactor ':ReactorNo:'.'
End Case
end else
ErrorMsg = 'Error in ':Service:' service. REACTOR, ':ReactorNo:', does not exist.'
end
end else
ErrorMsg = 'Error in ':Service:' service. Null ReactorNo passed into service.'
end
If ErrorMsg EQ '' then
Response = NumRatios
end else
Error_Services('Add', ErrorMsg)
end
end service
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Internal GoSubs
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@ -6,13 +6,13 @@ COMPILE FUNCTION REACT_STATE(EntID,Event,Parm1,Parm2,Parm3,Parm4,Parm5)
10/8/2009 - John C. Henry, J.C. Henry & Co., Inc.
*/
DECLARE SUBROUTINE Set_Property, ErrMsg, obj_AppWindow
DECLARE FUNCTION Get_Property, Send_Message, Start_Window
DECLARE SUBROUTINE Set_Property, ErrMsg, obj_AppWindow, Error_Services
DECLARE FUNCTION Get_Property, Send_Message, Start_Window, Reactor_Services, Error_Services
$INSERT APPCOLORS
$INSERT LOGICAL
$INSERT REACT_STATE_EQUATES
$INSERT POPUP_EQUATES
EQU CRLF$ TO \0D0A\
EQU TAB$ TO \09\
@ -24,6 +24,8 @@ EQU COL$RI_SERIAL_NO TO 4
EQU COL$RI_INST_DTM TO 5
EQU COL$RI_RL_NO TO 6
Equ POPUP_WHITE$ to 15400411
Equ POPUP_GREEN$ to 16777215
ErrTitle = 'Error in REACT_STATE commuter module'
ErrorMsg = ''
@ -31,27 +33,29 @@ ErrorMsg = ''
Result = ''
BEGIN CASE
CASE EntID = @WINDOW
BEGIN CASE
CASE Event = 'CLEAR' ; GOSUB Clear
CASE Event = 'CREATE' ; GOSUB Create
CASE Event = 'CLOSE' ; GOSUB Close
CASE Event = 'WRITE' ; GOSUB Write
CASE Event = 'READ' ; GOSUB Read
CASE Event[1,3] = 'QBF' ; GOSUB Refresh
END CASE
CASE EntID = @WINDOW:'.CURR_RI_TYPE' AND Event = 'DBLCLK' ; GOSUB ReactItemDC
CASE 1
ErrorMsg = 'Unknown Parameters ':EntID:' - ':Event:' passed to commuter'
ErrMsg('Application Message':@SVM:ErrorMsg)
CASE EntID = @WINDOW
BEGIN CASE
CASE Event = 'CLEAR' ; GoSub Clear
CASE Event = 'CREATE' ; GoSub Create
CASE Event = 'CLOSE' ; GoSub Close
CASE Event = 'WRITE' ; GoSub Write
CASE Event = 'READ' ; GoSub Read
CASE Event[1,3] = 'QBF' ; GoSub Refresh
END CASE
CASE EntID = @WINDOW:'.CURR_RI_TYPE' AND Event = 'DBLCLK' ; GoSub ReactItemDC
CASE EntId = @Window:'.PUB_INJECTOR_SETTING_HISTORY' and Event = 'CLICK' ; GoSub DisplayInjectorHistory
Case EntId = @Window:'.PUB_RATIO_HISTORY' and Event = 'CLICK' ; GoSub DisplayRatioHistory
CASE Otherwise$
ErrorMsg = 'Unknown Parameters ':EntID:' - ':Event:' passed to commuter'
ErrMsg('Application Message':@SVM:ErrorMsg)
END CASE
IF ErrorMsg NE '' THEN
ErrMsg(ErrTitle:@SVM:ErrorMsg)
ErrMsg(ErrTitle:@SVM:ErrorMsg)
END
RETURN Result
@ -61,17 +65,17 @@ RETURN Result
* * * * * * *
Create:
* * * * * * *
obj_Appwindow('Create',@WINDOW)
obj_Appwindow('Create',@WINDOW)
RETURN
* * * * * * *
Write:
* * * * * * *
RETURN
@ -79,101 +83,173 @@ RETURN
* * * * * * *
Clear:
* * * * * * *
*Send_Event(@WINDOW,'PAGE',1)
GOTO Refresh
GOTO Refresh
RETURN
* * * * * * *
Read:
* * * * * * *
* * * * * * *
Refresh:
* * * * * * *
* QBF buttons
Ctrls = @WINDOW:'.QBF_FIRST_FIX':@RM ; Props = 'ENABLED':@RM
Ctrls := @WINDOW:'.QBF_PREV_FIX':@RM ; Props := 'ENABLED':@RM
Ctrls := @WINDOW:'.QBF_ABS_FIX':@RM ; Props := 'ENABLED':@RM
Ctrls := @WINDOW:'.QBF_NEXT_FIX':@RM ; Props := 'ENABLED':@RM
Ctrls := @WINDOW:'.QBF_LAST_FIX':@RM ; Props := 'ENABLED':@RM
Ctrls := @WINDOW:'.QBF_STOP_FIX' ; Props := 'ENABLED'
IF Get_Property(@WINDOW,'QBFLIST') = '' THEN
Vals = 0:@RM:0:@RM:0:@RM:0:@RM:0:@RM:0
END ELSE
Vals = 1:@RM:1:@RM:1:@RM:1:@RM:1:@RM:1
END
Set_Property(Ctrls,Props,Vals)
* Turn edit table symbolic column backgrounds to green
ETSymbolics = Get_Property(@WINDOW,'@ET_SYMBOLICS') ;* Loaded during 'Create' in obj_Appwindow
ETCtrls = ETSymbolics<1>
ETCols = ETSymbolics<2>
FOR I = 1 TO COUNT(ETCtrls,@VM) + (ETCtrls NE '')
ETCtrl = ETCtrls<1,I>
ETList = Get_Property(ETCtrl,'LIST')
FOR Line = 1 TO COUNT(ETList,@FM) + (ETList NE '')
IF ETList<Line,1> NE '' THEN
FOR N = 1 TO COUNT(ETCols<1,I>,@SVM) + (ETCols<1,I> NE '')
stat = Send_Message(ETCtrl,'COLOR_BY_POS',ETCols<1,I,N>,Line,LS2_GREEN$)
NEXT N
END
NEXT I
NEXT I
* QBF buttons
Ctrls = @WINDOW:'.QBF_FIRST_FIX':@RM ; Props = 'ENABLED':@RM
Ctrls := @WINDOW:'.QBF_PREV_FIX':@RM ; Props := 'ENABLED':@RM
Ctrls := @WINDOW:'.QBF_ABS_FIX':@RM ; Props := 'ENABLED':@RM
Ctrls := @WINDOW:'.QBF_NEXT_FIX':@RM ; Props := 'ENABLED':@RM
Ctrls := @WINDOW:'.QBF_LAST_FIX':@RM ; Props := 'ENABLED':@RM
Ctrls := @WINDOW:'.QBF_STOP_FIX' ; Props := 'ENABLED'
IF Get_Property(@WINDOW,'QBFLIST') = '' THEN
Vals = 0:@RM:0:@RM:0:@RM:0:@RM:0:@RM:0
END ELSE
Vals = 1:@RM:1:@RM:1:@RM:1:@RM:1:@RM:1
END
Set_Property(Ctrls,Props,Vals)
* Turn edit table symbolic column backgrounds to green
ETSymbolics = Get_Property(@WINDOW,'@ET_SYMBOLICS') ;* Loaded during 'Create' in obj_Appwindow
ETCtrls = ETSymbolics<1>
ETCols = ETSymbolics<2>
FOR I = 1 TO COUNT(ETCtrls,@VM) + (ETCtrls NE '')
ETCtrl = ETCtrls<1,I>
ETList = Get_Property(ETCtrl,'LIST')
FOR Line = 1 TO COUNT(ETList,@FM) + (ETList NE '')
IF ETList<Line,1> NE '' THEN
FOR N = 1 TO COUNT(ETCols<1,I>,@SVM) + (ETCols<1,I> NE '')
stat = Send_Message(ETCtrl,'COLOR_BY_POS',ETCols<1,I,N>,Line,GREEN$)
NEXT N
END
NEXT I
NEXT I
ReactNo = Get_Property(@Window:'.REACT_NO', 'TEXT')
If ReactNo NE '' then
// Populate Current Injector Settings and Current Reactor Ratios
InjSettings = OConv(Reactor_Services('GetCurrentInjectorSettings', ReactNo), 'MD3,')
Set_Property(@Window:'.EDT_CURR_INJ_SETTINGS', 'ARRAY', InjSettings)
Ratios = OConv(Reactor_Services('GetCurrentRatios', ReactNo), 'MD3,')
Set_Property(@Window:'.EDT_CURR_RATIOS', 'ARRAY', Ratios)
NumRatios = Reactor_Services('GetNumRatios', ReactNo)
If Error_Services('NoError') then
Set_Property(@Window:'.EDT_CURR_RATIOS', 'MINROWLIMIT', NumRatios)
Set_Property(@Window:'.EDT_CURR_RATIOS', 'MAXROWLIMIT', NumRatios)
end
end
RETURN
* * * * * * *
ReactItemDC:
* * * * * * *
CurrPos = Get_Property(EntID,'SELPOS')
CurrCol = CurrPos<1>
CurrRow = CurrPos<2>
CurrList = Get_Property(EntID,'LIST')
BEGIN CASE
CASE CurrCol = COL$RI_NO
RINo = CurrList<CurrRow,COL$RI_NO>
IF RINo NE '' THEN
obj_AppWindow('ViewRelated','REACT_ITEM':@RM:RINo)
END
CASE CurrCol = COL$RI_RL_NO
RLNo = CurrList<CurrRow,COL$RI_RL_NO>
IF RLNo NE '' THEN
Dummy = Start_Window( 'REACTOR_LOG', @WINDOW, RLNo:'*CENTER', '', '' )
END
END CASE
CurrPos = Get_Property(EntID,'SELPOS')
CurrCol = CurrPos<1>
CurrRow = CurrPos<2>
CurrList = Get_Property(EntID,'LIST')
BEGIN CASE
CASE CurrCol = COL$RI_NO
RINo = CurrList<CurrRow,COL$RI_NO>
IF RINo NE '' THEN
obj_AppWindow('ViewRelated','REACT_ITEM':@RM:RINo)
END
CASE CurrCol = COL$RI_RL_NO
RLNo = CurrList<CurrRow,COL$RI_RL_NO>
IF RLNo NE '' THEN
Dummy = Start_Window( 'REACTOR_LOG', @WINDOW, RLNo:'*CENTER', '', '' )
END
END CASE
RETURN
* * * * * * *
Close:
* * * * * * *
RETURN
* * * * * * * * * * * *
DisplayInjectorHistory:
* * * * * * * * * * * *
ReactNo = Get_Property(@Window:'.REACT_NO','DEFPROP')
If ReactNo NE '' then
TypeOver = ''
TypeOver<PDISPLAY$> = 'WITH REACTOR_NO = ':ReactNo:' BY-DSND INJ_SET_DTM'
void = Popup(@Window,TypeOver,'REACT_INJ_SETTINGS')
end
return
* * * * * * * * * * * *
DisplayRatioHistory:
* * * * * * * * * * * *
ReactNo = Get_Property(@Window:'.REACT_NO','DEFPROP')
If ReactNo NE '' then
NumRatios = Reactor_Services('GetNumRatios', ReactNo)
If Error_Services('NoError') then
DisplayText = 'WITH REACTOR_NO EQ ':ReactNo:' BY-DSND RATIO_SET_DTM':@vm:''
PopupRec = ""
PopupRec<PFILE$> = "REACTOR_RATIOS"
PopupRec<PDISPLAY$> = DisplayText
PopupRec<PFORMAT$> = 'REACTOR_NO':@svm:'6':@svm:'C':@svm:'C':@svm:'MD0':@svm:'Reactor No'
PopupRec<PFORMAT$, -1> = 'RATIO_SET_DTM':@svm:'16':@svm:'C':@svm:'C':@svm:'DT/^S':@svm:'Ratio Set Dtm'
For RatioIndex = 1 to NumRatios
PopupRec<PFORMAT$, -1> = 'RATIO_':RatioIndex:@svm:'7':@svm:'C':@svm:'C':@svm:'MD3,':@svm:'Ratio ':RatioIndex
Next RatioIndex
PopupRec<PMODE$> = 'T'
PopupRec<PSELECT$> = True$
PopupRec<PTITLE$> = 'Reactor Ratios'
PopupRec<PFIELD$> = True$
PopupRec<PTYPE$> = "F"
PopupRec<PCOLHDR$> = True$
PopupRec<PROWNUM$> = True$
PopupRec<PROWBTN$> = True$
PopupRec<PHGRID$> = True$
PopupRec<PVGRID$> = True$
PopupRec<PRESIZE$> = True$
PopupRec<PBORDER$> = True$
PopupRec<PBTNSBELOW$> = False$
PopupRec<PSEARCH$> = False$
PopupRec<PSORT$> = False$
PopupRec<PLOCK$> = False$
PopupRec<PSHOWMISSING$> = False$
PopupRec<PPRINTABLE$> = True$
PopupRec<PSHOWGAUGE$> = False$
PopupRec<PCAPTUREESC$> = False$
PopupRec<PGREENBAR$> = True$
PopupRec<PODDROWCOLOR$> = POPUP_WHITE$
PopupRec<PEVENROWCOLOR$> = POPUP_GREEN$
Response = Popup(@Window, PopupRec, '')
end else
Error_Services('DisplayError')
end
end else
Error_Services('Add', "Reactor number is missing")
Error_Services('DisplayError')
end
return

View File

@ -0,0 +1,20 @@
compile insert REACTOR_INJECTOR_SETTINGS_EQUATES
/*----------------------------------------
Author : Table Create Insert Routine
Written : 31/03/2025
Description : Insert for Table REACTOR_INJECTOR_SETTINGS
----------------------------------------*/
#ifndef __REACTOR_INJECTOR_SETTINGS_EQUATES__
#define __REACTOR_INJECTOR_SETTINGS_EQUATES__
equ REACTOR_INJECTOR_SETTINGS.REACTOR_LOG_ID$ to 1
equ REACTOR_INJECTOR_SETTINGS.REACTOR_NO$ to 2
equ REACTOR_INJECTOR_SETTINGS.INJ_SET_DTM$ to 3
equ REACTOR_INJECTOR_SETTINGS.ACTIVE$ to 4
equ REACTOR_INJECTOR_SETTINGS.INJECTOR_1$ to 5
equ REACTOR_INJECTOR_SETTINGS.INJECTOR_2$ to 6
equ REACTOR_INJECTOR_SETTINGS.INJECTOR_3$ to 7
equ REACTOR_INJECTOR_SETTINGS.INJECTOR_4$ to 8
equ REACTOR_INJECTOR_SETTINGS.INJECTOR_5$ to 9
#endif

View File

@ -85,4 +85,5 @@ Equ REACTOR_LOG_WAFERS_REMOVED_RDS$ To 75
Equ REACTOR_LOG_CHECKLIST_ACTIVE$ To 76
Equ REACTOR_LOG_CHECKLIST_TYPE$ To 77
Equ REACTOR_LOG_CHECKLIST_ORDER_ID$ To 78
Equ REACTOR_LOG_PROD_SPEC_NO$ To 79

View File

@ -0,0 +1,31 @@
compile insert REACTOR_RATIOS_EQUATES
/*----------------------------------------
Author : Table Create Insert Routine
Written : 31/03/2025
Description : Insert for Table REACTOR_RATIOS
----------------------------------------*/
#ifndef __REACTOR_RATIOS_EQUATES__
#define __REACTOR_RATIOS_EQUATES__
equ REACTOR_RATIOS.REACTOR_LOG_ID$ to 1
equ REACTOR_RATIOS.REACTOR_NO$ to 2
equ REACTOR_RATIOS.RATIO_SET_DTM$ to 3
equ REACTOR_RATIOS.ACTIVE$ to 4
equ REACTOR_RATIOS.RATIO_1$ to 5
equ REACTOR_RATIOS.RATIO_2$ to 6
equ REACTOR_RATIOS.RATIO_3$ to 7
equ REACTOR_RATIOS.RATIO_4$ to 8
equ REACTOR_RATIOS.RATIO_5$ to 9
equ REACTOR_RATIOS.RATIO_6$ to 10
equ REACTOR_RATIOS.RATIO_7$ to 11
equ REACTOR_RATIOS.RATIO_8$ to 12
equ REACTOR_RATIOS.RATIO_9$ to 13
equ REACTOR_RATIOS.RATIO_10$ to 14
equ REACTOR_RATIOS.RATIO_11$ to 15
equ REACTOR_RATIOS.RATIO_12$ to 16
equ REACTOR_RATIOS.RATIO_13$ to 17
equ REACTOR_RATIOS.RATIO_14$ to 18
equ REACTOR_RATIOS.RATIO_15$ to 19
equ REACTOR_RATIOS.RATIO_16$ to 20
#endif

View File

@ -30,4 +30,6 @@ Equ REACT_SERVS_NOTE_REQ$ To 19
Equ REACT_SERVS_ASSOC_METRICS$ To 20
Equ REACT_SERVS_IS_INTRUSIVE$ To 21
Equ REACT_SERVS_INTR_MAINT_FLOW_ID$ To 22
Equ REACT_SERVS_RATIO_SERVICE$ To 23
Equ REACT_SERVS_REQ_INJECTOR_DATA$ To 24

View File

@ -6,22 +6,23 @@ compile insert REACT_STATE_EQUATES
----------------------------------------*/
Equ REACT_STATE_REACT_NO$ To 0
Equ REACT_STATE_MODE$ To 1
Equ REACT_STATE_USER_ID$ To 2
Equ REACT_STATE_SERVICE$ To 3
Equ REACT_STATE_NOTE$ To 4
Equ REACT_STATE_REACT_UTIL_ID$ To 5
Equ REACT_STATE_REACT_LOG_ID$ To 6
Equ REACT_STATE_SCHED_WO_NO$ To 7
Equ REACT_STATE_PINNED_SUSCEPTOR$ To 8
Equ REACT_STATE_DOPANT$ To 9
Equ REACT_STATE_GRAPH_NO$ To 10
Equ REACT_STATE_CURR_INJ_RL_ID$ To 11
Equ REACT_STATE_RATIOS$ To 12
Equ REACT_STATE_HRS_LAST_READ$ To 13
Equ REACT_STATE_LL_SVC$ To 14
Equ REACT_STATE_RESTRICTOR$ To 15
Equ REACT_STATE_LAST_RDS_NO$ To 16
Equ REACT_STATE_LAST_UNLOAD_DTM$ To 17
Equ REACT_STATE_TUBE_PRESSURE$ To 18
Equ REACT_STATE_REACT_NO$ To 0
Equ REACT_STATE_MODE$ To 1
Equ REACT_STATE_USER_ID$ To 2
Equ REACT_STATE_SERVICE$ To 3
Equ REACT_STATE_NOTE$ To 4
Equ REACT_STATE_REACT_UTIL_ID$ To 5
Equ REACT_STATE_REACT_LOG_ID$ To 6
Equ REACT_STATE_SCHED_WO_NO$ To 7
Equ REACT_STATE_PINNED_SUSCEPTOR$ To 8
Equ REACT_STATE_DOPANT$ To 9
Equ REACT_STATE_GRAPH_NO$ To 10
Equ REACT_STATE_CURR_INJ_RL_ID$ To 11
Equ REACT_STATE_RATIOS$ To 12
Equ REACT_STATE_HRS_LAST_READ$ To 13
Equ REACT_STATE_LL_SVC$ To 14
Equ REACT_STATE_RESTRICTOR$ To 15
Equ REACT_STATE_LAST_RDS_NO$ To 16
Equ REACT_STATE_LAST_UNLOAD_DTM$ To 17
Equ REACT_STATE_TUBE_PRESSURE$ To 18
Equ REACT_STATE_CURR_RATIO_RL_ID$ To 19