Глюк в Rich-text'овом поле

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

Azrael

Гость
#1
Ситуация: есть документ с установками, в нем есть rich-text'овое поле с шапкой таблицы. Нужно таблицу перенести в новый документ и добавить строки, знакомая ситуация, не правда ли? В одной базе код работает как часы. А в другой - упорно не хочет находить таблицу :) :

Код:
'itemP - richtext из документа-справочника, смотрел в дебаггере, все путем
Call itemP.CopyItemToDocument(doc, "tblLines")
'item - в новом доке
Set item = doc.GetFirstItem("tblLines")
'Set item = itemP.CopyItemToDocument(doc, "tblLines") - тоже не работает если что 

Call item.Update() 'на всяк случай, без него тоже не работает
Set rtNav = item.CreateNavigator() 'навигатор (объявлен выше)
If Not(rtNav.FindFirstElement(RTELEM_TYPE_TABLE)) Then 'а вот здесь мы и ругаемся 
'при этом ругается, даже если сделать Set rtNav = itemP...
'RTELEM_TYPE_TABLECELL - тоже не находит
Msgbox "Не найдена таблица строковой части бланка-заказа!",48
Exit Sub 
End If
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
37
Латвиджа, Рига
#2
Для: Azrael
В форме документа -справочника или документа-цели необходимый тебе item не лежит в другой таблице?
Если потом doc пересохранить через ui, не начинает находить?
 
R

Ronchik

Гость
#3
<!--QuoteBegin-Azrael+18:09:2007, 08:37 -->
<span class="vbquote">(Azrael @ 18:09:2007, 08:37 )</span><!--QuoteEBegin-->Set item = doc.GetFirstItem("tblLines")
[snapback]78551" rel="nofollow" target="_blank[/snapback]​
[/quote]
item это NotesRichTextItem ????
 

Гость
#4
А если скопировать не айтем, а само поле? Или это невозможно по каким то причинам/условиям? Почему нельзя написать set doc2.Field=doc1.Field ?
 
A

Azrael

Гость
#5
Для: Omh
Спасибо агромадныя! Но все-равно словил багофичу: в новом документе ричтекст лежал вне таблицы, в справочнике - в таблице, даже если новый док обновляю через ui или ComputeWithForm, то все равно таблица не находилась. Перекинул ричтекст в справочнике из таблицы, заработало.

Для: Omh
Лови +1 :)
 
Y

Yakov

Гость
#6
Для: Azrael
У меня была схожая ситуация. Я делал примерно так:
Код:
Set item = doc.CreateRichTextItem("tblLines")
Call item.AppendRTItem(itemP)
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
37
Латвиджа, Рига
#7
Rich-text в таблице - проявление зла :)
Lotus s вложенными таблицами не то что плохо работает, он с ними вообще не работает.

По идее, в твоём случае, пересохранение нового дока через ui (при условии, что в форме нового дока richt-text лежит вне таблицы) должно было помочь.
 
A

Azrael

Гость
#8
Еще одна проблемка возникла, опять же, в другой базе - код работает как часы, таблицу я добавил, строки тоже дорисовал, нужно прикрепить еще одну таблицу (с итоговой строкой):

Код:
 	'tbl - объект NotesRichTextTable - через него уже дорисовал строки
Call RTNav.SetPositionAtEnd(tbl)
If profileD.HasItem("tblStuffBottom") Then
Set itemP = profileD.GetFirstItem("tblStuffBottom")
If Not(itemP Is Nothing) Then
Set RTNavBottom = itemP.CreateNavigator
If RTNavBottom.FindFirstElement(RTELEM_TYPE_TABLE) Then
Call item.BeginInsert(RTNav)
Call item.AppendRTItem(itemP)
Call item.EndInsert
End If
End If
End If
В итоге получаю ошибку Method is not available когда пытаюсь добавить RT. От кода другой базы, где все работает отличается лишь тем, что к строкам в таблице применяю стили.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
36
Россия, Калуга
#10
<!--QuoteBegin-Azrael+18:09:2007, 12:32 -->
<span class="vbquote">(Azrael @ 18:09:2007, 12:32 )</span><!--QuoteEBegin-->В итоге получаю ошибку Method is not available когда пытаюсь добавить RT. От кода другой базы, где все работает отличается лишь тем, что к строкам в таблице применяю стили.
[snapback]78590" rel="nofollow" target="_blank[/snapback]​
[/quote]
ЕМНИП, в таблицу не получится вставить. Багофича. ;)
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
37
Латвиджа, Рига
#11
Ну то, что таблицу в таблицу не вставищь - эт точно.
Но, как я понял, тут задача зааппендидь ещё 1 item, после того, как поработал с текущим.
 
A

Azrael

Гость
#12
<!--QuoteBegin-Omh+18:09:2007, 13:40 -->
<span class="vbquote">(Omh @ 18:09:2007, 13:40 )</span><!--QuoteEBegin-->Попробуй без строк
Call item.BeginInsert(RTNav)
Call item.EndInsert

Просто зааппенди item.
[snapback]78593" rel="nofollow" target="_blank[/snapback]​
[/quote]
ругаться-не ругается, но и добавлять - не добавляет

Для: Medevic так ведь в другой базе работает...
что есть ЕМНИП? ;)

Убрал стили, все равно не работает, попробовал Call RTNav.SetPositionAtEnd(RTNav), без толку...
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
37
Латвиджа, Рига
#13
ЕМНИП — аббревиатура от "если мне не изменяет память"

Должен добавлять.
Ты потом апдейтишь, всё как в лучших домах Парижа?
 
A

Azrael

Гость
#14
<!--QuoteBegin-Omh+18:09:2007, 13:46 -->
<span class="vbquote">(Omh @ 18:09:2007, 13:46 )</span><!--QuoteEBegin-->Но, как я понял, тут задача зааппендидь ещё 1 item, после того, как поработал с текущим.
[snapback]78598" rel="nofollow" target="_blank[/snapback]​
[/quote]
Есть шапка таблицы, её берем из справочника, 1-ый итем, добавляем строки (выполнено), складываем в документ, в справочнике есть еще 1 итем - итоговая таблица, нужно взять её и еще раз добавить в итем документа, после таблицы строк.
Есть рабочая база, где код (выше) выдает нужный результат, здесь, почему-то ловлю ошибку.

<!--QuoteBegin-Omh+18:09:2007, 13:53 -->
<span class="vbquote">(Omh @ 18:09:2007, 13:53 )</span><!--QuoteEBegin-->Ты потом апдейтишь, всё как в лучших домах Парижа?
[snapback]78602" rel="nofollow" target="_blank[/snapback]​
[/quote]


таак, заработало, теперь вопросец (еще один, замучил уже, наверное), как дырку между таблицами убрать? в изначальном варианте кода - таблица пристыковывалась вплотную, а здесь - через параграф ;)
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
37
Латвиджа, Рига
#15
Попробуй после добавления строк перевзять rtitem.
Текущий объект Delete'нуть
И взять заново.

Вообщем, начинай пляски с бубном.
Работать должно...



Слушай, нафига тебе нужна ещё одна таблица?
Просто нагенерь ещё строку и заполни, если нужно итого.
Не надо копировать ещё таблицу.
Это изврат.

Убрать отступ тока через hide formulu.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
36
Россия, Калуга
#16
<!--QuoteBegin-Omh+18:09:2007, 12:46 -->
<span class="vbquote">(Omh @ 18:09:2007, 12:46 )</span><!--QuoteEBegin-->Ну то, что таблицу в таблицу не вставищь - эт точно.
Но, как я понял, тут задача зааппендидь ещё 1 item, после того, как поработал с текущим.
[snapback]78598" rel="nofollow" target="_blank[/snapback]​
[/quote]
Понятно. Кстати, item в таблицу (метод AppendRTItem) тоже не вставить.