[SOLVED] Getting an extra character at the beginning of variable using -READ
I'm trying to pass in a value from a table into a variable using -READ for a header
TABLE FILE METRIC
BY METRIC_NAME
WHERE METRIC_CODE EQ '&METRIC'
ON TABLE HOLD AS HEADER
END
-RUN
-READ HEADER, &HEADER.A50.
Everything works perfectly, except when I check the value of &HEADER, a hyphen shows up at the beginning. If I expect 'foo', I instead get '-foo'. Why is this happening, and how would I fix this?This message has been edited. Last edited by: ccollier,
WebFOCUS 8.2.01M on Windows 10
February 25, 2020, 02:38 PM
pav
Hello,
Can you try this.
TABLE FILE CAR
BY CAR
WHERE CAR EQ 'BMW'
ON TABLE HOLD AS HEADER FORMAT ALPHA
END
-RUN
-READ HEADER &VAR_NAME.A11
-TYPE &VAR_NAME
February 25, 2020, 03:51 PM
FP Mod Chuck
Ccollier
Try -READFILE HEADER
The variable name will be &METRIC_NAME
Thank you for using Focal Point!
Chuck Wolff - Focal Point Moderator WebFOCUS 7x and 8x, Windows, Linux All output Formats
February 25, 2020, 09:58 PM
Waz
If you use -READFILE, you will need to prime the variable so it doesn't get prompted.
Waz...
Prod:
WebFOCUS 7.6.10/8.1.04
Upgrade:
WebFOCUS 8.2.07
OS:
Linux
Outputs:
HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!
February 26, 2020, 07:06 AM
MartinY
Does METRIC_NAME is a variable field length such as A50V ?
Try with this
TABLE FILE METRIC
BY METRIC_NAME/A50
WHERE METRIC_CODE EQ '&METRIC'
ON TABLE HOLD AS HEADER
END
-RUN
-READ HEADER, &HEADER.A50.
But as mentioned already, you should better use READFILE
TABLE FILE METRIC
BY METRIC_NAME/A50
WHERE METRIC_CODE EQ '&METRIC'
ON TABLE HOLD AS HEADER
END
-RUN
-READFILE HEADER
-DEFAULTH &METRIC_NAME = ''
WF versions : Prod 8.2.04M gen 33, Dev 8.2.04M gen 33, OS : Windows, DB : MSSQL, Outputs : HTML, Excel, PDF In Focus since 2007
February 27, 2020, 10:06 AM
ccollier
As you guy said, using the -READFILE worked properly. Thanks!
WebFOCUS 8.2.01M on Windows 10
March 01, 2020, 06:17 AM
Danny-SRL
Beware of changing the format in the TABLE request. See:
TABLE FILE CAR
BY COUNTRY/A20
ON TABLE HOLD
END
?FF HOLD
-RUN
-READFILE HOLD
-TYPE &COUNTRY &COUNTRY.LENGTH
-* Output:
0 NUMBER OF RECORDS IN TABLE= 5 LINES= 5
FILENAME= HOLD
COUNTRY E01 A20
COUNTRY E02 A10
ENGLAND 10
However:
TABLE FILE CAR
BY COUNTRY/A20
ON TABLE SET HOLDLIST PRINTONLY
ON TABLE HOLD
END
?FF HOLD
-RUN
-READFILE HOLD
-TYPE &COUNTRY &COUNTRY.LENGTH
-* output
0 NUMBER OF RECORDS IN TABLE= 5 LINES= 5
FILENAME= HOLD
COUNTRY E01 A20
ENGLAND 20
Daniel In Focus since 1982 wf 8.202M/Win10/IIS/SSA - WrapApp Front End for WF