| Title: | FOCUS, from INFORMATION BUILDERS |
| Moderator: | ZAYIUS::BROUILLETTE |
| Created: | Thu Feb 19 1987 |
| Last Modified: | Mon May 05 1997 |
| Last Successful Update: | Fri Jun 06 1997 |
| Number of topics: | 615 |
| Total number of notes: | 1779 |
FOCUS provides a facility which allows you to list search criteria in an
external file which can then be FILEDEF'd for access.
e.g.
FILEDEF SEARCH DISK SYS$LOGIN:SEARCH.DAT
TABLE FILE DATABASE
SUM value_field
IF fieldname IS (SEARCH)
END
This works fine. However if you try to use the same 'lookup' facility with
DEFINE FILE you discover that in order to make the statement acceptable to
FOCUS the 'lookup' table must be enclosed in single quotes else FOCUS fails
with syntax errors.
this fails:-
DEFINE FILE DATABASE
VAL = IF field1 IS (SEARCH) THEN amount_field ELSE 0;
END
TABLE FILE DATABASE
SUM VAL
END
The following works, syntacticaly, but produces no data. When you refer to
the defined field within the table request no values are found.
DEFINE FILE DATABASE
VAL = IF field1 IS '(SEARCH)' THEN amount_field ELSE 0;
END
TABLE FILE DATABASE
SUM VAL
END
Has anybody come across this problem ? Any suggestions for a 'fix' or an
alternative would be appreciated.
Gary.
| T.R | Title | User | Personal Name | Date | Lines |
|---|---|---|---|---|---|
| 399.1 | Use DECODE instead | SHIPS::CARSE_D | Thu Feb 28 1991 04:29 | 13 | |
As long as your search file contains just a list of valid values for
field1 then you can use a DECODE statement in your DEFINE expression:
DEFINE FILE DATABASE
VAL = IF DECODE field1( SEARCH ) THEN amount_field ELSE 0;
END
TABLE FILE DATABASE
SUM VAL
END
Hope this helps,
David
| |||||
| 399.2 | HAMSTR::IMFRA | Fri Mar 01 1991 00:10 | 19 | ||
Try this,
FILEDEF SEARCH DISK SEARCH.DAT
DEFINE FILE YOURFILE
VAL_ALPHA/A10 = DECODE AMT_FIELD(SEARCH ELSE 'Z');
VAL_AMT/P10 = EDIT(VAL_ALPHA);
END
TABLE FILE YOURFILE
SUM VAL_AMT
IF VAL_ALPHA NE 'Z'
END
| |||||