Страница 1 из 2
Добавление ссылки на сборку динамически
Добавлено: 19 дек 2012, 16:09
Наталья
Здравствуйте.
1.У меня есть модуль, в котором создается отчет, регистрируется для него источник данных (RegData), сохраняется и отправляется на просмотр. Необходимо здесь же при создании отчета добавить несколько ссылок на сборки, но как я поняла сылки можно добавить только на те сборки, которые в GAC? А можно ли добавить ссылку на сборку, лежащую в проекте моего модуля? Я пыталась подключить, но при запуске отчета выводится ошибка, что невозможно загрузить сборку.
Спасибо.
Re: Добавление ссылки на сборку динамически
Добавлено: 20 дек 2012, 12:36
HighAley
Здравствуйте.
Мы не совсем поняли вашу проблему. Не могли бы вы описать её более подробно и желательно с примерами.
Спасибо.
Re: Добавление ссылки на сборку динамически
Добавлено: 24 дек 2012, 17:05
Наталья
Здравствуйте.
Отправляю тестовый проект.
В комментариях отмечены вопросы.
Спасибо.
Re: Добавление ссылки на сборку динамически
Добавлено: 27 дек 2012, 11:20
Aleksey
Здравствуйте Наталья,
В данном случае, вы можете попробовать использовать следующий код:
report.RegBusinessObject("RegData", _dataContext);
report.Dictionary.SynchronizeBusinessObjects(2);
но так как _dataContext содержит не только информацию о таблицах, будет подгружено много лишней информации. Поэтому более правильно, в данном случае, регистрировать таблицы по отдельности.
По поводу ceDataSource.Model.Dll, данная сборка находся в папке с проектом, а должна находиться в папке Bin с выполняемым (.exe) файлом и остальными сборками.
Спасибо.
Re: Добавление ссылки на сборку динамически
Добавлено: 27 дек 2012, 12:47
mbondarev
мы добавляем ссылки на сборки следующим кодом:
Код: Выделить всё
List<String> refs = new List<string>(report.ReferencedAssemblies);
if (!refs.Contains("Axsel.Kernel.dll"))
{
refs.Add("Axsel.Kernel.dll");
}
report.ReferencedAssemblies = refs.ToArray();
при печати отчет ищет в текущем каталоге нужные файлы и подгружает их самостоятельно
Re: Добавление ссылки на сборку динамически
Добавлено: 27 дек 2012, 17:48
HighAley
Здравствуйте.
Спасибо за пример.
Re: Добавление ссылки на сборку динамически
Добавлено: 29 дек 2012, 10:07
Наталья
mbondarev, спасибо за пример, получилось.
У меня в проекте при нажатии на кнопку "Создание отчета" выполняется код:
Код: Выделить всё
_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();
Можно ли после создания отчета открыть его и создать из таблиц источника данных "Cenergo" запрос?
Спасибо.
Re: Добавление ссылки на сборку динамически
Добавлено: 29 дек 2012, 10:44
Aleksey
Здравсвуйте,
Извините, возможно не совсем поняли вопрос, не могли бы вы уточнить.
Спасибо.
Re: Добавление ссылки на сборку динамически
Добавлено: 09 янв 2013, 08:30
Наталья
Здравствуйте.
Посмотрите, пожалуйста, вложение (в нем скрин, описывающий вопрос).
Re: Добавление ссылки на сборку динамически
Добавлено: 09 янв 2013, 11:02
Aleksey
Здравствуйте,
Попробуйте использовать следующий код:
Код: Выделить всё
((StiSqlSource)report.Dictionary.DataSources["DataSourceName"]).SqlCommand = yourSqlCommand;
Спасибо.