Unid

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

  1. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    мы все знаем, что в ID есть кусок от времени
    http://www-01.ibm.com/support/docview.wss?uid=swg27003019
    http://www-12.lotus.com/ldd/doc/domino_not...63?OpenDocument
    а время создания не отображает миллисекунды, в LS
    где-то был код получения времени из ID (Константин, по-моему постил), но меня интересует следующее...
    если сортировать UNID как строку - будет ли порядок сортировки соответствовать времени создания документа?
    для чего - лень возиться с получением циферек из UNID (NoteID)
     
  2. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    вот код Константина, но вопрос не снимается :)
     
  3. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    lmike
    Нет, время и дата во втором блоке, в первом данные NSF.
     
  4. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    savl точно?
    Код (Text):
    ' --- Notes C API declares and constants (translated from the header files)
    Public Type TIMEDATE
    Innards(1) As Long
    End Type
    ........
    Sub GetNow(nt As Variant, dt As TIMEDATE)
    .........
    Dim t1 As New NotesDateTime(Cstr(tdoc.Created))
    dt.Innards(1) = Val("&H"& Mid$(tdoc.UniversalID,17,8) &"&")
    dt.Innards(0) = Val("&H"& Mid$(tdoc.UniversalID,25,8) &"&")
    у Константина время там есть

    Добавлено: http://codeby.net/forum/threads/12026.html?vi...ost&p=54229

    Добавлено: др. словами - отрезать с 17-го
     
  5. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Код (LotusScript):
     bits = bits & Right$("0"& Bin$(Cint(Abs(Intr.TimeZone)\100)\15), 2) & Right$("000"& Bin$(Abs(Intr.TimeZone) Mod 100), 4)
    bits = bits & Right$(String(23,"0") & Bin$(Clng(Cdbl(nTime.LSLocalTime))+2415018), 24)  'дни от сотворения Мира
    td.Innards(1)= Val(bits &"&")
    Если учесть, что там идет "И" по битам, наличие времени ничего не даст.
    У меня есть вьюха (byUNID) сортировка по UNID, документы совершенно в разнобой.
    Если отрезать с 17го... Точно!!! надо использовать обратный UNID.
    16 справа + 16 слева, мы так в DME решили проблему отображения полее поздних респонзов в начале вьюхи.
     
  6. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    ну для целей сравнения в одной ДБ - рандом часть врядли нужна
     
  7. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Фиг <_< Точнее "это было давно и всё неправда"
    Начиная с какой-то 4-ки в 1-й блок пишется "случайное значение"(с)
     
Загрузка...

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