Notesrichtextparagraphstyle

Тема в разделе "Lotus - Программирование", создана пользователем 11BOSS11, 3 авг 2010.

  1. 11BOSS11

    11BOSS11 Гость

    класы в IBM действительно индуские. :) ...... , допустим Apend NotesRichTextParagraphStyle есть, а вот аналога взятия этого самого стиля с параграфа я чтото не наблюдаю.... и в екземплах тоже ,... можно тоько скреэйтить новый стиль , потомприсвоить ему нужные свойства, и уже потом приапендить в нужный параграф,....

    ?? а как скопить стиль с параграфа ??

    только о html и DXL пожалуйста ненадо .....
     
  2. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
  3. 11BOSS11

    11BOSS11 Гость

    это разные темы!!
     
  4. ToxaRat

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

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    11BOSS11
    когда же вы успокоитесь то, ответ в DXML и точка :)
     
  5. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Из серии "А как бы мне забить гвоздь? Молоток не предлагать..."
    В DXL нет ничего страшного/сложного. Чем раньше изучите и начнёте использовать (по назначению, разумеется) — тем лучше.
     
  6. 11BOSS11

    11BOSS11 Гость

    я понимаю , но в моем случае мне надо избавится от этого............
    там есть свои нюансы...............
     
  7. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Ну как Вы не поймёте — данная задача рт-классами не может быть решена. Как Вами же было отмечено
    . Убъёте кучу сил, времени и нервов (в том числе форумчан), но в итоге, либо сделаете всё через DXL, либо не сделаете вовсе.
     
  8. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    а какую задачу решаете? сформулируйте сюда, может найдеца другой путь...
     
  9. 11BOSS11

    11BOSS11 Гость

    ну я уже много чего решил из того ,что мне говорили не решаемо рт класами...................

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





    Добавлено:
    ну задача почти решена......... отсались маленькие учловности........(пришлось поставить некоторые ограничения в связи с индейскими класами )

    NotesRichTextStyle и NOtesRichTextParagarphStyle- это не одно и тоже......... NotesRichTextStyle я прекрасно беру от Ренжа, и потом присваиваю,- все нормально) а вот с NOtesRichTextParagarphStyle (отступы, вырввнивание, граници, и т. д.) другой вопрос, - нужно его как то вытянуть с параграфа, ячейки, неважно......
     
  10. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    много чего - это здорово. но задачу вы так и не решили.
    очередное заблуждение.
     
  11. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Вовсе необязательно. Можно выгрузить в рт-поле временного документа, в поток. Читайте справку.
     
  12. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    хочеца все-таки увидеть не решение задачи, а саму задачу...
     
  13. 11BOSS11

    11BOSS11 Гость

    постановка задачи:
    1.Создать новый документ в теневом режиме, скопить туда РТИтем с РТТаблицей.
    2.Добавляем нужное число строк в новую таблицу , заполняем, присваиваем ранее скопированные стили (RTStyle готово, а с RTParagraphStyle и есть проблема(приапендить то без проблем)в считывании ) ............


    Вот собственно говоря и все...... :)
     
  14. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Call notesDocument.CopyItem( item, newName$ )
    Call notesItem.CopyItemToDocument( document, newName$ )
    не подойдёт?
     
  15. 11BOSS11

    11BOSS11 Гость

    это все уже готово, спасибо.......... :)

    мне нужна сейчас только одна вещь - считать стиль параграфа NOtesRichTextParagraphStyle (выравнивание, отступы.....)
     
  16. 11BOSS11

    11BOSS11 Гость

    а вообще , как-нибуть можна взять выравнивение с RichTextTable ........ для меня это самое важное ........хотябы выравнивание как-нить достать..........
     
  17. 11BOSS11

    11BOSS11 Гость

    вот скрипт с помощю которого я бегу по ячейкам таблици РТ ИТЕМА и апенжу в каждую текст :
    Код (LotusScript):
    Call body.AppendText("Дописываем текст")
    если убрать вот эту строчку:
    Код (LotusScript):
    Call body.AppendParagraphStyle(rtpStyle)
    - все работает нормально!
    в чем проблема когда присваиваем стиль.......ругается...........
    если сделать
    Код (LotusScript):
    Call body.BeginInsert( rtNavTable )
    Call body.AppendParagraphStyle(rtpStyle)
    Call body.AppendText("Дописываем текст")
    Call body.EndInsert
    без BeginInsert и EndInsert
    - тогда оно нормально добавит стиль, ПРАВДА В САМЫЙ КОНЕЦ РТ ИТЕМА(аж за табилцу)


    Код (LotusScript):
    REM Find first table in Body item
    Set rtnav = body.CreateNavigator
    If Not rtnav.FindFirstElement(RTELEM_TYPE_TABLE) Then
    Messagebox "Body item does not contain a table,",, _
    "Error"
    Exit Sub
    End If
    REM Set up range and navigator for table
    Set rtRangeTable = body.CreateRange
    Call rtRangeTable.SetBegin(rtnav)
    Call rtRangeTable.SetEnd(rtnav)

    Set rtNavTable = rtRangeTable.Navigator
    REM Find cells in table
    Set rtRangeCell = body.CreateRange
    Set rtRangePara = body.CreateRange
    cellCounter = 0
    Call rtNavTable.FindFirstElement(RTELEM_TYPE_TABLECELL)

    Call    body.Update
    Do
    Call body.BeginInsert( rtNavTable )
    Call body.AppendParagraphStyle(rtpStyle)
    Call body.AppendText("Дописываем текст")
    Call body.EndInsert
    'msg= ""
    cellCounter = cellCounter + 1

    REM Set up range and navigator for cell
    Call rtRangeCell.SetBegin(rtNavTable)
    Call rtRangeCell.SetEnd(rtNavTable)
    Set rtNavCell = rtRangeCell.Navigator

    Loop While rtNavTable.FindNextElement(RTELEM_TYPE_TABLECELL)

    Параграф стайл я определяю раньше(с ним все нормально).............
     
  18. 11BOSS11

    11BOSS11 Гость

    в выше написаном скрпте я уже не беру, а добавляю РТпараграфсСтайл..........
     
  19. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">для затравки</div></div><div class="sp-body"><div class="sp-content">
    Код (Text):
    ' добавляет новую(пустую) строку во все таблицы документа
    ' форматирование береца из последней строки таблицы.
    Private Sub processDoc( doc As NotesDocument )
    Dim session As New NotesSession
    ' выгружаем документ в DXL и строим DOM
    Dim domParser As NotesDOMParser
    Set domParser=session.CreateDOMParser()
    Dim exporter As NotesDXLExporter
    Set exporter = session.CreateDXLExporter
    Call exporter.SetInput(doc)
    Call exporter.SetOutput(domParser)
    exporter.process
    ' проходим по всем таблицам документа, выполняем нужное преобразования
    Dim tables As NotesDOMNodeList
    Set tables = domParser.Document.GetElementsByTagName("table")
    Dim i As Long
    For i = 1 To tables.NumberOfEntries
    Call addRowToTable( tables.GetItem(i) )    
    Next
    ' засасываем результат обратно в виде нового документа.
    Dim importer As NotesDXLImporter
    Set importer = session.CreateDXLImporter
    Call domParser.setOutput( importer )
    Call importer.setOutput( doc.ParentDatabase )
    domParser.Serialize
    Call importer.Import   
    End Sub

    Private Sub addRowToTable( table As notesDOMNode )
    Dim clonedLastRow As NotesDOMNode
    Set clonedLastRow = table.LastChild.clone( True ) ' table.LastChild - последняя строка(tablerow) в таблице
    Call clearAllText( clonedLastRow )
    Call table.AppendChild( clonedLastRow )
    End Sub

    ' удаляем текст из элемента и его потомков
    Private Sub clearAllText( node As NotesDOMNode )
    ' так чистим содержимое ячеек:
    ' If node.NodeType = DOMNODETYPE_TEXT_NODE Then node.NodeValue = ""
    ' а так - кладем нужный текст:
    If node.NodeType = DOMNODETYPE_TEXT_NODE Then
    If node.ParentNode.NodeName = "par" Or node.ParentNode.NodeName = "run" Then
    node.NodeValue = "your text goes here" 
    End If
    End If
    ' рекурсивный вызов для потомков
    Dim child As NotesDOMNode
    Set child = node.FirstChild
    Dim i As Long
    For i = 1 To node.NumberOfChildNodes
    Call clearAllText( child )
    Set child = child.NextSibling
    Next
    End Sub
    логику заполнения ячеек нужным текстом предлагаю реализовать самостоятельно.
     

    Вложения:

    • before.png
      before.png
      Размер файла:
      22,4 КБ
      Просмотров:
      205
    • after.png
      after.png
      Размер файла:
      26,4 КБ
      Просмотров:
      208
  20. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    turumbay
    Глянул картинки — аж похужело, подумал, неужели без ДХЛ справился <_< ? Глянул код — отлегло :ithx: ...
     
Загрузка...
Похожие Темы - Notesrichtextparagraphstyle
  1. Serduko
    Ответов:
    43
    Просмотров:
    3.340

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