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

Не пойму как работает Isuidocopen

27.06.2005, 13:24. Показов 33285. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем.

Очередная проблема.
Хочу сделать, чтобы при изменении поля в родительском документе, менялись поля в дочерних. И перед изменением дочернего проверяю, не открыт ли он на редактирование. Использую свойство NotesDocument.IsUIDocOpen.
И то ли я не правильно делаю, то ли еще что-то, но оно не работает нормально.
Сначала проверял в PostSave. Потом кнопку сделал. И ничего.
При этом, вчера оно нормально работало !
Вот код:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
 
Set dc = ws.CurrentDocument.Document.Responses
Set doc = dc.GetFirstDocument
While Not doc Is Nothyng
f = doc.IsUIDocOpen
If f=False Then
...
Else
...
End If
Set doc = dc.GetNextDocument(doc)
Wend
End Sub
Но иногда в дебаггере работает. Но не пойму почему.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.06.2005, 13:24
Ответы с готовыми решениями:

Не пойму как работает
В учебнике дан пример рекурсии. Вывод цифр целого положительного числа в обратном порядке: var n:integer; procedure reverse(n:...

Не пойму, как работает.
Закончились идеи, как работает программа... Ничего не выходит... Помогите, если нетрудно Дана последовательность вещественных чисел , в...

Не пойму как работает While
n = 4 a = 1 i = 0 summa = 0 while i < n: summa += a a = a/-2 i += 1 # print(summa)

37
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
27.06.2005, 14:35
Все. Выяснил проблему. Это свойство работает только для текущего документа. А то, что мне надо, надо делать вручную через дополнительное поле.
Лотус, как всегда, на высоте.
0
mor
28.06.2005, 15:51
Medevic
Ты все неправильно делаешь. Если документ открывается другим пользователем (на другом компьютере), то такой документ блокируется. Поэтому необходимо проверять именно это свойство документа, а не IsUIDocOpen.
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
29.06.2005, 09:38
Для: nor
Документ блокируется, но можно изменить через скрипт back-end документ, что приведет к конфликту. Поэтому надо проверить, не открыт ли он. Сейчас сделал через LockHolders.

А про IsUIDocOpen. В хелпе явно не сказано, что работает с текущим документом. И из-за этого очень долго не мог понять, где неправильно.
0
0 / 0 / 2
Регистрация: 07.05.2005
Сообщений: 743
29.06.2005, 10:30
<!--QuoteBegin-Medevic+30:06:2005, 08:25 -->
<span class="vbquote">(Medevic @ 30:06:2005, 08:25 )</span><!--QuoteEBegin-->А про IsUIDocOpen. В хелпе явно не сказано, что работает с текущим документом. И из-за этого очень долго не мог понять, где неправильно.
[snapback]21792" rel="nofollow" target="_blank[/snapback]?[/quote]

Ну какже не сказано а для кого написано UI (userInterface). Получи ответный документ через UI класс и все работает, ты ведь его через backend береш и по-этому не получается.
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
29.06.2005, 10:58
<!--QuoteBegin-Domino6+30:06:2005, 09:17 -->
<span class="vbquote">(Domino6 @ 30:06:2005, 09:17 )</span><!--QuoteEBegin-->Ну какже не сказано а для кого написано UI (userInterface). Получи ответный документ через UI класс и все работает, ты ведь его через backend береш и по-этому не получается.
[snapback]21793" rel="nofollow" target="_blank[/snapback]?[/quote]
Да. Все это написано. Так я думал, можно по back-end документу узнать открыт ли он в front-end (например, кем-то другим). А UI класс документа мне недоступен.

Явно в хелпе про это не сказано. И я понял не так.
0
0 / 0 / 2
Регистрация: 07.05.2005
Сообщений: 743
29.06.2005, 14:38
<!--QuoteBegin-Medevic+30:06:2005, 09:45 -->
<span class="vbquote">(Medevic @ 30:06:2005, 09:45 )</span><!--QuoteEBegin-->Явно в хелпе про это не сказано. И я понял не так.
[snapback]21794" rel="nofollow" target="_blank[/snapback]?[/quote]

В хелпе сказанно есть фронедн и бакенд классы там и карта есть. Распечатай ее сразу бутет видно как можно переходит между классами для использования методами и свойствами и видно кто и откуда наследуется.

Я для 4-ки сам блокировку писал
1.способ: внесение итема при редактированиии
2.способ: бросал в папку
3. создание документа блокировки в специальной базе
0
0 / 0 / 0
Регистрация: 23.08.2007
Сообщений: 364
08.02.2012, 15:52
так бекграунд агент никак не может узнать
что
обрабатываемый агентом бекенд док, открыт в УИ (в режиме чтения)?

(агент и док находятся в одной базе в одной реплике)
0
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
12.02.2012, 13:31
yerke
наврят, ведь в бэк-ендных агентах "запрещёно" использовать УИ функции
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
12.02.2012, 14:42
может :icq: сделать самому - при открытии в ЮИ писать в очередь...
0
0 / 0 / 0
Регистрация: 23.08.2007
Сообщений: 364
12.02.2012, 15:52
Цитата Сообщение от Morpheus
yerke
наврят, ведь в бэк-ендных агентах "запрещёно" использовать УИ функции
IsUIDocOpen не уи функция )))

Добавлено:


Цитата Сообщение от lmike
может :icq: сделать самому - при открытии в ЮИ писать в очередь...
ой лень писать обработчик информации об информации ))
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
12.02.2012, 15:53
IsUIDocOpen не уи функция )))
она не будет "работать" без ЮИ (ибо смысла без оного не несёт)
0
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
12.02.2012, 16:08
Цитата Сообщение от yerke
IsUIDocOpen не уи функция )))
явно не заявлена как УИ - согласен , но без УИ никак

Read-only. Indicates whether a NotesDocument object (back-end document) is accessed through a NotesUIDocument object (front-end document).

а обработчик и УИ - это всё у пользователя? или агент на сервере?
0
0 / 0 / 0
Регистрация: 23.08.2007
Сообщений: 364
13.02.2012, 06:47
агент на сервере
0
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
13.02.2012, 10:53
Цитата Сообщение от yerke
агент на сервере
так тут IsUIDocOpen не поможет, надо писать отдельный обработчик

или открывать документы только в режиме редактирования ( лочить )
или в диалоге ( только чтение ).
0
0 / 0 / 0
Регистрация: 16.03.2007
Сообщений: 159
22.07.2015, 09:09
Dim db As New NotesDatabase( "", "" )
db.OpenByReplicaID(имя сервера, реплика )

Set doc = db.GetDocumentByUNID (Unid)
If kdoc.IsUIDocOpen Then
Msgbox " сработало"
End if
Не срабатывает, но если получают БД так:
Set db = ns.CurrentDatabase
Set doc = db.GetDocumentByUNID (Unid)
If doc.IsUIDocOpen Then
Msgbox " сработало"
End if
срабатывает
Почему так?
P.S. задача стоит как в этой теме , но правильного решения не нашел.
0
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
22.07.2015, 09:30
@maliy,


Цитата Сообщение от maliy
задача стоит как в этой теме
обновить у пользователя документ на экране, если кто-то другой внес в него изменения? "На лету"?
0
0 / 0 / 0
Регистрация: 16.03.2007
Сообщений: 159
22.07.2015, 09:41
Открываю документ номер 1, потом открываю документ номер 2, и далее если в документе номер 2 нажать кнопку 2 , то запускается агент(выполняет определенные действия), и сразу же в этой кнопке 2 проверялось - если doc1.IsUIDocOpen
то закрываю этот док и открываю заново. Это работало когда документ номер 1 и номер 2 - были в одной и той же базе , и получив БД таким способом Set db = ns.CurrentDatabase . Все отрабатывало как нужно. На данный момент логика немного поменялась, и документ номер 1, и документ номер 2 могут быть в разных базах, поэтому я стал использовать
Dim db As New NotesDatabase( "", "" )
db.OpenByReplicaID(имя сервера, реплика )

Но метод doc1.IsUIDocOpen перестал срабатывать.
0
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
22.07.2015, 10:16
Цитата Сообщение от maliy
Но метод doc1.IsUIDocOpen перестал срабатывать.
естественно, потому что при переполучении базы все объекты-наследники убиваются, а тут именно переопределение идет.
Сначала объект создается пустой - New NotesDatabase( "", "" )
И только затем его переопределяют: db.OpenByReplicaID
Думаю базу лучше не переполучать, только документ из нее.
Если оставлять такой же подход, то:
Объект базы надо сделать глобальным в рамках формы, если это в форме.
Перед определением проверить db на Nothyng, если база не существует, то определить её, если существует - оставить как есть.
Затем получить документ из базы.
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
22.07.2015, 11:18
Цитата Сообщение от savl
Объект базы надо сделать глобальным в рамках формы, если это в форме.
Перед определением проверить db на Nothyng, если база не существует, то определить её, если существует - оставить как есть.
самый вариант для Static
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.07.2015, 11:18
Помогаю со студенческими работами здесь

WM_MOUSEWHEEL не пойму как работает
Смотрите у меня есть цикл обработки сообщений while(true){ PeekMessage(&amp;msg, 0, 0, 0, PM_REMOVE); switch(msg.message) { ...

Не пойму как работает char
Выдает не символ, а сивол и число!!Это я уже пробую явное приведение. Кто поопытней, поясните!! #include&lt;iostream&gt; ...

Не пойму как работает цикл
for(var i=1; i&lt;9;i++){ document.write(&quot;Квадрат&quot; + i + &quot;равен&quot; + i*i + &quot;&lt;br/&gt;&quot;); } for(var i=1; i&lt;9;i++){ ...

Не пойму как это работает
PS C:\User&gt; (Get-ChildItem -Path &quot;C:\tmp\002&quot;) | Get-Member (Get-ChildItem -Path &quot;C:\tmp\002&quot;).Count Get-Member : Укажите...

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


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

Или воспользуйтесь поиском по форуму:
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