• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Закрыть исходный документ

alexas1

Green Team
10.04.2014
1 202
225
BIT
37
2. пользователь вдруг не закрыл ответ, а главный изменился, вот нужно ответ переоткрыть, синхронизируются поля с главным.
в итоге мне нужно перевести фокус на открытый ответ и закрыть этот ответ. ничего хитрого. Но и тут засада.
всё закроет, однозначно, но респонз должен быть уже сохранён!!!

и, кста, нет ли у этого дока ещё респонзов (тогда искомый - не обязательно первый)
и нотус его (просто "первый") откроет и сразу закроет
 
Последнее редактирование:

maliy

Green Team
20.03.2007
180
2
BIT
47
ws.EditDocument( False, doc , True , , True, False )
newinstace=False . по логике док не должен еще раз открываться.
а если открыт третий?
циклом перебираю все ответы
есть главный - сохранен. ответ сохранен. открыл ответ. открыл главный - внес изменения и кнопку нажал чтоб поля синхронизировались и ддоки ответные закрылись а не закрывает. Или EditDocument опять "фича" лотуса?
 

maliy

Green Team
20.03.2007
180
2
BIT
47
JS- таймер может и хорошо. Но как Вы сами сказали возможно - "падение клиента" - уже не радует. Хотелось бы рабочее стабильное решение. Неужели это не под силам Лотусу.?!
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
217
Set uidoc = ws.EditDocument( False, doc , True , , True, False )
Call uidoc.Close(False)
JS- таймер может и хорошо. Но как Вы сами сказали возможно - "падение клиента" - уже не радует. Хотелось бы рабочее стабильное решение. Неужели это не под силам Лотусу.?!
не Лотусу (это фирма/брэнд) а платформе LDN - ей под силу многое (вы же знаете), давайте не будем тролить ;)
 

maliy

Green Team
20.03.2007
180
2
BIT
47
Задача - проще некуда:
2 документа - главный, ответный. Открыл ответ, открыл главный, нажал кнопку - изменились поля главного, и по этой кнопке хочу закрыть открытый ответ, как сделать, подскажите рабочий стабильный вариант. я не думаю, что это нетривиальная задача для платформы.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
217
@maliy теперь теория, если респонс открывать кодом из родителя - можно зафиксировать uidoc и закрывать его при изменении родителя
др. словами к-л объект должен знать uidoc респонса
 

maliy

Green Team
20.03.2007
180
2
BIT
47
В том то и проблема как узнать uidoc респонса. в итоге никак(неудобно заставлять пользователя открывать ответный документ кнопкой, а не просто как обычно/логично/правильно - два раза щелкнуть по документу и открыть его) -> задача не решаемая.
 

garrick

Lotus Team
26.10.2009
1 352
151
BIT
202
Задача - проще некуда:
2 документа - главный, ответный. Открыл ответ, открыл главный, нажал кнопку - изменились поля главного, и по этой кнопке хочу закрыть открытый ответ, как сделать, подскажите рабочий стабильный вариант. я не думаю, что это нетривиальная задача для платформы.
? или
 

maliy

Green Team
20.03.2007
180
2
BIT
47
? или
Не, подходит.
на PO закрываем респонс
как? если мне нужен uidoc респонса чтоб закрыть, а из главного я не смогу получиться его(если не кодом открыт респонс).
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
217
Не, подходит.

как? если мне нужен uidoc респонса чтоб закрыть, а из главного я не смогу получиться его(если не кодом открыт респонс).
открываем респонс, узнаем главный, закрываем респонс, открываем главный, открываем респонс из главного
 
Последнее редактирование:

alexas1

Green Team
10.04.2014
1 202
225
BIT
37
а из главного я не смогу получиться его(если не кодом открыт респонс).
как это??
curdoc.Responses - коллекция ВСЕХ сохранённых респонсов этого парента. Вот взять и все их позакрывать (не глядя на то, что были они открыты ранее или нет)
Открытые просто закроются, а не открытые "моргнут" (откроются и сразу ракроются)
 

maliy

Green Team
20.03.2007
180
2
BIT
47
Код:
Set dc = curdoc.Responses
    Set doc = dc.GetFirstDocument
    While Not doc Is Nothing

        Set uidoc = ws.EditDocument( False, doc , True ,  , True, False )
        doc.hid = curdoc.hid
         Call uidoc.Close(False)
        Set nextdoc = dc.GetNextDocument (doc )
        Set doc=nextdoc
        Set nextdoc=Nothing
    Wend
Не отрабатывает. Если открыт респонс
 
Последнее редактирование модератором:

alexas1

Green Team
10.04.2014
1 202
225
BIT
37
код рабочий
но! закроет ток респонзы первого уровня. может у тебя респ, кот не закрывается, response to response ? тогда он в коллекцию не попадёт.
чтоб взять все респонзы их надо брать рекурсивно, от первого уровня респонзов (на форуме есть пример, как. поищи)
или, на открытии каждого респонза писать его юнид в буфер (user profile or MQ) и им пользоваться для закрытия из парента (или откуда хошь)
при закрытии респонза юнид из буфера удалить, канеш (на queryclose респонза или из кода парента)
 
  • Нравится
Реакции: Мыш

VladSh

начинающий
Lotus Team
11.12.2009
1 786
157
BIT
80
есть док, у него ответный. открыл ответный, пытаюсь с главного перевести фокус на открытый ответный...
Зачем переводить фокус, если фокус автоматически устанавливается на открываемый документ?
 

maliy

Green Team
20.03.2007
180
2
BIT
47
ну имелось ввиду фокус перевожу функцией Set uidoc = ws.EditDocument( False, doc , True , , True, False )
 

VladSh

начинающий
Lotus Team
11.12.2009
1 786
157
BIT
80
Задача - проще некуда:
2 документа - главный, ответный. Открыл ответ, открыл главный, нажал кнопку - изменились поля главного, и по этой кнопке хочу закрыть открытый ответ
Вот так бы сразу и начали - с постановки задачи, а не с вопроса о переводе фокуса.

При открытии главного из ответного на Initialize главного получаем UI-документ ответного, объект которого держим в Globals формы; жмём кнопку в главном, обновляющую главный и на ней же закрываем UI-документ ответного.

Но лучше бы такого не делать, т.к. так будут трудности при открытии главного из видов или других документов, надо будет дополнительные проверки писать, и не факт, что всё потом получится. "Необходимость" такого функционала говорит о неправильно спроектированном приложении либо о попытке на Lotus'е реализовать что-то для него не характерное (у меня когда-то была такая ошибка - заказы-работы-сметы-платежи...).
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
217
т.к. так будут трудности при открытии главного из видов или других документов, надо будет дополнительные проверки писать, и не факт, что всё потом получится.
судя по ответам @maliy именно так и происходит
Lotus'е реализовать что-то для него не характерное
учитывая хэпаги, теперь, нужна оговорка ;) - в "классическом" интерфейсе
 
Мы в соцсетях:

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