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

Тема в разделе "Lotus - Программирование", создана пользователем dron231, 15 июл 2008.

  1. dron231

    dron231 Гость

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

    Код (Text):
    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 (далее условие будет усложняться) и сосчитать сумму значений определенных полей.
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    правильно выдает

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

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

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

    dron231 Гость

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

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

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    dron231
    гы потому шта первую букву в слове CHR я написал на кирилице , нечаянно.

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

    dron231 Гость

    возник еще один вопрос, есть строка поиска:
    Код (Text):
    ....
    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)
    ...
    далее перебор коллекции

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

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    а может попробуете использовать не полнотекстовый поиск, а обычный?

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

    dron231 Гость

    Спасибо... получилось
     
Загрузка...

Поделиться этой страницей