AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.12.2004, 18:14   #1  
Kirvisniemi is offline
Kirvisniemi
Moderator
 
342 / 13 (1) ++
Регистрация: 21.12.2004
Возникла проблема с активированием определенной вкладки (tab control) на форме при открытии.

До поры до времени эта проблема решалась явным активированием любого контрола на нужной вкладке (навижн сам переключал вкладку).

С тех как на одну из вкладок поместили сабформу, содержащую таблицу, при открытии формы всегда открывает эта вкладка и фокус устанавливается на пустую строку - типа готов для ввода.

Вопрос: как активировать нужную мне вкладку при открытии?

После танцев с бубном созрел (и даже заработал) вариант с таймером (ставится таймер на 1мс, в OnTimer пишется
Код:
IF Not Flag THEN BEGIN
   CurrForm.ElementNaVkladke1.ACTIVATE
   Flag := TRUE;
END;
) - но при открытии формы все равно видна вспышка ненужной мне вкладки.

Есть идеи?
Старый 22.12.2004, 09:13   #2  
Rokhay is offline
Rokhay
Участник
 
154 / 15 (1) ++
Регистрация: 02.10.2003
Адрес: Ебург
Попробовал создать такую форму. Все нормально. Открывается нужная закладка.

А подобным образом форма стала себя вести, когда в субформе в явном виде вызывалась активация.

Посмотрите, чего там в субформе хорошего происходит.
Старый 22.12.2004, 09:47   #3  
rootadmin is offline
rootadmin
Участник
Аватар для rootadmin
 
224 / 10 (1) +
Регистрация: 25.03.2003
Адрес: Москва
Самый простой способ, хоть и не совсем правльный
1) Перейти на нужную закладку
2) Выбрать контрол, на который хочешь установить фокус
3) Удалить его
4) Поставить заново (не забыть скопировать код из всяких событий, если он есть конечно).
__________________
С уваженем,
rootadmin
Старый 22.12.2004, 10:20   #4  
Rokhay is offline
Rokhay
Участник
 
154 / 15 (1) ++
Регистрация: 02.10.2003
Адрес: Ебург
Нефига себе самый простой. Лишь бы попрограммить ))
Старый 22.12.2004, 11:07   #5  
rootadmin is offline
rootadmin
Участник
Аватар для rootadmin
 
224 / 10 (1) +
Регистрация: 25.03.2003
Адрес: Москва
Как раз тут программить ничего и не надо. Необходимо знать операции копирования и вставки из буфера. Да как контролы вытаскивать на форму...
__________________
С уваженем,
rootadmin
Старый 22.12.2004, 11:44   #6  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
А DelayedInsert у формы, которая сидит в сабформе, если поменять - не поможет?
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 22.12.2004, 11:47   #7  
rootadmin is offline
rootadmin
Участник
Аватар для rootadmin
 
224 / 10 (1) +
Регистрация: 25.03.2003
Адрес: Москва
DelayedInsert - это из другой песни, насколько я понимаю... Не должен помочь.
__________________
С уваженем,
rootadmin
Старый 22.12.2004, 12:21   #8  
Likefire is offline
Likefire
Заноза в заднице
Аватар для Likefire
MCBMSS
Лучший по профессии 2009
 
547 / 50 (3) ++++
Регистрация: 22.10.2007
Адрес: Москва
Записей в блоге: 1
Респект автору! У нас с коллегой возникла такая же промблемма. Только ещё могу добавить, что когда в сабформе-табличке на энной вкладке есть записи - вся форма открывается так как нужно. А с проблемой справиться удаётся только, если сабформу сделать недоступной для редактирования, а такой вариант нам совсем не подходит. Редактировать сабформу нужно!
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков!
Старый 22.12.2004, 12:28   #9  
Likefire is offline
Likefire
Заноза в заднице
Аватар для Likefire
MCBMSS
Лучший по профессии 2009
 
547 / 50 (3) ++++
Регистрация: 22.10.2007
Адрес: Москва
Записей в блоге: 1
Да, DelayedInsert мы пробовали. Эффект конечно есть, но с записями там был какой-то казус, сейчас точно не помню. Пришлось вернуть его в исходное состояние....
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков!
Старый 22.12.2004, 12:33   #10  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Вспомнил, откуда у меня мысль про DelayedInsert.
Сам же на Ахфоруме и задавал вопрос про подобную проблему (не знаю, насколько подобную).
http://www.axforum.ru/forums/showthread.ph...17355#post17355
Память у меня дырявая, толком не помню, что и как было, но, судя по ответам, помогло
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 22.12.2004, 13:13   #11  
rootadmin is offline
rootadmin
Участник
Аватар для rootadmin
 
224 / 10 (1) +
Регистрация: 25.03.2003
Адрес: Москва
Цитата:
Сообщение от Likefire
Только ещё могу добавить, что когда в сабформе-табличке на энной вкладке есть записи - вся форма открывается так как нужно.
А ведь и правда...

Тогда могу порекоменодвать тот же код
<div class='CALtop'>C/AL</div><div class='CAL'>IF Not Flag THEN BEGIN
 CurrForm.ElementNaVkladke1.ACTIVATE
 Flag := TRUE;
END;</div>

Поставить на OnActivate субформы. Но то же самое получается по идее...
__________________
С уваженем,
rootadmin
Старый 22.12.2004, 15:29   #12  
Likefire is offline
Likefire
Заноза в заднице
Аватар для Likefire
MCBMSS
Лучший по профессии 2009
 
547 / 50 (3) ++++
Регистрация: 22.10.2007
Адрес: Москва
Записей в блоге: 1
Не прокатывают подобные варианты... Ещё идеи есть у кого?
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков!
Старый 22.12.2004, 16:24   #13  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Тупой вариант:
форму, которая сидит в сабформе, сделать нередактируемой, рядом с субформой нарисовать кнопку с кодом
CurrForm.subform.FORM.EDITABLE := TRUE;

А что с DelayedInsert'ом все-таки не так?
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 22.12.2004, 17:46   #14  
Likefire is offline
Likefire
Заноза в заднице
Аватар для Likefire
MCBMSS
Лучший по профессии 2009
 
547 / 50 (3) ++++
Регистрация: 22.10.2007
Адрес: Москва
Записей в блоге: 1
Да вроде всё так! Что-то я сейчас уже не вспомню, что там было не так... Точно: установил DelayedInsert = Да непосредственно в сабформе и активация происходит именно на том контроле, который в свойствах формы указан как ActivateOnOpen. А какие тогда вообще могут быть проблемы с сабформой в таком случае, если одно из полей, выведенных в сабформе - ключевое? Не будет ли при открытии формы вставляться в соответствующую сабформе таблицу, строка с пустым значением? Скорее всего нет, потому что не заполнено ключевое поле в таком случае. Вообще: DelayedInsert что даёт. Из хэлпа можно понять, что данное свойство просто-напросто инициализирует новую запись в таблице, либо после заполнения ключевого поля (Нет), либо после выхода из строки (Да)... Всё?
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков!
Старый 17.10.2014, 12:17   #15  
ariesd is offline
ariesd
Участник
 
4 / 10 (1) +
Регистрация: 02.11.2012
Эти все способы не работают. Могу сказать 100% получится если саму сабформу сделать Editable=false, а на OpenForm главной вызвать функцию в сабформе
например

SetEditableForm()
CurrForm.Editable(true);

На главной на
OnOpenForm()
CurrForm.SubForm1.FORM.SetEditableForm;
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:13.