2015-10-07 6 views
5

का उपयोग करके विज़िओ में आकार बनाना हाय मुझे visio में आरेख वस्तुओं को बनाने के लिए एक एडिन विकसित करने की आवश्यकता है। मैं शीर्ष आकार बनाने में सक्षम हूं लेकिन इसके व्युत्पन्न प्रकार नहीं। ईजी के लिए मैं सी # का उपयोग कर विज़ियो में प्रारंभ घटना creat करने में सक्षम हूँ, लेकिन संदेश प्रकार की घटना या दूसरों enter image description hereसी #

ऊपर चित्र में मैं 3 शुरुआत घटना है प्रारंभ नहीं बना सका, अच्छी तरह से BPMN प्रारंभ इवेंट था जोड़ा गया है और इसकी संपत्ति उत्प्रेरक/परिणाम विकल्प

प्रारंभ इवेंट बदल गया था - एकाधिक

प्रारंभ घटना - संदेश

प्रारंभ घटना - कोई भी

लेकिन सब से ऊपर 3 आकार प्रारंभ घटना से कर रहे हैं। संदेश शुरुआत घटना या एकाधिक शुरू evet आदि

मैं

  Visio.Master shapetodrop = Masters.get_ItemU(@"Start Event"); 
      Visio.Shape DropShape = ActivePage.Drop(shapetodrop, x, y); 
      DropShape.Name = name; 
      DropShape.Text = name; 

का उपयोग कर विज़ियो में आकार बनाने हूँ कैसे बनाएं लेकिन यह केवल प्रारंभ घटना बनाता है, कैसे संदेश प्रारंभ घटना, एकाधिक प्रारंभ इवेंट आदि

बनाने के लिए

उत्तर

3

निर्धारित किया है Visio

short iRow = (short)Visio.VisRowIndices.visRowFirst; 
      while (shape.get_CellsSRCExists((short)Visio.VisSectionIndices.visSectionProp, iRow, (short)Visio.VisCellIndices.visCustPropsValue, (short)Visio.VisExistsFlags.visExistsAnywhere) != 0) 
      { 
       Visio.Cell c = shape.get_CellsSRC((short)Visio.VisSectionIndices.visSectionProp, iRow, (short)Visio.VisCellIndices.visCustPropsValue); 
         switch (c.Name) 
         { 
          case "Prop.BpmnTriggerOrResult": 
           shape.Cells[c.Name].FormulaU = "\"" + "Message" + "\""; 
           break; 

         } 
} 

और मुझे संदेश प्रारंभ ईवेंट मिल सकता है। एक आकार की सभी संपत्ति के लिए इस मूल्य की तरह असाइन किया जा सकता है।

0

मैं आपको वीबीए में जवाब दिखाऊंगा, और उम्मीद करता हूं कि आप सी # में परिवर्तित कर सकते हैं?

माइक्रोसॉफ्ट उनके ज्ञान BPMN के लिए काफी जटिल आकार बनाया, इसलिए में, एक बार आप एक आकार के प्रत्येक संपत्ति के माध्यम से यात्रा के लिए EventType, संभव TriggerOrResult के लिए सूची अद्यतन किया जाता है ...

Public Sub DropEventShape() 
On Error GoTo errHandler 

'EventType is one of the following : "Start;Start (Non-Interrupting);Intermediate;Intermediate (Non-Interrupting);Intermediate (Throwing);End" 

Const mstName As String = "Start Event" 
Const eventType As String = "Start" 
Const triggerOrResult As String = "Multiple" 

Dim doc As Visio.Document 
Dim stn As Visio.Document 
Dim mst As Visio.Master 

    For Each doc In Application.Documents 
     If doc.Title = "BPMN Shapes" Then 
      Set stn = doc 
      Exit For 
     End If 
    Next 
    If stn Is Nothing Then 
     GoTo exitHere 
    End If 

    Set mst = stn.Masters(mstName) 

Dim shp As Visio.Shape 
Dim x As Double 
Dim y As Double 
    x = Application.ActivePage.PageSheet.Cells("PageWidth").ResultIU * 0.5 
    y = Application.ActivePage.PageSheet.Cells("PageHeight").ResultIU * 0.5 

    Set shp = Application.ActivePage.Drop(mst, x, y) 

Dim iEventType As Integer 
Dim aryEventTypes() As String 

    aryEventTypes = Split(shp.Cells("Prop.BPMNEventType.Format").ResultStr(""), ";") 
    For iEventType = 0 To UBound(aryEventTypes) 
     If aryEventTypes(iEventType) = eventType Then 
      Exit For 
     End If 
    Next 
    shp.Cells("Prop.BPMNEventType").Formula = "=INDEX(" & iEventType & ",Prop.BPMNEventType.Format)" 

Dim iTriggerOrResult As Integer 
Dim aryTriggerOrResults() As String 
    aryTriggerOrResults = Split(shp.Cells("Prop.BpmnTriggerOrResult.Format").ResultStr(""), ";") 
    For iTriggerOrResult = 0 To UBound(aryTriggerOrResults) 
     If aryTriggerOrResults(iTriggerOrResult) = triggerOrResult Then 
      Exit For 
     End If 
    Next 

    shp.Cells("Prop.BpmnTriggerOrResult").Formula = "=INDEX(" & iTriggerOrResult & ",Prop.BpmnTriggerOrResult.Format)" 

exitHere: 
    Exit Sub 
errHandler: 
    MsgBox Err.Description 
    Resume exitHere 
End Sub 
+0

उत्तर के लिए धन्यवाद :) :) – Arshad