• ⚡️ Последний шанс: Вебинар по пентесту стартует через 30 минут!

    Друзья, ровно через 30 минут (8 июля в 19:00) начинается наш практический вебинар по пентесту и поиску уязвимостей!

    Если вы хотите:
    🕵️‍♀️ Узнать, как находить и эксплуатировать уязвимости в веб-приложениях.
    💡 Получить ценные инсайты от настоящего эксперта.
    🚀 Сделать решительный шаг в мир кибербезопасности.
    То этот вебинар для вас!

    Ведущий вебинара – Александр Медведев – эксперт с более чем 10-летним опытом в сфере информационной безопасности, пятикратный победитель Standoff и обладатель престижных сертификаций: OSWE, OSCP, PNPT, CEH, CWAPT.

    Успейте присоединиться! Зарегистрироваться сейчас

    Возникли сложности с регистрацией? Пишите нам: @Codeby_Academy
    Будем вас ждать!

База даних:)

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

Cleric84

Well-known member
03.01.2008
599
0
Привет всем!
вобщем кратко:)
есть базка в ней две вьюхи - одна с карточками пользователей, другая с их доками.

каждий пользователь должен каждий день сделать 1 документ, припустим пользоватеей 50 а сделано доков 35, надо вичислить кто не сделал доки:)

есть кодик:) но так как я "тормоз в шкриптиках" прошу помочь:) хотелось чтоб вибивало таблицу с теми кто не сделал доку.
или натолкните на правильний путь а то сам не доганяю куда етот шкриптик ковирять

Dim s As New NotesSession
Dim thisdb As NotesDatabase
Dim userview As NotesView
Dim docsview As NotesView
Dim userdoc As NotesDocument
Dim docs As NotesDocumentCollection
Dim memodoc As NotesDocument
Dim RTBody As NotesRichTextItem
Dim keyArr(0 to 1) As String

Set thisdb=s.CurrentDatabase
Set userview=thisdb.GetView("Users")
Set docsview=thisdb.GetView("DocsByUser")

Set userdoc=userview.GetFirstDocument

Do Until userdoc Is Nothing
keyArr(0)=userdoc.NameLN(0)
keyArr(1)=Today

Set docs=userview.GetAllDocumentsByKey(keyArr, True)
If docs.Count=0 Then
Set memodoc=thisdb.CreateDocument
memodoc.Form="Memo"
memodoc.From="Robot"
memodoc.SendTo=userdoc.NameLN(0)
memodoc.Subject="ах ты гад!"
Set RTBody=memodoc.CreateRichTextItem("Body")
RTBody.AppendText("А вот теперь сиди и думай, что ты забыл сделать!")
Call memodoc.Send(False)
End If

Set userdoc=userview.GetNextDocument(userdoc)
Loop
 
А в се делать в обной view

1 столбец - пользователь
2 столбец - сделал он док или нет

Соответственно посториишь таблицу и намылишь письма
 
Использовать списки(List).
В качестве тега - имя пользователя. Значение - тип boolean.
Сначала в List загнать весь список пользователей со значение false(никто не сделал).
Потом пройтись по списку сегодняшних документов и поменять значения соответствующих пользователей на true.

Еще проще на формулах сделать. Достаточно получить два списка пользователей(через @DbColumn и @DbLookup) и найти их пересечение. Это если пользователей не очень много. :)
 
не пользователи буду добавлятся, почти каждий день........

а вот на счет (List). я б почитал:)
 
Medevic

а ети листи можно использовать в агенте?

например я пишу

Dim mylist List As String
Dim newtag As String
Dim newvalue As String
Dim keyArr(0 To 1) As String
mylist ("гб-іт") = "Олексяк Іван"


насколько я понимаю:) здесь нужно перечислить всех юзверей которие могут делать доки.
дальше должен сделать проверку на доки тоесть чтото типа етого

Set userdoc=userview.GetFirstDocument

Do Until userdoc Is Nothing
keyArr(0)=userdoc.NameLN(0)
keyArr(1)=Today

Set docs=userview.GetAllDocumentsByKey(keyArr, True)
If docs.Count=0 Then

да?или нет:blink:
 
а ети листи можно использовать в агенте?
Можно.

насколько я понимаюsmile.gif здесь нужно перечислить всех юзверей которие могут делать доки.
дальше должен сделать проверку на доки тоесть чтото типа етого
Типа того. Только не вручную перечислять, а из представления взять.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab