Focal Point
use -READ VALUES IN A DEFINE [SOLVED]

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

April 16, 2013, 04:46 PM
Tomsweb
use -READ VALUES IN A DEFINE [SOLVED]
I am trying to use -READ to bring in values from a hold file and use them in define, and
ultimately a report (like the mainframe days, when we didn't have fancy tools like a
synonym editor!).

[CODE]
TABLE FILE XYZ1
" GET ALL THE RDDT DATA "
" "
PRINT
RDDT
BY RLEN

IF RECORDLIMIT EQ 2
ON TABLE HOLD AS XYZALL FORMAT ALPHA
END
-RUN

-SET &ALLX = &LINES;
-SET &ACT = 1;
-REPEAT ALL_LOOP1 &ALLX TIMES

-READ XYZALL &ALEN.I5. &ARDX.A120.
-TYPE REC #&ACT &ARDX

-SET &ZLEN = &FLEN+0;
-SET &FMT = A|&ZLEN;
-SET &TARDX = TRUNCATE(&ARDX);
-TYPE TARDX = &TARDX

DEFINE FILE XYZALL
RDDT1/&FMT.EVAL = &TARDX.EVAL;
END
-*GOTO ZORO

TABLE FILE XYZALL
HEADING CENTER
"HERE IS THE NEW FIELD"
""
PRINT
RDDT1
END
-RUN

-ZORO
-SET &ACT = &ACT + 1;

-ALL_LOOP1

-EXIT

An expected value for the RDDT1 field is: E64NES4Y001. An expected value for the &FLEN would be 11.

I use the &FLEN field to determine the size of the RDDT1 field to scale it down to its actual size from its mfd-defined size of A120V,

However, when I run it I get these errors:

0 ERROR AT OR NEAR LINE 74 IN PROCEDURE carloop.fexFOCEXEC *
(FOC258) FIELDNAME OR COMPUTATIONAL ELEMENT NOT RECOGNIZED: E64NES4Y001
0 ERROR AT OR NEAR LINE 83 IN PROCEDURE carloop FOCEXEC *
(FOC003) THE FIELDNAME IS NOT RECOGNIZED: RDDT1
BYPASSING TO END OF COMMAND


Anyone have any suggestions?

Thanks,

Tom

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


Tomsweb
WebFOCUS 8.1.05M, 8.2.x
APP Studio, Developer Studio, InfoAssist, Dashboards, charts & reports
Apache Tomcat/8.0.36
April 16, 2013, 05:53 PM
Waz
Turn ECHO on and rerun to see what is happening.

-SET &ECHO=ALL;


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!

April 16, 2013, 11:01 PM
FrankDutch
Your database XYZALL does it have real fields ?
If so, you need to connect your defined field to one of these fields. Else this is not going to work.
Try to use CAR instead.




Frank

prod: WF 7.6.10 platform Windows,
databases: msSQL2000, msSQL2005, RMS, Oracle, Sybase,IE7
test: WF 7.6.10 on the same platform and databases,IE7

April 17, 2013, 04:03 AM
Alan B
quote:
DEFINE FILE XYZALL
RDDT1/&FMT.EVAL = &TARDX.EVAL;
END


Please try:
DEFINE FILE XYZALL
RDDT1/&FMT = '&TARDX';
END
or
DEFINE FILE XYZALL
RDDT1/&FMT = &TARDX.QUOTEDSTRING;
END


The issue is that &TARDX is not within single quotes and will be treated as a field name. Within quotes it becomes a variable.

The EVAL is only required under a few circumstances within Dialogue Manager. Mostly it is over used.

As an aside, use NOCLOSE on your -READ otherwise you will re-read the first record; the -RUN in the REPEAT loop closes the file XYZALL.


Alan.
WF 7.705/8.007
April 17, 2013, 04:53 PM
Tomsweb
I tried this and it worked.

DEFINE FILE XYZALL
RDDT1/&FMT = &TARDX.QUOTEDSTRING;
END

Thanks!


Tomsweb
WebFOCUS 8.1.05M, 8.2.x
APP Studio, Developer Studio, InfoAssist, Dashboards, charts & reports
Apache Tomcat/8.0.36