Добавление ссылки на сборку динамически
Добавление ссылки на сборку динамически
Здравствуйте.
1.У меня есть модуль, в котором создается отчет, регистрируется для него источник данных (RegData), сохраняется и отправляется на просмотр. Необходимо здесь же при создании отчета добавить несколько ссылок на сборки, но как я поняла сылки можно добавить только на те сборки, которые в GAC? А можно ли добавить ссылку на сборку, лежащую в проекте моего модуля? Я пыталась подключить, но при запуске отчета выводится ошибка, что невозможно загрузить сборку.
Спасибо.
1.У меня есть модуль, в котором создается отчет, регистрируется для него источник данных (RegData), сохраняется и отправляется на просмотр. Необходимо здесь же при создании отчета добавить несколько ссылок на сборки, но как я поняла сылки можно добавить только на те сборки, которые в GAC? А можно ли добавить ссылку на сборку, лежащую в проекте моего модуля? Я пыталась подключить, но при запуске отчета выводится ошибка, что невозможно загрузить сборку.
Спасибо.
Re: Добавление ссылки на сборку динамически
Здравствуйте.
Мы не совсем поняли вашу проблему. Не могли бы вы описать её более подробно и желательно с примерами.
Спасибо.
Мы не совсем поняли вашу проблему. Не могли бы вы описать её более подробно и желательно с примерами.
Спасибо.
Re: Добавление ссылки на сборку динамически
Здравствуйте.
Отправляю тестовый проект.
В комментариях отмечены вопросы.
Спасибо.
Отправляю тестовый проект.
В комментариях отмечены вопросы.
Спасибо.
- Вложения
-
- TestReportUniConnection.zip
- (2.25 МБ) 195 скачиваний
Re: Добавление ссылки на сборку динамически
Здравствуйте Наталья,
В данном случае, вы можете попробовать использовать следующий код:
report.RegBusinessObject("RegData", _dataContext);
report.Dictionary.SynchronizeBusinessObjects(2);
но так как _dataContext содержит не только информацию о таблицах, будет подгружено много лишней информации. Поэтому более правильно, в данном случае, регистрировать таблицы по отдельности.
По поводу ceDataSource.Model.Dll, данная сборка находся в папке с проектом, а должна находиться в папке Bin с выполняемым (.exe) файлом и остальными сборками.
Спасибо.
В данном случае, вы можете попробовать использовать следующий код:
report.RegBusinessObject("RegData", _dataContext);
report.Dictionary.SynchronizeBusinessObjects(2);
но так как _dataContext содержит не только информацию о таблицах, будет подгружено много лишней информации. Поэтому более правильно, в данном случае, регистрировать таблицы по отдельности.
По поводу ceDataSource.Model.Dll, данная сборка находся в папке с проектом, а должна находиться в папке Bin с выполняемым (.exe) файлом и остальными сборками.
Спасибо.
Re: Добавление ссылки на сборку динамически
мы добавляем ссылки на сборки следующим кодом:
при печати отчет ищет в текущем каталоге нужные файлы и подгружает их самостоятельно
Код: Выделить всё
List<String> refs = new List<string>(report.ReferencedAssemblies);
if (!refs.Contains("Axsel.Kernel.dll"))
{
refs.Add("Axsel.Kernel.dll");
}
report.ReferencedAssemblies = refs.ToArray();
Re: Добавление ссылки на сборку динамически
Здравствуйте.
Спасибо за пример.
Спасибо за пример.
Re: Добавление ссылки на сборку динамически
mbondarev, спасибо за пример, получилось.
У меня в проекте при нажатии на кнопку "Создание отчета" выполняется код:
При нажатии на кнопку "Просмотреть отчет" код:
Можно ли после создания отчета открыть его и создать из таблиц источника данных "Cenergo" запрос?
Спасибо.
У меня в проекте при нажатии на кнопку "Создание отчета" выполняется код:
Код: Выделить всё
_report.Dictionary.Databases.Clear();
_dataContext = (ceDataContext)DataSource.GetDataContext();
_report.RegBusinessObject("Cenergo","Customers", _dataContext.Customers);
_report.RegBusinessObject("Cenergo", "GetMethods", _dataContext.GetMethods);
_report.RegBusinessObject("Cenergo", "Meters", _dataContext.Meters);
_report.RegBusinessObject("Cenergo", "PhysTypes", _dataContext.PhysTypes);
_report.RegBusinessObject("Cenergo", "ProfilePeriods", _dataContext.ProfilePeriods);
_report.RegBusinessObject("Cenergo", "ProfileTypes", _dataContext.ProfileTypes);
_report.RegBusinessObject("Cenergo", "Tariffs", _dataContext.Tariffs);
_report.RegBusinessObject("Cenergo", "ValueProperties", _dataContext.ValueProperties);
_report.Save(parentPath + "//" + e.FileName);
Код: Выделить всё
rep.Load(tp.LastNode.ToString());
rep.Design();
Спасибо.
Re: Добавление ссылки на сборку динамически
Здравсвуйте,
Извините, возможно не совсем поняли вопрос, не могли бы вы уточнить.
Спасибо.
Извините, возможно не совсем поняли вопрос, не могли бы вы уточнить.
Спасибо.
Re: Добавление ссылки на сборку динамически
Здравствуйте.
Посмотрите, пожалуйста, вложение (в нем скрин, описывающий вопрос).
Посмотрите, пожалуйста, вложение (в нем скрин, описывающий вопрос).
- Вложения
-
- report.png (95.83 КБ) 4363 просмотра
Re: Добавление ссылки на сборку динамически
Здравствуйте,
Попробуйте использовать следующий код:
Спасибо.
Попробуйте использовать следующий код:
Код: Выделить всё
((StiSqlSource)report.Dictionary.DataSources["DataSourceName"]).SqlCommand = yourSqlCommand;