Передача готового отчета

отредактировано 21:48 Раздел: FastReport 2.xx VCL
Подскажите, пожалуйста, как поступить. Есть отчет на одном компьютере. Он там формируется. И мне затем необходимо передать готовый сформированный отчет на другой компьютер и там его отобразить. Как лучше поступить?!

Комментарии

  • отредактировано 21:48
    сохраняешь его в формате frf, а на друном компе открываешь. можешь даже написать небольшую утилитку, или поищи в нете, уже есть готовые
  • отредактировано 21:48
    Это и данные передаются и структура?
  • отредактировано 21:48
    Я пробовал frReport1.LoadFromFile('c:\....frp');
    но отчет не открывается.
  • отредактировано 21:48
    И так пробовал

    var
    comp:string;

    function ComponentToString(Component: TComponent): string;
    var
    ms: TMemoryStream;
    ss: TStringStream;
    begin
    ss := TStringStream.Create(' ');
    ms := TMemoryStream.Create;
    try
    ms.WriteComponent(Component);
    ms.position := 0;
    ObjectBinaryToText(ms, ss);
    ss.position := 0;
    Result := ss.DataString;
    finally
    ms.Free;
    ss.free;
    end;
    end;

    procedure TForm1.frReport1EndDoc;
    begin
    comp:=ComponentToString(frReport3);
    end;

    procedure StringToComponent(Component: TComponent; Value: string);
    var
    StrStream:TStringStream;
    ms: TMemoryStream;
    begin
    try
    StrStream := TStringStream.Create(Value);
    try
    ms := TMemoryStream.Create;
    try
    ObjectTextToBinary(StrStream, ms);
    ms.position := 0;
    ms.ReadComponent(Component);
    finally
    ms.Free;
    end;
    finally
    StrStream.Free;
    end;
    except
    showException(ExceptObject,ExceptAddr);
    end;
    end;
    .....................................................
    другая форма

    var
    fr: TfrReport;
    .............
    if Assigned(fr)then
    begin
    fr.Free;
    fr := nil;
    end;
    fr:= TfrReport.Create(self);
    fr.Name:='frReport1';
    fr.Pages.Clear;
    fr.Pages.Add;
    if fr.Pages[0] <> nil then
    StringToComponent(fr,comp);
    fmFastreport.frCompositeReport1.Reports.Clear;
    fmFastreport.frCompositeReport1.Reports.Add(fr);
    fmFastreport.frCompositeReport1.ShowPreparedReport;

    никакой вариант не работает!!!
  • отредактировано 21:48
    2 Pablito:

    1. Сохраняешь ГОТОВЫЙ (который уже вышел на просмотр) отчёт в файл с расширением FRP (в окне просмотра есть кнопочка с дискетой).
    2. Для просмотра FRP пишешь небольшую прогу: на форму кладёшь TfrReport, OpenDialog (через который ты будешь выбирать FRP). После выбора нужного файла жмёшь кнопу:
    begin
      if frReport1.LoadPreparedReport(FileName) then
        frReport1.ShowPreparedReport
      else
        MessageDlg('Не могу зогрузить файл '+FIleName,mtError,[mbOk],0);
    end;
    
  • отредактировано 21:48
    Спасибо огромное!
    Вы мне здорово помогли!!!

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

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