Focal Point
Determine if a Hold file Contains a column[Solved]

This topic can be found at:
https://forums.informationbuilders.com/eve/forums/a/tpc/f/7971057331/m/8987000816

March 18, 2012, 07:13 PM
joyesiji
Determine if a Hold file Contains a column[Solved]
Lets say i have this


DEFINE FILE CAR
ABBEY/A15 ='JUBRIL'
END

TABLE FILE CAR
PRINT ABBEY CAR MODEL WHERE COUNTRY EQ 'ENGLANDS'
ON TABLE HOLD AS SALES
END


I am storing all the values in an hold file ,given that hold file how do i determine somewhere else in the report if the sales hold file contains column ABBEY

is there a statement like
IF FILE SALES CONTAINS COLUMN ABBEY

This message has been edited. Last edited by: joyesiji,


WebFOCUS 7.6.9
Windows
all output (Excel, HTML, PDF)
March 18, 2012, 08:14 PM
Waz
There are two ways to do this.

1. CHECK FILE HOLD

2. TABLE FILE SYSCOLUM

If you filter on the column name, and master name with SYSCOLUM, and get a record the column exists.


Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!

March 19, 2012, 03:00 AM
Danny-SRL
Following up on Waz:
  
DEFINE FILE CAR
ABBEY/A15 ='JUBRIL'
END

TABLE FILE CAR
PRINT ABBEY CAR MODEL WHERE COUNTRY EQ 'ENGLANDS'
ON TABLE HOLD AS SALES
END

Add the following:
  
CHECK FILE SALES HOLD
TABLE FILE HOLD
PRINT FIELDNAME
IF FIELDNAME EQ 'ABBEY'
ON TABLE SAVE
END
-RUN
-SET &ISABBEY=&RECORDS;

Then you can check whether &ISABBEY equals 0 or not. If it is 0 no ABBEY!


Daniel
In Focus since 1982
wf 8.202M/Win10/IIS/SSA - WrapApp Front End for WF

March 19, 2012, 04:38 PM
Waz
Following up on myself...

DEFINE FILE CAR
ABBEY/A15 ='JUBRIL'
END

TABLE FILE CAR
PRINT ABBEY CAR MODEL WHERE COUNTRY EQ 'ENGLANDS'
ON TABLE HOLD AS SALES
END

TABLE FILE SYSCOLUM
PRINT NAME
WHERE TBNAME EQ 'sales'
AND NAME EQ 'ABBEY'
ON TABLE SAVE
END
-RUN
-SET &ISABBEY=&RECORDS;



Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!

March 20, 2012, 03:55 AM
<JG>
I have got to be very dense but the fact that you coded the extract to contain a column named
ABBEY means that the hold file will contain a column named ABBEY.

The only reason it would not later in a procedure is because you used the same hold file name
for a subsequent extract that did not contain it.

If bad coding practice is your issue then change your technique.
March 20, 2012, 04:39 PM
Waz
One case that would cause a column to be different is if you use ACROSS and HOLD.
TABLE FILE CAR
SUM SALES
BY COUNTRY
ACROSS CAR
ON TABLE HOLD AS HLD_CAR
ON TABLE SET ASNAMES ON
END
TABLE FILE SYSCOLUM
PRINT TBNAME NAME
WHERE TBNAME EQ 'HLD_CAR'
END



Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!

March 20, 2012, 06:14 PM
Dan Satchell
You could also use Dialogue Manager to read through the master for the hold file and search for the value. Here's an example using the CAR master:

FILEDEF CARMAS DISK IBISAMP/CAR.MAS
-RUN
-*
-SET &IORETURN = 0 ;
-*
-REPEAT ENDREPEAT1 WHILE &IORETURN EQ 0 ;
-READ CARMAS &TEXT.80.
-SET &TEXT_FOUND = IF (&TEXT CONTAINS 'ABBEY') THEN 'Y' ELSE 'N';
-IF (&TEXT_FOUND EQ 'Y') GOTO EXITREPEAT1 ;
-ENDREPEAT1
-EXITREPEAT1
-*
-TYPE TEXT_FOUND=&TEXT_FOUND

This message has been edited. Last edited by: Dan Satchell,


WebFOCUS 7.7.05
March 20, 2012, 06:33 PM
Waz
Well thats three ways...

If we make it to five can we go to Milliways. Big Grin


Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!

March 20, 2012, 06:36 PM
Dan Satchell
The best alternative would be -READFILE, but that's not available until 7.7.01 (according to the docs).


WebFOCUS 7.7.05
March 20, 2012, 06:43 PM
Waz
Thats Four !


Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!