free report в длл

отредактировано 22:11 Раздел: FreeReport
В Дельфи совсем чайник
Надо что то типа такого

VBS,VB,VBA
...
Set FR = CreateObject("FreeReport.FreeRreport")
FR.UDLFile = "FILE NAME=C:\Program Files\Borland\FreeReport68\CONNECTION.udl"
FR.Source="select * from documents"
FR.Design
'Или
FR.Preview
...

В Дельфи это выглядит так

frds:= TfrDBDataSet.Create(nil);
frrpt:=TfrReport.Create(nil);

frds.OpenDataSource:=True;
frds.DataSet:=ds;

frrpt.Dataset:=frds;

frrpt.DesignReport;
...

где
ds:=TADODataSet.Create(nil);


Но вот как только дело доходит до дизайн или привью отчет не видит ДатаСет. Но если я делаю практически! все то же самое в обычном EXE- все проходит на ура. У меня такое подозрение что объект TfrReport на форме, совсем не то если я его создаю в проекте для ДЛЛ frrpt:=TfrReport.Create(nil);.

Комментарии

  • отредактировано 22:11
    написал:
    У меня такое подозрение что объект TfrReport на форме, совсем не то если я его создаю в проекте для ДЛЛ
    Совершенно правильное подозрение. Вам следует основной прект и dll компилировать с использованием run-time packages.
    (меню Project-Options-Packages-Build with run-time packages)
  • отредактировано 22:11
    -=Serg=- Спасибо что откликнулись, но что то не получается. В строке Run Time Packages :
    vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP;FreeRep7. Может надо что то еще добавить?

    у меня дельфи 7

    На всякий случай привожу код
    ...
    cnn: TADOConnection;
    ds: TADODataSet;
    frds: TfrDBDataSet;
    frrpt: TfrReport;
    frDesigner: TfrDesigner;
    ...

    procedure TFreeRreport.Design;
    begin
    frds:= TfrDBDataSet.Create(nil);
    frrpt:=TfrReport.Create(nil);
    frds.DataSet:=ds;
    frds.OpenDataSource:=True;
    frds.Open;
    frrpt.Dataset:=frds;
    frrpt.DesignReport;
    end
    procedure TFreeRreport.Set_Source(Value: OleVariant);
    begin

    ds:=TADODataSet.Create(nil);
    ds.Connection:=cnn;
    ds.LockType:=ltReadOnly;
    ds.CommandType:=cmdText;
    ds.CommandText:=Value;
    ds.Active:=True;
    ds.Open;
    end;
    procedure TFreeRreport.Set_UDLFile(Value: OleVariant);
    begin
    cnn:=TADOConnection.Create(nil);
    cnn.ConnectionString :=Value;
    cnn.LoginPrompt := False;
    cnn.Mode := cmRead;
    cnn.Open;
    end;

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.