1. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Getalldocumentsbykey

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

  1. dimat

    dimat Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    31 июл 2008
    Сообщения:
    516
    Симпатии:
    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 Well-Known Member
    Lotus team

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

    Dragon108 Well-Known Member

    Репутация:
    0
    Регистрация:
    19 янв 2010
    Сообщения:
    265
    Симпатии:
    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 Well-Known Member
    Lotus team

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

    dimat Well-Known Member
    Lotus team

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

    nvyush Well-Known Member
    Lotus team

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

    dimat Well-Known Member
    Lotus team

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

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

    nvyush Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    У меня такое работает:
    Код:
    	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

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

    dimat Well-Known Member
    Lotus team

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

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

    lmike нет, пердело совершенство
    Lotus team

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

    dimat Well-Known Member
    Lotus team

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

    lmike нет, пердело совершенство
    Lotus team

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

    dimat Well-Known Member
    Lotus team

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

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