powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
17 сообщений из 17, страница 1 из 1
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
    #37456513
azelentsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
При помощи VBScript создаю файл в MS Word, в который выгружаются данный из BPM, помимо наименования (которое текстовое, и перенос которого проблем не вызывает) должны переносится поля Description и Annotation, которые представляют собой текст RTF.
Использую вот такой фрагмент скрипта:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Document.Selection.Font.Bold = True
	Document.Selection.Font.Underline = True

	Document.Selection.TypeText "Описание: "

	Document.Selection.Font.Underline = False
	Document.Selection.Font.Bold = False

	Document.Selection.TypeText(Model.Description)
	Document.Selection.TypeParagraph
Результатом - в тексте файла в MS Word текст из Description представляется как rtf-разметка.
Использовать функцию rtf2ascii не хочется, так как Description может содержать форматирование.
Подскажите как лучше решить эту проблему.
...
Рейтинг: 0 / 0
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
    #37456557
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
azelentsov,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
Function GetFullTempFileName(sPrefix As String) As String
  Dim vTempPath As String
  Dim vTempFileName As String
  Dim vLength As Long
  Dim vSuffix As Long
  Dim vTmpFileName As String
  Dim vBufferLen As Long
  
  vBufferLen =  255 
  vTempPath = Space(vBufferLen)
  vLength = GetTempPath(vBufferLen, vTempPath)
  vTempPath = Left(vTempPath, vLength)
  vTempFileName = Space(vBufferLen)
  vSuffix = GetTempFileName(vTempPath, sPrefix,  0 , _
    vTempFileName)
  vTempFileName = Left(vTempFileName, InStr(vTempFileName, vbNullChar) -  1 )
  GetFullTempFileName = vTempFileName
End Function


Sub InsertRTFFile( _
  pRTFRawString As String _
)
  ' Вставить в текст документа RTF данные
  ' сделано через временный файл для совместимости с VB 6
  Dim vTempFileName As String
  Dim vRtfDoc As Document
  vTempFileName = GetFullTempFileName("PD_")

  Open vTempFileName For Output As # 1 
  Print # 1 , pRTFRawString 'Именно print, поскольку write обрамляет кавычками
  Close # 1 
  
  Selection.InsertFile FileName:=vTempFileName, ConfirmConversions:=False

  Kill vTempFileName
End Sub

...
Рейтинг: 0 / 0
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
    #37456709
azelentsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛой,
СПАСИБО за решение ,
Но боюсь что в моем случае оно не подойдет, т.к. вставкой в документ MS Word одно описания модели дело не заканчивается. Скрипт должен сформировать описание всей BPM по принятому у нас в организации стандарту (который, к сожалению, не может быть построен стандартными компонентами PD).
И постоянные операции с временными файлами при создании документа - выглядят как то мало эффективно.
...
Рейтинг: 0 / 0
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
    #37456753
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Глаза боятся - руки делают.
2. Встречают по одёжке, провожают по результату. (с)
Вы для себя честно скажите, как часто Вы будете формировать документацию из модели и насколько критично время формирования (какое будет приемлемо). Потом посчитайте, как много у вас rtf-блоков и пессимистично дайте на один блок 0,1 сек. Прикиньте, сколько получится теоретически. А потом попробуйте на практике хоть в простом цикле выплюнуть все объекты модели с Description и Annotation - благо функции у Вас на руках готовые . Если действительно не устроит время, не поленитесь, отпишитесь здесь со своими требованиями. Ну а уж если найдёте более производительный способ - тоже скажем большое спасибо за код...
...
Рейтинг: 0 / 0
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
    #37465893
azelentsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как и просили - отписываюсь.
При попытке выполнить функцию GetFullTempFileName(sPrefix) получаю сообщение об ошибке:
Код: plaintext
1.
2.
Ошибка выполнения Microsoft VBScript
Переменная не определена: 'GetTempPath' (0x800A01F4)
At line  154 , character  3 
...
Рейтинг: 0 / 0
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
    #37466042
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
azelentsov, версия Word 2007/2010/...? 32-битная или 64-битная?
...
Рейтинг: 0 / 0
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
    #37466061
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вначале кода для 64 бит:

Код: plaintext
1.
2.
3.
4.
5.
Private Declare PtrSafe Function GetTempPath _
        Lib "kernel32" _
        Alias "GetTempPathA" _
        (ByVal nBufferLength As Long, _
        ByVal lpBuffer As String _
        ) As Long

Для 32 без PtrSafe..
...
Рейтинг: 0 / 0
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
    #37466583
azelentsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛой,
Офис 2010 64-х битный
...
Рейтинг: 0 / 0
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
    #37466587
azelentsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛой,
причем скрипт выполняется на стороне PowerDesigner, а не Microsoft Word.
...
Рейтинг: 0 / 0
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
    #37467758
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
azelentsovАнатоЛой,
причем скрипт выполняется на стороне PowerDesigner, а не Microsoft Word.
Для Вас это принципиально? Если да - то Вам не настолько повезло, как могло показаться - придётся возиться самому...
...
Рейтинг: 0 / 0
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
    #37467784
azelentsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛой,
К сожалению принципиально. Проще написать обработчик на стороне PD в виде скрипта, чем заморачиваться настройкой шаблонов на каждом рабочем месте, всех кто захочет получить описание модели.
...
Рейтинг: 0 / 0
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
    #37467910
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
azelentsovАнатоЛой,
К сожалению принципиально. Проще написать обработчик на стороне PD в виде скрипта, чем заморачиваться настройкой шаблонов на каждом рабочем месте, всех кто захочет получить описание модели.

А в чём состоит настройка шаблона?

Вариант с Вёрдом: Готовим в 2010 документ ворд под названием "Шаблон описания процессов - Word 2010 - 64.docm", в котором сохранены все нужные макросы. Отдаём пользователю/выкладываем в репозиторий. Пользователдь берёт этот документ, нажимает кномпель "Макросы", выбирает макросы этого документа, запускает нужный макрос. Пользователь сохраняет получившийся документ Вёрд под названием "Описание процессов по модели Х. Версия Ч". Вуаля.

Вариант с ПД (с "обработчиком на стороне ПД в виде скрипта"): ?
...
Рейтинг: 0 / 0
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
    #37469571
azelentsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛой,

вариант с Word'ом не интересен потому что используется сетевая лицензия версия PowerDesigner, соответственно необходимых библиотек на компе конечного генератора описания просто может не быть! И не каждый пользователь согласится разрешить макросы при открытии шаблона, после страшного сообщения Word о потенциальной угрозе.

В общем - стоит вопрос об расширении и адапатации возможностей PowerDesigner внутри программой оболочки PowerDesigner, а не автоматизации средствами приложений офиса. Причем есть пользователи у которых 32-х битная ХР, а у кого то 64-х битная Вин7.
...
Рейтинг: 0 / 0
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
    #37470202
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
azelentsov, не вопрос. Ключевые идеи функций, я надеюсь, и так понятны. А уж с нюансами реализации бороться - уже Ваша забота. Кстати, как и поиск варианта без использования файлов :) Забросили?
...
Рейтинг: 0 / 0
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
    #37470599
azelentsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛой,
нет не забросил, пока сделал формирование описания через обычный текст, просто помимо простой выдачи описаний процессов в документ должны были попадать и описания требований к каждому из процессов и описание интерфейсных элементов, а вот тут были некоторые козявки, с которыми пришлось помучатся, но вроде бы победил :-)
...
Рейтинг: 0 / 0
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
    #37470704
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
azelentsovАнатоЛой,
... описания требований к каждому из процессов и описание интерфейсных элементов...
Есди не секрет, где храните "описания требований к каждому из процессов" и "описание интерфейсных элементов"?...
...
Рейтинг: 0 / 0
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
    #37470973
azelentsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛой,

Требования в RQM, а описание пользовательских интерфейсов в EAM
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]