Focal Point
[SOLVED]PERCENTAGE SIGN WITH ALPHA FIELD

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

November 23, 2020, 01:03 PM
JulieA
[SOLVED]PERCENTAGE SIGN WITH ALPHA FIELD
Hello everyone.

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
PRINT STORE
DEPT_SORT
DEPT_DESC
COSTS
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;
SALES
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
END
-RUN
-*-EXIT
 

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


WebFocus 8.2.04
WebFocus 8.2.04

November 23, 2020, 01:09 PM
MartinY
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
November 23, 2020, 02:05 PM
JulieA
Thank you.

That is exactly what I needed!


WebFocus 8.2.04
WebFocus 8.2.04

November 24, 2020, 03:43 PM
Waz
FYI,

You could always have used FPRINT, check it out in the function documentation


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!

November 24, 2020, 04:17 PM
jfr99
COMPUTE ALPHA_RATE_FPRINT/A16V=IF RATE EQ 0 THEN '-' ELSE FPRINT(RATE,'D12%','A16V');



WebFocus 8.201M, Windows, App Studio
November 24, 2020, 04:25 PM
Waz
I would also suggest, depending on the use, to add LTRIM() around the FPRINT, to remove the leading spaces.


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!