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<SlistScript$>

*SEE SCHED_SRPT1 FOR LIMITS CLAUSE...

*** Report titles
TitleLine2 = SRptConfig<Title2$ >
TitleLine3 = SRptConfig<Title3$ >
TitleLine4 = SRptConfig<Title4$ >
RptWdt = SRptConfig<Width$>
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
