послать сообщение Notesdocument -> Notesdocument

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

  1. Vvv

    Vvv Гость

    Подскажите пожалуйста как можно послать сообщение от одного NotesDocument другому

    конечная задача я делаю аналог DialogBox мне надо при закрытии дочернего NotesDocument сообщить об закрытии родительскому
     
  2. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    ищите очереди
     
  3. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    мне казалось, что просто код отработает дальше ;), если вызывать такой DialogBox
    зачем аналог:
    - модальность как обеспечить
    -как бороться с глюкавым UI нотусов
    у меня ощущения, что вы изобретаете себе проблемы, не изучив платформы

    диалог-боксы можно делать через... java, но вы утверждали (в др. топике) что тока LS
     
  4. Vvv

    Vvv Гость

    ищите очереди
    пожалуйста ткните точней про очереди в LS

    >у меня ощущения, что вы изобретаете себе проблемы, не изучив платформы
    у меня требования

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

    мой диалог и вызывающий документо существуют только в uidoc виде, сохранять doc на диск запрещенно (у меня есть рабочая версия если вызывающий документ сохранен в базу)

    одно из требований было использовать DialogBox, я смог убедить что внутри DialogBox только на LS динамическую таблицу с выбором не построить.

    сейчас пытаюсь решить проблемму как вернуть строку их диалога в вызывающий документ (который не сохранялся в базу те найти его по unid и сохранить в какой либо item я не могу)
    решил использовать профайл
    сохраняю возращаемую строку в профайл но надо как то сказать вызывающему документу чтобы ог прочел профайл
     
  5. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Гляньте Call notesUIWorkspace.RefreshParentNote( ) — может натолкнёт на мысль...
    Кстати, можно ведь в диалоге открыть не отдельный, а тот же самый документ. Тут кстати мелькала база с таблицей на ЛС, поищите.

    Вот кстати: http://codeby.net/ipb.html?s=&sh...st&p=146613
     
  6. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Да даже если отдельный документ в параметрах указывать, то на диск его никто не заставляет сохранять.
     
  7. Vvv

    Vvv Гость

    спасибо за идеи, тотже самый не подходит (хотя идея отличная)
    клиент будет править стандартный почтовый template и родительский документ для моего диалога calendar (appointments, meetings and todo)

    сейчас смотрю пример таблицы по ссылки
    у меня есть несколько примеров и я их все попробовал (основная проблемма динамиечски перестраивать таблицу после 10-30 перестроений notes падает хотя один из методов что я нашел работает стабильно)
     
  8. Vvv

    Vvv Гость

    >Да даже если отдельный документ в параметрах указывать, то на диск его никто не заставляет сохранять.

    на диск его приходиться сохранять что бы вернуть значения
    родитель созарняет на ребенке свой unid
    потом Set pdoc = db.GetDocumentByUNID(unid)
    затем ребенок сохраняет нужные значения на родители

    GetDocumentByUNID работает только если документ существует в базе
     
  9. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    [не по теме]
    Vvv, без цитирования тяжело понять, где реплика, на которую ты отвечаешь, а где, собственно сам ответ
    [/не по теме]
     
  10. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Откуда вернуть значения?
    Мы про диалогбокс говорим или нет?
     
  11. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Если пользоваться "родной" диалоговой кнопкой ОК, то
    Код (LotusScript):
    flag = notesUIWorkspace.DialogBox( ... )
    if flag then
    'чтение очереди
    end if
    Если кнопка самописная, то в ней call ws.RefreshParentNote( ), а в родительском uidoc можно прочитать очередь в QueryRecalc

    Про очереди тут:
    http://codeby.net/ipb.html?s=&sh...st&p=141360
     
  12. Vvv

    Vvv Гость

    спасибо за ссылку про очереди, воспользоваться не удасться так как код должен работать под win/linux/blackberry
    я понимаю что notes.dll в том или ином виде есть на всех платформах но хотелось бы не опускаться до CAPI


    воспользоваться родным диалогом Notes я не могу так как в нем невозможно динамически перестраивать таблицу
     
  13. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Тупик!
     
  14. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Vvv
    На сколько я понял, в родительском документе у вас что-то подобное:
    Код (Text):
    Set uidoc = Ws.EditDocument(...)
    Тогда отловить закрытие дочернего uidoc можно через
    Код (Text):
    On Event QueryClose From uidoc Call MyChildDocCloseHandler

    sub MyChildDocCloseHandler(Source as NotesUIDocument)
    ...
    end sub
    Возможно, удобнее вместо QueryClose отлавливать QuerySave или PostSave в зависимости от ваших условий.
     
  15. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    ничё не понял...
    код не будет работать под перечисленными платформами, без использования "хаков"
    потомучта обмен между UI сучностями нотусов индусы не реализовали (в общем смысле)
    не понятно и перечиление платформ, мало того, что они принципиально разные, дык еще и линуха бывают разные (ИБМ не сподобилось сделать клиента по человечьи) и нотуса элементарно могут не стартовать...
    хотя под линухами можно пущать тот же виндозный клиент (с нек. допиливаниями)
    блекбери - это ваще не интел проц... и какой там клиент ;) ?
    а не объясненные "не хочу" и "только LS" вызывают странные ассоциации ;) (неуж-то секта) :(
     
  16. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Если надо выбрать из вьюшки несколько строк и вернуть на форму, то решается одним @Prompt ом, или я не так понял задачу.
    Еще вариант с дайлогбоксом и встроеной вьюшкой.
     
  17. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Почитал соседнюю темку с динамическими таблицами. Если из своей таблицы сделать выборку, то все выбраные строки сохранять в поле со множественными значениями, такое же как и на основной форме. И через дайлогбокс все должно неплохо работать.
     
  18. Vvv

    Vvv Гость

    >блекбери - это ваще не интел проц... и какой там клиент ?
    как я понимаю там web клиент, у меня ее нет

    >а не объясненные "не хочу" и "только LS" вызывают странные ассоциации (неуж-то секта)
    нет у клиента N тысяч десятков пользователей и менять что либо кроме почтового шаблона они не согласны (понять их можно если скажем 20k (на самом деле больше) пользователей и явно у кого что то дполнительное не поставиться корректно)
     
  19. Klido

    Klido Гость

    достаточно жестко - 20К измененных ящиков....
    я вот тоже не совсем понял зачем так сложно, если
     
  20. Vvv

    Vvv Гость

    TIA да я создаю документ через EditDocument

    я пытался сделать
    Код (Text):
       
    в globals
    Dim uidialog As NotesUIDocument


    Sub MyChildDocCloseHandler(Source As Notesuidocument, Continue As Variant)
    Messagebox "test"
    End Sub


    код на кнопке
    Set uidialog= workspace.ComposeDocument( "", "", "DEMO" )
    On Event QueryClose From uidialog Call MyChildDocCloseHandler
    при закрытии дочерней формы msgbox не вызываеться
     
Загрузка...

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