Не загружаются настройки грида

Материал из GedeminWiki
Перейти к: навигация, поиск

Данная проблема может возникнуть в случае создания формы из скрипта с помощью объекта Designer, если тип формы и присваиваемое имя различны, например:

  set frm = Designer.CreateObject(Application, "usrf_gdv_BuyingBook", "gdv_BuyingBook")

Пояснение

Загрузка настроек гридов обычно делается в событии OnLoadSettingsAfterCreate. Это событие срабатывает во время создания формы, НО до присвоения ему указанного имени. То есть при срабатывании события форма имеет имя равное типу формы.

  frm.Name = "usrf_gdv_BuyingBook"

Путь в хранилище для сохранения настроек грида строится по цепочке имен компонентов владельцев грида, в нашем случае форма является владельцем грида поэтому путь имеет вид:

 \usrf_gdv_BuyingBook(Tgdv_frmG)\usrg_gsIBGrid1(TgsIBGrid)\data

И настройки грида читаются по этому пути. Но после создания форме присваивается имя "gdv_BuyingBook", и при сохранении настроек грида будет использовано уже это имя, следовательно настройки сохранятся по новому пути:

 \gdv_BuyingBook(Tgdv_frmG)\usrg_gsIBGrid1(TgsIBGrid)\data

Сохраненные здесь настройки никогда не будут прочитаны.

Действия

Чтобы избежать вышеописанных проблем можно:

1) создавать форму без указания имени, тогда имя всегда будет равно типу

  set frm = Designer.CreateObject(Application, "usrf_gdv_BuyingBook", "")

2) создавать форму с именем равным типу

  set frm = Designer.CreateObject(Application, "usrf_gdv_BuyingBook", "usrf_gdv_BuyingBook")

См. также

Обсуждение проблемы Issue 2318.

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты