Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/190: Рейтинг темы: голосов - 190, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 20.09.2009
Сообщений: 187

Изменить автоматически Location и Connection

23.03.2010, 16:45. Показов 34856. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне необходимо отослать письмо группе пользователей, в этом письме должна быть кнопка, при нажатии на которую у пользователя должен изменитьсяв Location: Home/mail server и Domen, т.е. главный почтовый сервер и домен. А также в Connection создать новое подключение к серверу
нашел на форуме, чуть добавил:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
Sub Click(Source As Button)
System variables -> DO NOT CHANGE!!!!
Const VIEW_LOCATION_NAME = "($Locations)"
Const VIEW_CONNECTION_NAME = "($Connections)"
 
Application variables -> EDIT THESE ONES!!!!
Const OLD_DOMAIN_NAME = "1"   This is the value of your old domain
Const NEW_DOMAIN_NAME = "2"  This is the value of your new domai
Dim session As New NotesSession
Dim dbNab As NotesDatabase
Dim view As NotesView
Dim note As NotesDocument
Dim sNamesLine As String
Dim nPos As Integer
Dim sDomainValue As String
Dim bNeedsUpdate As Integer
Dim bLocationModified As Integer
 
On Error Resume Next
 
first, get the local NAB
sNamesLine = session.GetEnvironmentValue("names",True)
 
nPos = Instr(sNamesLine, ",")
If nPos > 0 Then
sNamesLine = Left$(sNamesLine, nPos-1)
Else
sNamesLine = "names.nsf"
End If
 
Set dbNab = New NotesDatabase( "",sNamesLine )
 
If Not(dbNab.isOpen) Then
Messagebox("Не удалось найти Вашу Адресную книгу.")
Exit Sub
End If
 
update all location documents
Set view = dbNab.GetView(VIEW_LOCATION_NAME)
If (view Is Nothyng) Then
Messagebox("Ваша Адресная книга отсутствует.")
Exit Sub
End If
 
Set note = view.GetFirstDocument
 
While Not(note Is Nothyng)
sDomainValue = note.Domain(0)
If Lcase(sDomainValue) = Lcase(OLD_DOMAIN_NAME) Then
note.Domain = NEW_DOMAIN_NAME
note.MailServer="Новый сервер"
Call note.save(True,False)
bLocationModified = True
End If
Set note = view.GetNextDocument(note)
Wend
 
If (bLocationModified) Then Messagebox("Вы должны переоткрыть Notes для того, чтобы изменения вступили в силу.")
 
update all connection documents
Set view = dbNab.GetView(VIEW_CONNECTION_NAME)
If (view Is Nothyng) Then
Messagebox("Ваша Адресная книга отсутствует.")
Exit Sub
End If
 
Set note = view.GetFirstDocument
 
While Not(note Is Nothyng)
bNeedsUpdate = False
sDomainValue = note.SourceDomain(0)
If Lcase(sDomainValue) = Lcase(OLD_DOMAIN_NAME) Then
note.SourceDomain = NEW_DOMAIN_NAME
note.MailServer="Новый сервер"
bNeedsUpdate = True
 
End If
sDomainValue = note.DestinationDomain(0)
If Lcase(sDomainValue) = Lcase(OLD_DOMAIN_NAME) Then
note.SourceDomain = NEW_DOMAIN_NAME
note.MailServer="Новый сервер"
bNeedsUpdate = True
End If
If (bNeedsUpdate) Then Call note.save(True, False)
Set note = view.GetNextDocument(note)
Wend
End Sub
Location заполняется верно, а вот как создать новый Connection не могу понять. Помогите пожалуйста
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.03.2010, 16:45
Ответы с готовыми решениями:

создание у пользова автоматически нового Server Connection
Подскажите возможно ли создание у пользователей автоматически нового Server Connection при подключении к серверу ? т.е. надо что бы у...

Как изменить свойство Location у кнопки
Следующий код не срабатывает: button2.Location.X = 55; Как писать?

Изменить свойство Location формы во время ее работы
Можно ли программно(т.е во время работы программы, она сама например ползла налево) менять свойство Location?

23
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
23.03.2010, 16:59
Это обычный документ. Создается так же.
0
0 / 0 / 0
Регистрация: 20.09.2009
Сообщений: 187
23.03.2010, 18:16
спасибо

Добавлено:

Code
1
2
3
4
5
6
            Dim ws As NotesUIWorkspace
Set doc = db.CreateDocument
note.form = "Connection"
note.Destination="сервер"
note.OptionalNetworkAddress="адрес"
Call note.Save( True, True )
не создается. Скажите, что делаю не так?
0
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
23.03.2010, 19:23
doc, db, note. вы определитесь, что вам надо создавать, сохранять и изменять...
И ws - зачем надо
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
24.03.2010, 08:31
Type = "Connection"
Посмотри значения полей в существующем документе и сделай такие же.
0
0 / 0 / 0
Регистрация: 20.09.2009
Сообщений: 187
24.03.2010, 12:48
Делаю так:

Code
1
2
3
4
5
6
        Set note = db.CreateDocument
note.form = "Connection"
note.DisplayName="название"
note.Destination="сервер"
note.OptionalNetworkAddress="адрес"
Call note.Save( True, True )
но у меня вместо добавления нового документа, просто изменяется существующий. Что не так?
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
24.03.2010, 12:52
Такого не может быть.

Добавлено: Формула отбора в представлении - Type = "Connection".
У тебя в коде нигде не проставляется. Поэтому созданные документы не видно.
0
Tyo
24.03.2010, 12:56
oleg7
Вот код. А ты даже не посмотрел на значения полей в существующем Connection. В частности, поле Form другое.


Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Sub AddOneConnection(namedb As NotesDatabase, Server As String, DNS As String )
On Error Goto ErrHnd
 
Static view As NotesView
Dim doc As NotesDocument
Dim ServerNN As NotesName
 
If view Is Nothyng Then
Set view=namedb.GetView("Connections")
Else
If namedb.ReplicaID <> view.Parent.ReplicaID Then Set view=namedb.GetView("Connections")
End If
If view Is Nothyng Then Error 1001, "Не найден вид Connections в адресной книге " & namedb.FilePath & ""
 
Set ServerNN = New NotesName( Server )
 
*******проверяем на наличие и создаем подключение
Set doc=view.GetDocumentByKey( ServerNN.Abbreviated )
If Not doc Is Nothyng Then
Подключение к серверу обнаружено. Производится модификация...
Else
Подключение к серверу не обнаружено. Создание нового....
Set doc = namedb.CreateDocument
doc.Form="local"
End If
 
doc.ConnectionType="0"
doc.OptionalNetworkAddress=DNS
doc.LanportName="TCPIP"
doc.Destination = ServerNN.Canonical
doc.Source="*"
Call doc.ComputeWithForm(True,False)
call doc.Save(False, False)
Exit Sub
ErrHnd:
On Error Goto 0
Error Err, Error$ & Chr(10) & Getthreadinfo(1) & " (line " & Erl & ")"
End Sub
0 / 0 / 0
Регистрация: 20.09.2009
Сообщений: 187
24.03.2010, 14:49
TIA
спасибо
в моем случае надо было просто вместо db использовать dbNab
Вот только теперь не могу понять как сделать, чтобы искало не локальную просто names, а ту базу, которая указана в параметрах настройки?
0
Tyo
24.03.2010, 15:19
А чем то, что указано в notes.ini не устраивает. И что за настройка с параметрами?
0 / 0 / 0
Регистрация: 20.09.2009
Сообщений: 187
24.03.2010, 15:35
И что за настройка с параметрами?
User Preferences , на русском клиенте Параметры настройки

Добавлено: извеняюсь, наверное вопрос глупый, но не могу понять, как мне из notes.ini взять параметр NAMES?
0
Tyo
24.03.2010, 16:10
Цитата Сообщение от oleg7
Добавлено: извеняюсь, наверное вопрос глупый, но не могу понять, как мне из notes.ini взять параметр NAMES?
Так уже берёшь же. Или это не ты писал?

Code
1
2
 first, get the local NAB
sNamesLine = session.GetEnvironmentValue("names",True)
Наверняка, то что в User Preferences и сохраняется в notes.ini. Попробуй
0 / 0 / 0
Регистрация: 20.09.2009
Сообщений: 187
24.03.2010, 16:31
Code
1
2
 first, get the local NAB
sNamesLine = session.GetEnvironmentValue("names",True)
если локальная база названа names.nsf - ищет и делает изменения, а если, например, new_names.nsf - пишет, что не найдена
0
0 / 0 / 0
Регистрация: 28.06.2009
Сообщений: 1,567
24.03.2010, 16:57
oleg7


Цитата Сообщение от oleg7
new_names.nsf
опа... а зачем что-то искать/менять в левых АК???

такое впечатление, что топикастера запутали начал он нормально с темы поменять настройки подключения клиента, а теперь ищет эти настройки во всех локальных адресных книгах
0
0 / 0 / 0
Регистрация: 20.09.2009
Сообщений: 187
24.03.2010, 17:14
просто у некоторых локальные АК называются ФИО_names.nsf

Добавлено: в notes.ini в поле NAMES указывается название локальной базы. А как его оттуда именно в таком виде ФИО_names взять?
0
0 / 0 / 0
Регистрация: 28.06.2009
Сообщений: 1,567
24.03.2010, 17:20
oleg7
кто-то кого-то не понимает
если Вы научились запущать клиента с иной от names.nsf книгой по-умолчанию - это прекрасно, но тогда она-то Вам и нужна!
в общем не важно - для изменения настроек подключения надо всё сделать в той АК, которая в NAMES указана.....
поэтому вид, в котором вы оттуда взять её хотите - не имеет никакого значения
0
Tyo
24.03.2010, 17:27
Тогда перебирайте notesSession.AddressBooks пока не найдёте NotesDatabase.IsPrivateAddressBook = True

Добавлено:


Цитата Сообщение от oleg7
в notes.ini в поле NAMES указывается название локальной базы. А как его оттуда именно в таком виде ФИО_names взять?
Так:
sNamesLine = session.GetEnvironmentValue("ФИО_names", True)
0 / 0 / 0
Регистрация: 20.09.2009
Сообщений: 187
24.03.2010, 17:31
<div align=center></div>
наверное, конец дня... не доходит.... у меня не хочет и все тут искать АК... постоянно не найдена


sNamesLine = session.GetEnvironmentValue("ФИО_names", True)
я ж не знаю какую базу писать... мне надо не для одного определенного пользователя
0
0 / 0 / 0
Регистрация: 28.06.2009
Сообщений: 1,567
24.03.2010, 17:46
oleg7
откуда Вы взяли ФИО_????? вообще забейте на инишник и тупо берите names.nsf из /notesdata клиента

в инишнике нет никаких переменных ФИО_names, есть только NAMES - перечень локальных АК, в простейшем случае это ровно одна база names.nsf, в сложном - names.nsf+остальные, возможно и Ваша ФИО_, но никакие иные книги, кроме реально локальной АК Вам не нужны!

или же подробнее раскажите как у Вас настроены клиенты, откуда у них взялись эти ФИО_... и зачем они нужны.
0
0 / 0 / 0
Регистрация: 20.09.2009
Сообщений: 187
24.03.2010, 17:51
или же подробнее раскажите как у Вас настроены клиенты, откуда у них взялись эти ФИО_... и зачем они нужны.
это для меня останется загадкой, но еще несколько лет тому им зачем-то сделали локальные АК именно с этой приставкой ФИО...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.03.2010, 17:51
Помогаю со студенческими работами здесь

Не могу изменить свойство Location одной из форм
стоит открыть ее свойства опять - снова стоят нули. исправил, сохранил, открыл - нули. причем только в одной форме такое, все остальные...

Как изменить connection в dataset?
При разрабоке программы при создании DataSet я использовал connection, в котором в качестве servername указал localhost, А когда решил...

Как изменить Connection в DataSet.xsd
Всем привет! Создал DataSet дизайнером, перетащил нужные таблицы. Мне нужно, задавать Connection руками. т.е. к примеру я авторизуюсь...

как автоматически изменить название ячейки?
У меня вопрос. Как мне сделать так, чтобы названия ячеек менять автоматически, например, в ячейке D1 изменить на &quot;Т в зоне...

button1.Location = new System.Drawing.Point(10, 10); Тут создается новый экземпляр button1.Location, куда девается старый?
Или его значение изменятся? Зачем тогда тут нужен &quot;new&quot;?


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru