| 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 |
Can anyone help on the following, I am defining a field and trying
to update two fields in the 'then' portion of a defined if..then..else
statement. Below is the Fex. As you can see I tried several combinations
of it. Focus does not complain about any of these forms but, all fields
are blank or zero's.
I have put in spaces for clearity. What I am trying to get the
hold file to have in it is;
COMQTR FAMILY CATEGORY MODEL_NAM AGG_PART RA9X_UNT RA70_UNT
91Q4 6410 LGDISK RA9X SA650FA 4
91Q4 6410 LGDISK RA70 SA650FA 8
DEFINE FILE COMSOSL8 CLEAR
AD_UNT/D8 = UNITS;
R9X/A5 = 'RA9X ';
R70/A5 = 'RA70 ';
MODEL_NAM/A5 = ' ';
-*
RA9X_UNT/D8 = IF AGG_PART CONTAINS 'SA800CA' OR 'SA800CD'
OR 'SA600CA' OR 'SA600CD'
THEN (AD_UNT * 1) AND (MODEL_NAM EQ 'R9X')
ELSE IF AGG_PART CONTAINS 'SA800FA' OR 'SA800FD' OR 'SA850FA'
OR 'SA850FD' OR 'SA600FA' OR 'SA600FD' OR 'SA650FA' OR 'SA650FD'
OR 'RA90 FA' OR 'RA90 FD'
THEN((AD_UNT * 2) AND (MODEL_NAM EQ R9X))
ELSE IF AGG_PART CONTAINS 'SA800HA' OR 'SA800HD' OR 'SA850HA'
OR 'SA850HD' OR 'SA600HA' OR 'SA600HD' OR 'SA600HE' OR 'SA650HA'
OR 'SA650HD' OR 'SA650HE' OR 'RA90 HA' OR 'RA90 HD'
THEN(AD_UNT * 4 AND MODEL_NAM EQ R9X)
ELSE IF AGG_PART CONTAINS 'SA800GD' OR 'SA800GA' OR 'SA850JA' OR
'SA850JD'
OR 'SA650JA' OR 'SA650JD' OR 'SA650JE' OR 'RA90 JA' OR 'RA90 JD'
THEN AD_UNT * 6 AND MODEL_NAM EQ 'R9X'
ELSE IF AGG_PART CONTAINS 'SA800JA' OR 'SA800JD' OR 'SA600JA'
OR 'SA600JD' OR 'SA600JE'
THEN AD_UNT * 8 AND MODEL_NAM EQ R9X
ELSE IF AGG_PART CONTAINS 'SA850LA' OR 'SA850LD'
THEN AD_UNT * 12 AND MODEL_NAM EQ 'R9X'
ELSE IF AGG_PART CONTAINS 'SA800LA' OR 'SA800LD'
THEN AD_UNT * 16 AND MODEL_NAM EQ 'RA9X' ELSE AD_UNT * 0;
RA70_UNT/D8 = IF AGG_PART CONTAINS 'SA70 HK' OR 'SA70 LK'
THEN AD_UNT * 2 AND MODEL_NAM EQ R70
ELSE IF AGG_PART CONTAINS 'SA850FA' OR 'SA850FD' OR 'SA850HA'
OR 'SA850HD' OR 'SA650FD' OR 'SA650HA' OR 'SA650HD' OR 'SA650HE'
OR 'SA650FA' OR 'SA70 JK' OR 'SA70 MK' OR 'SA705HA' OR 'SA705HD'
THEN (AD_UNT * 4 AND MODEL_NAM EQ R70)
ELSE IF AGG_PART CONTAINS 'SA850JA' OR 'SA850JD' OR 'SA650JA'
OR 'SA650JD' OR 'SA650JE'
THEN (AD_UNT * 8 AND MODEL_NAM EQ R70)
ELSE IF AGG_PART CONTAINS 'SA850LA' OR 'SA850LD' OR 'SA705JA'
OR 'SA705JD'
THEN (AD_UNT * 16 AND MODEL_NAM EQ 'RA70') ELSE AD_UNT * 0;
END
-*
TABLE FILE COMSOSL8
PRINT MODEL_NAM RA9X_UNT RA70_UNT
BY COMQTR
BY FAMILY
BY CATEGORY
BY AGG_PART
IF COMQTR EQ 91Q4
IF FAMILY EQ 6410
IF CATEGORY EQ LGDISK
ON TABLE HOLD AS LGDSKADD
END
-RUN
| T.R | Title | User | Personal Name | Date | Lines |
|---|---|---|---|---|---|
| 418.1 | DEFINE 1 field at a time | HAMSTR::VOSS | Mon May 20 1991 15:06 | 14 | |
You can only update one field at a time in the DEFINE section of FOCUS.
And the field you are defining is the field that FOCUS will try to
update i.e. RA9X_UNT/D8 = IF AGG_PART CONTAINS 'SA800CA'
THEN AD_UNT * 1 ELSE 0;
MODEL_NAM/A5= IF AGG_PART CONTAINS 'SA800CA'
THEN 'R9X' ELSE ' ;
You can nest your IF statements 13 levels deep then you will have to
start over defining the field again with more IF statements if needed.
There is no limit that I know of to the number of OR values that can be
used.
I hope this helps.
Greg
| |||||