Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.09;
Скачать: CL | DM;

Вниз

Не работает печать в QReport   Найти похожие ветки 

 
karachi ©   (2004-12-21 01:21) [0]

В QReport создаю отчет, но только не через DataSet, а используя событие TQuickRep.OnNeedData. Функция выглядит следующим образом

procedure TfmReportAgents.qrAgentsNeedData(Sender: TObject;
 var MoreData: Boolean);
begin
 MoreData:=false;
 if not qRepAgents.Eof then
 begin
   Tel1.Caption:=qRepAgentstelephone.AsString;
   qRepAgents.Next;
   MoreData:=true;
 end;
end;


Но почему то после формирования отчета, не получается его распечатать. Нажимаешь кнопку "Печать" на форме предварительного просмотра, но ничего не происходит. В чем может быть проблема?


 
Германн ©   (2004-12-21 02:30) [1]

Имхо, что с принтером. Или с его драйвером.

Но, возможно, что и QR глючит. Его автор уже признавался в том, что у него есть проблемы с драйверами принтеров.


 
Семен Сорокин ©   (2004-12-21 10:30) [2]

procedure TfmReportAgents.qrAgentsNeedData(Sender: TObject;
var MoreData: Boolean);
begin
MoreData:=false;
if not qRepAgents.Eof then
begin
  Tel1.Caption:=qRepAgentstelephone.AsString;
  qRepAgents.Next;
  MoreData:=true;
end
else
  qRepAgents.First

end;


 
karachi ©   (2004-12-21 11:43) [3]


end
else
 qRepAgents.First
end;

Так ведь этот кусок приводит к зацикливанию. И отчет формируется целую вечность


 
Семен Сорокин ©   (2004-12-21 11:48) [4]


> karachi ©   (21.12.04 11:43) [3]
> Так ведь этот кусок приводит к зацикливанию. И отчет формируется
> целую вечность

Вы проверили на практике?


 
Семен Сорокин ©   (2004-12-21 11:52) [5]

Объясню, флаг MoreData информирует о том, будем ли мы заходить в следующей итерации в эту процедуру.

Когда мы формируем отчет по Preview мы пробегаемся по элементам qRepAgents до конца - что мы и видим на экране, когда мы нажимаем кнопку Print из Preview, эта операция пробегает еще раз (по всем элементам qRepAgents), соответственно, надо выставить на начало, что же мы видим в коде:

 MoreData:=false;
 if not qRepAgents.Eof then
 begin
   Tel1.Caption:=qRepAgentstelephone.AsString;
   qRepAgents.Next;
   MoreData:=true;
 end
 else
   qRepAgents.First


именно это я и делаю, с учетом того что MoreData:=false, соответственно следующей итерации сюда не будет...

Надеюсь понятно объяснил?



Страницы: 1 вся ветка

Текущий архив: 2005.01.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
14-1103313023
Vasya.ru
2004-12-17 22:50
2005.01.09
Пара вопросов к мастерам:


14-1103451382
tazik
2004-12-19 13:16
2005.01.09
На каком сайте можно достать нормальную графику для программы


14-1103525707
syte_ser78
2004-12-20 09:55
2005.01.09
завершение работы приложения


1-1103734425
SMT
2004-12-22 19:53
2005.01.09
Редактор ресурсного файла без ограничений на размер файла


1-1103538071
Mishenka
2004-12-20 13:21
2005.01.09
Unit DesignEditors