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

Тема в разделе "Lotus - Программирование", создана пользователем divankin, 26 дек 2012.

  1. divankin

    divankin Senjor developer

    Регистрация:
    13 авг 2009
    Сообщения:
    182
    Симпатии:
    0
    Вкраце задача:
    На форме документа есть таблица с вкладками, вкладки настроены на переключение как программно, так и вручную пользователем.
    Документ пользователю доступен только на чтение, но есть кнопки, которые запускают агента на сервере и изменяют документ, после этого документ переоткрывается. Все хорошо, но для некоторых таких кнопок по контексту непонятно, какая открыта вкладка, и зачастую открывается не та вкладка, на которой был пользователь.
    Вопрос:
    Можно ли как-то узнать какая вкладка сейчас показывается, если документ открыт в режиме чтения?
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.074
    Симпатии:
    300
    разве управляющее поле не содержит текущего значения, если оно CFD?
     
  3. divankin

    divankin Senjor developer

    Регистрация:
    13 авг 2009
    Сообщения:
    182
    Симпатии:
    0
    Пробовал ставить CFD. В качестве формулы само поле.
    В результате оно стало только криво обновляться в режиме редактирования. В режиме чтения все так же нет обновления вообще.
     
  4. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    а Edit сделать?
    а значения прописывать так
    Код (LotusScript):
    CurrDoc.ReplaceItemValue("$TableID","InfoTab").savetodisk = False
    CurrDoc - NotesDocument, глобальный объект определяемый в PO.
    При таком подходе можно будет получать значения, но после переоткрытия документа или его обновлении значение может сброситься.
    Еще вариант в notes.ini прописать, это самое простое.
     
  5. divankin

    divankin Senjor developer

    Регистрация:
    13 авг 2009
    Сообщения:
    182
    Симпатии:
    0
    Перевод в режим редактирования невозможен.
    Или вы предлагаете скрыть вкладки и подсунуть вместо них свои кнопки? Тогда все равно переключение работать не будет - документ-то нередактируем, изменения back-end не транслируются во front-end.
     
  6. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    ну здрасте...
    используйте:
    Код (LotusScript):
    Call currUIdoc.RefreshHideFormulas
    , а не Refresh.
    Тогда и в режиме чтения будет работать и в редактировании.
    И да, вкладки предлагаю скрыть и подсунуть свои кнопки.
     
  7. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    При пере/открытии определять, если item "$TableID" в доке есть, то не перепрописывать.
     
  8. Darkhan

    Darkhan Well-Known Member

    Регистрация:
    14 дек 2012
    Сообщения:
    96
    Симпатии:
    4
    Сталкивались с подобной проблемой, как ни странно помогло присваивание.... собаками... через Evaluate, в качестве параметра отправляли Source.Document
     
  9. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Насколько я помню, чтобы нормально работало программное переключение вкладок в режиме чтения, поле на форме должно отсутствовать.
     
  10. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    как мелко вы мыслите :(

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

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

    gpatron Active Member

    Регистрация:
    13 авг 2009
    Сообщения:
    26
    Симпатии:
    0
    на песевдокнопках код:
    Код (LotusScript):
    Dim ws As New NotesUIWorkspace
    Dim uid As NotesUIDocument
    Set uid = ws.CurrentDocument
    Call uid.Document.ReplaceItemValue("$table", "имя нужной вкладки")
    Call uid.RefreshHideFormulas
    по крайней мере у меня работает корректно и никогда проблем не возникало
     
  12. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.074
    Симпатии:
    300
    вопрос был про Read режим (не Edit)
     
  13. gpatron

    gpatron Active Member

    Регистрация:
    13 авг 2009
    Сообщения:
    26
    Симпатии:
    0
    это работает и в режиме чтения
     
  14. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.074
    Симпатии:
    300
    если нужен персистент обжект (для формы) - то зачем писать в поле?
     
  15. gpatron

    gpatron Active Member

    Регистрация:
    13 авг 2009
    Сообщения:
    26
    Симпатии:
    0
    ну вроде таким образом (через изменение поля) выводятся нужные вкладки программируемой таблицы
     
  16. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.074
    Симпатии:
    300
    сори - понял схему :) (невтупил сразу про кнопки)
    не знаю - согласится ли топикстартер на подобное изменение дизайна приложения
     
  17. gpatron

    gpatron Active Member

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

    ну а насчет согласится или нет.. так, как говорится "Хозяин - барин"
     
Загрузка...
Похожие Темы - Programmable Tables Как
  1. Kizarek86
    Ответов:
    5
    Просмотров:
    2.530
  2. DmityiD
    Ответов:
    1
    Просмотров:
    16
  3. vincent_vega
    Ответов:
    12
    Просмотров:
    5.697

Поделиться этой страницей