added LSL2 stored procedures
This commit is contained in:
660
LSL2/STPROC/COMM_DIALOG_ORDER_FIND.txt
Normal file
660
LSL2/STPROC/COMM_DIALOG_ORDER_FIND.txt
Normal file
@ -0,0 +1,660 @@
|
||||
COMPILE FUNCTION Comm_Dialog_Order_Find(Method, Parm1)
|
||||
|
||||
/*
|
||||
Commuter module for Dialog_Order_Find window.
|
||||
|
||||
08/16/2004 - John C. Henry, J.C. Henry & Co., Inc.
|
||||
*/
|
||||
|
||||
DECLARE SUBROUTINE Set_Property, End_Dialog, Send_Event, Set_Status, ErrMsg
|
||||
DECLARE SUBROUTINE obj_Appwindow, Start_Window, Btree.Extract, Msg, Send_Info
|
||||
DECLARE FUNCTION Get_Property, Get_Status, Dialog_Box, Utility, Send_Message, Popup, Collect.IXVals, Msg
|
||||
|
||||
EQU CRLF$ TO \0D0A\
|
||||
|
||||
|
||||
EQU COL$CUST_NO TO 1 ;* Customer edit table column equates
|
||||
EQU COL$CUST_NAME TO 2
|
||||
|
||||
|
||||
EQU LTGREY$ TO 229 + (229*256) + (229*65536) ;* JCH standard colors for edittable backgrounds
|
||||
EQU GREY$ TO 192 + (192*256) + (192*65536)
|
||||
EQU GREEN$ TO 192 + (220*256) + (192*65536)
|
||||
EQU RED$ TO 255 + (128*256) + (128*65536)
|
||||
EQU BLUE$ TO 128 + (255*256) + (255*65536)
|
||||
EQU WHITE$ TO 255 + (255*256) + (255*65536)
|
||||
EQU YELLOW$ TO 255 + (255*256) + (202*65536)
|
||||
EQU LTBLUE$ TO 128 + (255*256) + (255*65536)
|
||||
EQU PURPLE$ TO 225 + (181*256) + (255*65536)
|
||||
|
||||
EQU DTS_MULTIROW$ TO 512
|
||||
EQU DTS_LARGEDATA$ TO 4096
|
||||
|
||||
$INSERT ORDER_EQU
|
||||
$INSERT WO_LOG_EQU
|
||||
$INSERT PS_EQUATES
|
||||
$INSERT POPUP_EQUATES
|
||||
$INSERT LOGICAL
|
||||
$INSERT MSG_EQUATES
|
||||
|
||||
ErrTitle = 'Error in Comm_Dialog_Order_Find'
|
||||
ErrorMsg = ''
|
||||
|
||||
Result = ''
|
||||
|
||||
BEGIN CASE
|
||||
CASE Method = 'Create' ; GOSUB Create
|
||||
CASE Method = 'CustChar' ; GOSUB CustChar
|
||||
CASE Method = 'CustPC' ; GOSUB CustPC
|
||||
CASE Method = 'CustDC' ; GOSUB CustDC
|
||||
CASE Method = 'PONoDC' ; GOSUB PONoDC
|
||||
CASE Method = 'AnnContDC' ; GOSUB AnnContDC
|
||||
CASE Method = 'QuoteDC' ; GOSUB QuoteDC
|
||||
CASE Method = 'CustPNDC' ; GOSUB CustPNDC
|
||||
CASE Method = 'LUDate' ; GOSUB LUDate
|
||||
CASE Method = 'Cancel' ; GOSUB Cancel
|
||||
CASE Method = 'Refresh' ; GOSUB Refresh
|
||||
CASE Method = 'PerformQuery' ; GOSUB PerformQuery
|
||||
CASE 1
|
||||
ErrMsg(ErrTitle:@SVM:'Unknown method ':QUOTE(Method):' passed to routine.')
|
||||
|
||||
END CASE
|
||||
|
||||
RETURN Result
|
||||
|
||||
|
||||
* * * * * * *
|
||||
Create:
|
||||
* * * * * * *
|
||||
|
||||
|
||||
obj_AppWindow('Create')
|
||||
|
||||
Set_Property(@WINDOW,'STATUSLINE',@WINDOW:'.STATUSLINE_FIX')
|
||||
|
||||
GOSUB Refresh
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
Refresh:
|
||||
* * * * * * *
|
||||
|
||||
* Turn edit table symbolic column backgrounds to green
|
||||
|
||||
stat = Send_Message(@WINDOW:'.CUST_INFO','COLOR_BY_POS',COL$CUST_NAME,0,GREEN$) ;* Turn names column all rows green
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
CustChar:
|
||||
* * * * * * *
|
||||
|
||||
CtrlName = @WINDOW:'.CUST_INFO'
|
||||
|
||||
CustArray = Get_Property(CtrlName,'ARRAY') ;* Customer Information table
|
||||
CurrPos = Get_Property(CtrlName,'SELPOS')
|
||||
|
||||
CurrRow = CurrPos<2>
|
||||
|
||||
DataIn = CustArray<COL$CUST_NO,CurrRow>
|
||||
|
||||
IF LEN(DataIn) > 2 THEN
|
||||
|
||||
ReturnToCtrl = CtrlName
|
||||
ReturnToPos = CurrPos
|
||||
|
||||
IF NOT(NUM(DataIn)) THEN
|
||||
Set_Property(CtrlName,'CELLPOS','',CurrPos) ;* Clear characters input
|
||||
Start_Window('COMP_LOOKUP',@WINDOW,DataIn:@VM:'C':@FM:ReturnToCtrl:@FM:ReturnToPos,'','')
|
||||
END
|
||||
END
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
CustPC:
|
||||
* * * * * * *
|
||||
|
||||
CtrlName = @WINDOW:'.CUST_INFO'
|
||||
|
||||
CustList = Get_Property(CtrlName,'LIST') ;* Customer Information table
|
||||
|
||||
CurrPos = Get_Property(CtrlName,'SELPOS')
|
||||
CurrCol = CurrPos<1>
|
||||
CurrRow = CurrPos<2>
|
||||
|
||||
CustNo = CustList<CurrRow,COL$CUST_NO>
|
||||
IF CustNo NE '' THEN
|
||||
Set_Property(CtrlName,'CELLPOS',XLATE('COMPANY',CustNo,4,'X'),COL$CUST_NAME:@FM:CurrRow)
|
||||
END
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
CustDC:
|
||||
* * * * * * *
|
||||
|
||||
CtrlName = @WINDOW:'.CUST_INFO'
|
||||
|
||||
CustList = Get_Property(CtrlName,'LIST') ;* Customer Information table
|
||||
|
||||
CurrPos = Get_Property(CtrlName,'SELPOS')
|
||||
CurrCol = CurrPos<1>
|
||||
CurrRow = CurrPos<2>
|
||||
|
||||
CustNo = CustList<CurrRow,COL$CUST_NO>
|
||||
LineCnt = COUNT(CustList,@FM) + (CustList NE '')
|
||||
IF CustNo = '' THEN
|
||||
CustNos = Popup(@WINDOW,'','CUSTOMER')
|
||||
CustCnt = COUNT(CustNos,@VM) + (CustNos NE '')
|
||||
IF CustCnt > LineCnt THEN
|
||||
FOR I = 1 TO CustCnt
|
||||
stat = Send_Message(CtrlName,'INSERT',-1,@VM:@FM) ; * Add blank lines
|
||||
NEXT I
|
||||
END
|
||||
|
||||
FOR I = CurrRow TO CurrRow + CustCnt
|
||||
CustNo = CustNos<1,I>
|
||||
CustName = XLATE('COMPANY',CustNo,4,'X')
|
||||
Set_Property(CtrlName,'CELLPOS',CustNo,COL$CUST_NO:@FM:I)
|
||||
Set_Property(CtrlName,'CELLPOS',CustName,COL$CUST_NAME:@FM:I)
|
||||
Set_Property(CtrlName,'SELPOS',COL$CUST_NO:@FM:I+1)
|
||||
NEXT I
|
||||
|
||||
END ELSE
|
||||
ErrMsg('DoubleClick on the first empty Cust No field to view a popup of all Customers')
|
||||
END
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
PONoDC:
|
||||
* * * * * * *
|
||||
|
||||
CustArray = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')<COL$CUST_NO>
|
||||
|
||||
CustNos = CustArray<COL$CUST_NO>
|
||||
|
||||
LOOP
|
||||
LastCustNo = CustNos[-1,'B':@VM]
|
||||
UNTIL LastCustNo NE '' OR CustNos = ''
|
||||
CustNos[COL1(),99] = '' ;* Trim trailing blanks
|
||||
REPEAT
|
||||
|
||||
IF CustNos = '' THEN RETURN
|
||||
|
||||
* display the processing message and do the processing
|
||||
|
||||
Def = ""
|
||||
Def<MTEXT$> = "Selecting PO Numbers..."
|
||||
Def<MTYPE$> = "U"
|
||||
|
||||
MsgUp = Msg(@window, Def)
|
||||
OPEN 'DICT.ORDER' TO DictVar THEN
|
||||
SearchString = 'CUST_NO':@VM:CustNos:@VM:@FM
|
||||
SearchString := 'PO_NO':@VM:'#':@FM
|
||||
|
||||
Btree.Extract(SearchString, 'ORDER', DictVar, OrderKeys, '', Flag)
|
||||
IF Get_Status(errCode) THEN
|
||||
Msg(@WINDOW,MsgUp)
|
||||
ErrMsg(errCode)
|
||||
|
||||
RETURN
|
||||
END
|
||||
|
||||
IF OrderKeys NE '' THEN
|
||||
RawPONos = XLATE('ORDER',OrderKeys,ORDER_PO_NO$,'X')
|
||||
IF Get_Status(errCode) THEN DEBUG
|
||||
PONos = ''
|
||||
FOR I = 1 TO COUNT(RawPONos,@VM) + (RawPONos NE '')
|
||||
RawPONo = RawPONos<1,I>
|
||||
LOCATE RawPONo IN PONos BY 'AL' USING @VM SETTING Pos ELSE
|
||||
PONos = INSERT(PONos,1,Pos,0,RawPONo)
|
||||
END
|
||||
NEXT I
|
||||
|
||||
END ELSE
|
||||
PONos = ''
|
||||
END
|
||||
|
||||
Msg(@WINDOW,MsgUp)
|
||||
|
||||
IF PONos = '' THEN
|
||||
ErrMsg('No Purchase Orders on file for specified customer.')
|
||||
RETURN
|
||||
END
|
||||
|
||||
PONos := @VM
|
||||
CONVERT @VM TO @RM IN PONos
|
||||
CALL V119('S','','D','R',PONos,'')
|
||||
IF Get_Status(errCode) THEN DEBUG
|
||||
CONVERT @RM TO @VM IN PONos
|
||||
PONos[-1,1] = '' ;* Strip trailing delimiter
|
||||
|
||||
|
||||
TypeOver = ''
|
||||
TypeOver<PDISPLAY$> = PONos
|
||||
PONos = Popup(@WINDow,TypeOver,'CUST_PO')
|
||||
IF Get_Status(errCode) THEN DEBUG
|
||||
|
||||
IF PONos NE '' THEN
|
||||
PONos := @VM:@VM
|
||||
Set_Property(@WINDOW:'.PO_NO','DEFPROP',PONos)
|
||||
END
|
||||
|
||||
|
||||
END ELSE
|
||||
ErrMsg('Unable to open DICT.ORDER in COMM_DIALOG_ORDER_FIND.')
|
||||
END
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
AnnContDC:
|
||||
* * * * * * *
|
||||
|
||||
|
||||
CustNos = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')<COL$CUST_NO>
|
||||
|
||||
LOOP
|
||||
LastCustNo = CustNos[-1,'B':@VM]
|
||||
UNTIL LastCustNo NE '' OR CustNos = ''
|
||||
CustNos[COL1(),99] = '' ;* Trim trailing blanks
|
||||
REPEAT
|
||||
|
||||
OPEN 'DICT.ANNUAL_CONTRACTS' TO DictVar THEN
|
||||
SearchString = 'CUST_NO':@VM:CustNos:@VM:@FM
|
||||
|
||||
Btree.Extract(SearchString, 'ANNUAL_CONTRACTS', DictVar, ACNos, '', Flag)
|
||||
IF Get_Status(errCode) THEN
|
||||
ErrMsg(errCode)
|
||||
RETURN
|
||||
END
|
||||
|
||||
IF ACNos = '' THEN
|
||||
ErrMsg('No Annual Contracts on file for specified customer.')
|
||||
RETURN
|
||||
END
|
||||
|
||||
ACNos := @VM
|
||||
CONVERT @VM TO @RM IN ACNos
|
||||
CALL V119('S','','D','R',ACNos,'')
|
||||
IF Get_Status(errCode) THEN DEBUG
|
||||
CONVERT @RM TO @VM IN ACNos
|
||||
acNos[-1,1] = '' ;* Strip trailing delimiter
|
||||
|
||||
|
||||
TypeOver = ''
|
||||
TypeOver<PDISPLAY$> = ACNos
|
||||
ACNos = Popup(@WINDow,TypeOver,'CUST_ANN_CONT')
|
||||
|
||||
IF ACNos NE '' THEN
|
||||
ACNos := @VM:@VM
|
||||
Set_Property(@WINDOW:'.ANN_CONT','DEFPROP',ACNos)
|
||||
END
|
||||
END ELSE
|
||||
ErrMsg('Unable to open DICT.ANNUAL_CONTRACTS in COMM_DIALOG_ORDER_FIND routine.')
|
||||
END
|
||||
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
|
||||
|
||||
* * * * * * *
|
||||
QuoteDC:
|
||||
* * * * * * *
|
||||
|
||||
|
||||
CustArray = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')
|
||||
|
||||
CustNos = CustArray<COL$CUST_NO>
|
||||
|
||||
LOOP
|
||||
LastCustNo = CustNos[-1,'B':@VM]
|
||||
UNTIL LastCustNo NE '' OR CustNos = ''
|
||||
CustNos[COL1(),99] = '' ;* Trim trailing blanks
|
||||
REPEAT
|
||||
|
||||
IF CustNos = '' THEN RETURN
|
||||
|
||||
* display the processing message and do the processing
|
||||
|
||||
Def = ""
|
||||
Def<MTEXT$> = "Selecting Quotes..."
|
||||
Def<MTYPE$> = "U"
|
||||
|
||||
MsgUp = Msg(@window, Def)
|
||||
OPEN 'DICT.ORDER' TO DictVar THEN
|
||||
SearchString = 'CUST_NO':@VM:CustNos:@VM:@FM
|
||||
SearchString := 'QUOTE_NO':@VM:'#':@FM
|
||||
|
||||
Btree.Extract(SearchString, 'ORDER', DictVar, OrderKeys, '', Flag)
|
||||
IF Get_Status(errCode) THEN
|
||||
Msg(@WINDOW,MsgUp)
|
||||
ErrMsg(errCode)
|
||||
|
||||
RETURN
|
||||
END
|
||||
|
||||
IF OrderKeys NE '' THEN
|
||||
QuoteNos = ''
|
||||
OrderNos = ''
|
||||
FOR N = 1 TO COUNT(OrderKeys,@VM) + (OrderKeys NE '')
|
||||
OrderKey = OrderKeys<1,N>
|
||||
RawQuoteNos = XLATE('ORDER',OrderKey,'QUOTE_NO','X')
|
||||
|
||||
FOR I = 1 TO COUNT(RawQuoteNos,@VM) + (RawQuoteNos NE '')
|
||||
RawQuoteNo = RawQuoteNos<1,I>
|
||||
|
||||
LOCATE RawQuoteNo IN QuoteNos BY 'AL' USING @VM SETTING Pos ELSE
|
||||
QuoteNos = INSERT(QuoteNos,1,Pos,0,RawQuoteNo)
|
||||
END
|
||||
|
||||
NEXT I
|
||||
|
||||
NEXT N
|
||||
END ELSE
|
||||
QuoteNos = ''
|
||||
END
|
||||
|
||||
Msg(@WINDOW,MsgUp)
|
||||
|
||||
IF QuoteNos = '' THEN
|
||||
ErrMsg('No Quotes on file for specified customer.')
|
||||
RETURN
|
||||
END
|
||||
|
||||
QuoteNos := @VM
|
||||
CONVERT @VM TO @RM IN QuoteNos
|
||||
CALL V119('S','','D','R',QuoteNos,'')
|
||||
IF Get_Status(errCode) THEN DEBUG
|
||||
CONVERT @RM TO @VM IN QuoteNos
|
||||
QuoteNos[-1,1] = '' ;* Strip trailing delimiter
|
||||
|
||||
|
||||
TypeOver = ''
|
||||
TypeOver<PDISPLAY$> = QuoteNos
|
||||
QuoteNos = Popup(@WINDow,TypeOver,'CUST_PO')
|
||||
IF Get_Status(errCode) THEN DEBUG
|
||||
|
||||
IF QuoteNos NE '' THEN
|
||||
CONVERT @VM TO @FM IN QuoteNos
|
||||
Set_Property(@WINDOW:'.QUOTE','LIST',QuoteNos)
|
||||
END
|
||||
|
||||
|
||||
END ELSE
|
||||
ErrMsg('Unable to open DICT.ORDER in COMM_DIALOG_ORDER_FIND.')
|
||||
END
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
* * * * * * *
|
||||
CustPNDC:
|
||||
* * * * * * *
|
||||
|
||||
CustArray = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')
|
||||
|
||||
CustNos = CustArray<COL$CUST_NO>
|
||||
|
||||
LOOP
|
||||
LastCustNo = CustNos[-1,'B':@VM]
|
||||
UNTIL LastCustNo NE '' OR CustNos = ''
|
||||
CustNos[COL1(),99] = '' ;* Trim trailing blanks
|
||||
REPEAT
|
||||
|
||||
IF CustNos = '' THEN RETURN
|
||||
|
||||
* display the processing message and do the processing
|
||||
|
||||
Def = ""
|
||||
Def<MTEXT$> = "Selecting Part Numbers..."
|
||||
Def<MTYPE$> = "U"
|
||||
|
||||
MsgUp = Msg(@window, Def)
|
||||
OPEN 'DICT.WO_LOG' TO DictVar THEN
|
||||
SearchString = 'CUST_NO':@VM:CustNos:@VM:@FM
|
||||
SearchString := 'PART_NO':@VM:'#':@FM
|
||||
|
||||
Btree.Extract(SearchString, 'WO_LOG', DictVar, WOKeys, '', Flag)
|
||||
IF Get_Status(errCode) THEN
|
||||
Msg(@WINDOW,MsgUp)
|
||||
ErrMsg(errCode)
|
||||
|
||||
RETURN
|
||||
END
|
||||
|
||||
IF WOKeys NE '' THEN
|
||||
PartNos = ''
|
||||
OrderNos = ''
|
||||
FOR N = 1 TO COUNT(WOKeys,@VM) + (WOKeys NE '')
|
||||
WOKey = WOKeys<1,N>
|
||||
RawPartNos = XLATE('WO_LOG',WOKey,'PART_NO','X')
|
||||
OrderNo = XLATE('WO_LOG',WOKey,WO_LOG_ORDER_NO$,'X')
|
||||
|
||||
FOR I = 1 TO COUNT(RawPartNos,@VM) + (RawPartNos NE '')
|
||||
RawPartNo = RawPartNos<1,I>
|
||||
|
||||
LOCATE RawPartNo IN PartNos BY 'AL' USING @VM SETTING Pos ELSE
|
||||
PartNos = INSERT(PartNos,1,Pos,0,RawPartNo)
|
||||
END
|
||||
|
||||
LOCATE OrderNo IN OrderNos<Pos> BY 'DR' USING @VM SETTING OPos ELSE
|
||||
OrderNos = INSERT(OrderNos,Pos,OPos,0,OrderNo)
|
||||
END
|
||||
NEXT I
|
||||
|
||||
NEXT N
|
||||
END ELSE
|
||||
PartNos = ''
|
||||
END
|
||||
|
||||
Msg(@WINDOW,MsgUp)
|
||||
|
||||
IF PartNos = '' THEN
|
||||
ErrMsg('No Purchase Orders on file for specified customer.')
|
||||
RETURN
|
||||
END
|
||||
|
||||
PartNos := @VM
|
||||
CONVERT @VM TO @RM IN PartNos
|
||||
CALL V119('S','','D','R',PartNos,'')
|
||||
IF Get_Status(errCode) THEN DEBUG
|
||||
CONVERT @RM TO @VM IN PartNos
|
||||
PartNos[-1,1] = '' ;* Strip trailing delimiter
|
||||
|
||||
|
||||
TypeOver = ''
|
||||
TypeOver<PDISPLAY$> = PartNos
|
||||
PartNos = Popup(@WINDow,TypeOver,'CUST_PO')
|
||||
IF Get_Status(errCode) THEN DEBUG
|
||||
|
||||
IF PartNos NE '' THEN
|
||||
debug
|
||||
END
|
||||
|
||||
|
||||
END ELSE
|
||||
ErrMsg('Unable to open DICT.WO_LOG in COMM_DIALOG_ORDER_FIND.')
|
||||
END
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
* * * * * * *
|
||||
LUDate:
|
||||
* * * * * * *
|
||||
|
||||
ReturnCtrl = Parm1[1,@RM]
|
||||
|
||||
IF ReturnCtrl = '' THEN ReturnCtrl = Get_Property(@WINDOW,'FOCUS')
|
||||
|
||||
DateSelected = Dialog_Box('POPUP_YEAR',@WINDOW)
|
||||
|
||||
RetVal = OCONV(DateSelected, 'D4/')
|
||||
|
||||
IF RetVal NE '' THEN
|
||||
obj_Appwindow('LUValReturn',RetVal:@RM:ReturnCtrl)
|
||||
END
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
Cancel:
|
||||
* * * * * * *
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
|
||||
* * * * * * *
|
||||
PerformQuery:
|
||||
* * * * * * *
|
||||
|
||||
* Customer numbers *
|
||||
|
||||
SearchString = ''
|
||||
|
||||
CustNos = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')<COL$CUST_NO>
|
||||
|
||||
LOOP
|
||||
LastVar = CustNos[-1,'B':@VM]
|
||||
UNTIL LastVar NE '' OR CustNos = ''
|
||||
CustNos[COL1(),99] = '' ;* Trim trailing blanks
|
||||
REPEAT
|
||||
|
||||
ORdCustNos = ''
|
||||
FOR I = 1 TO COUNT(CustNos,@VM) + (CustNos NE '')
|
||||
ORdCustNos<1,I> = ';':CustNos<1,I>
|
||||
NEXT I
|
||||
|
||||
IF CustNos NE '' THEN SearchString := 'CUST_NO':@VM:CustNos:@FM:'CUST_BILL_TO':@VM:ORdCustNos:@FM
|
||||
|
||||
* Annual contracts *
|
||||
|
||||
ACNos = Get_Property(@WINDOW:'.ANN_CONT','ARRAY')<1>
|
||||
|
||||
LOOP
|
||||
LastVal = ACNos[-1,'B':@VM]
|
||||
UNTIL LastVal NE '' OR ACNos = ''
|
||||
ACNos[COL1(),99] = '' ;* Trim trailing blanks
|
||||
REPEAT
|
||||
|
||||
IF ACNos NE '' THEN SearchString := 'AC_ID':@VM:ACNos:@FM
|
||||
|
||||
* Work Orders *
|
||||
|
||||
WONos = Get_Property(@WINDOW:'.WO_NO','ARRAY')<1>
|
||||
|
||||
LOOP
|
||||
LastVal = WONos[-1,'B':@VM]
|
||||
UNTIL LastVal NE '' OR WONos = ''
|
||||
WONos[COL1(),99] = '' ;* Trim trailing blanks
|
||||
REPEAT
|
||||
|
||||
IF WONos NE '' THEN SearchString := 'WO_KEYS':@VM:WONos:@FM
|
||||
|
||||
* Quotes *
|
||||
|
||||
QuoteNos = Get_Property(@WINDOW:'.QUOTE','ARRAY')<1>
|
||||
|
||||
LOOP
|
||||
LastVal = QuoteNos[-1,'B':@VM]
|
||||
UNTIL LastVal NE '' OR QuoteNos = ''
|
||||
QuoteNos[COL1(),99] = '' ;* Trim trailing blanks
|
||||
REPEAT
|
||||
|
||||
IF QuoteNos NE '' THEN SearchString := 'QUOTE_NO':@VM:QuoteNos:@FM
|
||||
|
||||
* PONos *
|
||||
|
||||
PONos = Get_Property(@WINDOW:'.PO_NO','ARRAY')<1>
|
||||
|
||||
LOOP
|
||||
LastVal = PONos[-1,'B':@VM]
|
||||
UNTIL LastVal NE '' OR PONos = ''
|
||||
PONos[COL1(),99] = '' ;* Trim trailing blanks
|
||||
REPEAT
|
||||
|
||||
IF PONos NE '' THEN SearchString := 'PO_NO':@VM:PONos:@FM
|
||||
|
||||
* Start and End Dates
|
||||
|
||||
|
||||
StartDt = ICONV(Get_Property(@WINDOW:'.START_DT','TEXT'),'D')
|
||||
EndDt = ICONV(Get_Property(@WINDOW:'.END_DT','TEXT'),'D')
|
||||
|
||||
|
||||
BEGIN CASE
|
||||
CASE StartDt NE '' AND EndDt = ''
|
||||
SearchString := 'ENTRY_DATE':@VM:'>=':OConv(StartDt, 'D4/'):@FM
|
||||
|
||||
CASE StartDt = '' AND EndDt NE ''
|
||||
SearchString := 'ENTRY_DATE':@VM:'<=':OConv(EndDt, 'D4/'):@FM
|
||||
|
||||
CASE StartDt NE '' AND EndDt NE ''
|
||||
* Fudge the dates - '~' is not inclusive of the end dates
|
||||
StartDt -= 1
|
||||
EndDt += 1
|
||||
SearchString := 'ENTRY_DATE':@VM:OConv(StartDt, 'D4/'):'~':OConv(EndDt, 'D4/'):@FM
|
||||
|
||||
CASE 1
|
||||
NULL
|
||||
END CASE
|
||||
|
||||
OrdStatus = Get_Property(@WINDOW:'.STATUS','VALUE')
|
||||
|
||||
IF OrdStatus NE 'I' THEN
|
||||
IF OrdStatus = 1 THEN
|
||||
SearchString := 'CLOSE_DATE':@VM:'#':@FM
|
||||
END ELSE
|
||||
SearchString := 'CLOSE_DATE':@VM:'=':@FM
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
OPEN 'DICT.ORDER' TO DictVar THEN
|
||||
Def = ""
|
||||
Def<MTEXT$> = "Selecting Orders..."
|
||||
Def<MTYPE$> = "U"
|
||||
|
||||
* display the processing message and do the processing
|
||||
|
||||
MsgUp = Msg(@window, Def)
|
||||
|
||||
Btree.Extract(SearchString,'ORDER',DictVar,OrderKeys,'',flag)
|
||||
IF Get_Status(errCode) THEN ErrMsg(errCode)
|
||||
|
||||
Msg(@window, MsgUp)
|
||||
IF Get_Status(errCode) THEN
|
||||
ErrMsg(errCode)
|
||||
RETURN
|
||||
END
|
||||
|
||||
End_Dialog(@WINDOW,OrderKeys)
|
||||
|
||||
END ELSE
|
||||
ErrMsg('Unable to open DICT.ORDER in routine COMM_DIALOG_ORDER_FIND')
|
||||
END
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user