January 13, 2016, 04:37 PM
PrakashDT[CLOSED]Variable Length
Hi ,
I am trying to construct a & variable for one where clause and one one compute statement.
But when I do -? & it shows only part of the statement.
Please let know if there is some work around.
Best Regards,
Prakash
-DEFAULT &START_DATE = 0;
-DEFAULT &END_DATE =0;
-DEFAULT &SUBTOTBYEMP = 0;
-SET &START_DATE = IF &START_DATE EQ '' THEN _FOC_NULL ELSE &START_DATE;
-SET &END_DATE = IF &END_DATE EQ '' THEN _FOC_NULL ELSE &END_DATE;
-SET &SUBTOTBYEMP = IF &SUBTOTBYEMP EQ '' THEN ' ' ELSE 'ON EMPLOYEE_NUMBER SUBTOTAL AS EMPLOYEE';
-SET &SORTBY = IF &SUBTOTBYEMP EQ '' THEN ' ' ELSE 'BY EMPLOYEE_NUMBER NOPRINT';
-*-SET &TESTTYPE = IF &RP_FN01P_Detail1 CONTAINS CODE_TYPE THEN 'BY CODE_TYPE NOPRINT' ELSE '';
-*-SET &TESTCHECK = IF &RP_FN01P_Detail1 CONTAINS CODE_TYPE THEN 'BY CHECK_NUMBER NOPRINT' ELSE '';
-*-SET &DEMO_PAY_CD = IF &DEMO_PAY_CD EQ '_FOC_NULL' THEN '''000''' ELSE &DEMO_PAY_CD;
-*-SET &DEMO_DED_CD = IF &DEMO_DED_CD EQ '_FOC_NULL' THEN '''000''' ELSE &DEMO_DED_CD;
-SET &DEMO_WAGES = IF (&DEMO_PAY_CD EQ '_FOC_NULL') OR (&DEMO_DED_CD EQ '_FOC_NULL') THEN 'COMPUTE DEMO_WAGES/P11.2 =0' ELSE 'COMPUTE DEMO_WAGES/P11.2 = RETIREMENT.RETIREMENT.DEMO_PAY_AMOUNT - RETIREMENT.RETIREMENT.DEMO_DED_AMOUNT';
-SET &WHERE_C = IF (&DEMO_PAY_CD EQ '_FOC_NULL') OR (&DEMO_DED_CD EQ '_FOC_NULL') THEN 'WHERE ( RETIREMENT.RETIREMENT.COMPANY_NUMBER EQ &COMPANY_NUMBER.(OR(FIND COMPANY_NUMBER,RETIREMENT.RETIREMENT.COMPANY_NUMBER IN RETIREMENT)).Company. ) AND ( RETIREMENT.RETIREMENT.ACTIVE_CODE EQ &ACTIVE_CODE.(OR(FIND ACTIVE_CODE, RETIREMENT.RETIREMENT.ACTIVE_CODE IN RETIREMENT) ).Status. ) AND ( RETIREMENT.RETIREMENT.DEPARTMENT_CODE EQ &DEPARTMENT_CODE.(OR(FIND DEPARTMENT_CODE,RETIREMENT.RETIREMENT.DEPARTMENT_CODE IN RETIREMENT)).Department. ) AND ( RETIREMENT.RETIREMENT.CHECK_DATE GE '&START_DATE' ) AND ( RETIREMENT.RETIREMENT.CHECK_DATE LE '&END_DATE') AND ( RETIREMENT.RETIREMENT.LOAN_CODE_ID EQ &LOAN_CODE_ID.(OR(FIND LOAN_CODE_ID,RETIREMENT.RETIREMENT.LOAN_CODE_ID IN RETIREMENT)).LOAN_CODE_ID.)' ELSE 'WHERE ( RETIREMENT.RETIREMENT.COMPANY_NUMBER EQ &COMPANY_NUMBER.(OR(FIND COMPANY_NUMBER,RETIREMENT.RETIREMENT.COMPANY_NUMBER IN RETIREMENT)).Company. ) AND ( RETIREMENT.RETIREMENT.ACTIVE_CODE EQ &ACTIVE_CODE.(OR(FIND ACTIVE_CODE, RETIREMENT.RETIREMENT.ACTIVE_CODE IN RETIREMENT) ).Status. ) AND ( RETIREMENT.RETIREMENT.DEPARTMENT_CODE EQ &DEPARTMENT_CODE.(OR(FIND DEPARTMENT_CODE,RETIREMENT.RETIREMENT.DEPARTMENT_CODE IN RETIREMENT)).Department. ) AND ( RETIREMENT.RETIREMENT.CHECK_DATE GE '&START_DATE' ) AND ( RETIREMENT.RETIREMENT.CHECK_DATE LE '&END_DATE') AND ( RETIREMENT.RETIREMENT.LOAN_CODE_ID EQ &LOAN_CODE_ID.(OR(FIND LOAN_CODE_ID,RETIREMENT.RETIREMENT.LOAN_CODE_ID IN RETIREMENT)).LOAN_CODE_ID.) AND ( RETIREMENT.RETIREMENT.DEMO_PAY_CD EQ &DEMO_PAY_CD.(OR(FIND DEMO_PAY_CD,RETIREMENT.RETIREMENT.DEMO_PAY_CD IN RETIREMENT)).DEMO_PAY_CD. ) AND ( RETIREMENT.RETIREMENT.DEMO_DED_CD EQ &DEMO_DED_CD.(OR(FIND DEMO_DED_CD,RETIREMENT.RETIREMENT.DEMO_DED_CD IN RETIREMENT)).DEMO_DED_CD. )'
-? &
-EXIT
This message has been edited. Last edited by: <Emily McAllister>, January 13, 2016, 04:41 PM
Tomswebquote:
&ACTIVE_CODE.(OR(FIND ACTIVE_CODE, RETIREMENT.RETIREMENT.ACTIVE_CODE IN RETIREMENT) ).Status. ) AND
There are a few different ways to code a complex IF or OR than the way you it is coded here. I suggest you research a less complicated
method.
January 13, 2016, 04:45 PM
Waz-? & can also truncate the output of the amper variable.
Try -? & SAVE {filename}, and check it out
January 14, 2016, 07:46 AM
George PattonWith respect, if you want people to take time out of their busy schedules and analyse your code you should:
a) Remove the fully-qualified field names and just leave the name of the field so
DEMO_WAGES/P11.2 = RETIREMENT.RETIREMENT.DEMO_PAY_AMOUNT - RETIREMENT.RETIREMENT.DEMO_DED_AMOUNT';
becomes
DEMO_WAGES/P11.2 = DEMO_PAY_AMOUNT - DEMO_DED_AMOUNT';
and
b) Space out the code so it becomes readable.
January 14, 2016, 08:50 AM
BabakNYCA very helpful diagnostic tool is to add:
-SET &ECHO=ALL;
to the beginning of the code so the resolved variables are displayed when you View Source.
You can find out the length of any &variable using .LENGTH suffix. At the end of the code, add:
-TYPE &WHERE_C.LENGTH;
When you run your fex the code will display with all the substitutions which will help you narrow down where the problem is.
January 14, 2016, 09:43 AM
TexasStingrayWhy not just us the -TYPE &WHERE_C after your -SET statement.