Цитата:
Сообщение от
cherv
Просто на форме есть несколько повторяющихся датасурсов (несколько гридов на разных закладках), хотелось для повышения производительности убрать некоторые и динамически менять связи между ними (форма грузится очень долго). Понятно, что форму можно разбить на несколько мелких, но хотелось опробовать другие варианты и по возможности оставить все же одну.
Блокируй заполнение тех DataSource которые не используются при загрузке формы.
Для этого, если эти дополнительные DataSource - "цепочки" связанных таблиц в событии DataSource.init() главной таблицы цепочки напиши
PHP код:
// DataSource.init() главной таблицы
if (данный DataSource НЕ используется)
this.autoSearch(false);
super()
Кроме того, заблокируй выполнение событий ExecuteQuery() для не используемых DataSource
PHP код:
// DataSource.executeQuery()
if (данный DataSource используется)
super()
Т.е. super() выполняется только если данный DataSource нужен для работы
В результате, по тем DataSource которые не нужны в данный момент не будет выполняться никаких запросов к серверу. Как следствие - уменьшается время открытия формы