Focal Point
[CLOSED]Variable Length

This topic can be found at:
https://forums.informationbuilders.com/eve/forums/a/tpc/f/7971057331/m/6367062086

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>,


WebFocus 8, OS: iSeries
January 13, 2016, 04:41 PM
Tomsweb
quote:
&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.


Tomsweb
WebFOCUS 8.1.05M, 8.2.x
APP Studio, Developer Studio, InfoAssist, Dashboards, charts & reports
Apache Tomcat/8.0.36
January 13, 2016, 04:45 PM
Waz
-? & can also truncate the output of the amper variable.

Try -? & SAVE {filename}, and check it out


Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!

January 14, 2016, 07:46 AM
George Patton
With 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.


WebFOCUS 7.7.05 Windows, Linux, DB2, IBM Lotus Notes, Firebird, Lotus Symphony/OpenOffice. Outputs PDF, Excel 2007 (for OpenOffice integration), WP
January 14, 2016, 08:50 AM
BabakNYC
A 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.


WebFOCUS 8206, Unix, Windows
January 14, 2016, 09:43 AM
TexasStingray
Why not just us the -TYPE &WHERE_C after your -SET statement.




Scott