количество дубликатов Notesitem

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

  1. amigolinx

    amigolinx Гость

    Народ, замаялся уже искать ;), подскажите, куда копать, чтобы программно определить количество дубликатов поля и, соответственно, получить к ним по отдельности доступ.
    Проблемка, собственно, вот в чем. Есть большое ртф-поле, содержимое которого разбивается на несколько одноименных дубликатов. В клиенте в свойствах дока эти дубликаты видны рядышком и отдельно с кодом 0, 1... и т.д., а вот при попытке их выцепить чем-то типа doc.myField(0) или перебрать в Forall ниче не получается. И в дебаггере у этого итема вельюс отображается не как контейнер, а как единичное значение. Где тут собака порылась?
     
  2. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    А зачем тебе эти кусочки?
    По идее
    Код (Text):
    Dim Item As NotesItem
    Set Item = Doc.GetFirstItem("ITEM_NAME")
    вернёт тебе склееный айтем.
     
  3. amigolinx

    amigolinx Гость

    Ну да, так и есть, но мне именно кусочки надо. Изврат в том, что мне нужно менять их порядок следования принудительно. Напр., сохранил я этот ртф, он разбился как ему там положено, а потом бывает так, что изначальный нормальный порядок следования этих дубликатов чето глюкаво меняется и если б я мог до них добраться по отдельности, я б им показал, как им надо строится ;), да вот никак не удается...
     
  4. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    [off]У кого-то много свободного времени ;)[/off]
     
  5. amigolinx

    amigolinx Гость

    Ага, отбрехиваться не буду, че греха таить... Даже настолько много, что вот не причину глюков исчу, а с симптомами воюю. Но, согласись, прикольно было бы чтоб такую фишку замутить, мало ли где приспичит :)
     
  6. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    Dim Item As NotesItem
    Set Item = Doc.GetFirstItem("ITEM_NAME") ' взяли первый
    call item.Remove ' удалили

    при необходимости повторить с начала :)
     
  7. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    @DocFields возвращает список имён полей, где дупы - отдельные элементы.

    Прочитать все дупы можно удаляя очередной.
    Код (Text):
    Dim Item As NotesItem
    Do
    Set Item = Doc.GetFirstItem("ITEM_NAME")
    ... Item.Values
    Item.Remove
    Loop While Doc.HasItem(ItemName)
    Есть ещё неприятность. В НЕ SUMMARY может храниться около 64кб данных. Но размер каждого элемента массива получаемого через Values будет не более 32кб.

    Omh
    Мне тоже, кажется, что когда-то NotesItem.Values возвращал склеенные значения, но сейчас это не так (читай в 6,7 и 8й версии).
     
  8. amigolinx

    amigolinx Гость

    Ага, пробовал я вариант с удалением - хелп его тоже предлагает :), но все равно ниче не получается - считывает весь итем целиком, а после remove вырубает его из дока на корню со всеми остальными с тем же названием.
     
  9. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Может DXL - экспорт поможет?
     
  10. amigolinx

    amigolinx Гость

    Во-во, именно в его сторону сейчас и смотрю-верчу, кажись что-то вырисовывается. Пока наблюдается такая закономерность - каждый 5-ый <par def='1'> в нужном поле - это очередной дубликат. Тестирую дальше...
     
  11. K-Fire

    K-Fire Гость

    А почему такая проблема вообще возникает? За счет чего куски РТФа меняются местами? Признаться я ни разу на такую проблему не натыкался вообще.
     
  12. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    одноименные аттачи, баги самого РТФ поля, неправильное форматирование, не использование параграфа при создании абзаца....

    причин много, обычно когда всё по правильному такого нету ;)
     
  13. amigolinx

    amigolinx Гость

    И я вот тоже представить даже не мог себе что такое может быть. Скорей всего это из-за архитектуры базы. Она ну очччень старая, судя по ее дизайну делалась она еще задолго до даже до 5-ки. И я так подозреваю что это происходит из-за того что к ней прикручен редактор html реализованный на самописных диляльках (с конвертацией, прочисткой мусорных тегов и все такое). И вот там просто рассадник возможных глюков, как понимаешь. Сейчас все переделывается почти с нуля на платформе 8.5 (тут уже настал тот момент когда проще по новой сделать, чем исправить), а старые проблемки лезут из всех щелей - одна вроде решится, на ее место еще три появляются. Вот эта конкретно - она так, в принципе, единичного плана и с ней можно и руками бороться. Это у меня на данный момент реально времени некуда девать, так я чтоб не захиреть, нахожу себе всякие извраты, чтоб пока на "кошках тренироваться" ;).
     
Загрузка...

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