Форум продуктов IBM Lotus
Общие вопросы => Разработка приложений => Тема начата: K85 от 30 Сентябрь 2009, 12:45:03
-
Есть кнопка по выбору адресной книги
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim mDB As Variant
Set db = session.CurrentDatabase
Dim doc As NotesDocument
Set uiDoc = ws.CurrentDocument
Set doc = uiDoc.Document
mDB = ws.Prompt( 13, "Выбор ", "Укажите" )
doc.TitleNames = mDB(2)
Set PABdb = New NotesDatabase(mDB(0),mDB(1))
doc.ReplicaIDnames = PABdb.ReplicaID
doc.ReplicaIDnames_1 = Left(PABdb.ReplicaID,8) & ":" & Right(PABdb.ReplicaID,8)
А как теперь тоже самое выбирать, но при условии, что если уже выбрана одна, то можно было добавить еще одну адр.книгу?
Делаю так:
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim mDB As Variant
Set db = session.CurrentDatabase
Dim doc As NotesDocument
Set uiDoc = ws.CurrentDocument
Set doc = uiDoc.Document
If Len(doc.TitleNames (0))=0 Then
mDB = ws.Prompt( 13, "Выбор", "Укажите" )
doc.TitleNames = mDB(2)
Set PABdb = New NotesDatabase(mDB(0),mDB(1))
doc.ReplicaIDnames = PABdb.ReplicaID
doc.ReplicaIDnames_1 = Left(PABdb.ReplicaID,8) & ":" & Right(PABdb.ReplicaID,8)
Else
mDB = ws.Prompt( 13, "Выбор", "Укажите" )
doc.TitleNames = Arrayappend( doc.TitleNames, mDB(2))
Set PABdb = New NotesDatabase(mDB(0),mDB(1))
doc.ReplicaIDnames=Arrayunique(PABdb.ReplicaID)
End If
Но в строку doc.ReplicaIDnames=Arrayunique(PABdb.ReplicaID) ничего не добавляется
-
PABdb.ReplicaID - это строка. Зачем над ней делать Arrayunique?
-
а как сделать, чтобы в поле добавлялись значения?
-
в строке PABdb.ReplicaID постоянно новое значение, а не несколько значений
-
можно воспользоваться тем же Arrayappend
-
не могу понять что надо ставить в doc.ReplicaIDnames=Arrayappend(PABdb.ReplicaID, ?????)
-
смотря что вам нужно ;) можно посмотреть на две строки раньше, возможно наведет на мысль
-
ой, бывает! наоборот написано было, вот и не срабатывало. Спасибо
-
теперь возникла следующая проблема:
есть кнопка на форме, по нажатию на которую открывается список адр.книг, при выборе одной из них открывается перечень ФИО
код кнопки:
view := "AlternateName";
title := "Справочник" ;
prompt := "Выберите ФИО ";
mServer:=@Subset(@DbName;1);
mSerDB:=@Prompt( [OkCancelList] ;"Cписк справочников";"Укажите справочник";"";"1":"2":"3");
@If( mSerDB="1";mDbName:="names.nsf";mSerDB="2";mDbName:="names_ru.nsf"; mSerDB="3";mDbName:="names_uds.nsf";@Failure(""));
mField1:="Username";
mField2:="ControlUsername";
@If(@ServerName = @UserName;@Failure("необходимо подключение к серверу");@Success);
mAltUser := @PickList ([Custom];mServer:mDbName ; view; title; prompt; 1 );
REM{"mAltUser := @PickList ([Custom]; mServer:mDbName ; view; title; prompt; 1 )"};
REM{"mUser:= @DbLookup ("":"NoCache"; mServer:mDbName; view; mAltUser; 6)"};
mUser:= @DbLookup ("":"NoCache"; mServer:mDbName; view; mAltUser; 6);
@SetField(mField1;mAltUser);
@SetField(mField2;@Name([Canonicalize];mUser));
@Command([ViewRefreshFields] )
Но при выборе "3", т.е. новой адр.книги выдает ошибку "Server Error: File does not exist"
От чего может быть эта ошибка?
-
может проблема в том, что база находится на сервере1, а адр.книга3 на сервере2, причем две другие адр. книги находящиеся в перечне находятся на одном сервере с базой.
Если проблема в этом, то как можно указать при выборе адр.книги3, что она с другого сервера?
-
да, проблема именно в расположении базы. А как ее можно указать вместе с сервером?