Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#19

Re: FastReport vs Crystal Report

  Alt 27. Mai 2010, 18:02
Zitat von Memo:
Zitat von Sir Rufo:
Die fehlende MySQL-Unterstützung kann man so mal eben mit unterjubeln.
Wo wird das nicht unterstützt? Das frDBDataset kann alle möglichen DB-Kompos angebunden werden.
Das ist schon richtig, in meiner Anwendung machen ich den Zugriff auf die DB und übergebe das DataSet dann an FR.
Aber das meinte ich nicht.

Beim FastReport kann ich direkt im Report auch einen Zugriff auf die Datenbanken machen.
Mittels ODBC könnte ich (wenn der MySQL-ODBC installiert wäre) auch auf MySQL zugreifen.
Aber ich finde MyDAC halt schöner

Mit dieser Unit wird dann auch MyDAC direkt im Report benutzbar.
Einfach da einbinden, wo auch die FR-Komponente liegt.
Delphi-Quellcode:
{******************************************}
{                                          }
{             FastScript v1.9              }
{       MyDAC classes and functions        }
{                                          }
{******************************************}

unit fs_imysrtti;

interface

{$I fs.inc}

uses
  SysUtils, Classes, fs_iinterpreter, fs_itools, fs_idbrtti, db, DBAccess,
  MyAccess, DAScript, MyScript, MemDS;

type
  TfsMYSRTTI = class( TComponent ); // fake component

implementation

type
  TFunctions = class( TfsRTTIModule )
  private
    function CallMethod( Instance : TObject; ClassType : TClass;
      const MethodName : String; Caller : TfsMethodHelper ) : Variant;

  public
    constructor Create( AScript : TfsScript ); override;
  end;

  { TFunctions }

constructor TFunctions.Create( AScript : TfsScript );
  begin
    inherited Create( AScript );
    with AScript do
      begin
        with AddClass( TDAParam, 'TParam' ) do
        begin

        end;
        with AddClass( TDAParams, 'TParams' ) do
        begin

        end;

        with AddClass( TCustomDAConnection, 'TCustomConnection' ) do
          begin
          end;

        with AddClass( TCustomMyConnection, 'TCustomDAConnection' ) do
          begin
          end;

        with AddClass( TMyConnection, 'TCustomMyConnection' ) do
          begin
          end;

         with AddClass( TMemDataSet, 'TDataSet' ) do
           begin
           end;

         with AddClass( TCustomDADataSet, 'TMemDataSet' ) do
           begin
             AddMethod( 'procedure Execute', CallMethod );
             AddMethod( 'function Executing : boolean', CallMethod );
           end;

        with AddClass( TCustomMyDataSet, 'TCustomDADataSet' ) do
          begin
          end;

        with AddClass( TMyTable, 'TCustomMyDataSet' ) do
          begin
          end;

        with AddClass( TMyQuery, 'TCustomMyDataSet' ) do
          begin
          end;

        with AddClass( TDAScript, 'TComponent' ) do
        begin

        end;
        with AddClass( TMyScript, 'TDAScript' ) do
        begin

        end;

      end;
  end;

function TFunctions.CallMethod( Instance : TObject; ClassType : TClass;
  const MethodName : String; Caller : TfsMethodHelper ) : Variant;
  begin
    Result := 0;

    if ClassType = TCustomDADataSet then
      begin
        if MethodName = 'EXECUTEthen
          TCustomDADataSet( Instance ).Execute;
        if MethodName = 'EXECUTINGthen
          RESULT := TCustomDADataSet( Instance ).Executing;
      end;

  end;

initialization

fsRTTIModules.Add( TFunctions );

finalization

if fsRTTIModules <> nil then
  fsRTTIModules.Remove( TFunctions );

end.
Zitat von Cogito:
Könnt ihr mir noch ein paar Tips geben für die Benutzer, welche bisher gewohnt waren mit Crystal Report zu arbeiten, was mit FR jetzt besser ist? Ich meine, so ein Argument wie "...es gibt keine vernünftige Delphi Komponente für CR..." kratzt die herzlich wenig...
Es geht bei mir auch darum dass ein Benutzer die Reports anpassen kann und wenn er jetzt plötzlich statt vorher 150 Funktionen jetzt nur noch die Hälfte hätte, würde sich vermutlich schnell Unmut breit machen.
Welche Funktionen möchtest du denn haben?

Wenn es um spezielle Funktionen zum Berechnen geht, so kannst du diese genauso integrieren, wie den Zugriff auf MyDAC.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat