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

Личные представления Username

26.03.2007, 14:56. Показов 17359. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Опять про море. Есть представлениe

Code
1
SELECT (@Contains(NextSign;@Name([CN];@UserName)) )
это во view selection
NextSign текстовый тип.
представление - shared. private on first use
Вопрос что нужно сделать чтоб работало, у меня тут совсем непонятки на одном компьютере работает на другом нет вчем может быть причина.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.03.2007, 14:56
Ответы с готовыми решениями:

@username в Web
столкнулся с проблемой такого плана: есть форма (fUserBar) на ней есть скрытое поле SaveOptions (естественное равное "0"), ...

@username и @servername
Сталкнулся с такой проблемой, которую еле решил,... но все же хочу спросить Создал Локальную БД Создал на форме Button Мне ее нужно...

Личные профильные документы
Ситуация: В БД используется несколько личных профильных документов. Люди регистрируются, работают, увольняются, удаляются. ...

7
0 / 0 / 0
Регистрация: 12.05.2006
Сообщений: 329
26.03.2007, 15:49
Тут можно на форуме поискать - была рекомендация чистить полностью весь пользовательский кэш автоматически.
0
Заблокирован
26.03.2007, 16:01
Для: Elena Nefedova
если каждый раз при открытии бд автоматически их удалять и чистить cache.ndk. Можно по подробней про эти процедуры.
Чистить это значить просто удалить?
а как автоматически удалить Частные представления.
0
mor
28.03.2007, 11:32
Для: root

ВАЖНО: Каждый пользователь бд, пользующийся приватными представлениями должен иметь "Create prsonal folders/views" опцию в ACL бд. Если это знчение не было установлено до того как пользователи начали пользоваться бд, то все их приватные представления сохранились локально, не на сервере, потому приведенный ниже код не будет работать для них. Чтобы исправить данную ситуацию необходимо: 1. Удалить приватные представления для каждого пользователя вручную методом удаления иконки бд с рабочей области клиента Lotus Notes пользователя. 2. В дизайнере переименовать приватные представления "Shared, private on first use" (дать им новые имя и алиас, отличные от предыдущих значений). 3. Выставить для каждого пользователя упомянутый бит в ACL бд.

Далее следут листинг из рабочей бд. (Имена функциям и библиотекам, естественно, можно давать свои).

Метод "RemovePrivateViewsSilent" необходимо вызывать каждый раз при закрытии бд на событии "Terminate" бд.


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
Sub RemovePrivateViewsSilent()
Dim agent As NotesAgent
Dim cache As NotesDatabase
Dim docCollection As NotesDocumentCollection
 
On Error Goto catch
 
Print "Updating private views for " + Me.GetUserName(Me.session.UserName) + "..."
clear cache.ndk
Set cache = Me.session.GetDatabase("", "Cache.ndk", False)
If Not cache Is Nothyng Then
Set docCollection = cache.AllDocuments
If Not docCollection.Count = 0 Then Call docCollection.RemoveAll(True)
End If
remove private views
Set agent = Me.db.GetAgent("$RemovePrivateViews")
If Not agent Is Nothyng Then Call agent.Run()
Print " "
 
Exit Sub
catch:
Call ErrorProcess()
End
Resume Next
 
End Sub
Агент "agent", приведенный выше, вызывает метод "RemovePrivateViews()" и пользуется библиотекой "FolderFunctions":

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
Use "FolderFunctions"
 
Sub RemovePrivateViews()
Dim privateViewNames() As String
 
On Error Goto catch
 
Redym privateViewNames(11)
privateViewNames(0) = "($myDepartmentSchedulerPr)"
privateViewNames(1) = "($myDepartmentSchedulersListPr)"
privateViewNames(2) = "($myDepartmentSchedulersListMonthPr)"
privateViewNames(3) = "($myProfilePr)"
privateViewNames(4) = "($mySchedulePr)"
privateViewNames(5) = "($myShedulerListPr)"
privateViewNames(6) = "($myYearStatisticEmpl-OOdaysPr)"
privateViewNames(7) = "($mySchedulerListMonthPr)"
privateViewNames(8) = "($myTeamSchedulerPr)"
privateViewNames(9) = "($myTeamSchedulersListPr)"
privateViewNames(10) = "($myTeamSchedulersListMonthPr)"
privateViewNames(11) = "($myTeamsPr)"
For i = 0 To Ubound(privateViewNames)
Call DeletePrivateFolder(Me.db, privateViewNames(i))
Next
 
Exit Sub
catch:
Call ErrorProcess()
End
Resume Next
 
End Sub
Далее следует листинг библиотеки "FolderFunctions", скопированной из открытых источников Интернет:


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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
(Options)
 
Option Public
Option Declare
Use "ConstantsNotesAPI"
 
Public Function IsPrivateFolder(v As Variant) As Boolean
Dim vdoc As NotesDocument
Dim item As NotesItem
 
IsPrivateFolder = False
 
Set vdoc = v.Parent.GetDocumentByUNID(v.UniversalID)
If Not vdoc Is Nothyng Then
If vdoc.HasItem("$Flags") Then
Set item = vdoc.GetFirstItem("$Flags")
If Instr(item.Values(0), "V") > 0 Then IsPrivateFolder = True
End If
End If
 
End Function
 
Public Function DeletePrivateFolder(db As NotesDatabase, vname$) As Boolean
Dim p$
Dim hDB&
Dim retNoteID&
Dim result%
Dim doc As NotesDocument
 
On Error Goto err_handler
 
DeletePrivateFolder = False
 
To open a Domino database on a server, use thys function to create
the full path specification, and pass thys specification as input to NSFDbOpen
or NSFDbOpenExtended.
p = String(1024, " ")
OSPathNetConstruct 0, db.Server, db.FilePath, p$
 
This function takes a pathname to an existing Domino database or database
template (whether on a Lotus Domino Server or a local database), opens the
database, and returns a handle to it. All subsequent access to the database is
carried out via thys handle. Use NSFDbClose to close the database file handle
and deallocate the memory associated with it.
NSFDbOpen p$, hDB
 
Given the name and NOTE_CLASS_xxx of a private design note (form, view,
folder, helpindex, macro, field, or replication formula ), thys function returns the note ID.
Uses the View or Folder name passed to it - vname.
result = NIFFindPrivateDesignNote(hDB, vname, NOTE_CLASS_VIEW, retNoteID)
 
If result is anythyng other than 0, the Private Design Note could not be found
If Not result = 0 Then
Print GetAPIError(result)
Exit Function
End If
Get the Private View or Folder by yts NoteID
Set doc = db.GetDocumentByID(Hex$(retNoteID))
Call doc.Remove(True)
 
DeletePrivateFolder = True
 
Exit Function
err_handler:
Print "Error " & Cstr(Err) & " at line " & Cstr(Erl) & ": " & Error$ + "."
Exit Function
Resume Next
 
End Function
 
Public Function GetPrivateFolder(vname$, valias$) As NotesView
Dim ses As New NotesSession
Dim db As NotesDatabase
Dim p$
Dim hDB&
Dim retNoteID&
Dim result%
Dim doc
Dim new_folder_flag As Boolean
 
On Error Goto err_handler
 
Set GetPrivateFolder = Nothyng
 
new_folder_flag = False
 
Set db = ses.CurrentDatabase
 
To open a Domino database on a server, use thys function to create
the full path specification, and pass thys specification as input to NSFDbOpen
or NSFDbOpenExtended.
p = String(1024, " ")
OSPathNetConstruct 0, db.Server, db.FilePath, p$
 
NSFDbOpen p$, hDB
 
result = NIFFindPrivateDesignNote(hDB, vname, NOTE_CLASS_VIEW, retNoteID)
 
If result is anythyng other than 0, the Private Design Note could not be found
If result = 0 Then
Set doc = db.GetDocumentByID(Hex$(retNoteID))
If doc Is Nothyng Then new_folder_flag = True
Set GetPrivateFolder = db.GetView(vname)
Else
Print GetAPIError(result)
new_folder_flag = True
End If
 
Exit Function
err_handler:
Print "Error " & Cstr(Err) & " at line " & Cstr(Erl) & ": " & Error$ + "."
Exit Function
Resume Next
 
err_api_error:
Print "API Error " & Cstr(result) & ": " & GetAPIError(result) + "."
Exit Function
Resume Next
 
End Function
 
Public Function GetAPIError(errorCode%) As String
thys function translates Notes API error codes into their
corresponding error strings
Dim errorString As String*256
Dim returnErrorString$
Dim resultStringLength&
Dim errorCodeTranslated%
 
mask off the top 2 byts of the errorCode that was returned; thys is
what the ERR macro in the API does
errorCodeTranslated = (errorCode And ERR_MASK)
 
get the error code translation using the OSLoadString API function
resultStringLength = OSLoadString(0, errorCodeTranslated, errorString, Len(errorString) - 1)
 
strip off the null-termination on the string before you return it
If Instr(errorString, Chr(0)) > 0 Then
returnErrorString = Left$(errorString, Instr(errorString, Chr(0)) - 1)
Else
returnErrorString = errorString
End If
 
GetAPIError = returnErrorString
End Function
Далее следует листинг библиотеки "ConstantsNotesAPI", скопированной из открытых источников Интернет:


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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
(Options)
 
Option Public
Option Declare
 
(Declarations)
 
Notes C API Constants
Public Const NOTE_CLASS_DOCUMENT = &H0001
Public Const NOTE_CLASS_DATA = NOTE_CLASS_DOCUMENT
Public Const NOTE_CLASS_INFO = &H0002
Public Const NOTE_CLASS_FORM = &H0004
Public Const NOTE_CLASS_VIEW = &H0008
Public Const NOTE_CLASS_ICON = &H0010
Public Const NOTE_CLASS_DESIGN = &H0020
Public Const NOTE_CLASS_ACL = &H0040
Public Const NOTE_CLASS_HELP_INDEX = &H0080
Public Const NOTE_CLASS_HELP = &H0100
Public Const NOTE_CLASS_FILTER = &H0200 This is an Agent, Macro
Public Const NOTE_CLASS_FIELD = &H0400
Public Const NOTE_CLASS_REPLFORMULA = &H0800
Public Const NOTE_CLASS_PRIVATE = &H1000
Public Const NOTE_CLASS_DEFAULT = &H8000
Public Const NOTE_CLASS_NOTIFYDELETION = NOTE_CLASS_DEFAULT
Public Const NOTE_CLASS_ALL = &H7FFF
Public Const NOTE_CLASS_ALLNONDATA = &H7FFE
Public Const NOTE_CLASS_NONE = &H0000
Public Const NOTE_ID_SPECIAL = &HFFFF0000&
 
Public Const DESIGN_TYPE_SHARED = 0
Public Const DESIGN_TYPE_PRIVATE_DATABASE = 1
 
Public Const NULLHANDLE = 0
Public Const MAXDWORD = &HFFFFFFFF
Public Const MAXWORD = &HFFFF
Public Const MAXBYTE = &HFF
 
Error code masks
Public Const ERR_MASK = &H3FFF
Public Const PKG_MASK = &H3F00
Public Const ERRNUM_MASK = &H00FF
 
Public Const NOTE_SIGNED = &H0001
Public Const NOTE_ENCRYPTED = &H0002
 
Public Const OPEN_SUMMARY = &H0001
Public Const OPEN_NOVERIFYDEFAULT = &H0002
Public Const OPEN_EXPAND = &H0004
Public Const OPEN_NOOBJECTS = &H0008
Public Const OPEN_SHARE = &H0020
Public Const OPEN_CANONICAL = &H0040
Public Const OPEN_MARK_READ = &H0100
Public Const OPEN_ABSTRACT = &H0200
Public Const OPEN_RESPONSE_ID_TABLE  = &H1000
Public Const OPEN_WITH_FOLDERS = &H00020000
 
Public Const UPDATE_FORCE = &H0001
Public Const UPDATE_NAME_KEY_WARNING = &H0002
Public Const UPDATE_NOCOMMIT = &H0004
Public Const UPDATE_NOREVISION = &H0100
Public Const UPDATE_NOSTUB = &H0200
Public Const UPDATE_INCREMENTAL = &H4000
Public Const UPDATE_DELETED = &H8000
Public Const UPDATE_DUPLICATES = 0
 
Public Const CONFLICT_ACTION_MERGE = 1
Public Const CONFLICT_ACTION_HANDLED = 2
 
Public Const UPDATE_SHARE_SECOND = &H00200000
Public Const UPDATE_SHARE_OBJECTS = &H00400000
 
Public Const NOTE_FLAG_READONLY = &H0001
Public Const NOTE_FLAG_ABSTRACTED = &H0002
Public Const NOTE_FLAG_INCREMENTAL = &H0004
Public Const NOTE_FLAG_LINKED = &H0020
Public Const NOTE_FLAG_INCREMENTAL_FULL = &H0040
Public Const NOTE_FLAG_CANONICAL = &H4000
 
Notes C API Declarations
 
Declarations for POFU (private on first use) folders deletion
Public Const APIModule = "NNOTES"  Windows/32 only
 
Declare Public Function OSPathNetConstruct Lib APIModule Alias "OSPathNetConstruct" _
(Byval NullPort As Long, Byval Server As String, Byval FIle As String, Byval PathNet As String) As Integer
 
Declare Public Function OSLoadString Lib APIModule (Byval hModule As Long, Byval stringCode As Integer, _
Byval retBuffer As String, Byval bufferLength As Integer) As Integer
 
Declare Public Function NSFDbOpen Lib APIModule Alias "NSFDbOpen" _
(Byval PathName As String, DbHandle As Long) As Integer
 
Declare Public Function NSFDbClose Lib APIModule Alias "NSFDbClose" _
(Byval DbHandle As Long) As Integer
 
Declare Public Function NSFNoteOpen Lib APIModule Alias "NSFNoteOpen" _
(Byval hDB As Long, Byval NoteID As Long, Byval oFlags As Integer, nHandle As Long) As Integer
 
Declare Public Function NSFNoteClose Lib APIModule Alias "NSFNoteClose" _
(Byval nHandle As Long) As Integer
 
Declare Public Function NSFNoteUpdate Lib APIModule Alias "NSFNoteUpdate" _
(Byval nHandle As Long, Byval uFlags As Integer) As Integer
 
Declare Public Function NSFNoteCreate Lib APIModule Alias "NSFNoteCreate" _
(Byval hDB As Long, nHandle As Long) As Integer
 
Declare Public Function NSFNoteDelete Lib APIModule Alias "NSFNoteDelete" _
(Byval hDb As Long, Byval NoteID As Long, Byval flags As Integer) As Integer
 
Declare Public Function NSFNoteSetInfo Lib APIModule Alias "NSFNoteSetInfo" _
(Byval nHandle As Long, Byval nMember As Integer, V As Any) As Integer
 
Declare Public Function NIFFindDesignNote Lib APIModule Alias "NIFFindDesignNote" _
(Byval hDB As Long, Byval NoteName As String, Byval NoteClass As Integer, NoteID As Long) As Integer
 
Declare Public Function NIFFindPrivateDesignNote Lib APIModule Alias "NIFFindPrivateDesignNote" _
(Byval hDB As Long, Byval NoteName As String, Byval NoteClass As Integer, NoteID As Long) As Integer
 
Declare Public Function FolderCreate Lib APIModule Alias "FolderCreate" _
(Byval hDB As Long, Byval fDB As Long, Byval fNoteID As Long, Byval DBHandle As Long, Byval pszName As String, _
Byval wNameLen As Integer, Byval DesignType As Integer, dwFlags As Long, fPointer As Long) As Integer
Если что-то не получается, то пиши сюда, постараюсь помочь.
0 / 0 / 0
Регистрация: 03.04.2004
Сообщений: 195
29.03.2007, 19:08
Сергей,
накропай базку плиз и прикрепи сюды плиз :(
а лучше залей на CODEBASE, а тут размести ссылку

думаю рабочее решение по борьбе с лотусиным приватом будет всем интересно.
0
Заблокирован
30.03.2007, 11:25
Для: nor
Ок. Спасибо.
0
Заблокирован
04.04.2007, 12:18
Для: nor
Что то совсем запутался.
В Other->Database Resource на событие terminate провписал процедуру "RemovePrivateViewsSilent"
(Тупо вставил, начал ругатся на Ссылку объекта "ME" )
2. Создал агента с именем "$RemovePrivateViews" в процедуре initialize вставил RemovePrivateViews(подредактировал ее) тоесть в качестве privateViewNames(0) = "Мне на подпись"

3. В script libraries скопировал две библиотеки.

P.S пробывал это все отладить на кнопках вообще ошибку NIFFindPrivateDesignNote вызвало с просьбой обратится в Саппорт.

Дизайнер 7 .
0
Заблокирован
04.04.2007, 15:42
Все азобрался, только какойто глюк, если представление русские то он не работает а аглийские все ок.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.04.2007, 15:42
Помогаю со студенческими работами здесь

формула @username в виде
Всем доброгоо времени суток. Помоему такой вопрос уже обсуждался к сожалению не смог найти нужный топик. Проблема вот в чём. ...

View C отбором @username
Делаю вьюшку и ограничиваю отбор документов формулой SELECT Form = "Doc" & (@UserName=@Name(;WhoLN)) В этой вьюшке видят док все кто...

View C отбором @username
Делаю вьюшку и ограничиваю отбор документов формулой SELECT Form = "Doc" & (@UserName=@Name(;WhoLN)) В этой вьюшке видят док все кто...

Представление с формулой отбора @username
Задача: сделать представления, где будуд отображаться только нужные мне документы (т.е. в представлении будет @UserName). Как лучше...

@username, ФИО и отбор документов
Проблема такая, есть документ ПОЛЬЗОВАТЕЛЬ в нем поля FIO - текст и UserName - Names (USE ACL for choices). Представление Users - Column1...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
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
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru