Здравствуйте.
Возникла проблема с производительностью дизайнера из-за сложной структуры бизнес-объектов.
Периодически возникает ошибка OutOfMemory (приложение занимает до 700 Мб RAM).
Лицензия8/Дело - это коллекция, поэтому она не раскрывается как дочернее свойство объекта Лицензия8. С этим все понятно.
Но есть множество других свойств, например СтатусЛицензии, которые отображаются как в поддереве Лицензия8, так и отдельно, вместе со всеми дочерними свойствами.
Из-за такого механизма в источнике данных оказывается очень много таблиц. Нельзя ли выбирать, какие данные должны фигурировать в виде отдельных таблиц, а какие нет?
Например, в моем случае, кроме коллекций (Лицензия8/Дело) все остальные объекты достаточно отображать в поддереве Лицензии.
В просмотре "Словаря" есть возможность удалить неиспользуемые источники и можно удалить вручную ненужные источники. Есть ли программный способ выполнения этой операции?
Business Objects -> DataSet
Business Objects -> DataSet
Здравствуйте,
report.Dictionary.DataSources.Remove(report.Dictionary.DataSources["Name"]);
Также потребуется отключить автосинхронизацию словаря данных:
Спасибо.
В свое время была система работы с бизнес-объектами напрямую, но потом от нее отказались из-за некоторых ограничений (не всегда можно сортировать, невсегда можно фильтровать, проблемы с мастер-детайл отчетами, связи и т.д.).Возникла проблема с производительностью дизайнера из-за сложной структуры бизнес-объектов.
Периодически возникает ошибка OutOfMemory (приложение занимает до 700 Мб RAM).
Лицензия8/Дело - это коллекция, поэтому она не раскрывается как дочернее свойство объекта Лицензия8. С этим все понятно.
Но есть множество других свойств, например СтатусЛицензии, которые отображаются как в поддереве Лицензия8, так и отдельно, вместе со всеми дочерними свойствами.
Из-за такого механизма в источнике данных оказывается очень много таблиц. Нельзя ли выбирать, какие данные должны фигурировать в виде отдельных таблиц, а какие нет?
Можно использовать атрибут [Browsable(false)] для свойств, которые не нужно трогать.Например, в моем случае, кроме коллекций (Лицензия8/Дело) все остальные объекты достаточно отображать в поддереве Лицензии.
Можно так:В просмотре "Словаря" есть возможность удалить неиспользуемые источники и можно удалить вручную ненужные источники. Есть ли программный способ выполнения этой операции?
report.Dictionary.DataSources.Remove(report.Dictionary.DataSources["Name"]);
Также потребуется отключить автосинхронизацию словаря данных:
Код: Выделить всё
StiOptions.Dictionary.AutoSynchronize = StiAutoSynchronizeMode.None;
Business Objects -> DataSet
Спасибо! С Dictionary разберусь.
Речь идет об атрибуте Browsable?Можно использовать атрибут для свойств, которые не нужно трогать.
Business Objects -> DataSet
Здравствуйте,
Да именно. Извините взял этот атрибут в квадратные скобки и редактор форума посчитал это метотегом.
Спасибо.
Да именно. Извините взял этот атрибут в квадратные скобки и редактор форума посчитал это метотегом.
Спасибо.