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

  • Автор темы amigolinx
  • Дата начала
A

amigolinx

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

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#2
А зачем тебе эти кусочки?
По идее
Код:
Dim Item As NotesItem
Set Item = Doc.GetFirstItem("ITEM_NAME")
вернёт тебе склееный айтем.
 
A

amigolinx

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

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#4
[off]У кого-то много свободного времени ;)[/off]
 
A

amigolinx

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

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 226
25
#6
Dim Item As NotesItem
Set Item = Doc.GetFirstItem("ITEM_NAME") ' взяли первый
call item.Remove ' удалили

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

TIA

:-)
Lotus team
15.05.2009
790
2
#7
@DocFields возвращает список имён полей, где дупы - отдельные элементы.

Прочитать все дупы можно удаляя очередной.
Код:
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й версии).
 
A

amigolinx

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

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
#9
Ага, пробовал я вариант с удалением - хелп его тоже предлагает :), но все равно ниче не получается - считывает весь итем целиком, а после remove вырубает его из дока на корню со всеми остальными с тем же названием.
Может DXL - экспорт поможет?
 
A

amigolinx

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

K-Fire

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

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 226
25
#12
А почему такая проблема вообще возникает? За счет чего куски РТФа меняются местами? Признаться я ни разу на такую проблему не натыкался вообще.
одноименные аттачи, баги самого РТФ поля, неправильное форматирование, не использование параграфа при создании абзаца....

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

amigolinx

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