1. Мегаконкурс в апреле "Приведи друзей на codeby". Дарим деньги, подписку на журнал хакер и выдаем статус "Paid Access". Подробнее ...

    Скрыть объявление

вставка ссылок кодом

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

Наш партнер Genesis Hackspace
  1. oxystile

    oxystile Гость

    1-й документ по специальной кнопке выполняет создание док-та в другой базе
    Set db =s.GetDatabase("" ,"forPOKassa1.ntf")
    Set doc = db.CreateDocument()
    doc.Form = "newDoc"


    пусть созданный док, -это док №2
    в доке №2 юсер заполняет поля, сохраняет, в коде на сохранении ссылка на этот док заносится в рич поле дока №1 Set rt = New NotesRichTextItem(doc1, "doc_link") , -№1
    *****
    Call rt.AppendDocLink(doc, FromMail)
    Call rt.Update()

    НО: если из документа №1 формировать 1 или более документов типа док№2, то ссылки увидим только после переоткрытия дока №1
    можно ли как-то организовать динамическое появление ссылок, т.е. нажали сохранить и ссылка сразу видна в поле дока №1, пока просто идей 0?
     
  2. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
  3. Omh

    Omh Well-Known Member
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Ну, по-моему, давно известно, что при апдейте RT поля документ надо переоткрывать.

    Как вариант: можно, например, RT заменить на Embedded view и каждую ссылку хранить отдельным мелким залинкованным доком, который на QO откроет то, что нас интересует.
    И мантейнить такую штуку гораздо удобнее, нежели RT.
     
  4. oxystile

    oxystile Гость

    to Medevic
    в коде случай другой, там находясь в докумете, ссылку надо поместить в этот же документ, поэтому возможно использование uidoc. У меня же находясь на одном документе ссылку надо вставить в другой док(расположен он в другой базе) т.о. Set uidoc = ws.EditDocument(True, uidoc.Document, False) вроде как не прокатит.

    to Omh
    Embedded view ,будет конечно понадежнее чем rich text поле (его не собъешь)
    (в Embedded view я храню документы, кот. создаются при сохранении документа типа 2, и хранят в себе UniversallD этих созданных документов, линки и пр. нужную инфу, т.о. одному документу типа №2 в некоторой базе*базы могут быть различны* соответсвует один документ в базе для документа типа №1 ). Надеюсь, не сильно запутала.
    Так вот, этот Embedded view на форме обновляется тоже не сразу, добавленный док вижу только после переоткрытия, Call viewR.Refresh тоже не помогает
     
  5. Omh

    Omh Well-Known Member
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Для: oxystile
    Ну это только про создании первого дока в embedded view.
    Начиная со второго всё нормально.
    Так что это можно списать на фичу, а не на баг <_<
     
  6. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-oxystile+29:10:2007, 18:30 -->
    <span class="vbquote">(oxystile @ 29:10:2007, 18:30 )</span><!--QuoteEBegin-->в коде случай другой, там находясь в докумете, ссылку надо поместить в этот же документ, поэтому возможно использование uidoc. У меня же находясь на одном документе ссылку надо вставить в другой док(расположен он в другой базе) т.о. Set uidoc = ws.EditDocument(True, uidoc.Document, False) вроде как не прокатит.
    [snapback]83465" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Тогда я что-то не понял это:
    <!--QuoteBegin-oxystile+29:10:2007, 13:25 -->
    <span class="vbquote">(oxystile @ 29:10:2007, 13:25 )</span><!--QuoteEBegin-->если из документа №1 формировать 1 или более документов типа док№2, то ссылки увидим только после переоткрытия дока №1
    [snapback]83397" rel="nofollow" target="_blank[/snapback]​
    [/quote]
     
  7. oxystile

    oxystile Гость

    to Omh
    нет, сколько бы не добавила, все равно увижу только после преоктрытия

    to Medevic
    из №1 формирую №2, при сохранении №2, хочу поместить на него ссылку в поле дока №1.
    результат: 2 различных дока из различных БД содержат внутри себя ссылки друг на друга
     
  8. Omh

    Omh Well-Known Member
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Для: oxystile
    Не надо view.Refresh - это для background объекта.
    Попробуй workspace.ViewRefresh куда-нить воткнуть.
     
  9. serEJa Shabalin

    serEJa Shabalin Гость

    UNID - документа мы знаем сразу после создания, в т.ч. ReplicaID и viewID
    Т.е. можно например засовывать на перехватчике события QuerySave второго дока NotesURL ссылку в многозначное текстовое поле первого дока
    Далее варианты Computed поля с Hotspot или ListBox с отловом события Change и открытием ссылки, или в 2 действия: выбрать ссылку в ListBox и нажать на кнопку для ее открытия
     
  10. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    отличный вариант с Hotspot. привязываешь на текст и по clik в процедуре по unid получаешь doc...
     
  11. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.920
    Симпатии:
    1
    Для: oxystile
    Я бы попробовал комбинировать вариант перехвата события QuerySave 2го докумета и переоткритие первого.

    Или же зделать просто напросто ссылки - вручную, а не в РТ полях
     
  12. oxystile

    oxystile Гость

    тут еще следует предусмотреть тот случай, когда захотят "старые доки"(давно выполненные и уже неиспользуемые) перекинуть в архив. Т.О. перенося документ в архив следует запомнить его новый id, найти все доки, кот. на него ссылаются и поменять в них ссылки...
    т.о. ссылки должны быть сделаны так, чтобы их впоследствии было легко найти и изменить ;)
     
  13. Omh

    Omh Well-Known Member
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Мелкие документы, что думать...
     
  14. D!m@n

    D!m@n Гость

    Если делать вот это:
    Код (Text):
    Call rt.AppendDocLink(doc, FromMail)
    на QueryOpen документа (проверив предварительно, что документ - новый), то ничего закрывать и переоткрывать не придется.
    Для данной задачи такое решение вроде бы подходит.
     
Загрузка...

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