Hi, bin gerade dabei Funktionen aus Delphi in den Report Builder zu importieren.
Ich möchte zunächst die Funktion RoundTo importieren, um auf zwei Nachkommastellen zu runden:
Code:
totext(truncate({B_Ergebnisse.Tagesbrutto}/60),"00",2)
Delphi-Quellcode:
unit Import;
interface
uses
SysUtils, Windows, Messages, Classes, Graphics, Controls,
Forms, Dialogs, Math, raFunc, ppRTTI, raIDE, DateUtils;
type
TmyRoundToFunction =
class (TraStringFunction)
public
procedure ExecuteFunction(aParams: TraParamList);
override;
class function GetSignature:
String;
override;
end;
implementation
{------------------------------------------------------------------------------}
{ TmyRoundToFunction.GetSignature }
class function TmyRoundToFunction.GetSignature:
String;
begin
Result := '
function RoundTo(const AValue: Extended; const ADigit: TRoundToEXRangeExtended): Extended;';
end;
{------------------------------------------------------------------------------}
{ TmyRoundToFunction.ExecuteFunction }
procedure TmyRoundToFunction.ExecuteFunction(aParams: TraParamList);
var
varAValue, varRueckgabe: Extended;
varADigit: TRoundToEXRangeExtended;
begin
GetParamValue(0, varAValue);
GetParamValue(1, varADigit);
varRueckgabe := RoundTo(varAValue, varADigit);
SetParamValue(2, varRueckgabe);
end;
initialization
raRegisterFunction('
RoundTo', TmyRoundToFunction);
finalization
raUnRegisterFunction('
RoundTo');
end.
Da ich leider nicht weiß, wie ich Functionen aus Delphi zur Designzeit im Report Builder verwenden kann, habe ich die
Unit raIDE eingebunden, damit ich zur Laufzeit, Variablenberechnungen durchführen kann. Sobald ich aber den Reiter "Sprache" unter Berechnungen aufrufe erhalte ich folgende Fehlermeldung:
Zitat:
"Cannot compile Signature for Zeichenkette function: RoundTo"