V
1

Доступ к адресной книге

16.03.2009, 14:33. Показов 15449. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день! Вот решил обратиться к Вам за советом.
Есть необходимость обратиться к данным в адресной книге в определенной базе, вот что я делаю:
Dim session As New NotesSession
Dim db As New NotesDatabase
session.initialize()
set db=session.GetDatabase("", "AK.nsf")
далее по идее есть свойство AddressBook у session, но вот только с типом Variant и как к нему обращаться не совсем понятно, либо же копать через db но вот только как? Вот в принципе сама проблема)
Заранее спасибо!
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.03.2009, 14:33
Ответы с готовыми решениями:

Compact в адресной книге
Возможно ли создание агента по сжатию БД в АК? Чтобы можно было просто встать на нужную уч.запись в...

Поиск в адресной книге в поле
У меня есть поле и рядом кнопка, которая вызывается пиклист и там ищется имя в АК. Затем результат...

Поиск пользователя рассылки в адресной книге
Была поставлена задача, определить что пользователь который есть в рассылке есть и в адресной...

Не найдено в адресной книге
Севрер Domino 8.5. Поставил Нотес клиент 5 версии, запускаю, после всех настроек выдает ошибку...

9
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
16.03.2009, 14:54 2
Это не вариант, а Array of NotesDatabase. В хелпе всё написано.
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
16.03.2009, 18:11 3
есть еще нюанецы :D

Код
Dim dbNames() As String
Dim dbs() As NotesDatabase
Sub Initialize
Dim session As New NotesSession
Dim books As Variant
books = session.AddressBooks
i=0
server=""
Forall b In books
If ( b.IsPublicAddressBook ) And ( Not done ) Then
Redym Preserve dbNames(i)
Redym Preserve dbs(i)
Call b.Open( "", "" )
If i=0 Then
server=b.Server
End If
If b.Title="" Then
Call b.Open(server,b.fileName)
End If
dbNames(i)=b.Title
Set dbs(i)=b
i=i+1
End If
End Forall
Print "Init Form"
End Sub
в PostOpen

Код
    If Source.EditMode Then
Print "Open with Edit mode"
Call Source.Document.ReplaceItemValue("dbListNames",dbNames)
Call Source.Refresh(True)
End If
ну и на форме контролs (поля):
-компутед вен композе dbListNames
-компутед фор дисплэй list, с формулой dbListNames
-комбик в формулой списка list
0
V
16.03.2009, 18:32 4
ага, сенкс - нашел и подключился именно к адресной книге, но где именно хранится необходимая информация?
Вот что в хелпе:
Dim session As New NotesSession
Dim books As Variant
Dim view As NotesView
Dim doc As NotesDocument
Dim done As Variant
Dim person As String
books = session.AddressBooks
done = False
person = Inputbox$ _
( "Enter the last name of the person: ", "Last name" )
Forall b In books
check every Domino Directory,
unless were already done
If ( b.IsPublicAddressBook ) And ( Not done ) Then
Call b.Open( "", "" )
look up persons last name
in People view of address book
Set view = b.GetView( "People" )
Set doc = view.GetDocumentByKey( person )
if person is found, display the phone number item
from the Person document
If Not ( doc Is Nothyng ) Then
Messagebox( "Phone for " + person _
+ " is " + doc.OfficePhoneNumber( 0 ) )
done = True
End If
End If
End Forall
if done is still False, the person wasnt found
If Not done Then
Messagebox _
( "Sorry, unable to locate persons name." )
End If
End Sub

И если передавать фамилию существующего контакта объект не создается..и откуда взялось свойство OfficePhoneNumber?
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
16.03.2009, 19:48 5
смотря где искать ключ ;)
есть служебные вьюшки (типа $Users) - там будет искать по фамилии
но могут быть траблы с альтернативными "именами"
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
17.03.2009, 09:28 6
Цитата Сообщение от Vаder
но где именно хранится необходимая информация?
молодой человек, вы уж извините, но мы старые, и не всегда уже понимаем по двум словам, в чем суть задачи ;)



Цитата Сообщение от Vаder
откуда взялось свойство OfficePhoneNumber?
любой итем в документе может быть прочтен и записан в т.з. кратком виде, т.е.

Код
someVariable = doc.GetItemValue("someItem")(0)
call doc.ReplaceItemValue("someItem", someVariable)
аналогично

Код
someVariable = doc.someItem(0)
doc.someItem = someVariable
но я бы рекомендовал использовать первый стиль, так более строго (и понятней ;))
0
V
17.03.2009, 10:59 7
о-да, всем спасибо-получилось.
Akupaka , под необходимой информацией я имел ввиду все данные которые имеют отношение к контакту из адресной книги - именно их я и получил, спасибо за подсказку). И сразу возник следующий вопрос-нельзя ли получить сразу весь необходимый объект (тот же контакт из адресной книги) в формате xml? вроде, написано, что парсер есть для xml, но о выгрузке в xml ничего не написано...
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
17.03.2009, 11:05 8
Vаder
Надо засунуть документ в NotesDXLExporter
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
17.03.2009, 14:30 9
Цитата Сообщение от Vаder
нельзя ли получить сразу весь необходимый объект (тот же контакт из адресной книги)
Vаder, нельзя в разговоре с ООПшниками употр*цензура*ть слово объект без конкретного указания типа, иначе они впадут в вечный цикл, пытаясь привести типы ;)
данные о контакте можно получить в виде XML либо преобразовав весь документ, как указал Omh, либо можно сформировать XML самостоятельно, если все поля из документа не нужны, а их там не мало "лишних", либо используя классы NotesDXLxxx, либо самому в файлик писать как надо...
0
V
19.03.2009, 10:47 10
всем спасибо, все получилось)
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.03.2009, 10:47
Помогаю со студенческими работами здесь

Пропал поиск в адресной книге
В общем когда выбираешь юзера из адресной книги... то обычно это делается через поиск. Поиск пашет...

ограниченный поиск на русском языке в адресной книге
Добрый день. Подскажите может кто сталкивался. После установки Lotus Domino 8.5.2 на windows...

Планшет в качестве органайзера, замена адресной/телефонной книге
Собственно, нужно толстую адресно-телефонную книгу с различными заметками перенести на планшет....

В адресной книге постоянно создаётся контакт "Я", как удалить навсегда?
Доброго дня. Имеется телефон Samsung Galaxy Star Advance (Android 4.4.2). После каждой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru