Форум: "Основная";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
ВнизНе работает печать в 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.032 c