Главная страница
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.044 c
9-1095676694
DeFenix
2004-09-20 14:38
2005.01.09
Где можно скачать последнюю версию GlScene?


11-1085226971
Yustas
2004-05-22 15:56
2005.01.09
Не работает Message


14-1103470093
mrX
2004-12-19 18:28
2005.01.09
Вопрос по мат. анализу


14-1103264611
X9
2004-12-17 09:23
2005.01.09
Управление светодиодами с помощью портов


9-1095173674
Sphinx
2004-09-14 18:54
2005.01.09
Спрайты