Am I being stupid or what?

kckoll

New Member
I'm trying to change an existing program to turn off headers and page size if the the output source choosen is a file.

here is a snippet

if infile = "F"
then
{lib/rpt-open.i &no-header=1 &page-size=0}.

else
then
{lib/rpt-open.i}.


I get an error with this, "Colon followed by a whites space terminates a statement", but if I do either one individually, it works... Any clues would be most welcome..

Regards,

Kent
 

lord_icon

Member
Block

Progress is getting confused by the include reference.

if infile = "F"
then
{lib/rpt-open.i &no-header=1 &page-size=0}.
else ...

Dude should be ,
if infile = "F" then
DO:
{lib/rpt-open.i &no-header=1 &page-size=0}.
END.
ELSE /* infile <> "F" */
DO:
END
 

kckoll

New Member
I tried that, in fact I've tried multiple combinations, still the same error message. It almost appears as if the include's are both being loaded. I'm trying to remove the header info so we can import the file into a spreadsheet.

Here's more of the program

def var RcsId as char init "$HEADER: clmreport.p v1.0 2007/01/05 kent".

{lib/rpt-def.i &name=clmreport}

def buffer claim for awhst.war-claim-hdr.
def buffer clmline for awhst.war-claim-line.
def buffer clmreg for awhst.war-reg.

def var beg-datefld1 like claim.datefld1 label "From Date".
def var end-datefld1 like claim.datefld1 label "To Date".
def var beg-item like claim.item-purch.
def var end-item like claim.item-purch.

def temp-table thing
field claim-num like claim.claim-num label "Number"
field claim-dte like claim.claim-date label "Submitted"
field clmreg like clmreg.reg-date label "Registered"
field dealer-nam like clmreg.dealer-name format "x(25)" label "Dealer"
field customer like clmreg.purchaser format "x(25)" label "Customer"
field item-purch like symix.item.item format "x(15)" label "Model"
field serial like clmreg.serial-num format "x(20)" label "Serial Number"
field dealer-sold like clmreg.dealer-sold-date label "Dealer Sold"
field dealer-deliv like clmreg.delivery-date label "Dealer Delivery"
field cust-deliv like claim.delivered label "Customer Delivery"
field cust-failed like claim.failed label "Failed"
field cust-fail-desc like claim.failure-desc
field datefld1 like claim.datefld1
field item like symix.item.item format "x(18)" label "Item"
field qty like clmline.qty label "Qauntity"
field net-price like clmline.net-price label "Part Price"
field totpcost like clmline.net-price label "Total Parts"
field lbr-hrs like clmline.labor-hrs label "Labor Hours"
field lbr-rate like clmline.labor-rate label "Labor Hours"
field totlcost like clmline.net-price label "Total Labor"
field ext-cost like clmline.net-price label "Ext Cost/Line"
field comment like clmreg.comments
index goop is primary item-purch
.

assign
infile = "B"
record-desc = "Warranty Report"
rpt-name = "CLMREPORT"
.

{lib/rpt-opt.i
&opt1=beg-datefld1 &type1=da &at1="colon 40"
&opt3=end-datefld1 &type3=da &at3="colon 40"
&opt5=symex.ex-beg.item &type5=ch &at5="colon 40"
&opt7=symex.ex-end.item &type7=ch &at7="colon 40"
&dest21="colon 40"
}

procedure do-PROCESS:
def input parameter p-text as char no-undo.

if input frame f-in beg-datefld1 > input frame f-in end-datefld1
then
undo, retry.

do on error undo, return:
run validate-destination.
end. /**** validate dest ****/

if input frame f-in beg-datefld1 > input frame f-in end-datefld1
then do:
message "Beginning date must be before end date" VIEW-AS ALERT-BOX.
pause.
undo, return.
end. /**** check on bad dates ****/

for each thing:
delete thing.
end. /**** clean up temp-table ****/

assign
beg-datefld1 frame f-in
end-datefld1
beg-item = input frame f-in symex.ex-beg.item
end-item = input frame f-in symex.ex-end.item
.

if beg-datefld1 = ? and end-datefld1 = ?
then do:
assign
beg-datefld1 = 1/1/1980
end-datefld1 = today
.
end.

if infile = "P"
then do:
system-dialog printer-setup.
end.

if infile = "F"
then do:
{lib/rpt-open.i &no-header=1 &page-size=0}
end.

else
do:
{lib/rpt-open.i}
end.
 

kckoll

New Member
After doing some more reading, I'm pretty sure the preprocessor is having problems with this. I'm not certain how to get around it. I've tried assigning variables for the the include, but that doesn't seem to work either.

def var nhdr as int.
def var npgz as int.

if infile = "F"
then do:
nhdr=1.
npgz=0.
end.

{lib/rpt-open.i &no-header=ndhr &page-size=npgz}
 

rainylsh

Member
you can't use if function around {rpt-open.i}, it can be confused.
if infile = "F"
then do:
{lib/rpt-open.i &no-header=1 &page-size=0}.
{lib/rpt-close.i}
END.
ELSE DO:
{lib/rpt-open.i &no-header=0 &page-size=45}.
{lib/rpt-close.i}
END
you need adding {lib/rpt-close.i} into if function.
 
Top