added LSL2 stored procedures
This commit is contained in:
287
LSL2/STPROC/NDW_RELEASE_CASSETTES_EVENTS.txt
Normal file
287
LSL2/STPROC/NDW_RELEASE_CASSETTES_EVENTS.txt
Normal file
@ -0,0 +1,287 @@
|
||||
Compile function NDW_RELEASE_CASSETTES_EVENTS(CtrlEntId, Event, @PARAMS)
|
||||
/***********************************************************************************************************************
|
||||
|
||||
Name : NDW_Release_Cassettes_Events
|
||||
|
||||
Description : Commuter module for the NDW_Release_Cassettes form.
|
||||
|
||||
Notes : Application errors should be logged using the Error Services module. There are a few methodological
|
||||
assumptions built into way errors are managed which are important to understand in order to properly
|
||||
work with Error Services:
|
||||
|
||||
- The term 'top' refers to the originating procedure of a call stack and the term 'bottom' refers to
|
||||
the last routine (or the current routine) within a call stack. Within the OpenInsight Debugger
|
||||
this will appear backwards since the originating procedure always appears at the bottom of the
|
||||
list and the current routine appears at the top of the list. We are using this orientation because
|
||||
it is common to refer to the process of calling other procedures as 'drilling down'.
|
||||
|
||||
- The reason for defining the orientation of the call stack is because Error_Services allows for
|
||||
multiple error conditions to be appended to an original error. In most cases this will happen when
|
||||
a procedure at the bottom of the stack generates an error condition and then returns to its
|
||||
calling procedure. This higher level procedure can optionally add more information relevant to
|
||||
itself. This continues as the call stack 'bubbles' its way back to the top to where the
|
||||
originating procedure is waiting.
|
||||
|
||||
- Native OpenInsight commands that handle errors (e.g., Set_Status, Set_FSError, Set_EventStatus)
|
||||
preserve their error state until explicitly cleared. This can hinder the normal execution of code
|
||||
since subsequent procedures (usually SSPs) will fail if a pre-existing error condition exists.
|
||||
Our philosophy is that error conditions should automatically be cleared before a new procedure
|
||||
is executed to avoid this problem. However, the nature of Basic+ does not make this easy to
|
||||
automate for any given stored procedure. Therefore, if a stored procedure wants to conform to our
|
||||
philosophy then it should include a call into the 'Clear' service request at the top of the
|
||||
program. Alternatively this can be done through a common insert (see SERVICE_SETUP for example.)
|
||||
|
||||
- Service modules will use the SERVICE_SETUP insert and therefore automatically clear out any
|
||||
error conditions that were set before.
|
||||
|
||||
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)
|
||||
05/11/2021 djs Original programmer.
|
||||
|
||||
***********************************************************************************************************************/
|
||||
#pragma precomp SRP_PreCompiler
|
||||
#window NDW_RELEASE_CASSETTES
|
||||
|
||||
$Insert EVENT_SETUP
|
||||
$Insert APP_INSERTS
|
||||
$Insert MSG_EQUATES
|
||||
$Insert POPUP_EQUATES
|
||||
|
||||
Declare subroutine Errmsg, Btree.Extract, Set_Status, Logging_Services, Work_Order_Services
|
||||
Declare function obj_WO_Log, Work_Order_Services, Environment_Services, Logging_Services
|
||||
|
||||
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\WO_LOG'
|
||||
LogDate = Oconv(Date(), 'D4/')
|
||||
LogTime = Oconv(Time(), 'MTS')
|
||||
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' Release Performance Log New.csv'
|
||||
Headers = 'Logging DTM':@FM:'WO':@FM:'User':@FM:'Cassettes (Qty)':@FM:'Release (Secs)':@FM:'Form Refresh (Secs)':@FM:'Total Duration (Secs)':@FM:'Seconds/Cassette'
|
||||
objReleaseLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, COMMA$, Headers, '', False$, False$)
|
||||
|
||||
LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
|
||||
|
||||
// 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)
|
||||
|
||||
SRP_Show_Window(@Window, '', 'C', 'C', 1, '', False$, False$, FormSize)
|
||||
|
||||
End Event
|
||||
|
||||
|
||||
Event EDL_WO_NO.LOSTFOCUS(Flag, FocusID)
|
||||
|
||||
DataValue = Get_Property(CtrlEntID, 'TEXT')
|
||||
If DataValue NE '' then
|
||||
|
||||
If Index(DataValue,'.',1) then
|
||||
* Try a BTREE lookup on PROD_ORD_NO
|
||||
|
||||
Open 'DICT.WO_LOG' to DictVar then
|
||||
|
||||
SearchString = 'PROD_ORD_NO':@VM:DataValue:@FM
|
||||
WONos = ''
|
||||
Flag = ''
|
||||
Btree.Extract(SearchString, 'WO_LOG', DictVar, WONos, '', Flag)
|
||||
|
||||
Begin Case
|
||||
Case Get_Status(errCode)
|
||||
ErrMsg(errCode)
|
||||
|
||||
Case WONos EQ ''
|
||||
ErrMsg('Value Entered "':DataValue:'" is not found.')
|
||||
|
||||
Case Index(WONos,@VM,1)
|
||||
ErrMsg('Multiple Work Orders ':QUOTE(DataValue):' for Prod Order entered.')
|
||||
|
||||
Case RowExists('WO_LOG', DataValue)
|
||||
Set_Property(CtrlEntID,'DEFPROP',WONos)
|
||||
GoSub PopulateControls
|
||||
|
||||
Case Otherwise$
|
||||
ErrMsg(Quote(DataValue):' is not a valid work order.')
|
||||
|
||||
End Case
|
||||
end else
|
||||
ErrMsg('Unable to open "DICT.WO_LOG" for index lookup in COMM_SHIPMENT routine.')
|
||||
end
|
||||
end else
|
||||
If RowExists('WO_LOG', DataValue) then
|
||||
GoSub PopulateControls
|
||||
end else
|
||||
ErrMsg(Quote(DataValue):' is not a valid work order.')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end event
|
||||
|
||||
|
||||
Event PUB_RX.CLICK()
|
||||
|
||||
WONo = Get_Property(@Window:'.EDL_WO_NO', 'TEXT')
|
||||
If WONo NE '' then
|
||||
Response = Dialog_Box('WO_REC', @Window, WONo)
|
||||
GoSub PopulateControls
|
||||
end
|
||||
|
||||
end event
|
||||
|
||||
|
||||
Event PUB_RELEASE.CLICK()
|
||||
|
||||
WONo = Get_Property(@Window:'.EDL_WO_NO', 'TEXT')
|
||||
If WONo NE '' then
|
||||
NumRelCass = 0
|
||||
ReleaseStartTime = Time()
|
||||
NumRelCass = Work_Order_Services('ReleaseCassettes', WONo)
|
||||
ReleaseStopTime = Time()
|
||||
If Error_Services('HasError') then
|
||||
ErrorMsg = Error_Services('GetMessage')
|
||||
ErrMsg(ErrorMsg)
|
||||
end
|
||||
RefreshStartTime = Time()
|
||||
GoSub PopulateControls
|
||||
RefreshStopTime = Time()
|
||||
ReleaseDuration = ReleaseStopTime - ReleaseStartTime
|
||||
RefreshDuration = RefreshStopTime - RefreshStartTime
|
||||
TotalDuration = ReleaseDuration + RefreshDuration
|
||||
If NumRelCass GT 0 then
|
||||
SecPerCass = TotalDuration / NumRelCass
|
||||
end else
|
||||
SecPerCass = 'N/A'
|
||||
end
|
||||
LogData = ''
|
||||
LogData<1> = LoggingDTM
|
||||
LogData<2> = WONo
|
||||
LogData<3> = @User4
|
||||
LogData<4> = NumRelCass
|
||||
LogData<5> = ReleaseDuration
|
||||
LogData<6> = RefreshDuration
|
||||
LogData<7> = TotalDuration
|
||||
LogData<8> = SecPerCass
|
||||
Logging_Services('AppendLog', objReleaseLog, LogData, @RM, @FM)
|
||||
end
|
||||
|
||||
end event
|
||||
|
||||
|
||||
Event PUB_LABELS.CLICK()
|
||||
|
||||
WONo = Get_Property(@Window:'.EDL_WO_NO', 'TEXT')
|
||||
If WONo NE '' then
|
||||
Work_Order_Services('PrintLabels', WONo)
|
||||
If Error_Services('HasError') then
|
||||
ErrorMsg = Error_Services('GetMessage')
|
||||
ErrMsg(ErrorMsg)
|
||||
end
|
||||
end
|
||||
|
||||
end event
|
||||
|
||||
|
||||
Event PUB_LU_WO.CLICK()
|
||||
|
||||
Set_Status(0)
|
||||
WOKeys = obj_WO_Log('Find')
|
||||
|
||||
IF Get_Status(errCode) THEN ErrMsg(ErrCode)
|
||||
|
||||
IF WOKeys NE '' THEN
|
||||
TypeOver = ''
|
||||
TypeOver<PDISPLAY$> = WOKeys
|
||||
TypeOver<PMODE$> = 'K'
|
||||
|
||||
WOKeys = Popup(@WINDOW,TypeOver,'WO_LOG_QUERY')
|
||||
IF Get_Status(errCode) THEN
|
||||
ErrMsg(errCode)
|
||||
END
|
||||
|
||||
IF WOKeys NE '' THEN
|
||||
Set_Property(@Window:'.EDL_WO_NO', 'TEXT', WOKeys)
|
||||
GoSub PopulateControls
|
||||
end
|
||||
END
|
||||
|
||||
end event
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Internal GoSubs
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
PopulateControls:
|
||||
|
||||
WONo = Get_Property(@Window:'.EDL_WO_NO', 'TEXT')
|
||||
If WONo NE '' then
|
||||
|
||||
Set_Property(@Window, "REDRAW", False$)
|
||||
Ctrls = 'EDL_WO_QTY,EDL_RX_QTY,EDL_REL_QTY,EDL_UNREL_QTY,EDT_REL_STAMP,EDT_RX_STAMP'
|
||||
Cols = 'WO_QTY,RX_QTY,REL_QTY,UNREL_QTY,REL_STAMP,RX_STAMP'
|
||||
|
||||
NumCtrls = DCount(Ctrls, ',')
|
||||
|
||||
Def = ""
|
||||
Def<MCAPTION$> = "Loading Work Order Details..."
|
||||
Def<MTYPE$> = "GC"
|
||||
Def<MEXTENT$> = NumCtrls
|
||||
Def<MTEXTWIDTH$> = 600
|
||||
MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message
|
||||
|
||||
Swap ',' with @VM in Ctrls
|
||||
Swap ',' with @VM in Cols
|
||||
For each Ctrl in Ctrls using @VM setting vPos
|
||||
|
||||
Val = Xlate('WO_LOG', WONo, Cols<0, vPos>, 'X')
|
||||
Set_Property(@Window:'.':Ctrl, 'DEFPROP', Val)
|
||||
Running = Msg(@WINDOW, MsgUp, vPos, MSGINSTUPDATE$) ;* Update message
|
||||
|
||||
Next Ctrl
|
||||
|
||||
Msg(@WINDOW,MsgUp) ;* Take message down
|
||||
Set_Property(@Window, "REDRAW", True$)
|
||||
end
|
||||
GoSub EnableControls
|
||||
|
||||
return
|
||||
|
||||
|
||||
EnableControls:
|
||||
|
||||
Ctrls = 'PUB_RX,PUB_RELEASE,PUB_LABELS'
|
||||
WONo = Get_Property(@Window:'.EDL_WO_NO', 'TEXT')
|
||||
ValidWO = RowExists('WO_LOG', WONo)
|
||||
For each Ctrl in Ctrls using ','
|
||||
Set_Property(@Window:'.':Ctrl, 'ENABLED', ValidWO)
|
||||
Next Ctrl
|
||||
|
||||
return
|
||||
|
Reference in New Issue
Block a user