Бизнес-объект в качестве универсального источника

Обсуждение Stimulsoft Reports.NET
Наталья
Сообщения: 110
Зарегистрирован: 19 фев 2009, 06:37

Re: Бизнес-объект в качестве универсального источника

Сообщение Наталья »

Добрый день.

Во вложении исходники проекта Stimulsoft.Report.DotConnectUniversal и текстовый лог процесса сборки.
На сегодня обновили компонент Stimulsoft.Report до версии 2015.3.
При сборке проекта Stimulsoft.Report.DotConnectUniversal возникла проблема, которую удалось решить изменением:

Код: Выделить всё

--- C:/Users/AKR/AppData/Local/Temp/StiDotConnectUniversalDatabase.cs-revBASE.svn001.tmp.cs Пн сен  9 17:15:57 2013
+++ D:/Repository/mvp/trunk/source/Stimulsoft.Report.DotConnectUniversal/StiDotConnectUniversalDatabase.cs Пт дек  4 15:46:48 2015
@@ -85 +85 @@ namespace Stimulsoft.Report.Dictionary
-        public override DialogResult Edit(bool newDatabase)
+        public DialogResult Edit(bool newDatabase)
т.е. удалением override (на сколько это критичнео не известно)

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

Заранее спасибо.

Участок кода где возникает ошибка при сбрке:

Код: Выделить всё

            StiConfig.Services.Add(new Stimulsoft.Report.Dictionary.StiDotConnectUniversalAdapterService());
            StiConfig.Services.Add(new Stimulsoft.Report.Dictionary.StiDotConnectUniversalDatabase());
...

Код: Выделить всё

                    if (db is StiDotConnectUniversalDatabase)
                        ((StiDotConnectUniversalDatabase)_report.Dictionary.Databases["Connection"]).ConnectionString = connectionString.Replace("provider=SqlClient", "provider=SQL Server");   
Текст ошибки:
“Тип "Stimulsoft.Report.Dictionary.StiDotConnectUniversalAdapterService" существует как в "c:\Program Files (x86)\Stimulsoft Reports.Net 2015.3\Bin\Stimulsoft.Report.dll", так и в "d:\Repository\mvp\trunk\release\Energomera\Cenergo\External\Stimulsoft.Report.DotConnectUniversal.dll"
Вложения
Stimulsoft.Report.DotConnectUniversal.zip
(19.29 КБ) 194 скачивания
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: Бизнес-объект в качестве универсального источника

Сообщение Aleksey »

Здравствуйте,

В последниях версиях (начиная с билдов после релиза 2015.2) было сделано много оптимизаций и изменений по работе с данными. В последней версии все дополнтельные датаадаптеры, включая DotConnectUniversal, были включены непосредственно в продукт. На данный момент, нет необходимости их отдельно компилировать и подключать, достаточно подключить или скопировать в папку с дизайнером только необходимые файлы самого коннектора - Devart.Data, Devart.Data.Universal ...
Так же были переработаны методы по работе с конфигурацией. В текущем релизе дополнительные сервисы подключаются через StiOptions:
StiOptions.Services.Databases.Add(new MyDotConnectUniversalDatabase());
StiOptions.Services.DataAdapters.Add(new MyDotConnectUniversalAdapterService());

Спасибо.
Аватара пользователя
AKR
Сообщения: 2
Зарегистрирован: 04 дек 2015, 17:01
Контактная информация:

Re: Бизнес-объект в качестве универсального источника

Сообщение AKR »

Спасибо, проблема со сборкой нашего модуля решилась, удалением ссылки на отдельную сборку Stimulsoft.Report.DotConnectUniversal, как Вы и рекомендовали.

Но теперь в дизайнер не передаётся подключение.
Часть кода:

Код: Выделить всё

        void _view_btnDesignerReport(object sender, BeforeExpandNodeEventArgs e)
        {
            StiConfig.Services.Add(new Stimulsoft.Report.Dictionary.StiDotConnectUniversalAdapterService());
            StiConfig.Services.Add(new Stimulsoft.Report.Dictionary.StiDotConnectUniversalDatabase());
            string connectionString =  "provider=" + DataSource.GetProviderPrefix() + ";" + DataSource.GetConnectionString(); //строка с паролем

            _report.Load(e.PathNode);

            foreach (var db in _report.Dictionary.Databases.Items)
                {
                    if (db is StiDotConnectUniversalDatabase)
                        ((StiDotConnectUniversalDatabase)_report.Dictionary.Databases["Connection"]).ConnectionString = connectionString.Replace("provider=SqlClient", "provider=SQL Server");   
                }
            _report.Design(); 
        }
Судя по всему сама строка подключения передаётся (Report-Connection-Свойства-2.png) но подключение в дизайнере отсутствует.
Кроме того при открытии свойства подключения появляется сообщение о том что не найдена сборка Universal (Report-Connection-Свойства-1.png и Report-Connection-Свойства-2.png), при том что она точно есть (установлен в системе лицензионный dotConnect Universal Professional) и включена в связи к проекту (VS-Code.png)
И ещё при добавлении нового подключения подозрительна много вариантов dotConnect (Report-Источник данных-Добавление нового.png)

И не совсем понятно что с этими опциями:

Код: Выделить всё

StiOptions.Services.Databases.Add(new MyDotConnectUniversalDatabase());
StiOptions.Services.DataAdapters.Add(new MyDotConnectUniversalAdapterService());
Они обязательны? Можно пример их применения?

Во вложении архив со всеми упомянутыми скриншотами и отчётом из окна ошибки компонента.
Вложения
Stimulsoft.Report.DotConnectUniversal-Exception.zip
(718.37 КБ) 168 скачиваний
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: Бизнес-объект в качестве универсального источника

Сообщение Aleksey »

Здравствуйте,

Пожалуйста, проверьте что у вас подключены необходимые сборки самого DevArt конектора - Devart.Data.dll, Devart.Data.Universal.dll
Так же следующий код не нужен

Код: Выделить всё

StiConfig.Services.Add(new Stimulsoft.Report.Dictionary.StiDotConnectUniversalAdapterService());
StiConfig.Services.Add(new Stimulsoft.Report.Dictionary.StiDotConnectUniversalDatabase());
как я уже писал, мы отказались от StiConfig.

Данный кодом используется вместо StiConfig.Services.Add(...), если вам необходим добавить какие-то дополнительные сервисы, либо использовать свой измененный DotConnectUniversal адаптер.

Код: Выделить всё

StiOptions.Services.Databases.Add(new MyDotConnectUniversalDatabase());
StiOptions.Services.DataAdapters.Add(new MyDotConnectUniversalAdapterService());
Также, пожалуйста, попробуйте использовать StiConfig.Reset(), StiConfig.Restore() методы, чтобы избавиться от дополнительных вариантов подключения.

Спасибо.
Наталья
Сообщения: 110
Зарегистрирован: 19 фев 2009, 06:37

Re: Бизнес-объект в качестве универсального источника

Сообщение Наталья »

Добрый день.
Спасибо за помощь.
Ошибка использования Universal(dotConnect) все равно присутствует.
Использую компоненты Devart LinqConnect Professional Version 4.5.881, dotConnect Universal Professional Version 3.60.1040.
Пробую создать источник данных Universal(dotConnect), используя демо пример.
Посмотрите, пожалуйста, во вложении скриншоты этапов создания данного источника и возникающие при этом ошибки.

Спасибо.
Вложения
Создание UniversalDotConnect.rar
(545.71 КБ) 171 скачивание
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: Бизнес-объект в качестве универсального источника

Сообщение Aleksey »

Здравствуйте,

Пожалуйста, попробуйте скопировать файлы коннектора Devart.Data.dll, Devart.Data.Universal.dll .. в папку с дизайнером и сообщите о результате.

Спасибо.
Наталья
Сообщения: 110
Зарегистрирован: 19 фев 2009, 06:37

Re: Бизнес-объект в качестве универсального источника

Сообщение Наталья »

Добрый день.

Копирование библиотек в папку с дизайнером помогло решить проблему с не обнаружением в системе Devart.Data.Universal.dll.
Но, во первых остаётся не ясным почему сборка Devart.Data.Universal.dll не обнаруживается из GAC при том что она там есть и другие приложения её использующие прекрасно её видят.
Кроме того в нашем проекте не принято копировать все сторонние сборки в папку с самим приложением. Инсталляционный пакет нашего приложения при установки регистрирует в GAC весь набор используемых сторонних компонентов, а это Devart, DevExpress, StimulRepot и другие. Поэтому копирование в корень приложения библиотеки Devart.Data.Universal.dll неприемлемо.

Вместе стем обнаружили ещё две проблемы.
1) Форма редактирования подключения не инициализируется из строки подключения (001_не заполнена форма подключения из строки подключения.png).
2) При попытки открыть список DataSource окне подключения появляется необработанное исключение (002_при выборе DataSource.png).

Архив с упомянутыми изображениями во вложении.

Помогите пожалуйста устранить проблемы включая необходимость копировать сборку в корень приложения.
Заранее спасибо большое.
Вложения
ошибки.rar
(126.85 КБ) 168 скачиваний
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: Бизнес-объект в качестве универсального источника

Сообщение Aleksey »

Здравствуйте,

Не смогли воспроизвести проблему.
Так же уточните, пожалуйста, вы запускаете дизайнер из своего приложения или designer.exe

Спасибо.
Вложения
Capture.PNG
Capture.PNG (118.62 КБ) 4929 просмотров
Аватара пользователя
AKR
Сообщения: 2
Зарегистрирован: 04 дек 2015, 17:01
Контактная информация:

Re: Бизнес-объект в качестве универсального источника

Сообщение AKR »

Дизайнер запускаем отдельно designer.exe и в отсутствии рядом файлов сборки Devart.Data.Universal.dll получаем проблему.
Своё приложение тоже запускаем отдельно и ситуация аналогичная.
Мы могли бы предоставить удалённый доступ по TeamViewer 10 и всё продемонстрировать.
Если вы готовы подключится то просьба написать в личку, или на почту akr[dog]energomera.ru, и мы вам предоставим данные для подключения.
Думаю так будет быстрее всего проработать проблему.
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: Бизнес-объект в качестве универсального источника

Сообщение Aleksey »

Здравствуйте,

Ошибку с необработанным исключением при раскрытии DataSource исправили.
При запуске дизайнере из вашего приложения - достаточно подключить сборки Devart-а из GAC-а. При использовании стандартного designer.exe необходимо копировать сборки Devart-а в папку с дизайнером либо, как вариант, вы можете создать приложение, которое будет просто запускать дизайнер и подключить необходимые сборки из GAC-а и использовать его вместо designer.exe

Спасибо.

Спасибо.
Ответить