Focal Point
[SOLVED] CONVERTING -READ VARIABLE TO DECIMAL FORMAT

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

March 30, 2018, 10:20 AM
Starr
[SOLVED] CONVERTING -READ VARIABLE TO DECIMAL FORMAT
I am using a -READ. I'm reading a value of '11,334', when I display the read &Variable in my footer the comma is not being read '11334' appears. How can I convert this &Variable to include the comma. I don't see any functions in the manual that cover this. I did find an 'ATODBL' function, but it is not a Dialogue Manager function. Anyone have any suggestions? Thanks!

This message has been edited. Last edited by: Starr,


WebFOCUS 8206
Exl2k
March 30, 2018, 11:43 AM
Tom Flynn
Nope, DIY:

  
-SET &TEST_LEN  = ARGLEN(9, '&VARIABLE.EVAL', I3);
-SET &TEST_VAL  = IF &TEST_LEN LE 3 THEN &&VARIABLE ELSE
-                 IF &TEST_LEN FROM 4 TO 6 THEN EDIT(&VARIABLE,'999,999')
-                  ELSE EDIT(&VARIABLE,'999,999,999');

This message has been edited. Last edited by: Tom Flynn,


Tom Flynn
WebFOCUS 8.1.05 - PROD/QA
DB2 - AS400 - Mainframe
March 30, 2018, 12:18 PM
Don Garland
Nice but here is a little more context on the idea.

-SET &VARIABLE = 222111000;


-SET &TEST_LEN = ARGLEN(9, '&VARIABLE.EVAL', I3);
-SET &TEST_VAL = IF &TEST_LEN LE 3 THEN &VARIABLE
- ELSE IF &TEST_LEN EQ 4 THEN EDIT(&VARIABLE,'9,999')
- ELSE IF &TEST_LEN EQ 5 THEN EDIT(&VARIABLE,'99,999')
- ELSE IF &TEST_LEN EQ 6 THEN EDIT(&VARIABLE,'999,999')
- ELSE IF &TEST_LEN EQ 7 THEN EDIT(&VARIABLE,'9,999,999')
- ELSE IF &TEST_LEN EQ 8 THEN EDIT(&VARIABLE,'99,999,999')
- ELSE IF &TEST_LEN EQ 9 THEN EDIT(&VARIABLE,'999,999,999')
- ELSE EDIT(&VARIABLE,'999,999,999');

-SET &VARIABLE = '$'| &TEST_VAL;

-TYPE &VARIABLE


WebFOCUS Administrator @ Worldpay FIS
PROD/DEV/TEST: 8204, SANDBOX: 8206 soon - BIP, Reportcaster, Resource Manager, EUM, HyperStage soon, DB: HIVE,Oracle,MSSQL
March 30, 2018, 12:26 PM
Tom Flynn
Yep, Don is correct, My bad! Fixed the bad code too(the & name, left the rest)...


Tom Flynn
WebFOCUS 8.1.05 - PROD/QA
DB2 - AS400 - Mainframe
March 30, 2018, 12:48 PM
Don Garland
Hey, it takes a village Smiler


WebFOCUS Administrator @ Worldpay FIS
PROD/DEV/TEST: 8204, SANDBOX: 8206 soon - BIP, Reportcaster, Resource Manager, EUM, HyperStage soon, DB: HIVE,Oracle,MSSQL
March 30, 2018, 02:25 PM
Starr
Thank you guys so much, You all are the best. It does take a village. Don I had to add a trim function but I got it working. See Below:


-SET &TRMCASE = TRIM('L', '&VARIABLE.EVAL', 11, ' ', 11, 'A9');
-SET &TEST_LEN = ARGLEN(9, '&TRMCASE.EVAL', I3);
-SET &TEST_VAL = IF &TEST_LEN LE 3 THEN &TRMCASE
- ELSE IF &TEST_LEN EQ 4 THEN EDIT(&TRMCASE,'9,999')
- ELSE IF &TEST_LEN EQ 5 THEN EDIT(&TRMCASE,'99,999')
- ELSE IF &TEST_LEN EQ 6 THEN EDIT(&TRMCASE,'999,999')
- ELSE IF &TEST_LEN EQ 7 THEN EDIT(&TRMCASE,'9,999,999')
- ELSE IF &TEST_LEN EQ 8 THEN EDIT(&TRMCASE,'99,999,999')
- ELSE IF &TEST_LEN EQ 9 THEN EDIT(&TRMCASE,'999,999,999')
- ELSE EDIT(&TRMCASE,'999,999,999');


WebFOCUS 8206
Exl2k
March 31, 2018, 03:36 PM
dbeagan
It looks like the FPRINT function does this:

-SET &Integer = ' 1234567' ;
-SET &Integer = FPRINT(&Integer, 'P12C', 'A15');
-TYPE Integer = &Integer


WebFOCUS 8.2.06