compile function INVOICE_SRPT5() declare function msg, send_event, dialog_box, utility declare subroutine rlist, activate_save_select, or_view $insert rlist_equates $insert msg_equates $insert rpt_cfg_equ TimeX = Oconv(Time(),'MTS') CrLf = Char(13):Char(10) CurDte = OCONV(Date(),"D4/") ReportID = "INVOICE005_SRPTCFG" ReportControl = "INVOICE_SRPT5" TableName = 'INVOICE' ListsId = ReportControl:'*':@station TtlLin1 = '' TtlLin2 = '' TtlLin3 = '' TtlLin4 = '' TtlLin5 = '' open 'CONFIG' to ConfigTable else Void = msg( '', 'Unable to open CONFIG...' ) return 0 end Read SRptConfig From ConfigTable,ReportID Else Void = msg( '', 'Unable to read ': ReportID:' From CONFIG table!' ) return 0 End Params = dialog_box( ReportControl, @window, '*CENTER' ) if Params = 'CANCEL' or Params = '' then return 0 end open 'SYSLISTS' to SysListsTable else Void = msg( '', 'Unable to open SYSLISTS...' ) return 0 end write '' on SysListsTable, ListsId else Void = msg( '', 'Unable to clear SYSLISTS ':ListsId:'...' ) return 0 end convert '*' to @fm in Params BegDte = Params<1> EndDte = Params<2> Custs = Params<3> Quotes = Params<4> POs = Params<5> Void = utility( 'CURSOR', 'H' ) WithStmt = 'SELECT ':TableName:' ' WthSwt = 0 Begin Case Case BegDte and EndDte TtlLin2 = 'Entry Dates: From ':BegDte:' To ':EndDte WithStmt := " WITH ENTRY_DATE FROM '": BegDte:"' TO '":EndDte: "' " WthSwt = 1 Case BegDte TtlLin2 = 'Entry Dates: From ':BegDte:' To ':CurDte WithStmt := " WITH ENTRY_DATE GE '":BegDte:"' " WthSwt = 1 Case EndDte TtlLin2 = 'Entry Dates: From Earliest To ':EndDte WithStmt := " WITH ENTRY_DATE LE '":EndDte:"' " WthSwt = 1 Case 1 TtlLin2 = 'Entry Dates: ALL' End Case If Custs then CustCnt = Count(@vm,Custs) If CustCnt > 20 Then TtlLin3 = 'Customers: More Than 20 Selected' End Else TtlLin3 = Custs swap @vm with ", " in TtlLin3 TtlLin3 = 'Customers: ':TtlLin3 End swap @vm with "' '" in Custs Custs = "'":Custs:"'" If WthSwt Then WithStmt := ' AND ' WithStmt := ' WITH CUST_NO = ':Custs WthSwt = 1 end else TtlLin3 = 'Customers: ALL' end QuotesLimit = '' If Quotes then QuoteCnt = Count(@vm,Quotes) If QuoteCnt > 20 Then TtlLin4 = 'Quotes: More Than 20 Selected' End Else TtlLin4 = Quotes swap @vm with ", " in TtlLin4 TtlLin4 = 'Quotes: ':TtlLin4 End swap @vm with "' '" in Quotes Quotes = "'":Quotes:"'" If WthSwt Then WithStmt := ' AND ' WithStmt := ' WITH QUOTES = ':Quotes QuotesLimit = 'LIMIT QUOTES = ': Quotes WthSwt = 1 end else TtlLin4 = 'Quotes: ALL' end If POs then PO_Cnt = Count(@vm,POs) If PO_Cnt > 20 Then TtlLin5 = 'POs: More Than 20 Selected' End Else TtlLin5 = POs swap @vm with ", " in TtlLin5 TtlLin5 = 'POs: ':TtlLin5 End swap @vm with "' '" in POs POs = "'":POs:"'" If WthSwt Then WithStmt := ' AND ' WithStmt := ' WITH POs = ':POs WthSwt = 1 end else TtlLin5 = 'POs: ALL' end OsWrite WithStmt To 'C:\WithStmt.Txt' rlist( WithStmt, target_savelist$, ListsId, '', '' ) activate_save_select( ListsId ) Script = SRptConfig *SEE SCHED_SRPT1 FOR LIMITS CLAUSE... *** Report titles TitleLine2 = SRptConfig TitleLine3 = SRptConfig TitleLine4 = SRptConfig RptWdt = SRptConfig TtlMid = RptWdt/2 Swap '~CurrDate~' With CurDte In Script Swap "~Limit2~" With QuotesLimit In Script If TitleLine2[1,1] = '~' Then Filler = TtlMid - (Len(TtlLin2)/2) If Filler < 0 Then Filler = 0 TtlLin2 = Space(Filler):TtlLin2 If TtlLin2 Then Swap '~SecondTitleLine~' With TtlLin2 In Script End If TitleLine3[1,1] = '~' Then Filler = TtlMid - (Len(TtlLin3))/2 If Filler < 0 Then Filler = 0 If TtlLin3 Then Swap '~ThirdTitleLine~' With Space(Filler):TtlLin3 In Script End If TitleLine4[1,1] = '~' Then Filler = TtlMid - (Len(TtlLin4))/2 If Filler < 0 Then Filler = 0 If TtlLin3 Then Swap '~FourthTitleLine~' With Space(Filler):TtlLin4 In Script End *OsWrite Script To "C:\SLIST.txt" call slist( Script ) Void = utility( 'CURSOR', 'A' ) write '' on SysListsTable, ListsId else Void = msg( '', 'Unable to clear SYSLISTS ':ListsId:'...' ) return 0 end RETURN 0