кол-во страниц в отчете

отредактировано 06:55 Раздел: FastReport 4.0
не хотел плодить темы, но разработчики не ответили в уже созданной другим человеком такой же теме . посему, пожалуйста ответьте здесь уважаемые разработчики FastReport.


____ ВОПРОС К РАЗРАБОТЧИКАМ _______

кусок кода

BlobStream:=TMemoryStream.Create;

RichEdit1.Lines.SaveToStream(BlobStream);
BlobStream.Position:=0;
(dxMemdatatranslatestranslate as TBlobField).LoadFromStream(BlobStream);

frxReport2.ShowReport(true);

Edit1.text:=IntToStr( self.frxPreview1.PageCount); - получаю 0

если

Edit1.text:=IntToStr( self.frxReport2.PreviewPages.Count); - получаю 0

если


как пользовтаель задавший вопрос в этом форуме. то у меня 2 постоянно. А именно:

nPage = frxReport2->PagesCount;
nPage всегда = 2




finally
BlobStream.Free;


Версия FastReport 4.0
end;

Комментарии

  • gpigpi
    отредактировано February 2008
    Попробуйте
    frxReport2.EngineOptions.DestroyForms:=False;
    frxReport2.ShowReport(true);
    Edit1.text:=IntToStr( self.frxReport2.PreviewPages.Count);
  • отредактировано 06:55
    gpi написал: »
    Попробуйте
    frxReport2.EngineOptions.DestroyForms:=False;
    frxReport2.ShowReport(true);
    Edit1.text:=IntToStr( self.frxReport2.PreviewPages.Count);


    НЕ помогло. жду еще советов. Очень нужно
  • gpigpi
    отредактировано February 2008
    Проверил. Вот такой код
    frxReport1.ShowReport();
    Edit1.Text:=IntToStr(frxReport1.PreviewPages.Count);
    
    работает нормально, даже без frxReport1.EngineOptions.DestroyForms:=False;
  • отредактировано 06:55
    gpi написал: »
    Проверил. Вот такой код
    frxReport1.ShowReport();
    Edit1.Text:=IntToStr(frxReport1.PreviewPages.Count);
    
    работает нормально, даже без frxReport2.EngineOptions.DestroyForms:=False;

    А у меня нет. :) Что у вас используется в качестве DataSet для компонента frxReport ?
  • gpigpi
    отредактировано 06:55
    Я пробовал без привязки к датасету: MasterData1.RowCount=1000. Получил 18 страниц
    Датасет здесь не должен влиять на результат. Можете выложить простой тестовый проект, демонстрирующий проблему?
  • отредактировано 06:55
    Прилагаю пример на CodeGear 2007 , с memData компонентной . сейчас попробую под SQL таблу переписать и выложить, если у кого-то не станет компонента memData, хотя трабла я думаю, не в ней. Может я что то не так выставляю в свойства при двойном щелчке по компонента FRxReport непоcредственно в дизайнере.
  • gpigpi
    отредактировано 06:55
    При отображении отчёта в TfrxPreview используйте frxReport2.PrepareReport(true) вместо frxReport2.ShowReport(true)
  • отредактировано February 2008
    Попробывал только что:


    frxReport2.PrepareReport(true);
    frxReport2.ShowPreparedReport;
    Edit1.text:=IntToStr( self.frxReport2.PreviewPages.Count);

    Результат тот же. выдается кол-во страниц 1 ПОСТОЯННО.


    И как получить более полную и оперативную поддержку для тех, у кого лицензионная версия ПО FastReport ? И хотелось все-таки решить проблему .
  • отредактировано 06:55
    1. у вас в примере больше одной страницы не получится, т.к. RichText не будет растягиваться.
    Чтобы текст рича растягивался нужно установить св-во StrethMode в smMaxHeight (или smActualHeight), поместить этот рич на бенд с Stretched = True и AllowSplit = True (RowCount = 1).
    В противном случае будет выводится только тот, текст который помещается в заданые размеры рича в отчете.
    Отсюда можно сделать вывод , что у вас не правильно построен сам шаблон и проблема тут не в PreviewPages.Count.

    2. При использовании ShowReport возможны не верные результаты, т.к в этом случае используется таймер и при использовании не модального предпросмотра или собственного предпросмотра, функция сразу возвращает управление программе и PreviewPages.Count может вернуть 0, т.к. отчет еще и не начинал строится.

    Если бы внимательно читали документацию (если вообще ее кто-нибудь читает :) ) подобных вопросов возникало бы меньше

  • отредактировано 06:55
    " Если бы внимательно читали документацию (если вообще ее кто-нибудь читает :) ) подобных вопросов возникало бы меньше "

    Это уж точно :) ) спасибо , помог первый ваш совет. всё заработало.

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

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