Getalldocumentsbykey

Тема в разделе "Lotus - Программирование", создана пользователем dimat, 20 янв 2011.

  1. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    Dim keys(1) as Variant
    Dim dr as NotesDateRange
    Set keys(0)=dr
    keys(1)="text string"
    Dim view as NotesView
    view.GetAllDocumentsByKey(keys)
    Возвращает не все документы, которые удовлетворяют указанному ключу.
    view:
    1-ая колонка категоризированая и отсортированая тип - Date
    2-ая колонка категоризированая и отсортированая тип - General

    В чем может быть проблема?
     
  2. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
  3. Dragon108

    Dragon108 Well-Known Member

    Регистрация:
    19 янв 2010
    Сообщения:
    264
    Симпатии:
    0

    Может в этом

    Set notesDocumentCollection = notesView.GetAllDocumentsByKey( keyArray [, exactMatch% ] )

    exactMatch%

    Boolean. Optional. Specify True if you want to find an exact match. All documents that match the key exactly are returned. If you specify False (the default) or omit this parameter, a partial match succeeds. A partial match returns all documents that match the initial characters of the key.
     
  4. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Dragon108
    Проблема в отборе по диапазону дат. Если первый ключ — диапазон дат, то последующие ключи работать отказываются.
     
  5. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    Сделал отбор только по диапазону дат, ситуация не изменилась.
    Какие еще есть варианты?
     
  6. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Что означает "ситуация не изменилась"? Если первая колонка содержит "датовые" даты, а не строковые, и диапазон дат в ключе задан верно, должны отбираться все документы, содержащиеся в категориях между датами диапазона включительно.
     
  7. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    Вот и я не могу почему так.

    Код (LotusScript):
    Dim dr as NotesDateRange
    Set nvec=vpde.GetAllEntriesByKey(dr,True)
    Print nvec.count
    Без true тоже пробовал
    nvec.count=1
     
  8. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    У меня такое работает:
    Код (LotusScript):
        Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim view As NotesView

    Dim startDateTime As NotesDateTime
    Dim endDateTime As NotesDateTime
    Dim dateRange As NotesDateRange
    Dim entries As NotesViewEntryCollection
    Dim entry As NotesViewEntry
    Dim ws As New NotesUIWorkspace

    Set db = session.CurrentDatabase
    Set doc = db.CreateDocument()

    'подформа "DateSubform" содержит таблицу с двумя полями типа дата "DateFrom" и "DateTo"
    If Not ws.DialogBox("DateSubform", True, True, False, False, False, False, db.Title, doc, True, False, True) Then Exit Sub

    Set startDateTime = session.CreateDateTime(doc.GetItemValue("DateFrom")(0))
    Set endDateTime = session.CreateDateTime(doc.GetItemValue("DateTo")(0))
    Call endDateTime.AdjustHour(23)
    Call endDateTime.AdjustMinute(59)
    Call endDateTime.AdjustSecond(59)

    Set dateRange = session.CreateDateRange()
    Set dateRange.StartDateTime = startDateTime
    Set dateRange.EndDateTime = endDateTime

    Redim key(0) As Variant
    Set key(0) = dateRange

    Set view = db.getView("viewName")
    Set entries = view.GetAllEntriesByKey(key, True)
     
  9. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.077
    Симпатии:
    300
    а где инициализация диапазона? ;)
    а с др. строны - count не показатель, если колонка мультивалюйная
     
  10. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    это для чего?

    Добавлено:
    инициализация есть и с ней все в порядке, проверял.
    колонка не мультивалюйная
     
  11. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.077
    Симпатии:
    300
    остаётся предположить индексы...
    нек. раработчики очень любят ковырять базу в дизайнере...
    а не через шаблон и обновление из него, и часто наступают на грабли
     
  12. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    С индексами тоже все в порядке...
     
  13. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.077
    Симпатии:
    300
    чудес не бывает ;)
    выкладывайте базу...
     
  14. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    Знаю:)
    Необходимость в отборе по диапазону дат отпала, если будут в будущем подобные глюки, выложу.
    Всем спасибо за внимание к топику ;)
     
Загрузка...
Похожие Темы - Getalldocumentsbykey
  1. Amfion
    Ответов:
    0
    Просмотров:
    477
  2. dimat
    Ответов:
    22
    Просмотров:
    7.523
  3. Extraterrestrial
    Ответов:
    2
    Просмотров:
    2.210
  4. MMN
    Ответов:
    17
    Просмотров:
    5.207
  5. NetWood
    Ответов:
    4
    Просмотров:
    3.436

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