![]() |
Othello - курсы валют, кино, программы |
Разработчикам
|
Параметр |
Данные |
Source | Обычно указатель на набор данных типа
TDataset или TDBGrid. При тестовом просмотре отчета и вызове как дополнения передается nil. |
PatternPath |
Вспомогательный параметр (обычно имя файла библиотеки) |
Title |
Название отчета по умолчанию |
Функция ExecuteDlg должна возвращать код ошибки, или 0 - при успешном выполнении. В Tour Pilot код интерпретируется как код ошибки Windows.
Также в библиотеке должна присутствовать функция, возвращающая строку справочных сведений. Вид функции:
function GetDescription(PatternPath:PChar):PChar;
Параметр PatternPath вспомогательный (обычно имя файла библиотеки).
Ниже приведен пример реализации RPL-библиотеки в Delphi:
library testRPL;
uses ShareMem, SysUtils, Classes,
rep_form in 'rep_form.pas' {MainForm};
{$E tpl}
function ExecuteDlg(Source:TComponent; PatternPath:PChar;
Title:PChar) : integer;
var RepGrid:TDBGrid;
DSet:TDataSet;
begin
if Source.ClassName='TDBGrid'
then
begin
RepGrid:=TDBGrid(Source);
DSet:=TDBGrid(Source).DataSource.DataSet;
ExecuteDlg:=DoSomething(DSet,RepGrid);
// ...
end
else
begin
Table1.Open;
RepGrid:=nil;
DSet:=Table1;
end
end;
function GetDescription(PatternPath:PChar):PChar;
begin
GetDescription:='Test Info';
end;
exports
ExecuteDlg,
GetDescription;
begin
end.
function ExecuteDlg(lpApp:TApplication; lpSession:TSession):HRESULT;
В качестве параметров функции из Tour Pilot передаются данные:
Параметр |
Данные |
lpApp | Указатель на переменную Application программы Tour Pilot. |
lpSession |
Указатель на переменную типа TSession, к которой "подсоединены" объекты доступа к базе данных TPilotDB. |
Ниже приведен пример реализации TPL-библиотеки в Delphi:
library testTPL;
uses ShareMem, SysUtils, Classes;
{$E tpl}
function ExecuteDlg(lpApp:TApplication;lpSession:TSession):HRESULT;
var DSet:TDataSet;
begin
Dset:=nil;
if Assigned(lpSession) then
for i:=0 to
lpSession.DatabaseCount-1 do
for j:=0 to
lpSession.Databases[i].DataSetCount-1 do
if lpSession.Databases[i].DataSets[j].Name='Orderstable'
then
begin
DSet:=lpSession.Databases[i].DataSets[j];
ExecuteDlg:=DoSomething(DSet);
end;
end;
exports
ExecuteDlg,
GetDescription;
begin
end.
Примером TPL-модуля для Вас может послужить дополнение Tour Pilot Holidays. Можете взять его на Downloads.
Все вопросы, пожелания и предложения мы принимаем на странице Вопросы и ответы