![]() |
AW: Funktionen aus Crystal Reports im Report Builder anwenden
Hi, also hab's in die Newsgroup gepostet und recht zügig eine Antwort bekommen.
Zitat:
Delphi-Quellcode:
wo soll ich den Datentyp ändern und wie kann ich bsp. von Int nach Extended umwandeln?
class function TmyRoundToFunction.GetSignature: String;
begin Result := 'function RoundTo(const AValue: Extended; const ADigit: TRoundToEXRangeExtended): Extended;'; end; |
AW: Funktionen aus Crystal Reports im Report Builder anwenden
Hi,
so sollte es gehen:
Delphi-Quellcode:
Frank
Uses
SysUtils, raFunc, ppRTTI, Math; type TmyRoundToFunction = class(TraSystemFunction) public class function Category: string; override; procedure ExecuteFunction(AParams: TraParamList); override; class function GetSignature: string; override; end; implementation class function TmyRoundToFunction.Category: string; begin Result := 'Crystal Reports'; end; procedure TmyRoundToFunction.ExecuteFunction(AParams: TraParamList); var AValue: Extended; AResult: Extended; ATempDigit: Integer; ADigit: TRoundToEXRangeExtended; // [-20 .. 20] begin GetParamValue(0, AValue); GetParamValue(1, ATempDigit); try ADigit := ATempDigit; // prüfen auf TRoundToEXRangeExtended AResult := RoundTo(AValue, ADigit); SetParamValue(2, AResult); except raise Exception.Create('ADigit ist kein TRoundToEXRangeExtended'); end; end; class function TmyRoundToFunction.GetSignature: string; begin Result := 'function RoundTo(const AValue: Extended; const ADigit: Integer): Extended'; end; initialization raRegisterFunction('RoundTo', TmyRoundToFunction); finalization raUnRegisterFunction('RoundTo'); end. |
AW: Funktionen aus Crystal Reports im Report Builder anwenden
Hallo Frank,
danke für den Code, aber ich erhalte nachwievor die selbe Fehlermeldung. Also Laut Aussage von Digital Metaphors einen einfacheren Typ verwenden (String oder Integer) und in der Execute Methode in den TRoundToEXRangeExtended umwandeln, aber wie?!? Steh auf dem Schlauch ... |
AW: Funktionen aus Crystal Reports im Report Builder anwenden
Zitat:
Frank |
AW: Funktionen aus Crystal Reports im Report Builder anwenden
Zitat:
Wäre super, wenn wir das Problem heute noch lösen könnten. |
AW: Funktionen aus Crystal Reports im Report Builder anwenden
Zitat:
Frank |
AW: Funktionen aus Crystal Reports im Report Builder anwenden
Sorry,
bei der Signatur fehlte das Semikolon:
Delphi-Quellcode:
Result := 'function RoundTo(AValue: Extended; ADigit: Integer): Extended;';
[Edit] Seh gerade, dass ich das Const vor den Paramtern entfert habe. Kannst du wieder rein nehmen, spielt IMHO keine Rolle...[/EDIT] Frank |
AW: Funktionen aus Crystal Reports im Report Builder anwenden
Vielen Dank Frank.
Letzte Frage bis dahin:
Delphi-Quellcode:
Fehler: Inkompatible Typen..
begin
Value := RoundTo(Trunc(dbPipelineAktuellerMonat['Tagesbrutto'] div 60), 2) + ':' + Roundto((-1) * (dbPipelineAktuellerMonat['Tagesbrutto'] mod 60),2); Erwartet ja Extended und das Datenfeld ist ein Integer... IntTo??? |
AW: Funktionen aus Crystal Reports im Report Builder anwenden
:roteyes: ehm, ich kriegs nicht hin -.-
Kann mir bitte nochmal jmd bei der Typumwandlung helfen? :D |
AW: Funktionen aus Crystal Reports im Report Builder anwenden
Ich nehme an, gleich gibt es was auf die Mütze!
Denn Pushen ist hier nicht gerade beliebt. Und ich klink mich hier jetzt auch erst mal aus. Du kommst so nicht weiter. Das nächste Problem ist mod und div und so weiter. Und es geht wohl nur um die Formatierung eines Wertes (wurde ja schon erwähnt). Vergiss einfach, die Funktionen 1 zu 1 nachbilden zu wollen. Schau die den Wert an und die Ausgabe und mach eine Formatfunktion, die nur den Wert bekommt und den String zurückgibt. Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz