compile function INVOICE_RPT5() begin condition pre: post: end condition declare function getprinterlist, getprofilestring, writeprofilestring, extdevicemode declare function msg, set_property, send_event, dialog_box, utility, get_property declare function set_printer declare subroutine rlist, or_view, activate_save_select, yield, update_index $insert rlist_equates $insert msg_equates Params = dialog_box( 'INVOICE_RPT5', @window, '*CENTER' ) if Params = 'CANCEL' or Params = '' then return 0 end open 'SYSLISTS' to SysListsTable else MsgInfo = '' MsgInfo = -2 MsgInfo = -2 MsgInfo = 'Unable to open SYSLISTS...' Void = msg( '', MsgInfo ) return 0 end ListsId = 'INVOICE_RPT5*':@station write '' on SysListsTable, ListsId else MsgInfo = '' MsgInfo = -2 MsgInfo = -2 MsgInfo = 'Unable to clear SYSLISTS ':ListsId:'...' Void = msg( '', MsgInfo ) return 0 end convert '*' to @fm in Params FromDate = Params<1> ThruDate = Params<2> Custs = Params<3> QuoteNos = Params<4> Pos = Params<5> DirToPrinter = Params<6> InvoiceTable = 'INVOICE' Stat = utility( 'CURSOR', 'H' ) Stmt = 'SELECT ':InvoiceTable CStmt = '' if FromDate and ThruDate then CStmt := " WITH ENTRY_DATE FROM ":QUOTE(FromDate):' TO ':QUOTE(ThruDate) end else if FromDate then CStmt := " WITH ENTRY_DATE GE ":QUOTE(FromDate) end if ThruDate then CStmt := " WITH ENTRY_DATE LE ":QUOTE(ThruDate) end end if Custs then swap @vm with "' '" in Custs Custs = "'":Custs:"'" if CStmt then CStmt := ' AND WITH ' end else CStmt := ' WITH ' end CStmt := 'CUST_NO = ':Custs end if Pos then swap @vm with "' '" in Pos Pos = "'":Pos:"'" if CStmt then CStmt := ' AND WITH ' end else CStmt := ' WITH ' end CStmt := 'PO = ':Pos end if QuoteNos then swap @vm with "' '" in QuoteNos QuoteNos = "'":QuoteNos:"'" end Stmt := CStmt rlist( Stmt, target_savelist$, ListsId, '', '' ) activate_save_select( ListsId ) if @reccount then Cmd = "LIST ":InvoiceTable if QuoteNos then Cmd:= " WITH QUOTE_IDS ":QuoteNos:" LIMIT QUOTE_IDS ":QuoteNos end Cmd:= " ID-SUPP BY CUST_NAME BREAK-ON CUST_NAME ":quote("'V'"):" JUSTLEN 25" Cmd:= " BY QUOTE_IDS BREAK-ON QUOTE_IDS ":quote("'V'"):" JUSTLEN 9 BY SEQ BREAK-ON SEQ" Cmd:= " ":quote("'V'"):" COLHEAD 'Inv No.' JUSTLEN 8" Cmd:= " PO JUSTLEN 16 SHIP_DATE JUSTLEN 9 TOTAL QUANTITY JUSTLEN 8" Cmd:= " HEADING ":'"':" Epitronics, formerly Lawrence Semiconductor Labs. 'L' Invoices by Customer/Quote/Invoice No. 'TL'" Cmd:= " PAGE # 'P' " if FromDate then Cmd:= " for selected dates (":FromDate:") to (":ThruDate:")":'"' end else Cmd := '"' end if DirToPrinter = 'Yes' then rlist( Cmd, 0, '', '', '' ) end else or_view( '', Cmd ) Void = set_property( 'ORPRV.PRINT', 'ENABLED', 0 ) WinId = 'ORPRV' loop while get_property( WinId, 'HANDLE' ) yield() repeat ToPrint = '' MsgInfo = '' MsgInfo = 'Do you want to print this report?' MsgInfo = '?' MsgInfo = 'BNY' MsgInfo = -2 MsgInfo = -2 MsgInfo = 2 ;* default to no ToPrint = msg( @window, MsgInfo ) if ToPrint then activate_save_select( ListsId ) rlist( Cmd, 0, '', '', '' ) end end end else MsgInfo = '' MsgInfo = -2 MsgInfo = -2 MsgInfo = 'NO Records meeting your date criteria!!' MsgInfo = '!' Void = MSG( '', MsgInfo ) end write '' on SysListsTable, ListsId else MsgInfo = '' MsgInfo = -2 MsgInfo = -2 MsgInfo = 'Unable to clear SYSLISTS ':ListsId:'...' Void = msg( '', MsgInfo ) return 0 end return 0