2012-06-14 15 views
6


私の水晶レポートにシリアル番号をローマ字(i、ii、iii、ivなど)で表示する必要があります。私はレコード番号(1,2,3,4 ...)として取得されたシリアル番号を持っています。だから私はクリスタルレポートでそれをしなければなりません。Crystal Reportsのシリアル番号をローマ字で表示

答えて

1

私は多くの信用を得ることができません。私は単にクリスタルにthis VB Helper articleからコードを移植し、それが楽しい運動だった:

NumberVar iCounter := 0; 
Local StringVar ch := ""; 
Local NumberVar result := 0; 
Local NumberVar new_value := 0; 
Local NumberVar old_value := 0; 
Local StringVar temp := ""; 

temp := UpperCase({[email protected]}); 

old_value = 1000; 

For iCounter := 1 To Len(temp) do 
(
    // See what the next character is worth. 
    ch := Mid(temp, iCounter, 1); 

    if ch = "I" then new_value := 1 
    else if ch = "V" then new_value := 5 
    else if ch = "X" then new_value := 10 
    else if ch = "L" then new_value := 50 
    else if ch = "C" then new_value := 100 
    else if ch = "D" then new_value := 500 
    else if ch = "M" then new_value := 1000; 

    // See if this character is bigger 
    // than the previous one. 
    If new_value > old_value Then 
     // The new value > the previous one. 
     // Add this value to the result 
     // and subtract the previous one twice. 
     result := result + new_value - 2 * old_value 
    Else 
     // The new value <= the previous one. 
     // Add it to the result. 
     result := result + new_value; 

    old_value := new_value; 
); 

// Format the number without commas or decimals 
ToText(result, 0, ""); 

単にあなたの変数と私の{[email protected]}パラメータプレースホルダを交換し、あなたはすべてのセットです。

1

Crystal Reportによって提供されるRoman()関数を使用してください。

関連する問題