Устранение ошибки "Свойство PreviewLeft не существует" в QuickReport 5 при генерации отчетов на новых машинах
При работе с QuickReport 5 для генерации отчетов в программе, которая ранее компилировалась только на одном конкретном ПК, пользователь столкнулся с проблемой при попытке разработки на других машинах. После установки той же версии QuickReport (5.0.2) на новых машинах, программа не работала, выдавая ошибку: "Свойство PreviewLeft не существует". Ошибка возникала при открытии формы с QuickReport и останавливалась в методе TCustomQuickRep.Create или TCustomQuickRep.SetBandValues.
Причиной проблемы, скорее всего, является несовместимость версии QuickReport на новых машинах с описанием компонента в DFM, созданным с помощью более новой версии. В этом случае новое свойство PreviewLeft присутствует в версии компонента, используемой при разработке, но отсутствует в более старой версии, установленной на новых машинах.
Для устранения этой проблемы пользователь может:
Убедиться, что на всех машинах установлена одинаковая версия QuickReport.
Если свойство PreviewLeft не является критичным для работы отчета, его можно безопасно удалить из DFM, чтобы избежать ошибки. Для этого можно использовать инструмент, такой как DFMcleaner из пакета JVCL.
Если свойство необходимо, но проблема сохраняется, пользователь может связаться с разработчиком QuickReport для получения дополнительной информации о версии, в которой было введено это свойство, и о том, как его правильно использовать.
Пример кода на Object Pascal (Delphi) для удаления свойства из DFM с помощью DFMcleaner:
uses
JvComponentEditor, JvComponentEditorUtils, JvComponentEditorForms;
procedure RemovePreviewLeftProperty(Component: TComponent);
begin
if Component is TQuickRep then
Component.Components[0].RemoveProperty('PreviewLeft');
end;
procedure FixQuickRepForms;
var
Form: TForm;
begin
for Form in Application.Forms do
if Form is TForm then
TComponentEditorUtils.FixComponent(Form, RemovePreviewLeftProperty);
end;
FixQuickRepForms;
Этот код ищет все формы в приложении, которые содержат QuickReport, и удаляет свойство PreviewLeft из компонента QuickReport на этих формах. После этого ошибка "Свойство PreviewLeft не существует" больше не должна возникать при открытии форм с отчетами на новых машинах.
'Устранение ошибки 'Свойство PreviewLeft не существует' в QuickReport 5 при генерации отчетов на новых машинах'.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS