Вниз
Скачать: 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.04 c
14-1103525707
syte_ser78
2004-12-20 09:55
2005.01.09
завершение работы приложения


14-1103124078
Opilki_inside
2004-12-15 18:21
2005.01.09
Декомпилировать SW Flash


8-1096797823
Abcdef
2004-10-03 14:03
2005.01.09
HBITMAP


3-1101964594
Sirus
2004-12-02 08:16
2005.01.09
Нужно подробное описание работы объединения JOIN


1-1103728361
leonon
2004-12-22 18:12
2005.01.09
Модальная форма из dll




   Наверх