Работа с профильными документами

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

  1. azzza

    azzza Well-Known Member

    Регистрация:
    26 апр 2011
    Сообщения:
    54
    Симпатии:
    0
    Добрый день !

    Прошу помощи. Знаю что где-то зашился, но не пойму где

    Пытался реализовать следующее :
    по клику на документе в Календарной вьюхе в соседнем фрейме отображение значений документа

    1. Создал форму Detail в ней 3 поля RTF, 1 простое, 4 скрытых поля (одно из них авторское, по-умолчанию UserName)
    2. обращаюсь к профдоку с ключом юзера из события вьюхи onSelect и заполняю поле Descript
    3. Если форма Detail имеет крыж форма по-умолчанию, то все работает только на клиентах 8 и выше, на 7 нет доступа к доку
    4. Если нет крыжа то не работает

    по идее проф док для текущего юзверя должен создаваться по конструкции db.GetProfileDocument
    доступ регламентируется правом ACL у юзера выше Author и наличием поля Authors в проф доке.
    Как же тогда влияет крыж орма по-умолчанию и чего нехватает юзеру - почему он не имеет доступа к проф доку?

    Помогите пожалуйста задание горит... :unsure:

    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">"код события on Select "</div></div><div class="sp-body"><div class="sp-content">Sub Onselect(Source As Notesuiview)
    Код (LotusScript):
        Dim s As New NotesSession
    Dim db As NotesDatabase
    Dim uidb As NotesUIDatabase
    Dim doc As NotesDocument
    Dim det As NotesDocument
    Dim uidoc As NotesUIDocument
    Dim caret As String
    Dim rtitem As NotesRichTextItem
    Dim ws As New NotesUIWorkspace
    Dim item As notesitem

    ' находимся на доке?
    caret = Source.CaretNoteID

    If caret = "0" Then Goto endy

    Set db = Source.View.Parent
    Set doc = db.GetDocumentByID(caret)
    Set view = source.View

    Call ws.SetTargetFrame("bottom")
    Set det =db.GetProfileDocument("Detail",s.username)
    Set uidoc = ws.EditDocument(False,det)


    Set adoc = db.GetDocumentByUNID(doc.addid(0))
    If adoc Is Nothing Then Goto togo
    det.addtype=adoc.tip(0)
    togo:
    det.gor=doc.gor_ob(0)
    det.stnum=doc.stnum(0)
    det.prior=doc.importance(0)
    If Isnull(doc.fdstart(0)) Then
    dt=doc.dstart(0)
    Else
    dt=doc.fdstart(0)
    End If
    If Isnull(doc.fdend(0)) Then
    edt=doc.dend(0)
    Else
    edt=doc.fdend(0)
    End If
    Dim ddt As New NotesDateTime(dt)
    Dim eddt As New NotesDateTime(edt)
    If doc.Form(0)="Appointment" And ddt.TimeOnly="06:00:00" Then
    det.dat="00:00:00"+ Chr$(13)+eddt.TimeOnly
    Else
    det.dat=ddt.TimeOnly+ Chr$(13)+eddt.TimeOnly
    End If


    Call det.Save(True,True)

    Set ortitem = New NotesRichTextItem( det, "detail_1" )
    Dim richStyle As NotesRichTextStyle
    Set richStyle = s.CreateRichTextStyle
    richStyle.bold = True
    richStyle.Italic = False
    richStyle.FontSize=10
    richStyle.NotesColor=COLOR_RED
    Call ortitem.AppendStyle(richStyle)
    Call ortitem.AppendText("Заявка № "+doc.number(0)+Chr$(13))
    richStyle.FontSize=1
    richStyle.NotesColor=COLOR_BLACK
    Call ortitem.AppendStyle(richStyle)
    Call ortitem.AppendText(""+Chr$(13))
    richStyle.FontSize=8
    richStyle.NotesColor=COLOR_BLACK
    Call ortitem.AppendStyle(richStyle)
    Call ortitem.AppendText("Клиент :"+Chr$(13))
    richStyle.NotesColor=COLOR_MAGENTA
    Call ortitem.AppendStyle(richStyle)
    Call ortitem.AppendText(doc.owner(0)+Chr$(13))
    Call ortitem.AppendText("тел.: "+doc.ownerPhone(0))
    Call ortitem.Update
    Set rtitem = New NotesRichTextItem( det, "detail" )
    richStyle.FontSize=8
    richStyle.NotesColor=COLOR_BLACK
    Call rtitem.AppendStyle(richStyle) 
    Call rtitem.AppendText("Заказ : ")
    richStyle.NotesColor=COLOR_BLUE
    Call rtitem.AppendStyle(richStyle)
    Call rtitem.AppendText(doc.mk(0)+Chr$(13))
    richStyle.NotesColor=COLOR_BLACK
    Call rtitem.AppendStyle(richStyle)
    Call rtitem.AppendText("параметр : ")
    richStyle.NotesColor=COLOR_BLUE
    Call rtitem.AppendStyle(richStyle)
    Call rtitem.AppendText(doc.gnum(0)+Chr$(13))
    richStyle.NotesColor=COLOR_BLACK
    Call rtitem.AppendStyle(richStyle)
    Call rtitem.AppendText("параметр1 : "+Chr$(13))
    richStyle.NotesColor=COLOR_BLUE
    Call rtitem.AppendStyle(richStyle)
    Call rtitem.AppendText(doc.drv(0)+Chr$(13))
    Call rtitem.AppendText("тел.: "+doc.drvPhone(0))
    Call rtitem.Update
    Set prtitem = New NotesRichTextItem( det, "detail_2" )
    Set richStyle = s.CreateRichTextStyle
    richStyle.bold = True
    richStyle.Italic = False
    richStyle.FontSize=8
    richStyle.NotesColor=COLOR_BLACK
    Call prtitem.AppendStyle(richStyle)
    Call prtitem.AppendText("("+doc.gor_ob(0)+") Пункт назначения : ")
    richStyle.NotesColor=COLOR_BLUE
    Call prtitem.AppendStyle(richStyle)
    Call prtitem.AppendText(doc.kuda(0)+Chr$(13))
    richStyle.FontSize=8
    richStyle.NotesColor=COLOR_BLACK
    Call prtitem.AppendStyle(richStyle)
    Call prtitem.AppendText("Цель : ")
    richStyle.FontSize=8
    richStyle.NotesColor=COLOR_BLUE
    Call prtitem.AppendStyle(richStyle)
    Call prtitem.AppendText(doc.cel(0)+Chr$(13))
    richStyle.FontSize=8
    richStyle.NotesColor=COLOR_BLACK
    Call prtitem.AppendStyle(richStyle)
    Call prtitem.AppendText("Количество сотрудников "+Cstr(doc.kol(0))+" чел."+Chr$(13))
    richStyle.FontSize=8
    richStyle.NotesColor=COLOR_BLACK
    Call prtitem.AppendStyle(richStyle)
    Call prtitem.AppendText("Планируемый адрес подачи :")
    richStyle.FontSize=8
    richStyle.NotesColor=COLOR_BLUE
    Call prtitem.AppendStyle(richStyle)
    Call prtitem.AppendText(doc.adress(0))
    Call prtitem.Update
    Call det.Save(True,True)
    det.saveoptions="0"
    unid = det.UniversalID
    Call uidoc.close
    Call ws.SetTargetFrame("bottom")
    Call ws.EditDocument(False, det, False,,False)
    Call ws.ViewRefresh

    endy:
    End Sub
     
  2. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    Сходу - перед этим кодом задать форму "Detail", по которой документ будет открываться.
    Set uidoc = ws.EditDocument(False,det)
    У вновь созданного профайла нет айтема формы. Либо открытие на редактирование переделать под диалогбокс с явным указанием "Detail".
    Возможно, надо будет еще до открытия заполнить авторс-поля.
     
  3. azzza

    azzza Well-Known Member

    Регистрация:
    26 апр 2011
    Сообщения:
    54
    Симпатии:
    0
    Спасибо огромное OKEN !!!! Попробую сделать как посоветовал... :( :unsure:
    Форму прописал, у мну робит и без дефолт крыжа, завтра отпишусь что у юзверей будет...

    Жаль не вижу как тебя Спасибками закидать для рейты :)
     
  4. azzza

    azzza Well-Known Member

    Регистрация:
    26 апр 2011
    Сообщения:
    54
    Симпатии:
    0
    Благодаря твоему совету OKEN избавился от "формы по умолчанию" , прописал заранее авторс поле и все же
    :unsure: - попробовал у юзеров все так же под 7 недоступны поля, под 8 работает на ура
    В чем же косячек , где еще копнуть ковшечком экскаватора....
     
  5. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Читаем справку дизайнера:
    Можно попробовать на собаках через Target Frame (single click)

    Добавлено
    Обсуждение тут: http://codeby.net/ipb.html?s=&sh...st&p=141346
     
  6. azzza

    azzza Well-Known Member

    Регистрация:
    26 апр 2011
    Сообщения:
    54
    Симпатии:
    0
    Спасибо огромное nvy, жаль, 8 не ставим из-за "нагрузки на машину" у нас считают что 8 нужно минимум 2 метра памяти (не знаю насколько это аргумент, но раз поставлен в таки рамки).
    Попробую извернуться через Inviewedit :) уже есть така вью - просто 2 раза нужно хлопать мышью с запретом Continue :)
    Либо нехай 8 ставят и усе тут :))))

    Еще раз спасибо всем кто откликнулся +++...+++ Вам
     
Загрузка...
Похожие Темы - Работа профильными документами
  1. Andrey Kha
    Ответов:
    0
    Просмотров:
    17
  2. Hoasker
    Ответов:
    0
    Просмотров:
    63
  3. garri671
    Ответов:
    0
    Просмотров:
    49
  4. lelik200969
    Ответов:
    0
    Просмотров:
    49
  5. Kozolick
    Ответов:
    0
    Просмотров:
    134

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