Ошибка обновления ActiveReports - PullRequest
       10

Ошибка обновления ActiveReports

0 голосов
/ 01 октября 2009

Я только что обновил ActiveReports 2.0 до 3.0. Все rpx файлы были преобразованы в * .vb файлы. Проект ActiveReports имеет следующую иерархию классов:

*. VB с конструктором -> PrintBase.vb -> ActiveReport3

Когда я открыл любой из файлов * .vb, я получил эту ошибку:

Невозможно отобразить конструктор для этого файла, поскольку ни один из классов внутри него не может быть спроектирован. Разработчик проверил следующие классы в файле: xxx --- Базовый класс PrintBase не может быть загружен. Убедитесь, что на сборку ссылались и что все проекты построены.

стек вызовов: в System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.EnsureDocument (менеджер IDesignerSerializationManager) в System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad (менеджер IDesignerSerializationManager) в Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad (IDesignerSerializationManager serializationManager) в System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad (хост IDesignerLoaderHost)

Потом я прошел через PrintBase.vb. Не было ошибки компиляции. Затем я изменил один из файлов * .vb так:

Hello.vb -> ActiveReport3

Дизайнер работал без проблем. PrintBase имеет довольно много кода. Чтобы упростить отладку, я создал новый файл .vb с именем BasePrint, который наследуется от ActiveReport3. Итак, иерархия вернулась к:

Hello.vb -> BasePrint -> ActiveReport3

Тогда я снова увидел ту же ошибку выше. Похоже, что дизайнер AR3 не позволяет файлам .vb наследоваться от базового класса в соответствии с моей отладкой. Но я не совсем уверен. Кстати, проект ActiveReports - это vb.net. Есть другие проекты на C # в рамках проекта VS 2008. Помогает ли смешивание проектов VB.NET и C # что-либо сделать в процессе миграции / обновления?

Спасибо.

1 Ответ

0 голосов
/ 01 октября 2009

Действительно, наследование в стиле класса не поддерживалось утилитой обновления в конструкторе ActiveReports 3.x. Однако после завершения обновления у вас должна быть возможность выставить базовый класс плохим (как вы описали), и дизайнер должен спокойно его игнорировать. Если у вас по-прежнему возникают проблемы, попробуйте закрыть проект, выполните очистку (удалите старые сборки, которые могли относиться к старому классу PrintBase) и закройте Visual Studio и снова откройте его, чтобы начать все сначала.

Дополнительную информацию об обновлении отчетов с ActiveReports 2.x до ActiveReports 3.x можно найти на следующей странице: текст ссылки

Тем не менее, похоже, что в этом случае вы используете legitince для совместного использования некоторых служебных методов и, возможно, некоторого состояния (например, в полях уровня класса, возможно). Для этого лучше всего, если ваши отчеты наследуются непосредственно от ActiveReport3 и вы используете «BasePrint» в качестве своего рода служебного класса, в котором ваши отчеты вызывают функции. Обычно это не имеет недостатка, за исключением того, что нужно префиксировать вызовы метода именем имени соответствующее имя экземпляра / переменной BasePrint, и это упрощает работу с конструктором ActiveReports в описываемом вами сценарии.

Однако ActiveReports поддерживает визуальное наследование, которое позволяет базовому отчету совместно использовать элементы управления с производным отчетом. Более подробную информацию о том, как использовать эту функцию, можно найти в следующем месте: http://www.datadynamics.com/Help/ARNET3/ar3tskInheritance.html. Однако я хочу подчеркнуть, что это другой стиль наследования, чем вы используете, поэтому он может быть неприменим к тому, что вам нужно.

Кроме того, вы должны попытаться снова выполнить преобразование, не имея комбинированного решения с проектами на C # и VB. Я не знаю, что это проблема, но это, конечно, не самый распространенный способ использования конвертера, который может усложнить ситуацию.

Наконец, вы должны знать, что ActiveReports 6 теперь доступен, и вы можете попробовать эту версию.

Если у вас по-прежнему возникают проблемы, обратитесь в нашу службу поддержки по адресу support@grapecity.us.com или воспользуйтесь нашими общедоступными формами, в которых многие эксперты ActiveReports ежедневно следят за ними по следующим ссылкам:

http://www.datadynamics.com/forums/73/ShowForum.aspx - ActiveReports 3 Forum http://www.datadynamics.com/forums/82/ShowForum.aspx - Форум ActiveReports 6

Scott Willeke
GrapeCity / Data Dynamics
...