Hide Action

Тема в разделе "Lotus - Программирование", создана пользователем mindwalker, 4 фев 2010.

Статус темы:
Закрыта.
  1. mindwalker

    mindwalker Гость

    Есть shared action Сохранить
    @Command( [FileSave] );
    @Command([EditDocument]; "0" )

    В его свойствах стоят галки hide action
    Previewed for reading
    Previewed for editing
    Opened for reading

    Создавая новую форму и нажимая этот экшн, в одной форме он прячется, как должен, а в другой остается :)

    Код создания форм одинаковый, свойства формы и прочего вроде одинаковы. События postsave и прочие отсутствуют.
    Почему работает по разному не пойму. Может это лаг лотуса, как с этим бороться?
     
  2. VladSh

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

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    А зачем это?
    Для "Сохранить" достаточно просто 1-й строки, а для "Сохранить и Закрыть":
    Код (Text):
    @If(@Command([FileSave]);
    @Command([FileCloseWindow]);"")
    Такое бывает.. сразу в свойствах формы смотрю галку "Automatically refresh fields" и пытаюсь изменить эту опцию. Вообще, желательно, без острой необходимости :) её не включать.
    Было несколько раз, что это не помогало... и если "Код создания форм одинаковый, свойства формы и прочего одинаковы", то на Postmodechange чтобы формулы на действиях корректно перепросчитывались ставлю:
    Код (Text):
    If Source.EditMode Then Call Source.Refresh() Else Call Source.RefreshHideFormulas()
     
  3. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    Так при @Command( [FileSave]) документ остается в режиме редактирования. А бывает "острая" необходимость перевести его в речим чтения... Правда, я для этого использую @If(@Command([FileSave]); @Command([EditDocument]; 0); @Return("")), что впринципе те же яйца :)
     
  4. mindwalker

    mindwalker Гость

    Убирание галки Automatically refresh и добавление кода рефреша в Postmodechange не помогает.
    Формы точнее не одинаковы, просто для чистоты эксперимента я удаляю в них вообще все кроме этого экшна.

    Изменил код экшна на
    @If(@Command([FileSave]); @Command([EditDocument]; 0); @Return(""))
    если повторно нажимать его в форме на которой он не прячется то выдается ошибка "Cannot execute specified command"
     
  5. VladSh

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

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    "Убирание галки Automatically refresh и добавление кода рефреша в Postmodechange не помогает"
    Не помогает для чего? Ошибка выдаётся правильно, т.к. FileSave работает только в режиме редактирования.
    Кнопка должна скрываться.
    Строка на Postmodechange у меня работает при включеной галке "Automatically refresh". У меня только так скрывается кнопка "Редактировать".
     
  6. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    Да, да, да... :)
     
  7. mindwalker

    mindwalker Гость

    Не помогает кнопке скрыться. И с галкой и без нее экшн остается.
    Документ переходит в режим чтения, и ошибка это подтверждает. Но кнопки не прячутся :D
    PS делаю в 6м дизайнере
     
  8. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Можно уточнить, вы действительно создаёте "формы" (т.е. элементы дизайна типа "Form"), или же документы по данной форме?
    Вы действительно создаёте "формы" кодом?

    Работающая и не работающая форма/документ расположены в одной и той же БД?
     
  9. mindwalker

    mindwalker Гость

    Да, извините, правильнее говорить что я создаю документы.
    В одной и той же БД, и документа создаются response к главному.
    Есть 2 элемента дизайна типа Form - "sos" и "tperiod", по ним создаю документы:

    Set uidoc=ws.CurrentDocument
    Set docv = uidoc.Document
    Set uidoc = ws.ComposeDocument(,,"sos")
    Set doc = uidoc.Document
    Call doc.MakeResponse(docv)

    При создании и сохранении экшн не прячется. Хотя если потом открыть на редактирование и сохранить экшн прячется нормально.
     
  10. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Экшен не прячется на форме "sos", а нормально прячется, когда создаёте по форме "tperiod"?
    При этом в обеих формах использован один и тот же шаред-экшен?
    При отображении св-в этого шаред-экшена из формы, куда он вставлен, одинаковы ли галки скрытия (отображаются серым)?
    Если попробовать удалить и вставить заново шаред-экшен в обоих формах, станет ли скрытие одинаковым?
     
  11. mindwalker

    mindwalker Гость

    Наоборот в tperiod не прячется, ну не суть :(
    Экшн тот же, галки одинаковы, при вставке заново галки те же
    Я так понимаю это тупо лаг лотуса и поможет мне только удаление форм и создание заного :discard:
     
  12. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    Это конечно, не очень, но !@IsDocBeingEdited не поможет для скрытия?
     
  13. mindwalker

    mindwalker Гость

    Добавил Hide в Shared Action по формуле !@IsDocBeingEdited, галки в хайдах по режиму оставил.
    Все равно при создании документа не прячется экшн :D
    Может в advanced свойствах SA что не так поставлено про OLE?
     
  14. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    mindwalker
    Может, выложите БД с примером? Какие-то чудеса прям на ровном месте.
     
  15. mindwalker

    mindwalker Гость

    Вы новую базу перенес нужные куски.
    В виде показываются основные документы. В основных документах в режиме редактирования есть кнопка создать. При !создании! записи о трудовом периоде и ее сохранении кнопка не прячется.
     

    Вложения:

    • example.rar
      Размер файла:
      31,4 КБ
      Просмотров:
      13
  16. VladSh

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

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Блин, какая кнопка не прячется??? Кнопка "Сохранить" в "Трудовом периоде" (у меня она нормально прячется) или кнопка "Создать" в основном документе??
     
  17. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Хм. Не воспроизводится. Notes 7.0.2
    Открыл я первый документ.
    Перешёл в редактирование
    Нажал акцию "Создать\Запись о трудовом периоде"
    Открылся новый документ с одной акцией в виде зелёной галки.
    После нажатия акции, документ сохранился, акция виде зелёной галки скрылась, и отобразилась акция с карандашом.

    На сколько я понимаю, у вас иначе - после нажатия продолжает отображаться зелёная галка.

    Не может ли такой эффект быть связан с "дребезгом мыши". Когда вместо одного клика выполняется два. Первый клик переводит в режим чтения и показывает карандаш, а второй обратно в режим редактирования и показ зелёной галки. Ведь карандаш появляется на том же месте, что и галка. Попробуйте нажимать акцию через Alt+1.

    Под какой версией Нотес проверяли вы, тоже под 6м, как и дизайнер?
     
  18. mindwalker

    mindwalker Гость

    Именно

    Крайне маловероятно.
    На одной форме прячется всегда, на другой никогда. И через клаву alt+1 тоже самое.
    Версии 6.0 у обоих.

    В общем судя по всему обсуждение пора заканчивать :KillMe: Видимо поможет тут только бубен или пересоздание заного :)
     
  19. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Под 6.5 воспроизвелось. Что наблюдаю:

    Документ по форме tperiod при нажатии акции с галкой сохраняется.
    У него есть $REF, ссылающийся на родителя, но документ в представлении не отображается.
    Тип у $REF правильный.
    В представлении без галки "Show response..." документ виден.

    Если создавать документ через @Command([Compose]) глюк исчезает.
    Если переключиться в представление без отображения респонсов и открыть "персональную карточку" из него, глюк исчезает.

    Забавно.
     
  20. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Нашёл.
    Глюк исчез, когда добавил в представление отбор документов по форме "tperiod" (не важно через @IsResponse или явно по имени формы). В этом и было его отличие от документа по форме "sos", который отбирался во вьюшку.
     
Загрузка...
Похожие Темы - Hide Action
  1. lionk
    Ответов:
    6
    Просмотров:
    1.944
  2. rinsk
    Ответов:
    9
    Просмотров:
    4.015
  3. NickProstoNick
    Ответов:
    5
    Просмотров:
    3.411
  4. alik86
    Ответов:
    48
    Просмотров:
    11.572
  5. NickProstoNick
    Ответов:
    9
    Просмотров:
    3.337
Статус темы:
Закрыта.

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