Свой компонент работы с БД в FastReport
Нужно интегрировать свой компонент на основе TOracleDataset в сам FastReport ver. 3.23.9.
Но никак не получается. Получилось снаружи FastReoport'a, a изнутри никак. Валится с непонятными ошибками всё время.
Дайте пример,плз, или расскажите в чём дело. Уже замахался с ним!!!!
Но никак не получается. Получилось снаружи FastReoport'a, a изнутри никак. Валится с непонятными ошибками всё время.
Дайте пример,плз, или расскажите в чём дело. Уже замахался с ним!!!!
Комментарии
Windows, Classes, frxDsgnIntf, frxClass, frxCustomDB, DB, Oracle, OracleData,
Graphics
{$IFDEF QBUILDER}
, fqbClass
{$ENDIF}
;
type
// êîìîíåíò ñâÿçêè ñ áàçîé äàííûõ Oracle
TfrxELOracleComponents = class(TfrxDBComponents)//TfrxDialogComponent)
private
// áàçà äàííûõ ïî óìîë÷âíèþ
FDefaultDatabase: TOracleSession;
// ññûëêà íà ñòàðûé êîìîïîíåò íóæíî äëÿ ñîçäàíèÿ
FOldComponents: TfrxELOracleComponents;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
// âîçâðàùàåò îïèñàíèå êëàññà â èíñïåêòîðå FastReport
function GetDescription: string; override;
published
// äåðíåì ñåññèþ
property DefaultDatabase: TOracleSession read FDefaultDatabase write
FDefaultDatabase;
end;
// êîìîïíåò äëÿ ïîëó÷åíèÿ ññûëêì â îò÷åò íà áàçó äàííûõ
TfrxELOracleDatabase = class(TfrxDialogComponent)//TfrxCustomDatabase)
private
FDatabase: TOracleSession;
protected
procedure SetConnected(Value: Boolean);
procedure SetDatabaseName(const Value: string);
procedure SetLoginPrompt(Value: Boolean);
procedure SetParams(Value: TStrings);
function GetConnected: Boolean;// override;
function GetDatabaseName: string;
function GetLoginPrompt: Boolean;
function GetParams: TStrings;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
class function GetDescription: string; override;
procedure SetLogin(const Login, Password: string); //override;
property Database: TOracleSession read FDatabase;
constructor DesignCreate(AOwner: TComponent; Flags: Word); override;
published
property DatabaseName:string read GetDatabaseName write SetDatabaseName;
property LoginPrompt:boolean read GetLoginPrompt write SetLoginPrompt;
property Params: TStrings read GetParams write SetParams;
property Connected:boolean read GetConnected write SetConnected;
end;
// ñàì êîìîïîíåíò äàòàñåòà äëÿ îò÷åòíûõ ôîðì!
TfrxELOracleQuery = class(TfrxCustomQuery)
private
FDatabase : TfrxELOracleDatabase;
FQuery : TOracleDataSet;
procedure SetDatabase(const Value: TfrxELOracleDatabase);
protected
procedure Notification(AComponent: TComponent; Operation: TOperation);
override;
procedure SetMaster(const Value: TDataSource); override;
procedure SetSQL(Value: TStrings); override;
function GetSQL: TStrings; override;
public
constructor Create(AOwner: TComponent); override;
constructor DesignCreate(AOwner: TComponent; Flags: Word); override;
class function GetDescription: string; override;
procedure BeforeStartReport; override;
procedure UpdateParams; override;
property Query: TOracleDataSet read FQuery;
published
property Database: TfrxELOracleDatabase read FDatabase write SetDatabase;
end;
Если нам удастся внедрить наш компонент внутрь FR - то встроим FR в нашу ERP.
Код не полный, можете прислать этот модуль целиком на den@fast-report.com
Какие ошибки выскакивают и когда(создание, открытие и т.д.) ?