SAP Knowledge Base Article - Public

1885488 - Crystal Reports set to Turkish Language shows English in the formula function Towords()

Symptom

Crystal Reports set to Turkish shows English in the formula function Towords()

Environment

  • Crystal Reports 2011
  • Crystal Reports 2011 for Business One

Reproducing the Issue

Create a formula like:

towords(truncate(8900.89), 0) + " point " + towords(abs(100 * (truncate(8900.89)- 8900.89)), 0);

Results are in English:

eight thousand nine hundred point eighty-nine

Resolution

This issue has been tracked with the following ID: ADAPT01698839

This issue is scheduled to be addressed in the following Patches:

  • Crystal Reports 2011 Patch 6.4
  • Crystal Reports Developer for Visual Studio ( 2010/2012 ) Service Pack 7
  • Crystal Reports for Business One Support Pack ( full build Service Pack ) SP 2 should have the fix applied ( CR 2013 is still in ramp up mode )

Product has determined this is a limitation within the Towords function.

As a work around, and this is for any Language that converts to English, use the attached report as a sample.

The formula manually converts a number value into the coresponding Words.

The formula uses a Parameter to prompt for a value, this can be replaced with your field reference:

numbervar sample:={?Number};
stringvar array number0to9;
Redim number0to9[10];
number0to9:=split("0,1,2,3,4,5,6,7,8,9",",");

stringvar array text0to9;
Redim text0to9[10];
text0to9:=split("sıfır,bir,iki,üç,dört,beş,altı,yedi,sekiz,dokuz", ",");

stringvar array text10to90;
Redim text10to90[10];
text10to90:=split(" ,on,yirmi,otuz,kırk,elli,altmış,yetmiş,seksen,doksan",",");

stringvar array text000;
Redim text000[6];
text000:=split(" ,bin,milyon,milyar,trilyon,katrilyon",",");

numbervar i;
numbervar k;
numbervar n;
stringvar finalresult;


stringvar Textsample:=totext(sample,0,"*");
stringvar array triade:=split(textsample, "*");

for n:=1 to Ubound(triade) do
(
stringvar result1:="";
stringvar result10:="";
stringvar result100:="";
k:=Ubound(triade)+1-n;

for i:=1 to 10 do

if right(triade[k],1) = number0to9[i] then 
(if (length(triade[k])>1 and right(triade[k],1)="0") then result1:='' else result1:=text0to9[i]);

if length(triade[k])>1 then
for i:=1 to 10 do

if mid(triade[k], length(triade[k])-1,1) = number0to9[i] then  result10:=text10to90[i];


If length(triade[k])>2 then
for i:=1 to 10 do

if mid(triade[k], length(triade[k])-2,1) = number0to9[i] then
(if  number0to9[i] ="1" then result100:="yüz" else
 if  number0to9[i] ="0" then result100:="" else result100:=text0to9[i]+" yüz");

if (result100+result10+result1)="   " then finalresult:=finalresult else
finalresult:= result100 + " " + result10 + " " + result1 + " " + text000[n] + " " +finalresult ;
);

finalresult:=Replace(finalresult,"  "," ");

See Also

If this is a huge requirement for you please add your request to support this language to Idea Place:

https://ideas.sap.com/

Keywords

Crystal Reports 2011, Crystal Reports Developer for Visual Studio ( 2010/2012 ), Crystal Reports for Business One 2011, towords(), towords , KBA , BI-RA-CR , Crystal Reports designer or Business View Manager , Problem

Product

SAP Crystal Reports 2011 ; SAP Crystal Reports, developer version for Microsoft Visual Studio

Attachments

ToWordsTurkishWithoutDecimal.rpt