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 = '
EXECUTE'
then
TCustomDADataSet( Instance ).Execute;
if MethodName = '
EXECUTING'
then
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.