Отображение серийного номера латинскими буквами в Crystal Reports


необходимо отображать серийный номер латинскими буквами (i, ii, iii, iv и т. д.) в отчетах о кристаллах. У меня есть серийный номер, захваченный как номер записи (1,2,3,4...). Итак, что я должен сделать для него в кристаллическом отчете.


person Sivajith    schedule 14.06.2012    source источник


Ответы (2)


Я не могу взять на себя большую часть заслуг; Я просто перенес код из этой статьи VB Helper в Crystal, но это было забавное упражнение. :

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({?@Roman});

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

Просто замените мой заполнитель параметра {?@Roman} своей переменной, и все готово.

person LittleBobbyTables - Au Revoir    schedule 25.06.2012

Просто используйте функцию Roman(), предоставляемую Crystal Reports.

person soyeb    schedule 04.03.2015