ипользование данных из документов

  • Автор темы kilcher
  • Дата начала
K

kilcher

#1
Всем добрый день! меня решли полностью окунуть в Lotus и дали задание написать скрипт :D .
Я конечно в курсе что это и как выглядит,но сложить все воедино не очень пока получается.Если есть возможность помогите!Может у кого то есть похожий скриптик?
Вобщем задача такая:нажав на кнопку пользователь выбирает из View сотрудника(соответственно документ с данными о нем). При этом данные из полей этого документа должны занестись в поля моего.
Буду очень благодарна за советы.
 
S

Sandr

#2
Такого скриптика универсального нет, так как у Вас свои поля, у других людей свои...

Могут толкнуть в нужном направлении...

Используйте
notesUIWorkspace.PickListCollection method для диалога выбора документа

notesDocument.Getitemvalue для зачитки значений полей документа

notesDocument.ReplaceItemvalue для записи значений в поля нужного документа...

А дальше в хелп :D там все есть...
 
K

kilcher

#3
У меня создан лист отзывов, в нем следует пользователю создать список согласующих. Тем самым мне надо записать код в кнопку чтоб можно было выбрать нескольких сотрудников и их данные автоматически занеслись бы в поля листа отзыва.Необходимо создавать массивы?
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#4
хм... эту задачу Вы перед собой поставьте :D

вот пример кода в помощь :)

Код:
Sub Click(Source As Button)

On Error Goto errHandler

Dim s As New NotesSession
Dim ws As New NotesUIWorkspace
Dim doc As NotesDocument
Dim pickedCol As NotesDocumentCollection
Dim pickedDoc As NotesDocument
Dim multiSel As Boolean
Dim serverName As String
Dim dbFilePath As String
Dim viewName As String
Dim someValues As Variant
Dim i As Long

Set doc = ws.CurrentDocument.Document

multiSel = True ' множественный выбор
serverName = s.CurrentDatabase.Server ' например, текущая база является источником для выбора
dbFilePath = s.CurrentDatabase.FilePath ' путь всегда полный задаем, иначе не сработает, если БД лежит не в папке Data
viewName = "testView" ' тут лучше всего алиас вида использовать
Set pickedCol = ws.PickListCollection(3, multiSel, serverName, dbFilePath, viewName, "Выбор документов", "Выделите нужные документы")

If pickedCol.Count > 0 Then
' обрабатываем коллекцию выбранных доков
Redim someValues (0 To pickedCol.Count - 1)
For i = 1 To pickedCol.Count
Set pickedDoc = pickedCol.GetNthDocument(i) ' внимание! этот метод работает со значениями от 1
someValues(i) = pickedDoc.GetItemValue("itemName")(0)
Next

Call doc.ReplaceItemValue("pickedValues", someValues)

Msgbox doc.GetFirstItem("pickedValues").Text

End If

endOfSub:
Exit Sub

errHandler:
Msgbox "Ошибка: " & Error & " (" & Cstr(Erl) & ")"
Resume endOfSub

End Sub
 
K

kilcher

#5
Могу ли я немного помучать вас покоду? :)
If pickedCol.Count > 0 Then
' обрабатываем коллекцию выбранных доков
Redim someValues (0 To pickedCol.Count - 1)
Здесь мы убедились,что выбран хоть один документ.Верно?
For i = 1 To pickedCol.Count
Set pickedDoc = pickedCol.GetNthDocument(i) ' внимание! этот метод работает со значениями от 1
А в данной строке мы получаем все значения из документов?
someValues(i) = pickedDoc.GetItemValue("itemName")(0)
А в данных строках мы получаем все значения из документов?

Call doc.ReplaceItemValue("pickedValues", someValues)- здесь знчения поля someValues применяются для поля pickedValues.

Msgbox doc.GetFirstItem("pickedValues").Text а это сообщение о том что задано первое значение?
Я извиняюсь если туплю. Но этот язык увидела сегодня первый раз.
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#6
ну Вы даете! это же знаменитый бейсик, а Вы только сегодня на него взглянули впервые! :)

Здесь мы убедились,что выбран хоть один документ.Верно?
верно

А в данных строках мы получаем все значения из документов?
не все, а значение из одного из документов в коллекции. но в конце работы цикла в том массиве будут значения из всех документов коллекции...

здесь знчения поля someValues применяются для поля pickedValues
так и есть

а это сообщение о том что задано первое значение?
а тут не так немного... notesDocument.getFirstItem - возвращает первый итем с указанным именем в виде объекта NotesItem
потом мы выводим сообщение со значением свойства notesItem.Text - собираем все значения итема через разделитель, т.е. там будут сидеть все значения, кот. мы передали полю из массива, в виде одной строки...

тупите себе поначалу, это не страшно! бо потом некогда будет ;)
 
K

kilcher

#7
Спасибо огромное!Буду пробовать,может что и получится :)
 
K

kilcher

#8
Сори!!! Еще один вопросик.
someValues-имя поля из которого берется значение
pickedValues-имя поля,которому присваивается значение
А itemName что такое?
 

wowa

Well-known member
01.02.2007
845
0
#9
someValues - это значение из поля "itemName", => itemName - поле
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#10
someValues - массив, в кот. мы собрали данные из итема "itemName" каждого документа коллекции.
"pickedValues" - имя итема, в кот. мы записываем этот массив...