• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Сумма значений полей всех доков в коллекции

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

dron231

Доброе время суток. На форме есть кнопка, на кнопке код:

Код:
Sub Click(Source As Button)
Dim coll As NotesDocumentCollection
Dim db As NotesDatabase
Dim sess As New NotesSession
Dim ws As New NotesUIWorkspace
'Dim doc As NotesDocument
Dim this_doc As NotesUIDocument

Set db = sess.CurrentDatabase
Set this_doc = ws.CurrentDocument
search_str$ = "(FIELD Form CONTAINS ""Training"")"
Set coll = db.FTSearch(search_str$, 0)

If coll.Count > 0 Then
Set doc = coll.GetFirstDocument
this_doc.EditMode = True
While Not(doc Is Nothing)		
tmp_str$ = doc.FieldGetText(training_aim)			 - ВОТ НА ЭТОЙ СТРОКЕ ОШИБКУ ВЫДАЕТ (Type mismatch)
Set doc = coll.GetNextDocument(doc)
Wend
End If	
this_doc.Save
End Sub

Что мне нужно: нужно перебрать всю коллекцию документов удовлетворяющих условию search_str (далее условие будет усложняться) и сосчитать сумму значений определенных полей.
 
M

morpheus

tmp_str$ = doc.FieldGetText(training_aim) - ВОТ НА ЭТОЙ СТРОКЕ ОШИБКУ ВЫДАЕТ (Type mismatch)
правильно выдает

1. надо писать
tmp_str$ = tmp_str + Сhr(10) + doc.GetItemValue("training_aim")(0) - первое значение для многозначных полей или все что там есть обычных

2. Чиать правила форума. за темы с таким названием можно горчишник получить

3. Смысл кода не понял вообще... ничего не делающий перебор коллекции
 
D

dron231

Извиняюсь... тему поправил....
Теперь ругается на Chr(10)
А обработка документов будет (сократил для экономии места)

Убрал Chr(10) - заработало!
Спасибо за быстрый и понятный ответ!
 
M

morpheus

dron231
гы потому шта первую букву в слове CHR я написал на кирилице , нечаянно.

можете CHR (10) вообще опустить
 
D

dron231

возник еще один вопрос, есть строка поиска:
Код:
....
Dim coll As NotesDocumentCollection
Dim search_str As String
.....
search_str = {(FIELD Form CONTAINS "Training") AND (FIELD training_trainer CONTAINS "} & this_doc.FieldGetText("trainer_fio") &{"))}
....
Set coll = db.FTSearch(search_str, 0)
...
далее перебор коллекции

Подскажите что добавить в строку поиска чтобы отбирались документы, в которых поле (с датой) меньше (или больше) указанной???
 
M

morpheus

а может попробуете использовать не полнотекстовый поиск, а обычный?

db.Search
синтаксис запроса аналогичен селекшен формуле в представлениях
 
Мы в соцсетях:

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