Hide Action

  • Автор темы mindwalker
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

mindwalker

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

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

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

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

VladSh

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

alik86

Well-Known Member
Lotus team
20.11.2008
465
1
#3
@Command([EditDocument]; "0" )
А зачем это?
Так при @Command( [FileSave]) документ остается в режиме редактирования. А бывает "острая" необходимость перевести его в речим чтения... Правда, я для этого использую @If(@Command([FileSave]); @Command([EditDocument]; 0); @Return("")), что впринципе те же яйца :)
 
M

mindwalker

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

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

VladSh

начинающий
Lotus team
11.12.2009
1 248
2
#5
"Убирание галки Automatically refresh и добавление кода рефреша в Postmodechange не помогает"
Не помогает для чего? Ошибка выдаётся правильно, т.к. FileSave работает только в режиме редактирования.
Кнопка должна скрываться.
Строка на Postmodechange у меня работает при включеной галке "Automatically refresh". У меня только так скрывается кнопка "Редактировать".
 
M

mindwalker

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

TIA

:-)
Lotus team
15.05.2009
790
2
#8
Создавая новую форму и нажимая этот экшн, в одной форме он прячется, как должен, а в другой остается sad.gif

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

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

mindwalker

Гость
#9
Да, извините, правильнее говорить что я создаю документы.
В одной и той же БД, и документа создаются 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)

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

TIA

:-)
Lotus team
15.05.2009
790
2
#10
Экшен не прячется на форме "sos", а нормально прячется, когда создаёте по форме "tperiod"?
При этом в обеих формах использован один и тот же шаред-экшен?
При отображении св-в этого шаред-экшена из формы, куда он вставлен, одинаковы ли галки скрытия (отображаются серым)?
Если попробовать удалить и вставить заново шаред-экшен в обоих формах, станет ли скрытие одинаковым?
 
M

mindwalker

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

hosm

* so what *
18.05.2009
2 442
9
#12
Это конечно, не очень, но !@IsDocBeingEdited не поможет для скрытия?
 
M

mindwalker

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

TIA

:-)
Lotus team
15.05.2009
790
2
#14
mindwalker
Может, выложите БД с примером? Какие-то чудеса прям на ровном месте.
 
M

mindwalker

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

Вложения

VladSh

начинающий
Lotus team
11.12.2009
1 248
2
#16
Блин, какая кнопка не прячется??? Кнопка "Сохранить" в "Трудовом периоде" (у меня она нормально прячется) или кнопка "Создать" в основном документе??
 

TIA

:-)
Lotus team
15.05.2009
790
2
#17
Вы новую базу перенес нужные куски.
Хм. Не воспроизводится. Notes 7.0.2
Открыл я первый документ.
Перешёл в редактирование
Нажал акцию "Создать\Запись о трудовом периоде"
Открылся новый документ с одной акцией в виде зелёной галки.
После нажатия акции, документ сохранился, акция виде зелёной галки скрылась, и отобразилась акция с карандашом.

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

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

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

mindwalker

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

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

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

TIA

:-)
Lotus team
15.05.2009
790
2
#19
Под 6.5 воспроизвелось. Что наблюдаю:

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

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

Забавно.
 

TIA

:-)
Lotus team
15.05.2009
790
2
#20
Нашёл.
Глюк исчез, когда добавил в представление отбор документов по форме "tperiod" (не важно через @IsResponse или явно по имени формы). В этом и было его отличие от документа по форме "sos", который отбирался во вьюшку.
 
Статус
Закрыто для дальнейших ответов.