As of December 1, 2020, Focal Point is retired and repurposed as a reference repository. We value the wealth of knowledge that's been shared here over the years. You'll continue to have access to this treasure trove of knowledge, for search purposes only. Moving forward, myibi is our community platform to learn, share, and collaborate. We have the same Focal Point forum categories in myibi, so you can continue to have all new conversations there. If you need access to myibi, contact us at firstname.lastname@example.org and provide your corporate email address, company, and name.
Connect to myibi
posted November 23, 2020 01:03 PM
I have searched the forum quite a bit, but I have not found a specific example close to what I need.
In my code below, I need to be able to add the percentage sign for alpha_rate_f when there is a value. If the calculation results in a hyphen, I'll leave it as a hyphen.
I've considered different methods. Is concatenation the best and simplest?
TABLE FILE FINDATA
AND COMPUTE COSTS2/A99=STRREP(100,COSTS,1,',',0,'X',99,COSTS2);
COMPUTE COSTS3/D12=ATODBL(COSTS2, '99', COSTS3);
COMPUTE COSTS4/D12=IF DEPT_SORT EQ '9' AND COSTS3 LT '5' THEN '0' ELSE COSTS3;
AND COMPUTE SALES2/A99=STRREP(100,SALES,1,',',0,'X',99,SALES2);
COMPUTE SALES3/D12=ATODBL(SALES2, '99', SALES3);
COMPUTE SALES4/D12=IF DEPT_SORT EQ '9' AND SALES3 LT '5' THEN '0' ELSE IF DEPT_SORT NE '9' THEN SALES3 ELSE SALES3;
COMPUTE RATE/D12% MISSING ON=IF SALES4 GT 0 AND COSTS4 GT 0 THEN SALES4/COSTS4 *100 ELSE MISSING;
COMPUTE ALPHA_COSTS/A15 = FTOA(COSTS4, '(D12)', ALPHA_COSTS);
COMPUTE ALPHA_COSTS_F/A15=IF COSTS4 EQ '0' THEN '^' ELSE ALPHA_COSTS;
COMPUTE ALPHA_SALES/A15 = FTOA(SALES4, '(D12)', ALPHA_SALES);
COMPUTE ALPHA_SALES_F/A15=IF SALES4 EQ '0' THEN '^' ELSE ALPHA_SALES;
COMPUTE ALPHA_RATE/A15 = FTOA(RATE, '(D12)', ALPHA_RATE);
COMPUTE ALPHA_RATE_F/A15=IF RATE EQ '0' THEN '-' ELSE ALPHA_RATE;
HOLD AS FINRPT
This message has been edited. Last edited by: JulieA, November 23, 2020 02:05 PM WebFocus 8.2.04 WebFocus 8.2.04
posted November 23, 2020 01:09 PM
Since your result is an alpha, not a lot of choices
COMPUTE ALPHA_RATE_F/A16V=IF RATE EQ '0' THEN '-' ELSE ALPHA_RATE || '%';
WF versions : Prod 8.2.04M gen 33, Dev 8.2.04M gen 33, OS : Windows, DB : MSSQL, Outputs : HTML, Excel, PDF In Focus since 2007
Posts: | Location: 2410 Montreal Area, Qc, CA | Registered: September 25, 2013
posted November 23, 2020 02:05 PM
That is exactly what I needed!
WebFocus 8.2.04 WebFocus 8.2.04
posted November 24, 2020 03:43 PM
You could always have used FPRINT, check it out in the function documentation
Prod: WebFOCUS 7.6.10/8.1.04 Upgrade: WebFOCUS 8.2.07 OS: Linux Outputs: HTML, PDF, Excel, PPT In Focus since 1984 Pity the lost knowledge of an old programmer!
Posts: | Location: 6349 33°49'23.0"S, 151°11'41.0"E | Registered: October 31, 2006
posted November 24, 2020 04:17 PM COMPUTE ALPHA_RATE_FPRINT/A16V=IF RATE EQ 0 THEN '-' ELSE FPRINT(RATE,'D12%','A16V'); WebFocus 8.201M, Windows, App Studio
Posts: | Location: 227 Lincoln Nebraska | Registered: August 12, 2008 Read-Only Topic
Copyright © 1996-2020 Information Builders