2012-06-14 4 views

Antwort

1

Ich kann nicht viel von dem Kredit nehmen; Ich portierte einfach den Code aus this VB Helper article in Kristall, aber es war eine nette Übung:

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, ""); 

einfach meinen {[email protected]} Parameter Platzhalter durch Ihre Variable ersetzen, und Sie sind alle gesetzt.

1

Verwenden Sie einfach die Funktion Roman(), die von Crystal Report

bereitgestellt wird