|
|
#1 |
|
Участник
|
Добрый день
Ситуация: есть форма, на которой табконтроль с тремя вкладками. На каждой вкладке - субформа - ссылка на одну и ту же форму, только с разными фильтрами. Имеется кнопень, которая запускает определенные расчеты в зависимости от того, на какой строчке субформы мы в данный момент находимся. Запуск процедуры стало быть производится непосредственно из самой субформы. Вызов процедуры идет по кнопке из основной формы и имеет следующий вид: Код: CurrForm.SubForm.FORM.WorkTime; |
|
|
|
|
#2 |
|
Участник
|
А как вы определяете вкладку, когда устанавливаете тот или иной фильтр на субформу?
|
|
|
|
|
#3 |
|
Участник
|
|
|
|
|
|
#4 |
|
Участник
|
Так значит, это три разные субформы и различать нужно не вкладки, а субформы... у меня вроде где-то есть несколько субформ, посмотрю, как они идентифицируются в дизайнере.
|
|
|
|
|
#5 |
|
Участник
|
Вкладки, по крайней мере в 3.7, не имеют идентификаторов. Субформам можно давать разные имена вместо тех, что по умолчанию, тогда (и только) они появляются в списке объектов. Но как вытащить оттуда RECORD и TABLEVIEW, я не нашёл. Хотел сделать на кнопке: SETTABLEVIEW(<таблица из субформы>).
|
|
|
|
|
#6 |
|
Участник
|
Цитата:
Сообщение от Alex Che
Вкладки, по крайней мере в 3.7, не имеют идентификаторов. Субформам можно давать разные имена вместо тех, что по умолчанию, тогда (и только) они появляются в списке объектов. Но как вытащить оттуда RECORD и TABLEVIEW, я не нашёл. Хотел сделать на кнопке: SETTABLEVIEW(<таблица из субформы>).
![]() да, может и не принципиально, какая вкладка активна. тогда принципиально, на какой субформе фокус. |
|
|
|
|
#7 |
|
Участник
|
Единственное, что приходит в голову - сделать не одну кнопку на общем поле, а на каждой закладке одинаковые кнопки, тогда они должны брать каждая свою субформу (и, соответственно, фильтр?).
|
|
|
|
|
#8 |
|
Участник
|
Цитата:
спасибо за идею. |
|
|
|
|
#9 |
|
Участник
|
Цитата:
А если уж вы не сможете аргументировать пользователю, что так делать не стоит и наверняка есть другой выход, то сделайте форму на подобии мастера и вместо вкладок кнопки и возьмите за это 100500$. |
|
|
|
|
#10 |
|
MCTS
|
В Классической версии помнится делал так - завел на каждой закладке Контрол (кэпшн вроде), сделал его прозрачным (не невидимым).
В триггере онАктивейт контрола написал что-то типа иЗакладка := 1 (для каждой вкладки, свое). Ну а при нажатии кнопки (кнопка была одна) анализировал - что у меня в переменной иЗакладка записано и поступал соотвественно. |
|
|
|
|
#11 |
|
Участник
|
И чего не заглянул раньше?
Путем размышлений пришел почти к такому же решению, как и apanko. Только не Контрол, а глобальную переменную ActiveForm. На триггере OnActivateForm() строка ActiveForm :=TRUE; а на триггере OnDeactivateForm() - ActiveForm :=FALSE; На каждой субформе функция retActiveForm() : Boolean со строкой EXIT(ActiveForm); А на нажатие кнопки повесил проверку IF CurrForm.sub31.FORM.retActiveForm() = TRUE THEN //дальше ваш код |
|
|