replaced global variables with local variables to prevent dictionary getting clobbered
This commit is contained in:
@ -50,6 +50,7 @@ Compile function NDW_MATERIAL_TRACK_PRO_REPORT_EVENTS(CtrlEntId, Event, @PARAMS)
|
||||
|
||||
Declare function Form_Services, Database_Services, RTI_Task_Submit, RTI_Task_Status, MemberOf
|
||||
Declare subroutine SRP_Show_Window, Send_Message, Set_Property, Database_Services, Material_Track, Report_Services
|
||||
Declare subroutine PlaceDialog
|
||||
|
||||
$Insert EVENT_SETUP
|
||||
$Insert LOGICAL
|
||||
@ -97,8 +98,7 @@ Event WINDOW.CREATE(CreateParam)
|
||||
GoSub Setup_OLE_Controls
|
||||
GoSub EnableGenerateReportButton
|
||||
|
||||
FormSize = ''
|
||||
SRP_Show_Window(@Window, '', 'C', 'C', 1, '', False$, False$, FormSize)
|
||||
PlaceDialog(-2, -2)
|
||||
|
||||
End Event
|
||||
|
||||
|
@ -1446,8 +1446,11 @@ Service GenerateMaterialTrackRows()
|
||||
ErrCode = ''
|
||||
ErrorMsg = ''
|
||||
|
||||
SchedDetTable = ''
|
||||
SchedDetDict = ''
|
||||
|
||||
OPEN 'SCHED_DET_NG' TO SchedDetTable then
|
||||
OPEN 'DICT.SCHED_DET_NG' TO @DICT then
|
||||
OPEN 'DICT.SCHED_DET_NG' TO SchedDetDict then
|
||||
Today = Datetime()
|
||||
|
||||
ReactList = ''
|
||||
@ -1466,12 +1469,12 @@ Service GenerateMaterialTrackRows()
|
||||
END
|
||||
|
||||
Done = 0
|
||||
@ID = ''
|
||||
CurrSchedDetKey = ''
|
||||
LOOP
|
||||
PrevSchedDetKey = @ID
|
||||
READNEXT @ID ELSE Done = 1
|
||||
PrevSchedDetKey = CurrSchedDetKey
|
||||
READNEXT CurrSchedDetKey ELSE Done = 1
|
||||
UNTIL Done
|
||||
READ SchedDetRec FROM SchedDetTable,@ID THEN
|
||||
READ SchedDetRec FROM SchedDetTable,CurrSchedDetKey THEN
|
||||
ReactNo = SchedDetRec<SCHED_DET_NG.REACT_NO$>
|
||||
WONo = SchedDetRec<SCHED_DET_NG.WO_NO$>
|
||||
If ReactNo NE '' then
|
||||
@ -1482,20 +1485,20 @@ Service GenerateMaterialTrackRows()
|
||||
If WONo NE '' then
|
||||
LOCATE WONo IN WOList<Pos> USING @VM SETTING WPos ELSE
|
||||
WOList = INSERT(WOList,Pos,-1,0,WONo)
|
||||
SchedDetKeys = INSERT(SchedDetKeys,-1,0,0,@ID)
|
||||
SchedDetKeys = INSERT(SchedDetKeys,-1,0,0,CurrSchedDetKey)
|
||||
END
|
||||
END
|
||||
END
|
||||
|
||||
REPEAT
|
||||
|
||||
CALL Make.List(0,SchedDetKeys,SchedDetTable,@DICT)
|
||||
CALL Make.List(0, SchedDetKeys, SchedDetTable, SchedDetDict)
|
||||
|
||||
DateRange = 'Effective ':OCONV(Date(),'D4')
|
||||
|
||||
RowIndex = 0
|
||||
AllReportData = ''
|
||||
@RECCOUNT = 0
|
||||
RecCount = 0
|
||||
FirstPass = 1
|
||||
LastRecord = 0
|
||||
FirstLine = 1
|
||||
@ -1506,48 +1509,50 @@ Service GenerateMaterialTrackRows()
|
||||
Prev.ReactNo = ''
|
||||
Last.ReactNo.Break = 1
|
||||
|
||||
CurrSchedDetRec = ''
|
||||
|
||||
Loop
|
||||
|
||||
ReactNo.Break = 0
|
||||
|
||||
READNEXT @ID, Which.Value ELSE
|
||||
READNEXT CurrSchedDetKey, Which.Value ELSE
|
||||
LastRecord = 1
|
||||
ReactNo.Break = 1
|
||||
ReactNo = Prev.ReactNo
|
||||
END
|
||||
|
||||
S.ATID = @ID
|
||||
S.ATID = CurrSchedDetKey
|
||||
Abort = (FirstPass and LastRecord)
|
||||
If Not(Abort) then
|
||||
|
||||
If Not(LastRecord) then
|
||||
|
||||
READO @RECORD FROM SchedDetTable,@ID then
|
||||
READO CurrSchedDetRec FROM SchedDetTable,CurrSchedDetKey then
|
||||
|
||||
// GOTO ReadRecord
|
||||
@RECCOUNT += 1
|
||||
RecCount += 1
|
||||
|
||||
* Calculate Value(s) For Column(s)
|
||||
|
||||
S.StartDtm = {START_DTM}
|
||||
S.ATID = {@ID}
|
||||
S.StartDtm = CurrSchedDetRec<SCHED_DET_NG.START_DTM$>
|
||||
S.ATID = CurrSchedDetKey
|
||||
I.ATID = S.ATID
|
||||
S.ReactNo = {REACT_NO}
|
||||
S.ReactNo = CurrSchedDetRec<SCHED_DET_NG.REACT_NO$>
|
||||
I.ReactNo = S.ReactNo
|
||||
S.WoNo = {WO_NO}
|
||||
S.WoNo = CurrSchedDetRec<SCHED_DET_NG.WO_NO$>
|
||||
I.WoNo = S.WoNo
|
||||
S.SubPartNo = XLATE('WO_LOG', S.WoNo, 'ORD_SUB_PART_NO', 'X')
|
||||
I.SubPartNo = S.SubPartNo
|
||||
S.EpiPartNo = XLATE('WO_LOG', S.WoNo, WO_LOG_EPI_PART_NO$, 'X')
|
||||
I.EpiPartNo = S.EpiPartNo
|
||||
S.WO_Qty = Xlate('WO_LOG', {WO_NO}, WO_LOG_WO_QTY$, 'X')
|
||||
S.WO_Qty = Xlate('WO_LOG', S.WoNo, WO_LOG_WO_QTY$, 'X')
|
||||
I.WO_Qty = S.WO_Qty
|
||||
S.WO_RX_Qty = Xlate('WO_LOG', {WO_NO}, 'RX_QTY', 'X')
|
||||
S.WO_RX_Qty = Xlate('WO_LOG', S.WoNo, 'RX_QTY', 'X')
|
||||
I.WO_RX_Qty = S.WO_RX_Qty
|
||||
S.WO_UnRel_QTY = Xlate('WO_LOG', {WO_NO}, 'UNREL_QTY', 'X')
|
||||
S.WO_UnRel_QTY = Xlate('WO_LOG', S.WoNo, 'UNREL_QTY', 'X')
|
||||
I.WO_UnRel_QTY = S.WO_UnRel_QTY
|
||||
S.REACT_TYPE = Xlate('WO_LOG', {WO_NO}, 'REACT_TYPE', 'X')
|
||||
S.ProdOrdNo = Xlate('WO_LOG', {WO_NO}, 'PROD_ORD_NO', 'X')
|
||||
S.REACT_TYPE = Xlate('WO_LOG', S.WoNo, 'REACT_TYPE', 'X')
|
||||
S.ProdOrdNo = Xlate('WO_LOG', S.WoNo, 'PROD_ORD_NO', 'X')
|
||||
|
||||
Locate 'SR*KTR]' in LocationFilter using @VM setting vPos then
|
||||
KitData = Location_Services('GetLocationCassInfo', S.WONo, 'SR*KTR]')
|
||||
@ -1899,8 +1904,11 @@ Service PrintMaterialTrackReport(RptColumns, LocationFilter, NoMatFlag, OldRepor
|
||||
ErrCode = ''
|
||||
ErrorMsg = ''
|
||||
|
||||
SchedDetTable = ''
|
||||
SchedDetDict = ''
|
||||
|
||||
OPEN 'SCHED_DET_NG' TO SchedDetTable then
|
||||
OPEN 'DICT.SCHED_DET_NG' TO @DICT then
|
||||
OPEN 'DICT.SCHED_DET_NG' TO SchedDetDict then
|
||||
Today = Datetime()
|
||||
|
||||
ReactList = ''
|
||||
@ -1921,13 +1929,13 @@ Service PrintMaterialTrackReport(RptColumns, LocationFilter, NoMatFlag, OldRepor
|
||||
RETURN
|
||||
END
|
||||
|
||||
Done = 0
|
||||
@ID = ''
|
||||
Done = 0
|
||||
CurrSchedDetKey = ''
|
||||
LOOP
|
||||
PrevSchedDetKey = @ID
|
||||
READNEXT @ID ELSE Done = 1
|
||||
PrevSchedDetKey = CurrSchedDetKey
|
||||
READNEXT CurrSchedDetKey ELSE Done = 1
|
||||
UNTIL Done
|
||||
READ SchedDetRec FROM SchedDetTable,@ID THEN
|
||||
READ SchedDetRec FROM SchedDetTable,CurrSchedDetKey THEN
|
||||
ReactNo = SchedDetRec<SCHED_DET_NG.REACT_NO$>
|
||||
WONo = SchedDetRec<SCHED_DET_NG.WO_NO$>
|
||||
If ReactNo NE '' then
|
||||
@ -1938,14 +1946,14 @@ Service PrintMaterialTrackReport(RptColumns, LocationFilter, NoMatFlag, OldRepor
|
||||
If WONo NE '' then
|
||||
LOCATE WONo IN WOList<Pos> USING @VM SETTING WPos ELSE
|
||||
WOList = INSERT(WOList,Pos,-1,0,WONo)
|
||||
SchedDetKeys = INSERT(SchedDetKeys,-1,0,0,@ID)
|
||||
SchedDetKeys = INSERT(SchedDetKeys,-1,0,0,CurrSchedDetKey)
|
||||
END
|
||||
END
|
||||
END
|
||||
|
||||
REPEAT
|
||||
|
||||
CALL Make.List(0,SchedDetKeys,SchedDetTable,@DICT)
|
||||
CALL Make.List(0,SchedDetKeys,SchedDetTable,SchedDetDict)
|
||||
|
||||
Header = "'D'":@VM:obj_Install('Get_Prop','CompTitle'):' Material Tracking by Reactor':@VM:"Page 'P'"
|
||||
MinDemand = 0
|
||||
@ -1988,7 +1996,7 @@ Service PrintMaterialTrackReport(RptColumns, LocationFilter, NoMatFlag, OldRepor
|
||||
Footer = " 'D' 'T'":@VM:@VM:"Page: 'P'"
|
||||
stat = Set_Printer('FOOTER',Footer)
|
||||
If Stat GE 0 then
|
||||
@RECCOUNT = 0
|
||||
RecCount = 0
|
||||
FirstPass = 1
|
||||
LastRecord = 0
|
||||
FirstLine = 1
|
||||
@ -2010,48 +2018,48 @@ Service PrintMaterialTrackReport(RptColumns, LocationFilter, NoMatFlag, OldRepor
|
||||
Prev.ReactNo = ''
|
||||
Last.ReactNo.Break = 1
|
||||
|
||||
CurrSchedDetRec = ''
|
||||
|
||||
Loop
|
||||
|
||||
* Zero Break Flags To False
|
||||
|
||||
ReactNo.Break = 0
|
||||
|
||||
READNEXT @ID, Which.Value ELSE
|
||||
READNEXT CurrSchedDetKey, Which.Value ELSE
|
||||
LastRecord = 1
|
||||
ReactNo.Break = 1
|
||||
ReactNo = Prev.ReactNo
|
||||
END
|
||||
|
||||
S.ATID = @ID
|
||||
S.ATID = CurrSchedDetKey
|
||||
Abort = (FirstPass AND LastRecord)
|
||||
IF Not(Abort) THEN
|
||||
|
||||
IF Not(LastRecord) then
|
||||
READO @RECORD FROM SchedDetTable,@ID then
|
||||
READO CurrSchedDetRec FROM SchedDetTable,CurrSchedDetKey then
|
||||
|
||||
@RECCOUNT += 1
|
||||
RecCount += 1
|
||||
|
||||
* Calculate Value(s) For Column(s)
|
||||
|
||||
S.ATID = {@ID}
|
||||
I.ATID = S.ATID
|
||||
S.ReactNo = {REACT_NO}
|
||||
I.ReactNo = S.ReactNo
|
||||
S.WoNo = {WO_NO}
|
||||
I.WoNo = S.WoNo
|
||||
S.SubPartNo = XLATE('WO_LOG', S.WoNo, 'ORD_SUB_PART_NO', 'X')
|
||||
I.SubPartNo = S.SubPartNo
|
||||
S.EpiPartNo = XLATE('WO_LOG', S.WoNo, WO_LOG_EPI_PART_NO$, 'X')
|
||||
I.EpiPartNo = S.EpiPartNo
|
||||
S.WO_Qty = Xlate('WO_LOG', {WO_NO}, WO_LOG_WO_QTY$, 'X')
|
||||
I.WO_Qty = S.WO_Qty
|
||||
S.WO_RX_Qty = Xlate('WO_LOG', {WO_NO}, 'RX_QTY', 'X')
|
||||
I.WO_RX_Qty = S.WO_RX_Qty
|
||||
S.WO_UnRel_QTY = Xlate('WO_LOG', {WO_NO}, 'UNREL_QTY', 'X')
|
||||
I.WO_UnRel_QTY = S.WO_UnRel_QTY
|
||||
S.REACT_TYPE = Xlate('WO_LOG', {WO_NO}, 'REACT_TYPE', 'X')
|
||||
S.ProdOrdNo = Xlate('WO_LOG', {WO_NO}, 'PROD_ORD_NO', 'X')
|
||||
|
||||
S.ATID = CurrSchedDetKey
|
||||
I.ATID = S.ATID
|
||||
S.ReactNo = CurrSchedDetRec<SCHED_DET_NG.REACT_NO$>
|
||||
I.ReactNo = S.ReactNo
|
||||
S.WoNo = CurrSchedDetRec<SCHED_DET_NG.WO_NO$>
|
||||
I.WoNo = S.WoNo
|
||||
S.SubPartNo = XLATE('WO_LOG', S.WoNo, 'ORD_SUB_PART_NO', 'X')
|
||||
I.SubPartNo = S.SubPartNo
|
||||
S.EpiPartNo = XLATE('WO_LOG', S.WoNo, WO_LOG_EPI_PART_NO$, 'X')
|
||||
I.EpiPartNo = S.EpiPartNo
|
||||
S.WO_Qty = Xlate('WO_LOG', S.WoNo, WO_LOG_WO_QTY$, 'X')
|
||||
I.WO_Qty = S.WO_Qty
|
||||
S.WO_RX_Qty = Xlate('WO_LOG', S.WoNo, 'RX_QTY', 'X')
|
||||
I.WO_RX_Qty = S.WO_RX_Qty
|
||||
S.WO_UnRel_QTY = Xlate('WO_LOG', S.WoNo, 'UNREL_QTY', 'X')
|
||||
I.WO_UnRel_QTY = S.WO_UnRel_QTY
|
||||
S.REACT_TYPE = Xlate('WO_LOG', S.WoNo, 'REACT_TYPE', 'X')
|
||||
S.ProdOrdNo = Xlate('WO_LOG', S.WoNo, 'PROD_ORD_NO', 'X')
|
||||
|
||||
If OldReport then
|
||||
|
||||
@ -2332,7 +2340,9 @@ Service PrintMaterialTrackReport(RptColumns, LocationFilter, NoMatFlag, OldRepor
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service GetOpenNCRReportJson()
|
||||
|
||||
ErrorMessage = ''
|
||||
OpenNCRReportJson = ''
|
||||
OpenNCRKeyList = NCR_Services('GetOpenNCRKeys')
|
||||
|
Reference in New Issue
Block a user