• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

База даних:)

  • Автор темы Автор темы 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