Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде / 17 сообщений из 17, страница 1 из 1
26.09.2011, 22:56
    #37456513
azelentsov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
Доброго времени суток!
При помощи 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
26.09.2011, 23:58
    #37456557
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
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
27.09.2011, 09:23
    #37456709
azelentsov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
АнатоЛой,
СПАСИБО за решение ,
Но боюсь что в моем случае оно не подойдет, т.к. вставкой в документ MS Word одно описания модели дело не заканчивается. Скрипт должен сформировать описание всей BPM по принятому у нас в организации стандарту (который, к сожалению, не может быть построен стандартными компонентами PD).
И постоянные операции с временными файлами при создании документа - выглядят как то мало эффективно.
...
Рейтинг: 0 / 0
27.09.2011, 09:51
    #37456753
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
1. Глаза боятся - руки делают.
2. Встречают по одёжке, провожают по результату. (с)
Вы для себя честно скажите, как часто Вы будете формировать документацию из модели и насколько критично время формирования (какое будет приемлемо). Потом посчитайте, как много у вас rtf-блоков и пессимистично дайте на один блок 0,1 сек. Прикиньте, сколько получится теоретически. А потом попробуйте на практике хоть в простом цикле выплюнуть все объекты модели с Description и Annotation - благо функции у Вас на руках готовые . Если действительно не устроит время, не поленитесь, отпишитесь здесь со своими требованиями. Ну а уж если найдёте более производительный способ - тоже скажем большое спасибо за код...
...
Рейтинг: 0 / 0
03.10.2011, 18:19
    #37465893
azelentsov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
Как и просили - отписываюсь.
При попытке выполнить функцию GetFullTempFileName(sPrefix) получаю сообщение об ошибке:
Код: plaintext
1.
2.
Ошибка выполнения Microsoft VBScript
Переменная не определена: 'GetTempPath' (0x800A01F4)
At line  154 , character  3 
...
Рейтинг: 0 / 0
03.10.2011, 19:34
    #37466042
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
azelentsov, версия Word 2007/2010/...? 32-битная или 64-битная?
...
Рейтинг: 0 / 0
03.10.2011, 19:45
    #37466061
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
Вначале кода для 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
04.10.2011, 09:54
    #37466583
azelentsov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
АнатоЛой,
Офис 2010 64-х битный
...
Рейтинг: 0 / 0
04.10.2011, 09:56
    #37466587
azelentsov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
АнатоЛой,
причем скрипт выполняется на стороне PowerDesigner, а не Microsoft Word.
...
Рейтинг: 0 / 0
04.10.2011, 17:58
    #37467758
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
azelentsovАнатоЛой,
причем скрипт выполняется на стороне PowerDesigner, а не Microsoft Word.
Для Вас это принципиально? Если да - то Вам не настолько повезло, как могло показаться - придётся возиться самому...
...
Рейтинг: 0 / 0
04.10.2011, 18:06
    #37467784
azelentsov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
АнатоЛой,
К сожалению принципиально. Проще написать обработчик на стороне PD в виде скрипта, чем заморачиваться настройкой шаблонов на каждом рабочем месте, всех кто захочет получить описание модели.
...
Рейтинг: 0 / 0
04.10.2011, 19:25
    #37467910
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15. Перенос текста из RTF-полей в документ MS Word в человекочитаемом виде
azelentsovАнатоЛой,
К сожалению принципиально. Проще написать обработчик на стороне PD в виде скрипта, чем заморачиваться настройкой шаблонов на каждом рабочем месте, всех кто захочет получить описание модели.

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

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

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

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

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

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


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