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

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: «Данная проблема может возникнуть в случае создания формы из скрипта с помощью объекта Design…»)
 
Строка 28: Строка 28:
 
   set frm = Designer.CreateObject(Application, "usrf_gdv_BuyingBook", "usrf_gdv_BuyingBook")
 
   set frm = Designer.CreateObject(Application, "usrf_gdv_BuyingBook", "usrf_gdv_BuyingBook")
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
== См. также ==
 +
 +
Обсуждение проблемы {{Issue_Template|num=2257}}.
  
 
[[Category:Вопросы и ответы (для разработчика)]]
 
[[Category:Вопросы и ответы (для разработчика)]]

Версия 15:19, 8 февраля 2011

Данная проблема может возникнуть в случае создания формы из скрипта с помощью объекта 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 2257.

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

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