added LSL2 stored procedures
This commit is contained in:
361
LSL2/STPROC/REACTOR_MODE_HISTORY_EVENTS.txt
Normal file
361
LSL2/STPROC/REACTOR_MODE_HISTORY_EVENTS.txt
Normal file
@ -0,0 +1,361 @@
|
||||
Compile function REACTOR_MODE_HISTORY_EVENTS(CtrlEntId, Event, @PARAMS)
|
||||
#pragma precomp SRP_PreCompiler
|
||||
#window REACTOR_MODE_HISTORY
|
||||
|
||||
Declare function Get_Property, Reactor_Services, Send_Message, Environment_Services, Excel_Services, SRP_Array
|
||||
Declare function Datetime, OConv
|
||||
Declare subroutine Set_Property,Send_Message, Excel_Services, SRP_Run_Command
|
||||
|
||||
$Insert APP_INSERTS
|
||||
$Insert EVENT_SETUP
|
||||
$Insert REACTOR_LOG_EQUATES
|
||||
$Insert REACTOR_MODES_EQUATES
|
||||
$Insert REACT_MODE_NG_EQUATES
|
||||
$Insert REACT_STATUS_EQUATES
|
||||
|
||||
// Columns in OLE Edit Table
|
||||
EQU COL$START_DTM TO 1
|
||||
EQU COL$ELAP_HRS TO 2
|
||||
EQU COL$MODE TO 3
|
||||
EQU COL$NOTES TO 4
|
||||
EQU COL$CATEGORY_DESCRIPTION TO 5
|
||||
EQU COL$START_USER TO 6
|
||||
EQU COL$RL_ID TO 7
|
||||
EQU COL$SERVICE_DESCRIPTION TO 8
|
||||
EQU COL$SERVICE_NOTES TO 9
|
||||
|
||||
// Update the arguments so that the OpenInsight OLE event will treate the ActiveX event as a native event handler.
|
||||
If Event EQ 'OLE' then
|
||||
Transfer Event to OIEvent
|
||||
Transfer Param1 to Event
|
||||
Transfer Param2 to Param1
|
||||
Transfer Param3 to Param2
|
||||
* Transfer Param4 to Param3
|
||||
* Transfer Param5 to Param4
|
||||
* Transfer Param6 to Param5
|
||||
* Transfer Param7 to Param6
|
||||
* Transfer Param8 to Param7
|
||||
end
|
||||
|
||||
GoToEvent Event for CtrlEntId else
|
||||
// Event not implemented
|
||||
end
|
||||
|
||||
Return EventFlow or 1
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// EVENT HANDLERS
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
Event WINDOW.CREATE(CreateParam)
|
||||
|
||||
ReactNo = field( CreateParam, char(244), 1 )
|
||||
DaysToReport = field( CreateParam, char(244), 2 )
|
||||
|
||||
|
||||
GoSub Setup_OLE_Controls
|
||||
|
||||
ReactNo = field( CreateParam, char(244), 1 )
|
||||
DaysToReport = field( CreateParam, char(244), 2 )
|
||||
|
||||
IF ReactNo NE '' AND DaysToReport NE '' then
|
||||
Set_Property(@Window : '.EDT_REACT_NO', 'TEXT', ReactNo)
|
||||
Set_Property(@Window : '.EDT_DAYS_TO_REPORT', 'TEXT', DaysToReport)
|
||||
GoSub DoRead
|
||||
end else
|
||||
|
||||
end
|
||||
|
||||
|
||||
EventFlow = 1
|
||||
|
||||
End Event
|
||||
|
||||
|
||||
Event PUB_RUN.CLICK()
|
||||
|
||||
ReactNo = Get_Property(@Window : '.EDT_REACT_NO', 'TEXT')
|
||||
DaysToReport = Get_Property(@Window : '.EDT_DAYS_TO_REPORT', 'TEXT')
|
||||
|
||||
GoSub DoRead
|
||||
|
||||
end event
|
||||
|
||||
|
||||
Event CHK_SHOW_COLORS.CLICK()
|
||||
|
||||
ReactNo = Get_Property(@Window : '.EDT_REACT_NO', 'TEXT')
|
||||
DaysToReport = Get_Property(@Window : '.EDT_DAYS_TO_REPORT', 'TEXT')
|
||||
|
||||
useColors = Get_Property(@Window: '.CHK_SHOW_COLORS', 'CHECK')
|
||||
|
||||
if useColors EQ False$ then
|
||||
GoSub DeColorizeData
|
||||
end else
|
||||
GoSub DoRead
|
||||
end
|
||||
//GoSub DoRead
|
||||
|
||||
end event
|
||||
|
||||
|
||||
Event PUB_EXPORT_TO_EXCEL.CLICK()
|
||||
|
||||
value = "Select a directory" : @fm : "c:\temp"
|
||||
FilePath = Utility( "CHOOSEDIR", @window, value)
|
||||
|
||||
if FilePath NE '' then
|
||||
GoSub ExportToExcel
|
||||
end
|
||||
|
||||
end event
|
||||
|
||||
|
||||
Event EDT_LOADED_CASS.DBLCLK(CtrlKey, ShiftKey, MouseButton)
|
||||
|
||||
RowData = Get_Property(CtrlEntID, 'ROWDATA')
|
||||
SelRDSNo = RowData<1>
|
||||
Void = start_window( 'RDS', @window, SelRDSNo:'*CENTER', '', '' )
|
||||
|
||||
end event
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Internal GoSubs
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
DoRead:
|
||||
Ctrl = @Window : '.EDT_HIST'
|
||||
Set_Property(Ctrl, 'OLE.Redraw', False$)
|
||||
//tableDimension = Get_Property(Ctrl, "OLE.Dimension")
|
||||
//numRows = tableDimension<2>
|
||||
rv = Send_Message(Ctrl, "OLE.Clear", 0)
|
||||
//rv = Send_Message(Ctrl, "OLE.Clear", 1)
|
||||
//Set_Property(Ctrl, "OLE.CellColors[3; All]", ColorArray)
|
||||
ReactorHistory = Reactor_Services('GetReactModeHistory', ReactNo, DaysToReport)
|
||||
Index = Send_Message(Ctrl, "OLE.INSERT", 1, ReactorHistory)
|
||||
|
||||
//Get Curr Mode
|
||||
CurrModeRec = Reactor_Services('GetReactCurrModeRec', ReactNo)
|
||||
CurrMode = CurrModeRec<REACT_MODE_NG_MODE$>
|
||||
CurrModeE10State = Xlate('REACTOR_MODES', CurrMode, REACTOR_MODES_E10_STATE$, 'X')
|
||||
CurrModeColors = Get_Property(@Window:".OLE_SUBCLASS", "OLE.CustomColors")
|
||||
modeColor = White$
|
||||
|
||||
//Get Loaded Cassettes
|
||||
ReactStatusRec = XLATE('REACT_STATUS', ReactNo, '', 'X')
|
||||
LoadedRDS = ''
|
||||
LoadedRDS<1> = ReactStatusRec<REACT_STATUS_LOAD_RDS$>
|
||||
LoadedRDS<2> = ReactStatusRec<REACT_STATUS_LOAD_RDS_DTM$>
|
||||
LoadedDisplay = ''
|
||||
for each rds in LoadedRDS<1> using @VM setting vPos
|
||||
LoadedDisplay<-1> = LoadedRDS<1,vPos> : @VM : OCONV(LoadedRDS<2,vPos>, 'DT4/H')
|
||||
Next rds
|
||||
Set_Property(@Window : '.EDT_LOADED_CASS', 'LIST', LoadedDisplay)
|
||||
|
||||
Begin Case
|
||||
Case CurrModeE10State EQ 'Scheduled Down'
|
||||
modeColor = Orange$
|
||||
|
||||
Case CurrModeE10State EQ 'Unscheduled Down'
|
||||
modeColor = Red$
|
||||
|
||||
Case CurrModeE10State EQ 'Productive'
|
||||
modeColor = Green$
|
||||
|
||||
Case 1
|
||||
modeColor = White$
|
||||
|
||||
End Case
|
||||
Set_Property(@Window : '.EDT_CURR_MODE', 'TEXT', CurrMode)
|
||||
Set_Property(@window : '.EDT_CURR_MODE', "BACKCOLOR", modeColor)
|
||||
|
||||
|
||||
RowSettings = Get_Property(Ctrl, "OLE.DataRow[1]")
|
||||
RowSettings<1> = 64
|
||||
//RowSettings<4> = True$
|
||||
tableDimension = Get_Property(Ctrl, "OLE.Dimension")
|
||||
numRows = tableDimension<2>
|
||||
for i = 1 to numRows
|
||||
Set_Property(Ctrl, "OLE.DataRow[" : i : "]", RowSettings)
|
||||
Next i
|
||||
|
||||
useColors = Get_Property(@Window: '.CHK_SHOW_COLORS', 'CHECK')
|
||||
if useColors then
|
||||
GoSub ColorizeData
|
||||
end
|
||||
Set_Property(Ctrl, "OLE.CellMultilined[All; All]", True$)
|
||||
Set_Property(Ctrl, 'OLE.Redraw', True$)
|
||||
|
||||
//Set_Property(Ctrl, "OLE.CellMultilined[4; 1]", 1)
|
||||
|
||||
|
||||
|
||||
return
|
||||
|
||||
ColorizeData:
|
||||
Set_Property(Ctrl, 'OLE.Redraw', False$)
|
||||
tableDimension = Get_Property(Ctrl, "OLE.Dimension")
|
||||
numRows = tableDimension<2>
|
||||
for i = 1 to numRows
|
||||
row = ReactorHistory<i>
|
||||
e10State = XLATE('REACTOR_MODES',row<1,COL$MODE>, REACTOR_MODES_E10_STATE$, 'X')
|
||||
ColorArray = 'None':@FM:'White':@FM:'None':@FM:'None':@FM:'None'
|
||||
If Get_Property(@Window: '.CHK_SHOW_COLORS', 'CHECK') EQ True$ then
|
||||
IF e10State EQ 'Scheduled Down' then
|
||||
ColorFill = "Vertical(Gradient(Orange L=90, Orange L=80, 30%), Gradient(Orange L=75, Orange L=80))"
|
||||
ColorArray<2> = ColorFill
|
||||
end
|
||||
IF e10State EQ 'Unscheduled Down' then
|
||||
ColorFill = "Vertical(Gradient(Red L=90, Red L=80, 30%), Gradient(Red L=75, Red L=80))"
|
||||
ColorArray<2> = ColorFill
|
||||
end
|
||||
IF e10State EQ 'Productive' then
|
||||
ColorFill = "Vertical(Gradient(Green L=90, Green L=80, 30%), Gradient(Green L=75, Green L=80))"
|
||||
ColorArray<2> = ColorFill
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Set_Property(Ctrl, "OLE.CellColors[3; " : i : "]", ColorArray)
|
||||
Next i
|
||||
Set_Property(Ctrl, 'OLE.Redraw', True$)
|
||||
return
|
||||
|
||||
DeColorizeData:
|
||||
Ctrl = @Window : '.EDT_HIST'
|
||||
Set_Property(Ctrl, 'OLE.Redraw', False$)
|
||||
* tableDimension = Get_Property(Ctrl, "OLE.Dimension")
|
||||
* numRows = tableDimension<2>
|
||||
* for i = 1 to numRows
|
||||
|
||||
ColorArray = 'None':@FM:'White':@FM:'None':@FM:'None':@FM:'None'
|
||||
|
||||
Set_Property(Ctrl, "OLE.CellColors[3; All]", ColorArray)
|
||||
|
||||
* Set_Property(Ctrl, "OLE.CellColors[3; " : i : "]", ColorArray)
|
||||
|
||||
* Next i
|
||||
Set_Property(Ctrl, 'OLE.Redraw', True$)
|
||||
return
|
||||
|
||||
ExportToExcel:
|
||||
|
||||
//TODO Replace FilePath
|
||||
*FilePath = "C:\Users\MESOuellette\Desktop\"
|
||||
|
||||
TemplatePath = Environment_Services('GetApplicationRootPath') : '\Reports\ReactMode\Reactor_Mode.xlsx'
|
||||
objDocument = Excel_Services('OpenDocument',TemplatePath)
|
||||
If Error_Services('HasError') then
|
||||
error = Error_Services('GetCode')
|
||||
return
|
||||
end
|
||||
Ctrl = @Window : '.EDT_HIST'
|
||||
displayData = Get_Property(Ctrl, "OLE.ARRAY")
|
||||
displayData = SRP_Array("Rotate", displayData)
|
||||
CellRow = 2
|
||||
|
||||
for each row in displayData using @FM
|
||||
Excel_Services('SetCellValue', objDocument, 'ReactorModes', 'A', CellRow, row<1,COL$START_DTM>)
|
||||
Excel_Services('SetCellValue', objDocument, 'ReactorModes', 'B', CellRow, row<1,COL$ELAP_HRS>)
|
||||
Excel_Services('SetCellValue', objDocument, 'ReactorModes', 'C', CellRow, row<1,COL$MODE>)
|
||||
Excel_Services('SetCellValue', objDocument, 'ReactorModes', 'D', CellRow, row<1,COL$NOTES>)
|
||||
//Services Required
|
||||
ServiceCats = row<1,COL$CATEGORY_DESCRIPTION>
|
||||
for ServiceCat = 1 to DCount(ServiceCats, @SVM)
|
||||
ServiceCats<1,1,ServiceCat> = ' - ' : ServiceCats<1,1,ServiceCat>
|
||||
Next ServiceCat
|
||||
swap @svm with CRLF$ in ServiceCats
|
||||
Excel_Services('SetCellValue', objDocument, 'ReactorModes', 'E', CellRow, ServiceCats)
|
||||
Excel_Services('SetCellValue', objDocument, 'ReactorModes', 'F', CellRow, row<1,COL$START_USER>)
|
||||
Excel_Services('SetCellValue', objDocument, 'ReactorModes', 'G', CellRow, row<1,COL$RL_ID>)
|
||||
//Services Performed
|
||||
ServiceDescs = row<1,COL$SERVICE_DESCRIPTION>
|
||||
for ServiceDesc = 1 to DCount(ServiceDescs, @SVM)
|
||||
ServiceDescs<1,1,ServiceDesc> = ' - ' : ServiceDescs<1,1,ServiceDesc>
|
||||
Next ServiceDesc
|
||||
swap @svm with CRLF$ in ServiceDescs
|
||||
|
||||
Excel_Services('SetCellValue', objDocument, 'ReactorModes', 'H', CellRow, ServiceDescs)
|
||||
Excel_Services('SetCellValue', objDocument, 'ReactorModes', 'I', CellRow, row<1,COL$SERVICE_NOTES >)
|
||||
CellRow += 1
|
||||
Next row
|
||||
FileSaveName = 'REACT_MODE_LOG_': OConv(DateTime(), 'DT2^HS ') : '.xlsx'
|
||||
//Excel_Services('SaveDocument',objDocument,FilePath : 'REACT_MODE_LOG.xlsx')
|
||||
Excel_Services('SaveDocument',objDocument,FilePath : '\' : FileSaveName)
|
||||
If Error_Services('HasError') then
|
||||
test = Error_Services('GetMessage')
|
||||
end
|
||||
Excel_Services('CloseDocument', objDocument)
|
||||
IF FilePath NE '' then
|
||||
SRP_Run_Command('start excel "':FilePath : '\' : FileSaveName:'"', 'VAR')
|
||||
end
|
||||
return
|
||||
|
||||
Setup_OLE_Controls:
|
||||
|
||||
Ctrl = @Window : '.EDT_HIST'
|
||||
|
||||
Set_Property(Ctrl, 'OLE.Redraw', False$)
|
||||
//Set up columns
|
||||
Set_Property(Ctrl, "OLE.Dimension", 9);*Define number of columns
|
||||
|
||||
HeaderTitles = 'Start DTM':@VM:'Elap. Hrs.':@VM:'Mode':@VM:'Mode Change Reason':@VM:'Category Description':@VM:'Start User' |
|
||||
:@VM:'RL ID':@VM:'Service Description':@VM:'Reactor Log Comments'; *Define the column header titles
|
||||
Set_Property(Ctrl, "OLE.TitleList", HeaderTitles); *Set the column titles
|
||||
|
||||
//Set the column Sizes
|
||||
ColSize = Get_Property(Ctrl, "OLE.DataColumn[1]")
|
||||
|
||||
//Column 1
|
||||
ColSize<1> = 120
|
||||
Set_Property(Ctrl, "OLE.DataColumn[":COL$START_DTM:"]", ColSize)
|
||||
|
||||
//Column 2
|
||||
ColSize<1> = 60
|
||||
//ColSize<4> = True$
|
||||
Set_Property(Ctrl, "OLE.DataColumn[":COL$ELAP_HRS:"]", ColSize)
|
||||
//Set_Property(Ctrl, "OLE.DataColumn[":COL$ELAP_HRS:"]", ColSize)
|
||||
|
||||
//Column 3
|
||||
ColSize<1> = 250
|
||||
Set_Property(Ctrl, "OLE.DataColumn[":COL$MODE:"]", ColSize)
|
||||
|
||||
//Column 4
|
||||
ColSize<1> = 200
|
||||
Set_Property(Ctrl, "OLE.DataColumn[":COL$NOTES:"]", ColSize)
|
||||
|
||||
//Column 5
|
||||
ColSize<1> = 150
|
||||
Set_Property(Ctrl, "OLE.DataColumn[":COL$CATEGORY_DESCRIPTION:"]", ColSize)
|
||||
|
||||
//Column 6
|
||||
ColSize<1> = 100
|
||||
Set_Property(Ctrl, "OLE.DataColumn[":COL$START_USER:"]", ColSize)
|
||||
|
||||
//Column 7
|
||||
ColSize<1> = 40
|
||||
Set_Property(Ctrl, "OLE.DataColumn[":COL$RL_ID:"]", ColSize)
|
||||
|
||||
//Column 8
|
||||
ColSize<1> = 225
|
||||
Set_Property(Ctrl, "OLE.DataColumn[":COL$SERVICE_DESCRIPTION:"]", ColSize)
|
||||
|
||||
//Column 9
|
||||
ColSize<1> = 200
|
||||
ColSize<4> = True$
|
||||
Set_Property(Ctrl, "OLE.DataColumn[":COL$SERVICE_NOTES:"]", ColSize)
|
||||
|
||||
Set_Property(Ctrl, 'OLE.Border', 'XP Flat')
|
||||
Set_Property(Ctrl, 'OLE.Font', 'Segoe UI' : @SVM : '15')
|
||||
Set_Property(Ctrl, "OLE.CellProtection[All; All]", 'RO')
|
||||
|
||||
// Set rows to resizeable and to expand when selected.
|
||||
DataRow = Get_Property(Ctrl, "OLE.DataRow[1]")
|
||||
DataRow<3> = True$
|
||||
DataRow<4> = False$
|
||||
DataRow<5> = 160
|
||||
Set_Property(Ctrl, "OLE.DataRow[All]", DataRow)
|
||||
|
||||
Set_Property(Ctrl, 'OLE.Redraw', True$)
|
||||
|
||||
return
|
Reference in New Issue
Block a user