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

Вниз

Quick Report: Блокируется файл отчета после экспорта в PDF   Найти похожие ветки 

 
>|<   (2011-03-23 16:24) [0]

код
pdfFilter := TQRPDFDocumentFilter.create(pdfFileName);
try
 Report.ExportToFilter(pdfFilter);
 inc(processed);
finally
 pdfFilter.Free;
end;

Пока работает программа, файл pdfFileName ,блокируется.
Как можно снять блокировку с файла, не изменяя исходников Quick Report?


 
Anatoly Podgoretsky ©   (2011-03-23 16:32) [1]

То есть позволить портить результат, нет мы не можем на это пойти.


 
>|<   (2011-03-23 16:39) [2]

ничего портить не нужно. В исходниках Quick Report файл, в который произведен экспорт, не отпускается даже после того, как сам экземпляр отчета был освобожден и создан заново для других данных. То есть, ребята забыли освободить ссылку на файл, и он блокируется приложением, пока его не закроешь. Это неудобно. Но не критично.
Программа формирует пакет отчетов. Когда формируется следующий, хотелось бы уже открывать предыдущий, не дожидаясь завершения процесса формирования всех отчетных файлов.
Банальная утечка памяти в чужих исходниках, в которые неохота вникать.

Уважаемый Анатолий Подгорецкий!
Если у Вас есть еще какие-нибудь сомнения, огласите их, чтобы я их развеял))


 
Плохиш ©   (2011-03-23 17:10) [3]


> >|<   (23.03.11 16:39) [2]
>
> ничего портить не нужно. В исходниках Quick Report файл,
>  в который произведен экспорт, не отпускается даже после
> того, как сам экземпляр отчета был освобожден и создан заново
> для других данных. То есть, ребята забыли освободить ссылку
> на файл

Надо написать разработчику.


 
>|<   (2011-03-23 17:23) [4]


> Надо написать разработчику.

Разумеется.
Но мне нужно временное решение на сегодня, пока разработчик выпустит свое обновление на этот баг, если вообще выпустит.

Возможно, буду экспортировать во временный файл, и по завершению копировать в другую папку.

Нашел толковую статью http://www.wasm.ru/article.php?article=lockfileswork
но лень переписывать под делфи.


 
Игорь Шевченко ©   (2011-03-23 17:39) [5]


> Но мне нужно временное решение на сегодня


изменить исходники, перекомпилировать, написать разработчику.
(мы так делали, вполне себе успешно, в qbs software народ вполне адекватный)


 
>|<   (2011-03-23 18:20) [6]


> Игорь Шевченко ©   (23.03.11 17:39) [5]

нашел в исходниках
procedure TQRPAbstractExportFilter.CreateStream(FileName: string);
begin
 FStream:=TFileStream.Create(FileName, fmCreate);
end;

procedure TQRPAbstractExportFilter.CloseStream;
begin
 FStream.Free;
end;
посмотрел под отладчиком - оба места программа успешно проходит.
Что еще может блокировать файл?...


 
>|<   (2011-03-23 18:26) [7]

Изучая исходники, нашел то, что мне нужно:
procedure TQRPDFDocumentFilter.CloseStream;
begin
 if FreeStream then inherited CloseStream;
end;

То есть, присвоить свойству FreeStream значение True.

Благодарю всех за внимание. Вопрос исчерпан.


 
>|<   (2011-03-23 18:32) [8]

Снимаю все претензии к QuickRep
Файл блокировался при записи в блоб в БД и не освобождался LOBLocator после записи.



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

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

Наверх




Память: 0.48 MB
Время: 0.007 c
2-1300644733
inslave
2011-03-20 21:12
2011.06.26
многопоточность


2-1300915523
fynjy93
2011-03-24 00:25
2011.06.26
проблема с дбчекбокс


15-1300117961
Сергей К.
2011-03-14 18:52
2011.06.26
Bob Marley - no woman, no cry


2-1300430234
Andrey_1
2011-03-18 09:37
2011.06.26
Перехватить информацию


15-1299059469
George
2011-03-02 12:51
2011.06.26
Rave Reports и PDF