Programmable Tables: Как Узнать Какая Вкладка Таблицы Открыта У Пользо

divankin

Senjor developer
13.08.2009
182
0
#1
Вкраце задача:
На форме документа есть таблица с вкладками, вкладки настроены на переключение как программно, так и вручную пользователем.
Документ пользователю доступен только на чтение, но есть кнопки, которые запускают агента на сервере и изменяют документ, после этого документ переоткрывается. Все хорошо, но для некоторых таких кнопок по контексту непонятно, какая открыта вкладка, и зачастую открывается не та вкладка, на которой был пользователь.
Вопрос:
Можно ли как-то узнать какая вкладка сейчас показывается, если документ открыт в режиме чтения?
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#2
разве управляющее поле не содержит текущего значения, если оно CFD?
 

divankin

Senjor developer
13.08.2009
182
0
#3
Пробовал ставить CFD. В качестве формулы само поле.
В результате оно стало только криво обновляться в режиме редактирования. В режиме чтения все так же нет обновления вообще.
 

savl

Lotus team
28.10.2011
2 135
104
#4
а Edit сделать?
а значения прописывать так
Код:
CurrDoc.ReplaceItemValue("$TableID","InfoTab").savetodisk = False
CurrDoc - NotesDocument, глобальный объект определяемый в PO.
При таком подходе можно будет получать значения, но после переоткрытия документа или его обновлении значение может сброситься.
Еще вариант в notes.ini прописать, это самое простое.
 

divankin

Senjor developer
13.08.2009
182
0
#5
а Edit сделать?
а значения прописывать так
Код:
CurrDoc.ReplaceItemValue("$TableID","InfoTab").savetodisk = False
CurrDoc - NotesDocument, глобальный объект определяемый в PO.
При таком подходе можно будет получать значения, но после переоткрытия документа или его обновлении значение может сброситься.
Еще вариант в notes.ini прописать, это самое простое.
Перевод в режим редактирования невозможен.
Или вы предлагаете скрыть вкладки и подсунуть вместо них свои кнопки? Тогда все равно переключение работать не будет - документ-то нередактируем, изменения back-end не транслируются во front-end.
 

savl

Lotus team
28.10.2011
2 135
104
#6
ну здрасте...
используйте:
Код:
Call currUIdoc.RefreshHideFormulas
, а не Refresh.
Тогда и в режиме чтения будет работать и в редактировании.
И да, вкладки предлагаю скрыть и подсунуть свои кнопки.
 

Darkhan

Lotus team
14.12.2012
98
2
#8
Перевод в режим редактирования невозможен.
Или вы предлагаете скрыть вкладки и подсунуть вместо них свои кнопки? Тогда все равно переключение работать не будет - документ-то нередактируем, изменения back-end не транслируются во front-end.
Сталкивались с подобной проблемой, как ни странно помогло присваивание.... собаками... через Evaluate, в качестве параметра отправляли Source.Document
 

nvyush

Lotus team
22.04.2009
2 317
0
#9
Насколько я помню, чтобы нормально работало программное переключение вкладок в режиме чтения, поле на форме должно отсутствовать.
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
18
#10
как мелко вы мыслите :(

вставте на каждую вкладку ембедедвью а у виде на постопене в ини вносите название вкладки которая открылась и благодаря ини будете знать на какой вкладке ;)
ну это для настоящих хардкорщиков ;)

а на деле нарисуйте псевдовкладки - обманки а настоящие таблицы через формулы скрытия и тогда спокойно юзайте ини или профайл для сохранения какая вкладка у пользователя - тогда хоть для однотипным доков можно сразу нужную вкладку открывать
 

gpatron

Active member
13.08.2009
26
0
#11
на песевдокнопках код:
Код:
Dim ws As New NotesUIWorkspace
Dim uid As NotesUIDocument
Set uid = ws.CurrentDocument
Call uid.Document.ReplaceItemValue("$table", "имя нужной вкладки")
Call uid.RefreshHideFormulas
по крайней мере у меня работает корректно и никогда проблем не возникало
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#12
на песевдокнопках код:
Код:
Dim ws As New NotesUIWorkspace
Dim uid As NotesUIDocument
Set uid = ws.CurrentDocument
Call uid.Document.ReplaceItemValue("$table", "имя нужной вкладки")
Call uid.RefreshHideFormulas
по крайней мере у меня работает корректно и никогда проблем не возникало
вопрос был про Read режим (не Edit)
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#14
если нужен персистент обжект (для формы) - то зачем писать в поле?
 

gpatron

Active member
13.08.2009
26
0
#15
ну вроде таким образом (через изменение поля) выводятся нужные вкладки программируемой таблицы
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#16
сори - понял схему :) (невтупил сразу про кнопки)
не знаю - согласится ли топикстартер на подобное изменение дизайна приложения
 

gpatron

Active member
13.08.2009
26
0
#17
если я правильно понял суть проблемы такова:
человек открывает документ в режиме чтения, прогуливается по нужным вкладкам таблицы, нажимает на кнопочку и в документ с помощью агента вносятся необходимые данные, после этот документ должен переоткрыться пользователю, причем должна открыться именно та вкладка таблицы на которой он был до запуска агента.
если это так - то у меня такая же задача решена именно таким образом (с помощью псевдокнопок с приведенным выше кодом)

ну а насчет согласится или нет.. так, как говорится "Хозяин - барин"