Einzelnen Beitrag anzeigen

Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#6

AW: Funktionen aus Crystal Reports im Report Builder anwenden

  Alt 11. Apr 2011, 12:20
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"
  Mit Zitat antworten Zitat