Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
14-1103553331
frEE)stylEr
2004-12-20 17:35
2005.01.09
ПРОБЛЕМЫ с модемом!!!!


3-1102542933
Vemer
2004-12-09 00:55
2005.01.09
Работа с External Tables..


1-1103785522
Jeka
2004-12-23 10:05
2005.01.09
Вопрос по настройке D2005


1-1103727686
Gennadiy
2004-12-22 18:01
2005.01.09
В Ексель не в формуле не передаются знак ";"


14-1103645310
juice
2004-12-21 19:08
2005.01.09
справочник по свойствам и методам




   Наверх