Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.06.26;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.003 c
15-1298988109
Дмитрий С
2011-03-01 17:01
2011.06.26
Как б встретится?


2-1300290965
lewka
2011-03-16 18:56
2011.06.26
Работа с текстом в MS Word


15-1299747769
vuk
2011-03-10 12:02
2011.06.26
Бакшевская Масляница


2-1300534060
Labor
2011-03-19 14:27
2011.06.26
Tsplitter и Timage


2-1300369713
irzyxa
2011-03-17 16:48
2011.06.26
Куда в файл можно записать свой идентификатор





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский