added LSL2 stored procedures
This commit is contained in:
269
LSL2/STPROC/PRINT_REACTOR_MAINT_TODO.txt
Normal file
269
LSL2/STPROC/PRINT_REACTOR_MAINT_TODO.txt
Normal file
@ -0,0 +1,269 @@
|
||||
COMPILE SUBROUTINE Print_Reactor_Maint_ToDo(Dummy)
|
||||
|
||||
/*
|
||||
Print Reactor PM To Do List report
|
||||
6/10/2013 - John C. Henry, J.C. Henry & Co., Inc. - Initial coding
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
DECLARE SUBROUTINE Utility, ErrMsg, Set_Status, Set_Printer, RList, Btree.Extract, Make.List
|
||||
DECLARE FUNCTION Set_Printer, Get_Printer, Msg, Get_Status, Printer_Select, obj_Install, Dialog_Box, Key_Sort
|
||||
|
||||
$INSERT OIPRINT_EQUATES
|
||||
$INSERT APPCOLORS
|
||||
$INSERT MSG_EQUATES
|
||||
|
||||
|
||||
EQU TAB$ TO \09\
|
||||
EQU TARGET_ACTIVELIST$ TO 5
|
||||
|
||||
|
||||
ErrorTitle = 'Error in stored procedure Print_Reactor_Maint_ToDo'
|
||||
|
||||
OPEN 'REACTOR_PM' TO ReactorPMTable ELSE
|
||||
ErrMsg('Unable to open "DICT.REACTOR_PM" for Query.')
|
||||
RETURN
|
||||
END
|
||||
|
||||
OPEN 'DICT.REACTOR_PM' TO @DICT ELSE
|
||||
ErrMsg('Unable to open "DICT.REACTOR_PM" for Query.')
|
||||
RETURN
|
||||
END
|
||||
|
||||
EndDt = OCONV((Date()+60),'D4/')
|
||||
|
||||
SearchString = 'DUE_DT':@VM:'<=':EndDt:@FM
|
||||
SearchString := 'COMPLETE_DATE':@VM:@FM
|
||||
|
||||
Set_Status(0)
|
||||
Btree.Extract(SearchString,'REACTOR_PM',@DICT,ReactPMKeys,'',Flag)
|
||||
|
||||
IF Get_Status(errCode) THEN
|
||||
ErrMsg(errCode)
|
||||
RETURN
|
||||
END
|
||||
|
||||
CONVERT @VM TO @FM IN ReactPMKeys
|
||||
|
||||
ReactPMKeys = Key_Sort(ReactPMKeys,'REACTOR_PM','REACTOR':@FM:'#DUE_DT':@FM:'SERV_DESC', 1 )
|
||||
|
||||
CONVERT @VM TO @FM IN ReactPMKeys
|
||||
|
||||
Make.List(0,ReactPMKeys,ReactorPMTable,@DICT)
|
||||
|
||||
* Start of printing process
|
||||
|
||||
FileName = 'Reactor PM Report'
|
||||
Title = 'Printing Reactor PM Report'
|
||||
|
||||
TopMargin = 1.0
|
||||
BottomMargin = 0.75
|
||||
LeftMargin = 0.5
|
||||
RightMargin = 0.5
|
||||
|
||||
Margins = LeftMargin:@FM:TopMargin:@FM:RightMargin:@FM:BottomMargin
|
||||
|
||||
PageSetup = '0' ;* Landscape = 1
|
||||
PrintSetup = '2' ;* Preview Normal
|
||||
PrintPath = Printer_Select()
|
||||
|
||||
stat = Set_Printer('INIT',FileName,Title,Margins,PageSetup,PrintSetup,PrintPath)
|
||||
IF stat < 0 THEN GOTO OIPrintErr
|
||||
|
||||
* Headings
|
||||
|
||||
DateRange = 'With Due Dates: Thru ':OCONV(Date()+60,'D4/')
|
||||
|
||||
Header = "'D'":@VM:obj_Install('Get_Prop','CompTitle'):' Reactor PM To Do Report':@VM:"Page 'P'"
|
||||
Header<-1> = "'T'":@VM:DateRange
|
||||
Header<-1> = '' ;* Blank line following heading
|
||||
|
||||
font = 'Arial'
|
||||
font<2> = '10'
|
||||
font<4> = '1' ;* Bold
|
||||
|
||||
stat = Set_Printer('FONTHEADFOOT',font) ; IF stat < 0 THEN GOTO OIPrintErr
|
||||
stat = Set_Printer('HEADER',Header) ; IF stat < 0 THEN GOTO OIPrintErr
|
||||
|
||||
Footer = " 'D' 'T'":@VM:@VM:"Page: 'P'"
|
||||
stat = Set_Printer('FOOTER',Footer) ; IF stat < 0 THEN GOTO OIPrintErr
|
||||
|
||||
@RECCOUNT = 0
|
||||
|
||||
FirstPass = 1
|
||||
LastRecord = 0
|
||||
FirstLine = 1
|
||||
|
||||
* Make Column Heading
|
||||
|
||||
colHead = '' ; colFmt = ''
|
||||
colHead<1,1> = 'PM Key' ; colFmt<1,1> = '^1080'
|
||||
colHead<1,2> = 'Reactor' ; colFmt<1,2> = '^1080'
|
||||
colHead<1,3> = 'Due Dt' ; colFmt<1,3> = '^1800'
|
||||
colHead<1,4> = 'React Serv ID' ; colFmt<1,4> = '^1440'
|
||||
colHead<1,5> = 'Service Desc' ; colFmt<1,5> = '~3660'
|
||||
|
||||
|
||||
* Null Previous Break Buckets
|
||||
|
||||
PrevReactor=''
|
||||
LastReactorBreak = 1
|
||||
|
||||
* * * * * * *
|
||||
ReadRecord:
|
||||
* * * * * * *
|
||||
|
||||
* Zero Break Flags to False
|
||||
|
||||
ReactorBreak=0
|
||||
|
||||
READNEXT @ID,WhichValue ELSE
|
||||
LastRecord = 1
|
||||
ReactorBreak = 1
|
||||
Reactor = PrevReactor
|
||||
END
|
||||
|
||||
SReactPMKey = @ID
|
||||
|
||||
IF FirstPass AND LastRecord THEN
|
||||
GOTO Bail
|
||||
END
|
||||
|
||||
IF LastRecord THEN GOTO BREAKS
|
||||
|
||||
READ @RECORD From ReactorPMTable,@ID ELSE
|
||||
GOTO ReadRecord
|
||||
END
|
||||
|
||||
@RECCOUNT += 1
|
||||
|
||||
* Calculate Value(s) for Column(s)
|
||||
|
||||
SReactPMKey = {@ID}
|
||||
IReactPMKey = SReactPMKey
|
||||
S.Reactor = {REACTOR}
|
||||
I.Reactor = S.Reactor
|
||||
SDueDt = {DUE_DT}
|
||||
IDueDt = SDueDt
|
||||
SReactServID = {REACT_SERV_ID}
|
||||
IReactServID = SReactServID
|
||||
SServDesc = {SERV_DESC}
|
||||
IServDesc = SServDesc
|
||||
|
||||
* Test for Control Break(s)
|
||||
|
||||
IF (S.Reactor NE PrevReactor) OR ReactorBreak THEN
|
||||
Reactor = PrevReactor
|
||||
PrevReactor = S.Reactor
|
||||
ReactorBreak += 1
|
||||
END
|
||||
|
||||
IF FirstPass THEN
|
||||
FirstPass = 0
|
||||
GOTO Detail
|
||||
END
|
||||
|
||||
* * * * * * *
|
||||
Breaks:
|
||||
* * * * * * *
|
||||
|
||||
* Print Break Total(s) and Accumulate Total(s)
|
||||
|
||||
IF ReactorBreak THEN
|
||||
|
||||
NULL
|
||||
|
||||
END
|
||||
|
||||
* Perform Last Record Output If Done
|
||||
*
|
||||
IF LastRecord THEN
|
||||
GOTO Bail
|
||||
END
|
||||
|
||||
* * * * * * *
|
||||
DETAIL:
|
||||
* * * * * * *
|
||||
|
||||
* DO CONVERSIONS IF ANY
|
||||
|
||||
IF S.Reactor NE "" THEN S.Reactor = OCONV(S.Reactor,"MD0")
|
||||
IF SDueDt NE "" THEN SDueDt = OCONV(SDueDt,"D4/")
|
||||
IF SReactServID NE "" THEN SReactServID = OCONV(SReactServID,"MD0")
|
||||
|
||||
* Print Detail Line
|
||||
|
||||
colData = ''
|
||||
colData<1,1> = SReactPMKey
|
||||
colData<1,2> = S.Reactor
|
||||
colData<1,3> = SDueDt
|
||||
colData<1,4> = SReactServID
|
||||
colData<1,5> = SServDesc
|
||||
|
||||
|
||||
GOSUB PrintTable
|
||||
|
||||
GOTO ReadRecord
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
* * * * * * *
|
||||
Bail:
|
||||
* * * * * * *
|
||||
|
||||
stat = Set_Printer('TERM',1)
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
OIPrintErr:
|
||||
* * * * * * *
|
||||
|
||||
ErrMsg(ErrorTitle:@SVM:ErrorMsg)
|
||||
ErrMsg(ErrorTitle:@SVM:'Set_Printer returned errorcode ':stat)
|
||||
stat = Set_Printer('TERM',1)
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * *
|
||||
PrintTable:
|
||||
* * * * * *
|
||||
|
||||
|
||||
stat = Set_Printer('CALCTABLE',colFmt:@FM:colData)
|
||||
TableSize = Get_Printer('CALCTABLE')
|
||||
TableHeight = TableSize<2>
|
||||
Test = Get_Printer('POS')<2>
|
||||
|
||||
IF Get_Printer('POS')<2> + TableHeight > 9.00 OR FirstLine THEN
|
||||
IF NOT(FirstLine) THEN
|
||||
stat = Set_Printer('PAGEBREAK')
|
||||
END
|
||||
FirstLine = 0
|
||||
font<2> = 10
|
||||
font<4> = 1 ;* Bold
|
||||
stat = Set_Printer('FONT',font,'100')
|
||||
|
||||
stat = Set_Printer('ADDTABLE',colFmt,colHead,'',LTGREY$,'',0,TB_ALL)
|
||||
|
||||
|
||||
font<4> = 0
|
||||
stat = Set_Printer('FONT',font,fontSpacing)
|
||||
|
||||
stat = Set_Printer('ADDTABLE',colFmt,'',colData,LTGREY$,'',0,7)
|
||||
|
||||
END ELSE
|
||||
font<2> = 10
|
||||
font<4> = 0
|
||||
stat = Set_Printer('FONT',font,fontSpacing)
|
||||
stat = Set_Printer('ADDTABLE',colFmt,'',colData,LTGREY$,'',1,TB_ALL)
|
||||
|
||||
END
|
||||
|
||||
RETURN
|
Reference in New Issue
Block a user