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 16: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 |