[Gelöst] - Zahlen in Worten

5. Januar 2024 13:00

Ich muss auf einem Formular Zahlen in Worten andrucken, also aus 500 wird dann Fünf Null Null z.B.

Kennt jemand eine Möglichkeit, das umzusetzen, ev. mit einem Formatbefehl?
Oder muss der Betrag Ziffer für Ziffer gelesen und interpretiert werden?
Zuletzt geändert von rotsch am 10. Januar 2024 14:55, insgesamt 3-mal geändert.

Re: Zahlen in Worten

5. Januar 2024 13:29

Hi,

vlt. hilft Dir die Funktion "FormatNoText" aus Bericht 1401 (Check).

Code:
procedure FormatNoText(var NoText: array[2] of Text[80]; No: Decimal; CurrencyCode: Code[10])
    var
        PrintExponent: Boolean;
        Ones: Integer;
        Exponent: Integer;
        NoTextIndex: Integer;
        DecimalPosition: Decimal;
        NoToText: Text[30];
    begin
        Clear(NoText);
        NoTextIndex := 1;
        GLSetup.Get();
        NoText[1] := '**';

        if No < 1 then
            AddToNoText(NoText, NoTextIndex, PrintExponent, Text026)
        else begin
            NoToText := Format(Round(No, 1, '<'), 0, 2);
            for Exponent := 1 to StrLen(NoToText) do begin
                Evaluate(Ones, CopyStr(NoToText, Exponent, 1));
                if Ones = 0 then
                    AddToNoText(NoText, NoTextIndex, PrintExponent, Text026)
                else
                    AddToNoText(NoText, NoTextIndex, PrintExponent, OnesText[Ones]);
            end;
        end;

        DecimalPosition := GetAmtDecimalPosition();
        AddToNoText(NoText, NoTextIndex, PrintExponent, (Format(No * DecimalPosition) + '/' + Format(DecimalPosition)));

        if CurrencyCode <> '' then
            AddToNoText(NoText, NoTextIndex, PrintExponent, CurrencyCode);

        AddToNoText(NoText, NoTextIndex, PrintExponent, '**');

        OnAfterFormatNoText(NoText, No, CurrencyCode);
    end;

Re: Zahlen in Worten

5. Januar 2024 13:31

Super, vielen Dank!

Probiere ich gleich aus

Re: Zahlen in Worten

5. Januar 2024 15:02

BastianB hat geschrieben:Hi, vlt. hilft Dir die Funktion "FormatNoText" aus Bericht 1401 (Check).


Das hat bestens funktioniert, danke für deine Hilfe.

Re: Zahlen in Worten

10. Januar 2024 10:49

Leider war es doch nicht ganz die passende Lösung. Konkret geht es in meinem Fall um Steuerbescheinigungen für zugewendete Beträge, bzw. Spenden.
Da wird anscheinend eine bestimmte Formatierung seitens der Behörden verlangt, gemäss dem zugefügten Bild.

Hat das vielleicht schon jemand lösen müssen und kann mir sagen, wie das umsetzbar ist?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Zahlen in Worten

10. Januar 2024 12:27

Was ist das Problem, das Auffüllen mit X? Zu PADSTR haben wir hier ein Thema.

Re: Zahlen in Worten

10. Januar 2024 13:06

Kowa hat geschrieben:Was ist das Problem, das Auffüllen mit X? Zu PADSTR haben wir hier ein Thema.


Ich schau mir das mal an, die X sind sicher das eine Problem, aber auch die "Umwandlung" der einzelnen Zahlen in Worte

Re: Zahlen in Worten

10. Januar 2024 13:41

rotsch hat geschrieben:, aber auch die "Umwandlung" der einzelnen Zahlen in Worte

Betrag formatieren, Länge feststellen und dann den String zeichenweise abarbeiten und dabei jedem Zeichen (= Ziffer) z.B. mit CASE..OF einen Text zuweisen.
Als Alternative zu PADSTR gibt es bei FORMAT auch einen Filler Character um Zeichen vorne aufzufüllen.

Re: Zahlen in Worten

10. Januar 2024 14:55

Kowa hat geschrieben:
rotsch hat geschrieben:, aber auch die "Umwandlung" der einzelnen Zahlen in Worte

Betrag formatieren, Länge feststellen und dann den String zeichenweise abarbeiten und dabei jedem Zeichen (= Ziffer) z.B. mit CASE..OF einen Text zuweisen.
Als Alternative zu PADSTR gibt es bei FORMAT auch einen Filler Character um Zeichen vorne aufzufüllen.


Da habe ich eindeutig zu weit gedacht, so ist das natürlich einfach, besten Dank.