powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Visio automation
25 сообщений из 46, страница 1 из 2
Visio automation
    #38897556
gsv1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую!
Пытаюсь на c# (можно и на VBA) читать диаграмму UML Деятельность. При считывании очередного Shape необходимо:
1. прочитать содержимое поля "Документация" этого shape, а также
2. прочитать данные, записанные ранее вручную в форме "Свойства состояния UML" - Категории/Именованные значения. Например, надо прочитать именованное значение по имени, скажем, "propability", которое раньше внес создатель диаграммы вручную.
Непонятно как получить доступ к значениям этих полей?

Заранее благодарю!
...
Рейтинг: 0 / 0
Visio automation
    #38897572
gsv1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уточню, запись макроса в ходе изменение этих данных (документация и Именованные значения) вручную не дает эффекта - в макрос ничего, что касается такого рода свойств не пишется.
...
Рейтинг: 0 / 0
Visio automation
    #38897788
Bobgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gsv1,

по имени не получиться - только по индексу.
...
Рейтинг: 0 / 0
Visio automation
    #38897802
gsv1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bobgos, можно и по индексу, но какое свойство читать?
...
Рейтинг: 0 / 0
Visio automation
    #38897922
gsv1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как прочитать любое значение тега элемента, заданное вручную при разработке диаграммы?

На картинке - свойства элемента Состояние UML, в которых создан тег "P". Его значение 0.0005 и надо прочитать в программе, анализирующей диаграмму:

foreach (Visio.Shape iShape in ...)
{
iShape.Name ...

iShape.?????
}
...
Рейтинг: 0 / 0
Visio automation
    #38897953
Bobgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bobgosgsv1, по имени не получиться - только по индексу.
Хотя можно самому имена задать. Как-то коряво получилось. Кто поправит?

Код: vbnet
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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
Public Function fncVS_ProcList_NewPropirties() As Boolean
'всем шэйпам Process присваевает свои новые данные
'On Error GoTo Err01:
Dim vsDoc As Visio.Document
Dim vsPage As Visio.Page
Dim vsSp As Visio.Shape
Dim ii%, jj%

Set vsDoc = ThisDocument
Set vsPage = vsDoc.Pages(1)

For Each vsPage In vsDoc.Pages 'листы Visio
Debug.Print vsPage.Name
If vsPage.Shapes.Count > 0 Then
    Set vsSp = vsPage.Shapes(1)
    Else
    GoTo NextPg:
    End If
    
    For Each vsSp In vsPage.Shapes
        If VBA.Left(vsSp.NameU, 7) <> "Process" Then
            GoTo NextSh:
            End If
        Debug.Print vsSp.Name, vsSp.Text '
        With vsSp
            vsSp.DeleteSection visSectionProp
            vsSp.AddSection visSectionProp
            vsSp.AddRow visSectionProp, 0, 0
            'On Error Resume Next
            For jj = 0 To 7 'удаляем созданные по умолчанию для процесса
                vsSp.DeleteRow visSectionProp, 0
            Next jj
            
            For jj = 0 To 3 'создаем нужное число строк свойств
                vsSp.AddRow visSectionProp, 0, 0
            Next jj 'vsSp.AddRow visSectionProp, 0, 0
            
            .CellsSRC(visSectionProp, 0, visCustPropsValue).RowName = "ProcessCode"
            .CellsSRC(visSectionProp, 1, visCustPropsValue).RowName = "ProcessName"
            .CellsSRC(visSectionProp, 2, visCustPropsValue).RowName = "PartCode"
            .CellsSRC(visSectionProp, 3, visCustPropsValue).RowName = "PartName"
                
            .CellsSRC(visSectionProp, 0, visCustPropsValue).Formula = """T000.000"""
            .CellsSRC(visSectionProp, 1, visCustPropsValue).Formula = """Название T000.000"""
            .CellsSRC(visSectionProp, 2, visCustPropsValue).Formula = """00000.0"""
            .CellsSRC(visSectionProp, 3, visCustPropsValue).Formula = """Название подразделения 00000.0"""
            
            'просто просмотрим что получилось
            For jj = 0 To 3
                Debug.Print .CellsSRC(visSectionProp, jj, visCustPropsValue).RowName, .CellsSRC(visSectionProp, jj, visCustPropsValue).Formula
            Next jj
        
        End With
NextSh:    Next 'vsSp
NextPg: Next 'vsPage

Exit Function
Err01:
MsgBox ("Ошибка функции:  fncVS_ProcList_NewPropirties" & vbCrLf & Err.code & " - " & Err.Description)
End Function
...
Рейтинг: 0 / 0
Visio automation
    #38898022
gsv1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bobgos,

если использовать CellsSRC, то можно получить доступ к ShapeSheet - это я знаю. Однако в данном случае необходимо читать "свойства состояния" (см. картинку выше), и именно Именованные значения. К сожалению, если их задать, то они не отображаются в ShapeSheet - проверял :(

Спасибо за попытку помочь, но это не то, что надо.
...
Рейтинг: 0 / 0
Visio automation
    #38898111
Bobgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gsv1Bobgos,
если использовать CellsSRC, то можно получить доступ к ShapeSheet - это я знаю. Однако в данном случае необходимо читать "свойства состояния" (см. картинку выше), и именно Именованные значения. К сожалению, если их задать, то они не отображаются в ShapeSheet - проверял :(
Спасибо за попытку помочь, но это не то, что надо.
Жаль, .... я скорее сам нуждаюсь в помощи, просто не так много инфо по свойствам и методам vba в visio решил кинуть так как понял.
А что за статусы - вообще понятия не имею. Может примерчик файла приложите для разбора?

по моему примеру как по русскому названию поля найти его? пол дня перебираю cells - безрезультатно. Внесенное в
Код: vbnet
1.
.CellsSRC(visSectionProp, 0, visCustPropsValue).Formula 


не отображается в окне привязки или рисунка данных, только в свойствах шэйпа.
...
Рейтинг: 0 / 0
Visio automation
    #38898245
Фотография Surrogate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bobgosя скорее сам нуждаюсь в помощи, просто не так много инфо по свойствам и методам vba в visio решил кинуть так как понял.
А что за статусы - вообще понятия не имею.
по ходу все что касается UML в визио реализовано с помощью аддона UML Background Add-on
например вызов свойства состояния UML вызывается из меню Actions так
Код: vbnet
1.
RUNADDONWARGS("UML Background Add-on","/CMD=1001")


как добраться до потрохов этого аддона, я тоже не знаю
...
Рейтинг: 0 / 0
Visio automation
    #38898273
gsv1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Положил документ Visio (по предложению Bobgos)

Surrogate, но ведь дополнительные свойства шейпов есть не только у UML, а например у ER и многих других. Должен быть какой-то метод работы с ними...
...
Рейтинг: 0 / 0
Visio automation
    #38898306
Фотография Surrogate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gsv1но ведь дополнительные свойства шейпов есть не только у UML, а например у ER и многих других. Должен быть какой-то метод работы с ними... скорее всего эти многие тоже работают под управлением собственных аддонов. у меня в системе их под 100 штук
через шейпшит и vba до них недобраться :(
...
Рейтинг: 0 / 0
Visio automation
    #38898321
gsv1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Surrogate,

Хм, а как же тогда работают разные пользовательские надстройки, реализующие специфические отчеты и др. Функциональность?
Шейпшит действительно не содержит этих свойств, но где то они хранятся... Хотелось бы найти!
...
Рейтинг: 0 / 0
Visio automation
    #38898479
Bobgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Surrogategsv1но ведь дополнительные свойства шейпов есть не только у UML, а например у ER и многих других. Должен быть какой-то метод работы с ними... скорее всего эти многие тоже работают под управлением собственных аддонов. у меня в системе их под 100 штук
через шейпшит и vba до них недобраться :(
Например:
Код: vbnet
1.
2.
3.
For ii = 1 To 100
Debug.Print ii, Addons.Item(ii).Name
Next ii

выдает 93 шт.
среди них с id 62 _ Фоновая настройка UML (или UML Background Add-on)
Это он? Тогда соглашусь с Surrogate - у него в модели нет практически ничего.

gsv1,
Какую задачу нужно решить. Даже не представляю что должно сподвигнуть использовать UML?
...
Рейтинг: 0 / 0
Visio automation
    #38898492
gsv1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bobgos,

надо нарисовать дерево, подобное тому, которое я привел выше. Графическая структура дерева затем должна быть переведена в некоторое внутреннее представление. В этом дереве во внутреннем представлении нужно будет выполнять разные обработки, например искать возможные пути до корня от вершин с определенными характеристиками, удовлетворяющие некоторым ограничениям.
Идея в том, чтобы рисовать дерево в развитой среде, типа Visio. Можно конечно и не UML, но диаграмма активности вполне подходит по смыслу.

Вообще то в Visio есть ведь forvard ingeneiring для баз данных, задача подобная...
...
Рейтинг: 0 / 0
Visio automation
    #38898592
Bobgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gsv1Bobgos,

надо нарисовать дерево, подобное тому, которое я привел выше. Графическая структура дерева затем должна быть переведена в некоторое внутреннее представление. В этом дереве во внутреннем представлении нужно будет выполнять разные обработки, например искать возможные пути до корня от вершин с определенными характеристиками, удовлетворяющие некоторым ограничениям.
Идея в том, чтобы рисовать дерево в развитой среде, типа Visio. Можно конечно и не UML, но диаграмма активности вполне подходит по смыслу.

Вообще то в Visio есть ведь forvard ingeneiring для баз данных, задача подобная...
а если просто рисовать шэйпами?
Код: vbnet
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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
Dim vsDoc As Visio.Document
Dim vsPg As Visio.Page
'&#248;&#253;&#233;&#239;&#251;
Dim vsSh1 As Visio.Shape
Dim vsSh2 As Visio.Shape
Dim vsSh3 As Visio.Shape
Dim vsSh4 As Visio.Shape
'&#241;&#238;&#229;&#228;.&#235;&#232;&#237;&#232;&#255;
Dim vsShC As Visio.Shape
''''''''''''''''''''''''''''''''''''''''
Set vsDoc = ThisDocument
Set vsPg = vsDoc.Pages(1)

Set vsSh1 = vsPg.Drop(Application.Documents.Item("BASFLO_M.VSS").Masters.ItemU("Process"), 2#, 4#)
Set vsSh2 = vsSh1.Duplicate
Set vsSh3 = vsSh1.Duplicate
Set vsSh4 = vsSh1.Duplicate

With vsSh1
    .Text = "Level1"
    .CellsSRC(visSectionObject, visRowXFormOut, visXFormPinX).FormulaU = VBA.CStr(120) & " mm"
    .CellsSRC(visSectionObject, visRowXFormOut, visXFormPinY).FormulaU = VBA.CStr(150) & " mm"
End With
With vsSh2
    .Text = "Level2.1"
    .CellsSRC(visSectionObject, visRowXFormOut, visXFormPinX).FormulaU = VBA.CStr(80) & " mm"
    .CellsSRC(visSectionObject, visRowXFormOut, visXFormPinY).FormulaU = VBA.CStr(40) & " mm"
End With
With vsSh3
    .Text = "Level2.2"
    .CellsSRC(visSectionObject, visRowXFormOut, visXFormPinX).FormulaU = VBA.CStr(120) & " mm"
    .CellsSRC(visSectionObject, visRowXFormOut, visXFormPinY).FormulaU = VBA.CStr(40) & " mm"
End With
With vsSh4
    .Text = "Level2.3"
    .CellsSRC(visSectionObject, visRowXFormOut, visXFormPinX).FormulaU = VBA.CStr(160) & " mm"
    .CellsSRC(visSectionObject, visRowXFormOut, visXFormPinY).FormulaU = VBA.CStr(40) & " mm"
End With

''''''''''''''''''''''''''''''''''''''''
Set vsShC = vsPg.Drop(Application.ConnectorToolDataObject, 2#, 2#)
vsShC.CellsU("BeginX").GlueTo vsSh1.CellsSRC(7, 2, 0)
vsShC.CellsU("EndX").GlueTo vsSh2.CellsSRC(7, 3, 0)
vsShC.CellsSRC(visSectionObject, visRowShapeLayout, visSLORouteStyle).FormulaU = 16

Set vsShC = vsPg.Drop(Application.ConnectorToolDataObject, 2#, 2#)
vsShC.CellsU("BeginX").GlueTo vsSh1.CellsSRC(7, 2, 0)
vsShC.CellsU("EndX").GlueTo vsSh3.CellsSRC(7, 3, 0)
vsShC.CellsSRC(visSectionObject, visRowShapeLayout, visSLORouteStyle).FormulaU = 16

Set vsShC = vsPg.Drop(Application.ConnectorToolDataObject, 2#, 2#)
vsShC.CellsU("BeginX").GlueTo vsSh1.CellsSRC(7, 2, 0)
vsShC.CellsU("EndX").GlueTo vsSh4.CellsSRC(7, 3, 0)
vsShC.CellsSRC(visSectionObject, visRowShapeLayout, visSLORouteStyle).FormulaU = 16



все это потом можно экспортировать в базу, в нужные свойства добавлять как данные фигур.
или это все слишком неудобно?
...
Рейтинг: 0 / 0
Visio automation
    #38898643
gsv1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bobgos,

Вы не поняли. Дерево рисует человек, знающий какое оно должно быть, думающий над ним. Заносит в эту картинку характеристики узлов, которые потом надо прочитать. Когда дерево готово, начинает работать программа, вычисляющая некоторые общие характеристики дерева, анализирующая его
...
Рейтинг: 0 / 0
Visio automation
    #38898894
gsv1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел такой код:

Код: vbnet
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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
Sub ExtractInfo()

    Dim engine As New MODELENGLib.VisioModelingEngine
    
    Dim models As MODELENGLib.IEnumIVMEModels
    
    Dim modelEnum As MODELENGLib.IEnumIVMEModels
    Set modelEnum = engine.models
    
    Do
        Dim model As MODELENGLib.IVMEERModel
        Set model = modelEnum.Next
        If model Is Nothing Then Exit Do
        
        Call ExtractTables(model)
        
    Loop
End Sub

Sub ExtractTables(model As MODELENGLib.IVMEERModel)

    Dim tableEnum As MODELENGLib.IEnumIVMEEntities
    Set tableEnum = model.Entities
    
    Do
        Dim table As MODELENGLib.IVMEEntity
        Set table = tableEnum.Next
        If table Is Nothing Then Exit Do
        
        Debug.Print "Table [" & table.PhysicalName & "]"
        
        Set pkColumns = CreateObject("Scripting.Dictionary")
        
        Call ExtractTableKeys(table, pkColumns)
        Call ExtractTableColumns(table, pkColumns)
        
    Loop

End Sub

Sub ExtractTableColumns(table As MODELENGLib.IVMEEntity, pkColumns)

    Dim columnEnum As MODELENGLib.IEnumIVMEAttributes
    Set columnEnum = table.Attributes
    
    Do
        Dim column As MODELENGLib.IVMEAttribute
        Set column = columnEnum.Next
        If column Is Nothing Then Exit Do
        
        Dim columnDataType As MODELENGLib.IVMEDataType
        Set columnDataType = column.DataType
        
        isPrimaryKey = pkColumns.Exists(column.PhysicalName)
        
        Debug.Print "  Column [" & column.PhysicalName & "], Type : """ & columnDataType.PhysicalName & """, Nullable : " & column.AllowNulls & ", PK : " & isPrimaryKey
    Loop

End Sub

Sub ExtractTableKeys(table As MODELENGLib.IVMEEntity, pkColumns)

    Dim annotationEnum As MODELENGLib.IEnumIVMEEntityAnnotations
    Set annotationEnum = table.EntityAnnotations
    
    Do
        Dim annotation As MODELENGLib.IVMEEntityAnnotation
        Set annotation = annotationEnum.Next
        If annotation Is Nothing Then Exit Do
        
        Select Case annotation.kind
        Case eVMEEREntityAnnotationPrimary
        
            Dim pkColumnEnum As MODELENGLib.IEnumIVMEAttributes
            Set pkColumnEnum = annotation.Attributes
            
            Do
                Dim pkColumn As MODELENGLib.IVMEAttribute
                Set pkColumn = pkColumnEnum.Next
                If pkColumn Is Nothing Then Exit Do
                
                pkColumns.Add pkColumn.PhysicalName, pkColumn
            Loop
        End Select
    Loop
End Sub



По утверждению автора он позволяет читать те доп. свойства, которые создаются в ходе работы с UML addon и хранятся в BLOB, правда не знаю где... Интересно такой код будет работать?
...
Рейтинг: 0 / 0
Visio automation
    #38898956
gsv1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gsv1,

несколько поторопился. Код выше работает, но с моделью базы данных, а не с UML, но где-то написано, что эти два add-on связаны...
...
Рейтинг: 0 / 0
Visio automation
    #38899046
Bobgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gsv1,

1. Если подключить в референс:
Microsoft Visio UML Solution for VB Type Library
увидишь там один класс: VisioUMLSolution и все...

то что MODELENGLib library думаю к UML НЕ ИМЕЕТ ОТНОШЕНИЯ.


2. нужно найти описание MODELENGLib library (Microsoft Visio Database Modeling Engine Type Library). Гже бы раздобыть?
лучше бы на родном

3. вот еще код Правда не пашет

Код: vbnet
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.
39.
40.
41.
42.
43.
44.
45.
46.
Public Sub pCreateExtraColumns() 
    Dim vme As New VisioModelingEngine 
    Dim models As IEnumIVMEModels 
    Dim model As IVMEModel 
    Dim erModel As IVMEERModel 
    Dim entities As IEnumIVMEEntities 
    Dim entity As IVMEEntity 
    Dim attrs As IEnumIVMEAttributes 
    Dim attr As IVMEAttribute 
    Dim ivDataType As IVMEDataType 
    Dim intColumnNumberCount As Integer 
    Dim strDataType As String 
    Set models = vme.models 
    Do Until Not (model Is Nothing) 
        Set model = models.Next 
        If Not (model Is Nothing) Then 
            If (model.ModelKind = eVMEModelERLogical) Then 
                Set erModel = model 
                Set entities = erModel.entities 
                Do 
                    Set entity = entities.Next 
                    If Not (entity Is Nothing) Then 
                        Debug.Print entity.PhysicalName 
                        Set attrs = entity.Attributes 
                        intColumnNumberCount = 0 
                        Do 
                            Set attr = attrs.Next 
                            If Not (attr Is Nothing) Then 
                                intColumnNumberCount = 
intColumnNumberCount + 1 
                            End If 
                        Loop Until (attr Is Nothing) 
                        Set attr = entity.CreateAttribute() 
                        Set ivDataType = attr.DataType 
                        attr.ColumnNumber = intColumnNumberCount 
                        attr.PhysicalName = "TestColumnName" 
            '            strDataType = "varchar(100)" 
            '            ivDataType.PhysicalName = strDataType 'this 
line does not work as PhysicalName is readonly 
                        attr.DataType = ivDataType 
                    End If 
                Loop Until (entity Is Nothing) 
            End If 
        End If 
    Loop 
End Sub 
...
Рейтинг: 0 / 0
Visio automation
    #38899213
Bobgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gsv1Bobgos,

если использовать CellsSRC, то можно получить доступ к ShapeSheet - это я знаю. Однако в данном случае необходимо читать "свойства состояния" (см. картинку выше), и именно Именованные значения. К сожалению, если их задать, то они не отображаются в ShapeSheet - проверял :(

Спасибо за попытку помочь, но это не то, что надо.

gsv1,
Подскажи, пожалуйста:
создаю новую строку данных шэйпа:
Код: vbnet
1.
AddRow visSectionProp, jj, visCustPropsValue


в созданную строку данных шэйпа записываю имя:
Код: vbnet
1.
.CellsSRC(visSectionProp, jj, visCustPropsValue).RowNameU ="Значение_01"


но в окне 'Определение данных фигуры' подпись пуста. См. скрин.

Куда нужно записать эту подпись? Замучился уже искать методом тыка.
Или подскажи где про эти cells и конкретно секцию visSectionProp почитать подробно?
...
Рейтинг: 0 / 0
Visio automation
    #38899245
Bobgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gsv1gsv1,

несколько поторопился. Код выше работает, но с моделью базы данных, а не с UML, но где-то написано, что эти два add-on связаны...видимо все-таки придется руками...
Как вариант - использовать данные шэйпов. Рисовать схему, добавлять необходимые поля, потом экспорт в базу.
...
Рейтинг: 0 / 0
Visio automation
    #38899265
Фотография Surrogate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bobgos
Код: vbnet
1.
.CellsSRC(visSectionProp, jj, visCustPropsValue).RowNameU ="Значение_01"


но в окне 'Определение данных фигуры' подпись пуста. См. скрин.
правильно, тем кодом ты меняешь параметр Имя строки (в шейпшите это первый столбец).
а там где пусто это поле Подпись (в шейпшите это второй столбец Label )
его программно изменить можно
Код: vbnet
1.
.CellsSRC(visSectionProp, jj, visCustPropsLabel).FormulaU = """my label"""

BobgosКуда нужно записать эту подпись? Замучился уже искать методом тыка. включил макрорекордер. через интерфейс изменил поле Подпись и получил нужный код :)
BobgosИли подскажи где про эти cells и конкретно секцию visSectionProp почитать подробно? попробуй на МСДН Shape Data Row (Shape Data Section)
...
Рейтинг: 0 / 0
Visio automation
    #38899961
Bobgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SurrogateBobgos
Код: vbnet
1.
.CellsSRC(visSectionProp, jj, visCustPropsValue).RowNameU ="Значение_01"


но в окне 'Определение данных фигуры' подпись пуста. См. скрин.
правильно, тем кодом ты меняешь параметр Имя строки (в шейпшите это первый столбец).
а там где пусто это поле Подпись (в шейпшите это второй столбец Label )
его программно изменить можно
Код: vbnet
1.
.CellsSRC(visSectionProp, jj, visCustPropsLabel).FormulaU = """my label"""

BobgosКуда нужно записать эту подпись? Замучился уже искать методом тыка. включил макрорекордер. через интерфейс изменил поле Подпись и получил нужный код :)
BobgosИли подскажи где про эти cells и конкретно секцию visSectionProp почитать подробно? попробуй на МСДН Shape Data Row (Shape Data Section)

Surrogate,
спасибо. А что-то еще почитать с примерами.
Например: как из vba изменить рисунок, связанный с данными.
...
Рейтинг: 0 / 0
Visio automation
    #38900458
gsv1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bobgos,

не успел ответить раньше. Про Visio (хоть я и абсолютный новичок) есть хорошая новая книжка parker microsoft visio 2013 business process diagramming and validating

По поводу своего вопроса: я отказался от использования свойств UML, поддерживаемых спец. add-on (Surrogate первый об этом сказал, но я еще проконсультировался с Николаем Белых, чей код по работе с спец. аддоном я привел выше, он кстати участвовал в подготовке публикации книги Паркера) в пользу стандартных Данных фигуры - там также можно создать любые тэги, но при этом они доступны через ShaeSheet!
...
Рейтинг: 0 / 0
Visio automation
    #38900483
Bobgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gsv1Bobgos,

не успел ответить раньше. Про Visio (хоть я и абсолютный новичок) есть хорошая новая книжка parker microsoft visio 2013 business process diagramming and validating

По поводу своего вопроса: я отказался от использования свойств UML, поддерживаемых спец. add-on (Surrogate первый об этом сказал, но я еще проконсультировался с Николаем Белых, чей код по работе с спец. аддоном я привел выше, он кстати участвовал в подготовке публикации книги Паркера) в пользу стандартных Данных фигуры - там также можно создать любые тэги, но при этом они доступны через ShaeSheet!
да видно хорошая книга - в цене (6 775 руб).
а где бы её скачать да еще и на русском или на русском её нет вообще? Ссылки все лаговые,если есть возможность выложи для скачивания.

Отказ от UML поддерживаю.
Если сверим задачи,можем вместе поработать по методологии использования shapessheet.
Насколько я понял кто-то должен в Визио создавать диаграммы, а программулина должна экспортировать эти данные? Это весь запланированный функционал?
Мне бы еще было интересно параметрирование из excel диаграммы процессов в visio и их автоматизированное построение по данным таблиц xls. Ну а из разряда фантастики или UML ^-) - еще бы и временные, количественные значения для процессов, виртуализация визуализация статусов, построение дополнительных объединяющих шэйпов и скажем, контейнеризация при одинаковых значениях полей.

Можешь подробнее пояснить свою задачу?
Список именованных значения будет постоянный? Если нет, то сколько наборов может быть?
Необходимо ли создание нового класса шэйпов с собственными event-ами или можно обойтись существующими?
Настройки проги будут в составе vsd или отдельно?
Планируешь использовать создание новой пользовательской секции или достаточно обойтись одной Properties?
Экспорт штатными средствами visio или не/настраиваемый отчет? в какой формат?
...
Рейтинг: 0 / 0
25 сообщений из 46, страница 1 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Visio automation
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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