База даних:)

Cleric-Lviv

Lotus team
03.01.2008
600
0
#1
Привет всем!
вобщем кратко:)
есть базка в ней две вьюхи - одна с карточками пользователей, другая с их доками.

каждий пользователь должен каждий день сделать 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
 
A

allex

#2
А в се делать в обной view

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

Соответственно посториишь таблицу и намылишь письма
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#3
Использовать списки(List).
В качестве тега - имя пользователя. Значение - тип boolean.
Сначала в List загнать весь список пользователей со значение false(никто не сделал).
Потом пройтись по списку сегодняшних документов и поменять значения соответствующих пользователей на true.

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

Cleric-Lviv

Lotus team
03.01.2008
600
0
#4
не пользователи буду добавлятся, почти каждий день........

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

Cleric-Lviv

Lotus team
03.01.2008
600
0
#5
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:
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#6
а ети листи можно использовать в агенте?
Можно.

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