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