Getalldocumentsbykey

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

  1. MMN

    MMN Well-Known Member

    Регистрация:
    11 дек 2008
    Сообщения:
    97
    Симпатии:
    0
    пытаюсь отобрать документы по дате

    Код (Text):
    ......
    DateStart="01.01.2000"
    DateStop=Today

    Dim dateTime1 As New NotesDateTime(DateStart)
    Dim dateTime2 As New NotesDateTime(DateStop)
    Set dateRange = session.CreateDateRange()
    Set dateRange.StartDateTime = dateTime1
    Set dateRange.EndDateTime = dateTime2

    Set view=CS_GetCurrentDb.GetView("OrdersAllDate")
    Set dcDate = view.GetAllDocumentsByKey(dateRange)
    If dcDate.Count < 1 Then Error 5001, "На периуд " & dateRange.Text & " заказы отсутствуют!"
    ......
    Докуменыт не находяться, если я задам просто на определенную дату "15.01.2009" то он их находит.
    В чем может быть проблема ??
     
  2. Yakov

    Yakov Гость

    Используйте NotesDatabase.Search
     
  3. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    в поисковом столбце данные правильно отображаются, дата?
    попробуй задать какое-то время, кроме даты...
     
  4. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Можно попробовать вместо DateStop=Today указать DateStop="Today". Всё-таки по документации нужна строка.
     
  5. MMN

    MMN Well-Known Member

    Регистрация:
    11 дек 2008
    Сообщения:
    97
    Симпатии:
    0
    Кстати щас увидел, если я задам дату вручную
    DateStop="19.01.2009"
    Set dcDate = view.GetAllDocumentsByKey(DateStop)
    то он найдет документы, а если
    DateStop=Today
    Set dcDate = view.GetAllDocumentsByKey(DateStop)
    то ничего не найдет
     
  6. Alexander (Criz)

    Alexander (Criz) Гость

    Ну и делай DateStop=Cstr(Today)...
     
  7. MMN

    MMN Well-Known Member

    Регистрация:
    11 дек 2008
    Сообщения:
    97
    Симпатии:
    0
    столбец единственный и там видно только дату, в самом документе присутствует еще и время в данном поле.


    В том то и дело, что мне нужен dateRange, документы за определенный периуд
     
  8. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    ну, вообще-то нельзя пользоваться такой конструкцией

    Код (Text):
    DateStop=Today
    Dim dateTime2 As New NotesDateTime(DateStop)
    т.к. конструктор NotesDateTime принимает строго строку, а Today возвращает Variant of DataType 7 (Date/Time), который не преобразовывается в данном случае корректно в строковое выражение.
    таким образом, корректно будет использовать либо

    Код (Text):
    DateStop=cstr(Today)
    Dim dateTime2 As New NotesDateTime(DateStop)
    либо
    Код (Text):
    DateStop="Today"
    Dim dateTime2 As New NotesDateTime(DateStop)
     
  9. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Жесть :)
    +1 за реплику господина Yakov'a
     
  10. MMN

    MMN Well-Known Member

    Регистрация:
    11 дек 2008
    Сообщения:
    97
    Симпатии:
    0
    спасибо, буду знать на будущее.
    а как быть с dateRange ??
     
  11. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Тебе уже три раза сказали как быть.
     
  12. MMN

    MMN Well-Known Member

    Регистрация:
    11 дек 2008
    Сообщения:
    97
    Симпатии:
    0
    если вы имели в виду это
    DateStop = Cstr(DateStop)
    DateStart = Cstr(DateStart)
    то оно не помогает с dateRange
     
  13. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Можно полный код как в первом посте?
    В дебагере смотрел чему равно dateRange?
     
  14. MMN

    MMN Well-Known Member

    Регистрация:
    11 дек 2008
    Сообщения:
    97
    Симпатии:
    0
    Код (Text):
        Dim session As New NotesSession
    Dim docff As NotesDocument
    Dim NUIW As New NotesUIWorkspace
    Set docff = New NotesDocument( session.currentDatabase )
    Call NUIW.DialogBox     ( "(ChekDate)", True, True, False, False, False, False, "Выбрать периуд" , docff, True)
    DateStart = docff.GetItemValue("DateStart")(0)
    DateStop = docff.GetItemValue("DateStop")(0)

    If DateStart="" Then DateStart="01.01.1900"
    If DateStop="" Then DateStop=Cstr(Today)

    DateStop = Cstr(DateStop)
    DateStart = Cstr(DateStart)
    '   DateStart="01.01.2000"
    '   DateStop=   Cstr(Today)
    '   Print DateStop
    '   DateStop = "19.01.2009"
    Dim dateTime1 As New NotesDateTime(DateStart)
    Dim dateTime2 As New NotesDateTime(DateStop)
    Set dateRange = session.CreateDateRange()
    Set dateRange.StartDateTime = dateTime1
    Set dateRange.EndDateTime = dateTime2
    '   Messagebox dateRange.Text

    Set tmpDoc=CS_GetCurrentDb.CreateDocument
    Set view=CS_GetCurrentDb.GetView("OrdersAllDate")
    Set dcDate = view.GetAllDocumentsByKey(dateRange)
    '   Set dcDate = view.GetAllDocumentsByKey(DateStop)

    If dcDate.Count < 1 Then Error 5001, "На периуд " & dateRange.text & " заказы отсутствуют!"
    смотрел вот так Messagebox dateRange.Text
     
  15. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Вроде бы всё правильно.
    Предлагаю перестроить индексы или попробовать в новом представлении.
     
  16. Yakov

    Yakov Гость

    offtop on
    Это на каком языке?
    offtop off
     
  17. MMN

    MMN Well-Known Member

    Регистрация:
    11 дек 2008
    Сообщения:
    97
    Симпатии:
    0
    это не влияет на работоспособность ))
     
  18. MMN

    MMN Well-Known Member

    Регистрация:
    11 дек 2008
    Сообщения:
    97
    Симпатии:
    0
    На самом деле проблема была в том, что данные в колонку выводились через формулу
    @Text(@Date(OrderDate))
    оставил так и все заработало.
    @Date(OrderDate)

    вот в свойствах колонки я покапался, а про формулы забыл.


    Всем большое спасибо за помощь, все удалось.
     
Загрузка...
Похожие Темы - Getalldocumentsbykey
  1. Amfion
    Ответов:
    0
    Просмотров:
    497
  2. dimat
    Ответов:
    13
    Просмотров:
    5.617
  3. dimat
    Ответов:
    22
    Просмотров:
    7.529
  4. Extraterrestrial
    Ответов:
    2
    Просмотров:
    2.211
  5. NetWood
    Ответов:
    4
    Просмотров:
    3.437

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