Не загружаются настройки грида
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) (→См. также) |
||
| Строка 31: | Строка 31: | ||
== См. также == | == См. также == | ||
| − | Обсуждение проблемы {{Issue_Template|num= | + | Обсуждение проблемы {{Issue_Template|num=2318}}. |
[[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 2318.