Проблема с rtf таблицами

AvasKvas

Well-known member
03.06.2009
78
0
#1
Доброго времени суток, коллеги!))

Может кто встречался с такой проблемой:

Есть документ. В нем я формирую программно RTF таблицу. Открываю документ, таблица отображается корректно. Но вот как только я попытаюсь его распечатать по другой форме, то таблица превращается в обычный текст без форматирования.

Технология печати такая: текущий документ открывается в диалогбоксе по другой "печатной" форме в которой есть кнопка "печать".

Соответственно в печатной форме находится trf поле вычисляемое само себя. В ней стоит галочка хранить данные в mime. Документ я формирую программно, таблицу тоже, и сразу его подписываю.

Что я пробовал:
1) Просто создание таблицы в rtf - не работает.
2) Снятие, установки галочки у поля хранения данных в mime.
3) Создание html и конвертирование в mime. Тут вроде ка получилось, но документ не подписывается: выдает ошибку на строке "call doc.sign" - "Не найден объект". Из-за этого вариант не приемлем.

Можно конечно создать html и выводить его как "код html" в вычисляемом тексте, но может возникнуть ситуация переполнения данных (100 % возникнет.)

Выяснили, что форматирование в поле есть до открытия документа в диалогбоксе. После открытия форматирования уже нет.

Кто-нибудь встречался с таким? На форуме что то не нашел.

P.S. Спасибо за советы!
 

alexas1

Lotus team
10.04.2014
723
144
#2
Ачоб не сделать, как печать в стандартном журнале.
Там с подменой формы и форматированием проблем нет.
Или надо обязательно, перед печатью, показать док в диалоге?
 

AvasKvas

Well-known member
03.06.2009
78
0
#3
К сожалению нужно обязательно показывать док в диалоге. Функция используется везде и давно в системе, а тут встретил такую проблему.
 

alexas1

Lotus team
10.04.2014
723
144
#4
в печатной форме находится trf поле вычисляемое само себя.
Как я понимаю, проблема именно в этом - при (фактическом) изменении RTF док-то надо переоткрыть (а диалог-то тот же самый док). Ничо пока в голову не идёт (
 

alexas1

Lotus team
10.04.2014
723
144
#5
Хотя ...
Можно сработать строго собаками в UI - перед диалогом переводим фокус на RTF - SelectAll - Copy - открыли диалог - переводим фокус на RTF в диалоге - Past.
Должно получиться.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 567
263
#6
что мешает использовать др. документ (новый)
[DOUBLEPOST=1435592833,1435592794][/DOUBLEPOST]и еще есть RenderToRTItem
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 567
263
#7
и вот еще можно показывать не сохраненный док
Код:
	%REM
*--------------------------------------------
Function PrintTrace
Description: Comments for Function
	%END REM
	Private Function PrintTrace(msg As String) As NotesRichTextItem
		Dim routineName As String
		routineName="PrintTrace"
		On Error GoTo ErrH
		'your code here
		Call me.rtTrace.AppendText(TypeName(Me) &{.} &GetThreadInfo(LSI_THREAD_CALLPROC) &{->} &msg)
		Call me.rtTrace.Addnewline(1, True)
		Set PrintTrace=me.rtTrace
Quit:
		Exit Function
ErrH:
		Error Err, RaiseError
		Resume Quit
	End Function
 
	%REM
*--------------------------------------------
Function ShowTrace
Description: Comments for Function
	%END REM
	Function ShowTrace
		Dim routineName As String
		routineName="ShowTrace"
		On Error GoTo ErrH
		'your code here
		Call me.rtTrace.Update()
		Set ShowTrace=wks.Editdocument(False,me.docTrace)
Quit:
		Exit Function
ErrH:
		Error Err, RaiseError
		Resume Quit
	End Function
 

AvasKvas

Well-known member
03.06.2009
78
0
#8
Вышел из ситуации следующим образом: формирую trf опле с данными, которые в дальнейшем можно распарсить на массив двумерный. и в квериопене печатной формы рисую таблицу заново. Работает.

Метод конечно, как бы помягче выразиться, но время поджимает,а результат нужен.
Получилось при этом куча лишних полей и куча лишнего кода. Но пока только так.