Можно ли открывать нужную вкладку в таблице

  • Автор темы Sandro
  • Дата начала
S

Sandro

Задача такая , на форме есть комбобокс со статусами документа, так же есть таблица в виде вкладок, на каждой вкладке определённые значения для определённого статуса документа, вот очень хочется что бы при выборе статуса в комбобоксе , открывалась нужная вкладка, реально ли это сделать ?
 
H

hosm



Добавлено: это как вкладки переключать. По-английски понятно?
 
S

Sandro

Не совсем то что хочется, надо выставлять "Switch rows programatically" в свойствах таблицы , а при этом вкладки становятся не видимыми, а надо что бы были видны ((( Я так понимаю иначе никак
 
H

hosm

Вот нечто похожее по-русски было у нас на форуме link removed, собственно, даже с тыканьем в нужный раздел хелпа.
(Да и я сама как-то давненько описывала коллеге по-русски, но сходу не нашла, а по ссылке, приведенной в прошлом посте, Дима всё четко по пунктам расписал.)
 
A

Anonimous

Я хотел спросить, тоже в этом ключе. Мне надо вызывать метод одной библиотеки, когда пользователь открывает определенную вкладку таблицы. Такое возможно?
Сейчас этот метод вызывается на QueryOpen субформы, которая лежит на этой вкладке таблицы, но из-за того, что события QueryOpen, PostOpen субформ вызываются при открытии основной формы, документ долго открывается. А мне надо только на одной этой вкладке отображать информацию, но вот не знаю, как делать так, чтоб она отображалась только когда пользователь эту нужную вкладку открывает. Кто-нибудь с подобной задачей сталкивался? Заранее спасибо
 

savl

Lotus Team
28.10.2011
2 624
314
BIT
540
Если сделать программное переключение таблиц, то можно.
Во втором посте данной ветки есть ссылка как сделать переключение (англ).
В коде хотспота просто надо будет вызвать методы, но скорее всего будет притормаживать при переключении на эту вкладку.
 
A

Anonimous

savl В коде хотспота просто надо будет вызвать методы,

Не совсем понял. На нужной вкладке надо создавать хотспот? И как вызывать его код при ее открытии?
 

savl

Lotus Team
28.10.2011
2 624
314
BIT
540
Нет, ты создаешь хотспоты и переключаешь вкладки при нажатии хотспотов, внешне может выглядеть как на картинке.
Там у меня таблицы, в них текст. На текст повешен хотспот, который открывает определенную вкладку таблицы.
Вот в один такой хотспот, который будет открывать нужную тебе вкладку таблицы - вставляешь вызов метода.
 

Вложения

  • apptesst.png
    apptesst.png
    3,7 КБ · Просмотры: 589
A

Anonimous

Спасибо. К сожалению, мне так сделать не разрешат, пользователи непосредственно листают вкладки таблицы, перейти на перелистывание через хотспоты никто не захочет. Я вот и хотел узнать, можно ли код вызвать, когда пользователь нужную вкладку открывает. Субформы не помогли.
 
A

alexas

Если сделать программное переключение таблиц, ...будет притормаживать ...
Если выставлено "Switch rows programmatically", то при переключении вкладок, Tab label записывается в выбранное Вами поле (ака $Table-name) и потом - Refresh дока. Запускайте Ваш скрипт в "Postrecalc" после проверки $Table-name на нужное значение. Никаких дополнительных тормозов не будет (точно быстрее будет, чем с SubForm если рефреш дока проходит быстро). Хот споты тут не нужны.
P.S.
$Table-name определяется на последней вкладке свойств таблицы: "Name/ID"
 

savl

Lotus Team
28.10.2011
2 624
314
BIT
540
ну... если сделать как на картинке, то ты меняешь по сути внешность. То есть зрительно это те же вкладки, просто выглядят иначе.
Можно даже сделать так, чтобы было похоже на саму вкладку, зрительно можно и не отличить.
А про хотспоты узнай, может и согласятся. Пользователи ведь переключают вкладки, какая разница куда жать на текст в квадрате или на вкладку? Просто у них сейчас выбора нет. Покажи, думаю им даже понравится.

Добавлено: alexas
а если режим чтения? Судя по описанию такое заполнение вкладки происходит каждый раз при ее открытии.
Anonimous
Кстати, режим какой? И постоянно ли надо это заполнять или один раз при создании?
 
A

alexas

ну... если сделать как на картинке, то ты меняешь по сути внешность. То есть зрительно это те же вкладки, просто выглядят иначе.
Можно даже сделать так, чтобы было похоже на саму вкладку, зрительно можно и не отличить.
А про хотспоты узнай, может и согласятся. Пользователи ведь переключают вкладки, какая разница куда жать на текст в квадрате или на вкладку? Просто у них сейчас выбора нет. Покажи, думаю им даже понравится.

Добавлено: alexas
а если режим чтения? Судя по описанию такое заполнение вкладки происходит каждый раз при ее открытии.
Anonimous
Кстати, режим какой? И постоянно ли надо это заполнять или один раз при создании?
Да, это для режима редактирования.
Если для чтения - то как написал savl, без вариантов.
 
A

Anonimous

savl Кстати, режим какой? И постоянно ли надо это заполнять или один раз при создании?

У меня информация отображается в поле Computed for display, вычисляется каждый раз при открытии документа, чтоб была актуальной (конструкция приложений такая). И это поле находится на той вкладке. Надо просто перенести вычисление значений этого поля на момент, когда пользователь открывает именно ту вкладку, чтоб быстрее было). Режим чтения
 

savl

Lotus Team
28.10.2011
2 624
314
BIT
540
Попробуй предложить им хотспоты, попытка - не пытка.
 
A

Anonimous

Спасибо. Если что к теме вернусь :huh:
 
A

alexas

......... Надо просто перенести вычисление значений этого поля на момент, когда пользователь открывает именно ту вкладку, чтоб быстрее было). Режим чтения
Computed поля, при открытии дока, вычисляются до визуального показа формы. Поэтому если док уже открыт, показан и находится в режиме чтения - пересчитать их не получится. В Вашем случае можно поместить на нужную вкладку таблицы Embedded Editor, в котором открывается спецформа, на которой Ваше поле Computed for display и вычислять это поле в PostOpen спецформы. PostOpen спецформы сработает только при открытии нужной вкладки. Будет работать в режиме чтения и, опять-же, Хот Споты не нужны :huh: При переводе дока в режим редактирования Embedded Editor можно скрыть.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!