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

Тема в разделе "Lotus - Программирование", создана пользователем AvasKvas, 29 июн 2015.

  1. AvasKvas

    AvasKvas Well-Known Member

    Регистрация:
    3 июн 2009
    Сообщения:
    78
    Симпатии:
    0
    Доброго времени суток, коллеги!))

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

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

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

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

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

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

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

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

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

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    567
    Симпатии:
    214
    Ачоб не сделать, как печать в стандартном журнале.
    Там с подменой формы и форматированием проблем нет.
    Или надо обязательно, перед печатью, показать док в диалоге?
     
  3. AvasKvas

    AvasKvas Well-Known Member

    Регистрация:
    3 июн 2009
    Сообщения:
    78
    Симпатии:
    0
    К сожалению нужно обязательно показывать док в диалоге. Функция используется везде и давно в системе, а тут встретил такую проблему.
     
  4. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    567
    Симпатии:
    214
    Как я понимаю, проблема именно в этом - при (фактическом) изменении RTF док-то надо переоткрыть (а диалог-то тот же самый док). Ничо пока в голову не идёт (
     
  5. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    567
    Симпатии:
    214
    Хотя ...
    Можно сработать строго собаками в UI - перед диалогом переводим фокус на RTF - SelectAll - Copy - открыли диалог - переводим фокус на RTF в диалоге - Past.
    Должно получиться.
     
  6. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    что мешает использовать др. документ (новый)
    [DOUBLEPOST=1435592833,1435592794][/DOUBLEPOST]и еще есть RenderToRTItem
     
  7. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    и вот еще можно показывать не сохраненный док
    Код (LotusScript):
        %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
     
     
  8. AvasKvas

    AvasKvas Well-Known Member

    Регистрация:
    3 июн 2009
    Сообщения:
    78
    Симпатии:
    0
    Вышел из ситуации следующим образом: формирую trf опле с данными, которые в дальнейшем можно распарсить на массив двумерный. и в квериопене печатной формы рисую таблицу заново. Работает.

    Метод конечно, как бы помягче выразиться, но время поджимает,а результат нужен.
    Получилось при этом куча лишних полей и куча лишнего кода. Но пока только так.
     
Загрузка...
Похожие Темы - Проблема rtf таблицами
  1. Omh
    Ответов:
    2
    Просмотров:
    2.198
  2. AgniXRudra
    Ответов:
    1
    Просмотров:
    39
  3. Zloikaktus
    Ответов:
    0
    Просмотров:
    18
  4. c0de3r
    Ответов:
    5
    Просмотров:
    151
  5. DobermannTT
    Ответов:
    10
    Просмотров:
    157

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