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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.03.2012, 14:50   #1  
Lapunder is offline
Lapunder
Участник
 
40 / 10 (1) +
Регистрация: 24.04.2008
Добрый день
Ситуация:
есть форма, на которой табконтроль с тремя вкладками. На каждой вкладке - субформа - ссылка на одну и ту же форму, только с разными фильтрами.
Имеется кнопень, которая запускает определенные расчеты в зависимости от того, на какой строчке субформы мы в данный момент находимся. Запуск процедуры стало быть производится непосредственно из самой субформы. Вызов процедуры идет по кнопке из основной формы и имеет следующий вид:
Код:
CurrForm.SubForm.FORM.WorkTime;
Как определить, какая вкладка в данный момент активна, дабы запусать эту процедуру именно под той вкладкой, на которой мы в данный момент находимся? Ибо если стоим на второй вкладке, а по кнопке срабатывает вышеозначенный код, который собственно говоря указывает на субформу с первой вкладки, получаем, что текущая запись берется с первой вкладки.
Старый 27.03.2012, 15:09   #2  
Alex Che is offline
Alex Che
Участник
 
74 / 10 (1) +
Регистрация: 04.04.2006
А как вы определяете вкладку, когда устанавливаете тот или иной фильтр на субформу?
Старый 27.03.2012, 15:23   #3  
Lapunder is offline
Lapunder
Участник
 
40 / 10 (1) +
Регистрация: 24.04.2008
Цитата:
Сообщение от Alex Che Посмотреть сообщение
А как вы определяете вкладку, когда устанавливаете тот или иной фильтр на субформу?
три вкладки - три субформы, в каждую загнан определенный фильтр. во время дизайна вкладки ж можно переключать
Старый 27.03.2012, 16:03   #4  
Alex Che is offline
Alex Che
Участник
 
74 / 10 (1) +
Регистрация: 04.04.2006
Цитата:
Сообщение от Lapunder Посмотреть сообщение
три вкладки - три субформы, в каждую загнан определенный фильтр. во время дизайна вкладки ж можно переключать
Так значит, это три разные субформы и различать нужно не вкладки, а субформы... у меня вроде где-то есть несколько субформ, посмотрю, как они идентифицируются в дизайнере.
Старый 27.03.2012, 16:25   #5  
Alex Che is offline
Alex Che
Участник
 
74 / 10 (1) +
Регистрация: 04.04.2006
Вкладки, по крайней мере в 3.7, не имеют идентификаторов. Субформам можно давать разные имена вместо тех, что по умолчанию, тогда (и только) они появляются в списке объектов. Но как вытащить оттуда RECORD и TABLEVIEW, я не нашёл. Хотел сделать на кнопке: SETTABLEVIEW(<таблица из субформы>).
Старый 27.03.2012, 16:29   #6  
Lapunder is offline
Lapunder
Участник
 
40 / 10 (1) +
Регистрация: 24.04.2008
Цитата:
Сообщение от Alex Che Посмотреть сообщение
Вкладки, по крайней мере в 3.7, не имеют идентификаторов. Субформам можно давать разные имена вместо тех, что по умолчанию, тогда (и только) они появляются в списке объектов. Но как вытащить оттуда RECORD и TABLEVIEW, я не нашёл. Хотел сделать на кнопке: SETTABLEVIEW(<таблица из субформы>).
в нав2009 что-то тоже не находится (

да, может и не принципиально, какая вкладка активна. тогда принципиально, на какой субформе фокус.
Старый 27.03.2012, 16:32   #7  
Alex Che is offline
Alex Che
Участник
 
74 / 10 (1) +
Регистрация: 04.04.2006
Единственное, что приходит в голову - сделать не одну кнопку на общем поле, а на каждой закладке одинаковые кнопки, тогда они должны брать каждая свою субформу (и, соответственно, фильтр?).
Старый 27.03.2012, 17:03   #8  
Lapunder is offline
Lapunder
Участник
 
40 / 10 (1) +
Регистрация: 24.04.2008
Цитата:
Сообщение от Alex Che Посмотреть сообщение
Единственное, что приходит в голову - сделать не одну кнопку на общем поле, а на каждой закладке одинаковые кнопки, тогда они должны брать каждая свою субформу (и, соответственно, фильтр?).
не очень удобный выход) ибо кнопочкам положено быть под вкладками. хотя конечно можно попробовать уболтать закачика на кучу кнопочек повторющихся
спасибо за идею.
Старый 27.03.2012, 17:50   #9  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
Цитата:
Сообщение от Lapunder Посмотреть сообщение
Цитата:
Сообщение от Alex Che Посмотреть сообщение
Единственное, что приходит в голову - сделать не одну кнопку на общем поле, а на каждой закладке одинаковые кнопки, тогда они должны брать каждая свою субформу (и, соответственно, фильтр?).
не очень удобный выход) ибо кнопочкам положено быть под вкладками. хотя конечно можно попробовать уболтать закачика на кучу кнопочек повторющихся
спасибо за идею.
Данная реализация сама по себе противоречит правилам разработки, и, как ни странно, может привести к проблемам в реализации, в том числе и неразрешимых.

А если уж вы не сможете аргументировать пользователю, что так делать не стоит и наверняка есть другой выход, то сделайте форму на подобии мастера и вместо вкладок кнопки и возьмите за это 100500$.
Старый 28.03.2012, 00:38   #10  
apanko is offline
apanko
MCTS
MCBMSS
Лучший по профессии 2009
 
1,164 / 139 (7) +++++
Регистрация: 24.02.2005
В Классической версии помнится делал так - завел на каждой закладке Контрол (кэпшн вроде), сделал его прозрачным (не невидимым).

В триггере онАктивейт контрола написал что-то типа иЗакладка := 1 (для каждой вкладки, свое).

Ну а при нажатии кнопки (кнопка была одна) анализировал - что у меня в переменной иЗакладка записано и поступал соотвественно.
Старый 31.07.2013, 11:39   #11  
Larsen is offline
Larsen
Участник
 
4 / 10 (1) +
Регистрация: 20.01.2006
И чего не заглянул раньше?
Путем размышлений пришел почти к такому же решению, как и apanko. Только не Контрол, а глобальную переменную ActiveForm.
На триггере OnActivateForm() строка ActiveForm :=TRUE; а на триггере OnDeactivateForm() - ActiveForm :=FALSE;
На каждой субформе функция retActiveForm() : Boolean со строкой EXIT(ActiveForm);

А на нажатие кнопки повесил проверку
IF CurrForm.sub31.FORM.retActiveForm() = TRUE THEN //дальше ваш код
 


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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:18.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.