5. Januar 2024 13:00
5. Januar 2024 13:29
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;
5. Januar 2024 13:31
5. Januar 2024 15:02
BastianB hat geschrieben:Hi, vlt. hilft Dir die Funktion "FormatNoText" aus Bericht 1401 (Check).
10. Januar 2024 10:49
10. Januar 2024 12:27
10. Januar 2024 13:06
Kowa hat geschrieben:Was ist das Problem, das Auffüllen mit X? Zu PADSTR haben wir hier ein Thema.
10. Januar 2024 13:41
rotsch hat geschrieben:, aber auch die "Umwandlung" der einzelnen Zahlen in Worte
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.