All Forums
 Категория Visio
 Форум Вопросы и ответы
 Отображение Comment (а) при печати?
Author Previous Topic Topic Next Topic  

Григорий

Russia
2 Posts

Posted - 04/18/2005 :  13:47:02
Привет! Подскажите пжлста, как в VISIO 2003 сделать, чтобы COMMENT отображался в печати.

brace

Russia
358 Posts

Posted - 04/19/2005 :  11:27:44
Возможный вариант решения задачи.
Window > Show ShapeSheet затем ищем таблицу Annotation
в ней есть колонка Comment наведите мышку на ячейку
и увидите текст комментария
читал что можно распечатать любую таблицу/строку/ячейку из ShapeSheet
но как это сделать не знаю.
Может кто нить подскажет ???
Go to Top of Page

brace

Russia
358 Posts

Posted - 04/19/2005 :  14:31:18
нашел как распечатать Comment но не вместе с рисунком
а в отдельном тхт файле.

1 выделяем нужную ячейку в ShapeSheet
2 копируем ее содержание в буфер
3 вставляем в заранее созданный пустой тхт файл.

и так каждую ячейку. Конечно если их много это муторно.
но другого метода не знаю.


Go to Top of Page

Григорий

Russia
2 Posts

Posted - 04/19/2005 :  15:48:37
Спасибо за совет! Боюсь, мне это не подходит. Много COMMENT(ов) надо распечатывать.Походу такой возможности нет. Обидно!
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 04/19/2005 :  18:30:56
Из предыдущей беседы кажется понял, что такое Comment :)
Теперь скажите, как Вы хотите его распечатать - на поле рисунка, в отдельном документе...?
На рисунке в общем случае они могут налезать на шейпы и друг на друга. В текстовый файл в табличку - проще. С привязкой к NameID шейпа? На одном листе, в одном файле?
Go to Top of Page

grigory

Russia
4 Posts

Posted - 04/19/2005 :  20:55:15
Хотелось бы, как на рисунке, пусть налезают на шейпы и друг на друга
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 04/19/2005 :  22:43:53
С макросами Вы умеете обращаться?
Привожу простейший вариант.
Приведенный ниже макрос выберет Comments из всех шейпов на активной странице и выведет их в виде текстовых блоков чуть ниже шейпов. Перед печатью эти блоки можно подвинуть куда нужно, сжать, растянуть и т.д.
Тренироваться, естественно, лучше не на единственном экземпляре, а на копии файла :)
Убрать эти блоки можно только вручную (или закрыть файл не записывая).

Sub ttt()
For Each Sh In ActivePage.Shapes
s = Replace(Sh.Cells("Comment").Formula, Chr(34), "")
If s <> "" Then
vX = Sh.Cells("PinX") - Sh.Cells("Width") * 0.5
vY = Sh.Cells("PinY") - Sh.Cells("Height") * 0.5 - 0.2
W = Sh.Cells("Width")
H = Sh.Cells("Height")
Set shpObj = ActivePage.DrawRectangle(vX, vY, vX + W, vY + H)
shpObj.Text = Replace(Sh.Cells("Comment").Formula, Chr(34), "")
shpObj.Cells("Para.HorzAlign").Formula = "0"
shpObj.Cells("LinePattern").Formula = 0
shpObj.Cells("FillPattern").Formula = 0
End If
Next
End Sub
Go to Top of Page

grigory

Russia
4 Posts

Posted - 04/19/2005 :  23:20:52
INDEX(0;INDEX(0;MASTERNAME();:);.).- Это не совсем то, что я хотел:).
Допустим у меня есть COMMENT, в которой я ввожу текст(свой комментарий).Вот этот,мой комментарий,хотелось бы чтобы отображался при печати. Надеюсь объяснил :)
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 04/19/2005 :  23:35:12
Не, не объяснил :(
Этот макрос выводит все комментарии, которые введены в шейпы через меню Insert / Comment.
Независимо от того, Вы их вводили или еще кто-то...
Это оказались не те комментарии? Значит надо объяснять как-то по-другому...
Go to Top of Page

brace

Russia
358 Posts

Posted - 04/20/2005 :  08:59:28
позвольте вклиниться мне тоже это нужно
Блок Comment никакого отношения к шейпам не имеет
это самостоятельный объект рисунка который можно двигать по рисунку
Доказательста - пожста !
открываю новый файл visio затем Insert > Comment несколько раз и на пустом рисунке появляются комментарии с номерами
a1, a2, a3 и тд.

Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 04/20/2005 :  19:32:35
Я извиняюсь :)
Начнем с того, что у меня был открыт Visio 2002 и решение было приведено для него. В Visio 2002 Comment имеет прямое отношение к шейпам - он хранится в ячейке Comment секции Miscellaneous.
В Visio 2003 все изменили, а я как-то об этом и не подумал. Здесь Comment хранятся в отдельной секции Annotation в шейп-листе страницы, а не шейпов. Хотя в шейпах та самая ячейка осталась, но ее содержимое уже не отображается.
Предложенный алгоритм подходит и здесь, но данные брать надо из другого места.

Sub ttt()
If ActivePage.PageSheet.SectionExists(Visio.visSectionAnnotation, 0) Then
n = ActivePage.PageSheet.RowCount(Visio.visSectionAnnotation)
For i = 1 To n
vX = ActivePage.PageSheet.Cells("Annotation.X[" & i & "]")
vY = ActivePage.PageSheet.Cells("Annotation.Y[" & i & "]")
W = 2
H = 1
Set shpObj = ActivePage.DrawRectangle(vX, vY, vX + W, vY + H)
shpObj.Text = Replace(ActivePage.PageSheet.Cells("Annotation.Comment[" & i & "]").Formula, Chr(34), "")
shpObj.Cells("Para.HorzAlign").Formula = "0"
shpObj.Cells("LinePattern").Formula = 0
shpObj.Cells("FillPattern").Formula = 0
Next
End If
End Sub

Макрос проверяет наличие секции Annotation, узнает сколько в ней строк, для каждой строки рисует новый текстовый блок (координаты для каждого коммента хранятся там же рядом) и записывает в него текст Comment'а. Рисунок, конечно, искажается, зато комментарии должно быть видно.
Go to Top of Page

grigory

Russia
4 Posts

Posted - 04/20/2005 :  22:33:46
Да, именно то, что я хотел. Огромное спасибо!
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)