• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

работа со списками

  • Автор темы kilcher
  • Дата начала
K

kilcher

Добрый день,всем!
Может кто подскажет как првернуть следующую задумку. В документе имеется три поля все они многозначеные. На скрипте следует все эти знасения скинуть в одно поле. Как бы это сделать? прообовала создавать массив и добавлять значение этих полей как его элементы. Ничего не получилось B)
 
M

morpheus

NotesItem AppendToTextList

This script appends three new text values to the Categories item in a document: "Girls," "Boys," and "Toys."
Код:
Dim doc As NotesDocument
Dim item As NotesItem
Dim newVals( 1 To 3 ) As String
'...set value of doc...
Set item = doc.GetFirstItem( "Categories" )
newVals( 1 ) = "Girls"
newVals( 2 ) = "Boys"
newVals( 3 ) = "Toys"
Call item.AppendToTextList( newVals )
Call doc.Save( False, True )

3 раз повторить Call item.AppendToTextList( doc.GetItemValue("MyItem") )
 
K

kilcher

NotesItem AppendToTextList

This script appends three new text values to the Categories item in a document: "Girls," "Boys," and "Toys."
Код:
Dim doc As NotesDocument
Dim item As NotesItem
Dim newVals( 1 To 3 ) As String
'...set value of doc...
Set item = doc.GetFirstItem( "Categories" )
newVals( 1 ) = "Girls"
newVals( 2 ) = "Boys"
newVals( 3 ) = "Toys"
Call item.AppendToTextList( newVals )
Call doc.Save( False, True )
B) Делала и так. Но так как значений у полей много,выдает ошибку.
 
M

morpheus

какая ошибка? переполнение поля чтоли?
 
K

kilcher

Type mismatch.

Может я значение неверно задаю?
n1=doc.GetItemValue("order_dp")
n2=doc.GetItemValue("order_mp")
n3=doc.GetItemValue("member_name")

Set item = doc.GetFirstItem( "sendto" )
newVals( 1 ) = n1
newVals( 2 ) = n2
newVals( 3 ) = n3
Call item.AppendToTextList( newVals )
 
M

morpheus

массив массивов не получиться, я ж написал произвести 3 раза процедуру

Set item = doc.GetFirstItem( "sendto" )
Call item.AppendToTextList( doc.GetItemValue("order_dp") )
Call item.AppendToTextList( doc.GetItemValue("order_mp") )
Call item.AppendToTextList( doc.GetItemValue("member_name") )
 
D

Darker

'sep - Разделитель значений, default ","

sep=","
tr=Join(doc.order_dp,sep)+sep+Join(doc.order_mp,sep)+sep+Join(doc.member_name,se
p)
doc.sendto=Split(tr,sep)
 
K

kilcher

Спасибо! :(
Могу задать еще один вопрос(не хочется создавать из за негоновую тему)
Мне следует делать рассылку всем пользователям,которые имеют роль [rout].
Почитав форум,поняла что надо использовать notesACLEntry = notesACL.GetEntry( name$ ),чтобы вытащить имена пользователей.

Так ли это?
notesACLEntry = notesACL.GetEntry( "[rout]" ),или намудрила что-то?
 
O

Omh

Перебираешь все NotesACLEntry в NotesACL.
У каждой проверяешь NotesACLEntry.Roles (ArrayGetIndex'ом например)
Если там есть роль "[rout]", то добавлешь NotesACLEntry.Name в SendTo список.
 
K

kilcher

Перебираешь все NotesACLEntry в NotesACL.
У каждой проверяешь NotesACLEntry.Roles (ArrayGetIndex'ом например)
Если там есть роль "[rout]", то добавлешь NotesACLEntry.Name в SendTo список.



Спасибо! В понедельник будем пробовать :(
 
K

kilcher

Всем спасибо! Решила написать что получилось. Так как заметила,что этот вопрос возникает достаточно часто.


Dim acl As NotesACL
Dim aclentry As NotesACLEntry
Set db = s.CurrentDatabase
Set acl = db.ACL
Set aclentry = acl.GetFirstEntry
Dim entryName As String
Dim memo As NotesDocument

While Not (aclentry Is Nothing)
Forall r In aclentry.Roles
If r="[roles]" Then
Set memo = New NotesDocument( db )
Set rtitem = New NotesRichTextItem( memo, "Body" )
Call rtitem.AppendText("Нажмите ссылку для открытия документа -->")
Call rtitem.AppendDocLink( note, db.Title )
memo.Subject = "Утверждение по отчету завершено"
Call memo.Send( False, aclentry.Name)
End If
End Forall
Set aclentry = acl.GetNextEntry(aclentry)
Wend
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!