[Search for users]
[Overall Top Noters]
[List of all Conferences]
[Download this site]
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 |
536.0. "error 246: computational statement ..." by MLCADG::FERRARIF (Fabio Ferrari) Tue Nov 10 1992 11:41
Hi People,
We are writing a procedure to compute a lot of percentages and
discounts, and we are getting a strange error we are not able to solve.
The error is :
(FOC246) COMPUTATIONAL STATEMENT REFERS TO MORE THEN ONE DATA PATH
Follows a brief description of the calculation and of the files,
and the source code we are working on.
Thanx in advance for any help.
Fabio/Barbara (7793-2564)
MLNAD0::ferrarif
We are working with the following two files:
LO_KI_SP (FILE_A)
this file is divided into three segments, referring to
relations of a RDB (The .MAS was generated via AUTORDB, and
appended with a few modifications)
+------------+ +------------+ +------------+
| top level +------>| med level +----->| low level |
+------------+ +------------+ +------------+
EN_MA (FILE_B)
a single segment file, from the same RDB (Still used AUTORDB)
The detail of the calculation is :
Value_1 :from low_level, computed to divide by 100
perc_1 ... to perc_5: from med_level, computed to divide by 100
percm_1 ... to percm_5: from file_b, computed to divide by 100
Value_2 = value_1 + ((value_1 * perc_1) +
(value_1 * perc_2) +
(value_1 * perc_3) +
(value_1 * perc_4) +
(value_1 * perc_5))
This is repeted 5 times, depending on priority.
Value_3 = Value_2 + ((value_2 * percm_1) +
(value_2 * percm_2) +
(value_2 * percm_3) +
(value_2 * percm_4) +
(value_2 * percm_5))
This is repeted 5 times, depending on priority.
Here is the code.
-***************************************
-*
-* fields with prefix CO_ are coming from top level in file_a
-* fields with prefix KI_ are coming from med level in file_a
-* fields with prefix SP_ are coming from low level in file_a
-*
-* fields with prefix MA_ are coming from file_b
-*
-***************************************
-* Data Extraction
-***************************************
-*
SET HOLDDEFAULT = ALPHA
SET ALL = PASS
-*
JOIN LO_SYS_ID IN LO_KI_SP TO ALL MA_LO_SYS_ID IN EN_MA AS JF1
-RUN
-*
DEFINE FILE LO_KI_SP
-* S
FIX_1A/A13=EDIT (SP_AFTER_ADJ,'$9999999999999');
FIX_A1/D14.2=EDIT (FIX_1A);
SIGN_1/A1=EDIT (SP_AFTER_ADJ,'9$$$$$$$$$$$$$');
SP_ADJ_AFT/D14.2=IF SIGN_1 EQ '-' THEN (FIX_A1 /-100) ELSE (FIX_A1 /100);
-*
KI_PR_1/I2= EDIT (KI_CALC_PR_1);
KI_PR_2/I2= EDIT (KI_CALC_PR_2);
KI_PR_3/I2= EDIT (KI_CALC_PR_3);
KI_PR_4/I2= EDIT (KI_CALC_PR_4);
KI_PR_5/I2= EDIT (KI_CALC_PR_5);
-*
MA_PR_1/I2= EDIT (MA_CALC_PR_1);
MA_PR_2/I2= EDIT (MA_CALC_PR_2);
MA_PR_3/I2= EDIT (MA_CALC_PR_3);
MA_PR_4/I2= EDIT (MA_CALC_PR_4);
MA_PR_5/I2= EDIT (MA_CALC_PR_5);
-*
K_PERC_1/A5=EDIT (KI_PERC_1,'$99999');
KI_PER_1/P5=EDIT (K_PERC_1);
KI_PER_SEG_1/A1=EDIT (KI_PERC_1,'9$$$$');
KI_PER_NUM_1/D6.4=IF KI_PER_SEG_1 EQ '-' THEN (KI_PER_1 / -10000) ELSE
IF KI_PER_SEG_1 EQ '+' THEN (KI_PER_1 / 10000) ELSE
(KI_PER_1 * 0);
K_PERC_2/A5=EDIT (KI_PERC_2,'$99999');
KI_PER_2/P5=EDIT (K_PERC_2);
KI_PER_SEG_2/A1=EDIT (KI_PERC_2,'9$$$$');
KI_PER_NUM_2/D6.4=IF KI_PER_SEG_2 EQ '-' THEN (KI_PER_2 / -10000) ELSE
IF KI_PER_SEG_2 EQ '+' THEN (KI_PER_2 / 10000) ELSE
(KI_PER_2 * 0);
K_PERC_3/A5=EDIT (KI_PERC_3,'$99999');
KI_PER_3/P5=EDIT (K_PERC_3);
KI_PER_SEG_3/A1=EDIT (KI_PERC_3,'9$$$$');
KI_PER_NUM_3/D6.4=IF KI_PER_SEG_3 EQ '-' THEN (KI_PER_3 / -10000) ELSE
IF KI_PER_SEG_3 EQ '+' THEN (KI_PER_3 / 10000) ELSE
(KI_PER_3 * 0);
K_PERC_4/A5=EDIT (KI_PERC_4,'$99999');
KI_PER_4/P5=EDIT (K_PERC_4);
KI_PER_SEG_4/A1=EDIT (KI_PERC_4,'9$$$$');
KI_PER_NUM_4/D6.4=IF KI_PER_SEG_4 EQ '-' THEN (KI_PER_4 / -10000) ELSE
IF KI_PER_SEG_4 EQ '+' THEN (KI_PER_4 / 10000) ELSE
(KI_PER_4 * 0);
K_PERC_5/A5=EDIT (KI_PERC_5,'$99999');
KI_PER_5/P5=EDIT (K_PERC_5);
KI_PER_SEG_5/A1=EDIT (KI_PERC_5,'9$$$$');
KI_PER_NUM_5/D6.4=IF KI_PER_SEG_5 EQ '-' THEN (KI_PER_5 / -10000) ELSE
IF KI_PER_SEG_5 EQ '+' THEN (KI_PER_5 / 10000) ELSE
(KI_PER_5 * 0);
-*
KI_DEL_FLAG/I1=IF KI_DELETE_FL IS 'D' THEN 0 ELSE
IF KI_DELETE_FL IS 'H' THEN 0 ELSE 1;
SP_DEL_FLAG/I1=IF SP_DELETE_FL IS 'D' THEN 0 ELSE
IF SP_DELETE_FL IS 'H' THEN 0 ELSE 1;
-*
M_PERC_1/A5=EDIT (MA_PERC_1,'$99999');
MA_PER_1/P5=EDIT (M_PERC_1);
MA_PER_SEG_1/A1=EDIT (MA_PERC_1,'9$$$$');
MA_PER_NUM_1/D6.4=IF MA_PER_SEG_1 EQ '-' THEN (MA_PER_1 / -10000) ELSE
IF MA_PER_SEG_1 EQ '+' THEN (MA_PER_1 / 10000) ELSE
(MA_PER_1 * 0);
-*
M_PERC_2/A5=EDIT (MA_PERC_2,'$99999');
MA_PER_2/P5=EDIT (M_PERC_2);
MA_PER_SEG_2/A1=EDIT (MA_PERC_2,'9$$$$');
MA_PER_NUM_2/D6.4=IF MA_PER_SEG_2 EQ '-' THEN (MA_PER_2 / -10000) ELSE
IF MA_PER_SEG_2 EQ '+' THEN (MA_PER_2 / 10000) ELSE
(MA_PER_2 * 0);
-*
M_PERC_3/A5=EDIT (MA_PERC_3,'$99999');
MA_PER_3/P5=EDIT (M_PERC_3);
MA_PER_SEG_3/A1=EDIT (MA_PERC_3,'9$$$$');
MA_PER_NUM_3/D6.4=IF MA_PER_SEG_3 EQ '-' THEN (MA_PER_3 / -10000) ELSE
IF MA_PER_SEG_3 EQ '+' THEN (MA_PER_3 / 10000) ELSE
(MA_PER_3 * 0);
-*
M_PERC_4/A5=EDIT (MA_PERC_4,'$99999');
MA_PER_4/P5=EDIT (M_PERC_4);
MA_PER_SEG_4/A1=EDIT (MA_PERC_4,'9$$$$');
MA_PER_NUM_4/D6.4=IF MA_PER_SEG_4 EQ '-' THEN (MA_PER_4 / -10000) ELSE
IF MA_PER_SEG_4 EQ '+' THEN (MA_PER_4 / 10000) ELSE
(MA_PER_4 * 0);
-*
M_PERC_5/A5=EDIT (MA_PERC_5,'$99999');
MA_PER_5/P5=EDIT (M_PERC_5);
MA_PER_SEG_5/A1=EDIT (MA_PERC_5,'9$$$$');
MA_PER_NUM_5/D6.4=IF MA_PER_SEG_5 EQ '-' THEN (MA_PER_5 / -10000) ELSE
IF MA_PER_SEG_5 EQ '+' THEN (MA_PER_5 / 10000) ELSE
(MA_PER_5 * 0);
-*
-* *********************************
-*
CALC_FI_1/D14.5=IF KI_PR_1 EQ 1 THEN KI_PER_NUM_1 ELSE 0;
CALC_FI_2/D14.5=IF KI_PR_2 EQ 1 THEN KI_PER_NUM_2 ELSE 0;
CALC_FI_3/D14.5=IF KI_PR_3 EQ 1 THEN KI_PER_NUM_3 ELSE 0;
CALC_FI_4/D14.5=IF KI_PR_4 EQ 1 THEN KI_PER_NUM_4 ELSE 0;
CALC_FI_5/D14.5=IF KI_PR_5 EQ 1 THEN KI_PER_NUM_5 ELSE 0;
-*
SC_1/D14.5=(SP_ADJ_AFT * CALC_FI_1) +
(SP_ADJ_AFT * CALC_FI_2) +
(SP_ADJ_AFT * CALC_FI_3) +
(SP_ADJ_AFT * CALC_FI_4) +
(SP_ADJ_AFT * CALC_FI_5);
-*
NET_1/D14.2=(SP_ADJ_AFT + SC_1);
-*
CALC_FI_1/D14.5=IF KI_PR_1 EQ 2 THEN KI_PER_NUM_1 ELSE 0;
CALC_FI_2/D14.5=IF KI_PR_2 EQ 2 THEN KI_PER_NUM_2 ELSE 0;
CALC_FI_3/D14.5=IF KI_PR_3 EQ 2 THEN KI_PER_NUM_3 ELSE 0;
CALC_FI_4/D14.5=IF KI_PR_4 EQ 2 THEN KI_PER_NUM_4 ELSE 0;
CALC_FI_5/D14.5=IF KI_PR_5 EQ 2 THEN KI_PER_NUM_5 ELSE 0;
SC_2/D14.5=(NET_1 * CALC_FI_1) +
(NET_1 * CALC_FI_2) +
(NET_1 * CALC_FI_3) +
(NET_1 * CALC_FI_4) +
(NET_1 * CALC_FI_5);
NET_2/D14.2=(NET_1 + SC_2);
-*
CALC_FI_1/D14.5=IF KI_PR_1 EQ 3 THEN KI_PER_NUM_1 ELSE 0;
CALC_FI_2/D14.5=IF KI_PR_2 EQ 3 THEN KI_PER_NUM_2 ELSE 0;
CALC_FI_3/D14.5=IF KI_PR_3 EQ 3 THEN KI_PER_NUM_3 ELSE 0;
CALC_FI_4/D14.5=IF KI_PR_4 EQ 3 THEN KI_PER_NUM_4 ELSE 0;
CALC_FI_5/D14.5=IF KI_PR_5 EQ 3 THEN KI_PER_NUM_5 ELSE 0;
-*
SC_3/D14.5=(NET_2 * CALC_FI_1) +
(NET_2 * CALC_FI_2) +
(NET_2 * CALC_FI_3) +
(NET_2 * CALC_FI_4) +
(NET_2 * CALC_FI_5);
-*
NET_3/D14.2=(NET_2 + SC_3);
-*
CALC_FI_1/D14.5=IF KI_PR_1 EQ 4 THEN KI_PER_NUM_1 ELSE 0;
CALC_FI_2/D14.5=IF KI_PR_2 EQ 4 THEN KI_PER_NUM_2 ELSE 0;
CALC_FI_3/D14.5=IF KI_PR_3 EQ 4 THEN KI_PER_NUM_3 ELSE 0;
CALC_FI_4/D14.5=IF KI_PR_4 EQ 4 THEN KI_PER_NUM_4 ELSE 0;
CALC_FI_5/D14.5=IF KI_PR_5 EQ 4 THEN KI_PER_NUM_5 ELSE 0;
-*
SC_4/D14.5=(NET_3 * CALC_FI_1) +
(NET_3 * CALC_FI_2) +
(NET_3 * CALC_FI_3) +
(NET_3 * CALC_FI_4) +
(NET_3 * CALC_FI_5);
-*
NET_4/D14.2=(NET_3 + SC_4);
-*
CALC_FI_1/D14.5=IF KI_PR_1 EQ 5 THEN KI_PER_NUM_1 ELSE 0;
CALC_FI_2/D14.5=IF KI_PR_2 EQ 5 THEN KI_PER_NUM_2 ELSE 0;
CALC_FI_3/D14.5=IF KI_PR_3 EQ 5 THEN KI_PER_NUM_3 ELSE 0;
CALC_FI_4/D14.5=IF KI_PR_4 EQ 5 THEN KI_PER_NUM_4 ELSE 0;
CALC_FI_5/D14.5=IF KI_PR_5 EQ 5 THEN KI_PER_NUM_5 ELSE 0;
-*
SC_5/D14.5=(NET_4 * CALC_FI_1) +
(NET_4 * CALC_FI_2) +
(NET_4 * CALC_FI_3) +
(NET_4 * CALC_FI_4) +
(NET_4 * CALC_FI_5);
-*
-* *********************************
SP_KI_DISC/D14.2=(NET_4 + SC_5);
-* *********************************
-*
MA_CA_FI_1/D14.5=IF MA_PR_1 EQ 1 THEN MA_PER_NUM_1 ELSE 0;
MA_CA_FI_2/D14.5=IF MA_PR_2 EQ 1 THEN MA_PER_NUM_2 ELSE 0;
MA_CA_FI_3/D14.5=IF MA_PR_3 EQ 1 THEN MA_PER_NUM_3 ELSE 0;
MA_CA_FI_4/D14.5=IF MA_PR_4 EQ 1 THEN MA_PER_NUM_4 ELSE 0;
MA_CA_FI_5/D14.5=IF MA_PR_5 EQ 1 THEN MA_PER_NUM_5 ELSE 0;
-*
MSC_1/D14.5 = (SP_KI_DISC * MA_CA_FI_1) +
(SP_KI_DISC * MA_CA_FI_2) +
(SP_KI_DISC * MA_CA_FI_3) +
(SP_KI_DISC * MA_CA_FI_4) +
(SP_KI_DISC * MA_CA_FI_5);
-*
MNET_1/D14.2=(SP_KI_DISC + MSC_1);
-*
MA_CA_FI_1/D14.5=IF MA_PR_1 EQ 2 THEN MA_PER_NUM_1 ELSE 0;
MA_CA_FI_2/D14.5=IF MA_PR_2 EQ 2 THEN MA_PER_NUM_2 ELSE 0;
MA_CA_FI_3/D14.5=IF MA_PR_3 EQ 2 THEN MA_PER_NUM_3 ELSE 0;
MA_CA_FI_4/D14.5=IF MA_PR_4 EQ 2 THEN MA_PER_NUM_4 ELSE 0;
MA_CA_FI_5/D14.5=IF MA_PR_5 EQ 2 THEN MA_PER_NUM_5 ELSE 0;
MSC_2/D14.5 = (MNET_1 * MA_CA_FI_1) +
(MNET_1 * MA_CA_FI_2) +
(MNET_1 * MA_CA_FI_3) +
(MNET_1 * MA_CA_FI_4) +
(MNET_1 * MA_CA_FI_5);
MNET_2/D14.2=(MNET_1 + MSC_2);
-*
MA_CA_FI_1/D14.5=IF MA_PR_1 EQ 3 THEN MA_PER_NUM_1 ELSE 0;
MA_CA_FI_2/D14.5=IF MA_PR_2 EQ 3 THEN MA_PER_NUM_2 ELSE 0;
MA_CA_FI_3/D14.5=IF MA_PR_3 EQ 3 THEN MA_PER_NUM_3 ELSE 0;
MA_CA_FI_4/D14.5=IF MA_PR_4 EQ 3 THEN MA_PER_NUM_4 ELSE 0;
MA_CA_FI_5/D14.5=IF MA_PR_5 EQ 3 THEN MA_PER_NUM_5 ELSE 0;
MSC_3/D14.5 = (MNET_2 * MA_CA_FI_1) +
(MNET_2 * MA_CA_FI_2) +
(MNET_2 * MA_CA_FI_3) +
(MNET_2 * MA_CA_FI_4) +
(MNET_2 * MA_CA_FI_5);
MNET_3/D14.2=(MNET_2 + MSC_3);
-*
MA_CA_FI_1/D14.5=IF MA_PR_1 EQ 4 THEN MA_PER_NUM_1 ELSE 0;
MA_CA_FI_2/D14.5=IF MA_PR_2 EQ 4 THEN MA_PER_NUM_2 ELSE 0;
MA_CA_FI_3/D14.5=IF MA_PR_3 EQ 4 THEN MA_PER_NUM_3 ELSE 0;
MA_CA_FI_4/D14.5=IF MA_PR_4 EQ 4 THEN MA_PER_NUM_4 ELSE 0;
MA_CA_FI_5/D14.5=IF MA_PR_5 EQ 4 THEN MA_PER_NUM_5 ELSE 0;
MSC_4/D14.5 = (MNET_3 * MA_CA_FI_1) +
(MNET_3 * MA_CA_FI_2) +
(MNET_3 * MA_CA_FI_3) +
(MNET_3 * MA_CA_FI_4) +
(MNET_3 * MA_CA_FI_5);
MNET_4/D14.2=(MNET_3 + MSC_4);
-*
MA_CA_FI_1/D14.5=IF MA_PR_1 EQ 5 THEN MA_PER_NUM_1 ELSE 0;
MA_CA_FI_2/D14.5=IF MA_PR_2 EQ 5 THEN MA_PER_NUM_2 ELSE 0;
MA_CA_FI_3/D14.5=IF MA_PR_3 EQ 5 THEN MA_PER_NUM_3 ELSE 0;
MA_CA_FI_4/D14.5=IF MA_PR_4 EQ 5 THEN MA_PER_NUM_4 ELSE 0;
MA_CA_FI_5/D14.5=IF MA_PR_5 EQ 5 THEN MA_PER_NUM_5 ELSE 0;
MSC_5/D14.5 = (MNET_4 * MA_CA_FI_1) +
(MNET_4 * MA_CA_FI_2) +
(MNET_4 * MA_CA_FI_3) +
(MNET_4 * MA_CA_FI_4) +
(MNET_4 * MA_CA_FI_5);
-*
-* *****************************************************************************
SP_ALL_DISC/D14.2=(MNET_4 + MSC_5);
-* *****************************************************************************
-*
END
-*
-RUN
TABLE FILE LO_KI_SP
PRINT ...
ON TABLE HOLD ...
END
-RUN
T.R | Title | User | Personal Name | Date | Lines |
---|
536.1 | CHECK FILE filename PICTURE | SU2PLY::MADDEN | | Mon Nov 23 1992 14:50 | 2 |
| do a 'check file picture' of your join structure. All fields in the
calculation must be in a single top to bottom path.
|