本文整理汇总了C#中Microsoft.Office.Interop.Visio.get_CellsSRC方法的典型用法代码示例。如果您正苦于以下问题:C# Microsoft.Office.Interop.Visio.get_CellsSRC方法的具体用法?C# Microsoft.Office.Interop.Visio.get_CellsSRC怎么用?C# Microsoft.Office.Interop.Visio.get_CellsSRC使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.Office.Interop.Visio
的用法示例。
在下文中一共展示了Microsoft.Office.Interop.Visio.get_CellsSRC方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DrawDirectionalDynamicConnector
/// <summary>
/// Draw a directional, dynamic connector between two entities, representing an entity relationship.
/// </summary>
/// <param name="shapeFrom">Shape initiating the relationship</param>
/// <param name="shapeTo">Shape referenced by the relationship</param>
/// <param name="isManyToMany">Whether or not it is a many-to-many entity relationship</param>
private void DrawDirectionalDynamicConnector(VisioApi.Shape shapeFrom, VisioApi.Shape shapeTo, bool isManyToMany)
{
// Add a dynamic connector to the page.
VisioApi.Shape connectorShape = shapeFrom.ContainingPage.Drop(_application.ConnectorToolDataObject, 0.0, 0.0);
// Set the connector properties, using different arrows, colors, and patterns for many-to-many relationships.
connectorShape.get_CellsSRC(VISIO_SECTION_OJBECT_INDEX, (short)VisioApi.VisRowIndices.visRowFill, (short)VisioApi.VisCellIndices.visFillShdwPattern).ResultIU = SHDW_PATTERN;
connectorShape.get_CellsSRC(VISIO_SECTION_OJBECT_INDEX, (short)VisioApi.VisRowIndices.visRowLine, (short)VisioApi.VisCellIndices.visLineBeginArrow).ResultIU = isManyToMany ? BEGIN_ARROW_MANY : BEGIN_ARROW;
connectorShape.get_CellsSRC(VISIO_SECTION_OJBECT_INDEX, (short)VisioApi.VisRowIndices.visRowLine, (short)VisioApi.VisCellIndices.visLineEndArrow).ResultIU = END_ARROW;
connectorShape.get_CellsSRC(VISIO_SECTION_OJBECT_INDEX, (short)VisioApi.VisRowIndices.visRowLine, (short)VisioApi.VisCellIndices.visLineColor).ResultIU = isManyToMany ? LINE_COLOR_MANY : LINE_COLOR;
connectorShape.get_CellsSRC(VISIO_SECTION_OJBECT_INDEX, (short)VisioApi.VisRowIndices.visRowLine, (short)VisioApi.VisCellIndices.visLinePattern).ResultIU = isManyToMany ? LINE_PATTERN : LINE_PATTERN;
connectorShape.get_CellsSRC(VISIO_SECTION_OJBECT_INDEX, (short)VisioApi.VisRowIndices.visRowFill, (short)VisioApi.VisCellIndices.visLineRounding).ResultIU = ROUNDING;
// Connect the starting point.
VisioApi.Cell cellBeginX = connectorShape.get_CellsSRC(VISIO_SECTION_OJBECT_INDEX, (short)VisioApi.VisRowIndices.visRowXForm1D, (short)VisioApi.VisCellIndices.vis1DBeginX);
cellBeginX.GlueTo(shapeFrom.get_CellsSRC(VISIO_SECTION_OJBECT_INDEX, (short)VisioApi.VisRowIndices.visRowXFormOut, (short)VisioApi.VisCellIndices.visXFormPinX));
// Connect the ending point.
VisioApi.Cell cellEndX = connectorShape.get_CellsSRC(VISIO_SECTION_OJBECT_INDEX, (short)VisioApi.VisRowIndices.visRowXForm1D, (short)VisioApi.VisCellIndices.vis1DEndX);
cellEndX.GlueTo(shapeTo.get_CellsSRC(VISIO_SECTION_OJBECT_INDEX, (short)VisioApi.VisRowIndices.visRowXFormOut, (short)VisioApi.VisCellIndices.visXFormPinX));
}
示例2: DrawRelationships
/// <summary>
/// Draw on a Visio page the entity relationships defined in the passed-in relationship collection.
/// </summary>
/// <param name="entity">Core entity</param>
/// <param name="rect">Shape representing the core entity</param>
/// <param name="relationshipCollection">Collection of entity relationships to draw</param>
/// <param name="areReferencingRelationships">Whether or not the core entity is the referencing entity in the relationship</param>
private void DrawRelationships(EntityMetadata entity, VisioApi.Shape rect, RelationshipMetadataBase[] relationshipCollection, bool areReferencingRelationships)
{
ManyToManyRelationshipMetadata currentManyToManyRelationship = null;
OneToManyRelationshipMetadata currentOneToManyRelationship = null;
EntityMetadata entity2 = null;
AttributeMetadata attribute2 = null;
AttributeMetadata attribute = null;
Guid metadataID = Guid.NewGuid();
bool isManyToMany = false;
// Draw each relationship in the relationship collection.
foreach (RelationshipMetadataBase entityRelationship in relationshipCollection)
{
entity2 = null;
if (entityRelationship is ManyToManyRelationshipMetadata)
{
isManyToMany = true;
currentManyToManyRelationship = entityRelationship as ManyToManyRelationshipMetadata;
// The entity passed in is not necessarily the originator of this relationship.
if (String.Compare(entity.LogicalName, currentManyToManyRelationship.Entity1LogicalName, true) != 0)
{
entity2 = GetEntityMetadata(currentManyToManyRelationship.Entity1LogicalName);
}
else
{
entity2 = GetEntityMetadata(currentManyToManyRelationship.Entity2LogicalName);
}
attribute2 = GetAttributeMetadata(entity2, entity2.PrimaryIdAttribute);
attribute = GetAttributeMetadata(entity, entity.PrimaryIdAttribute);
metadataID = currentManyToManyRelationship.MetadataId.Value;
}
else if (entityRelationship is OneToManyRelationshipMetadata)
{
isManyToMany = false;
currentOneToManyRelationship = entityRelationship as OneToManyRelationshipMetadata;
entity2 = GetEntityMetadata(areReferencingRelationships ? currentOneToManyRelationship.ReferencingEntity : currentOneToManyRelationship.ReferencedEntity);
attribute2 = GetAttributeMetadata(entity2, areReferencingRelationships ? currentOneToManyRelationship.ReferencingAttribute : currentOneToManyRelationship.ReferencedAttribute);
attribute = GetAttributeMetadata(entity, areReferencingRelationships ? currentOneToManyRelationship.ReferencedAttribute : currentOneToManyRelationship.ReferencingAttribute);
metadataID = currentOneToManyRelationship.MetadataId.Value;
}
// Verify relationship is either ManyToManyMetadata or OneToManyMetadata
if (entity2 != null)
{
if (_processedRelationships.Contains(metadataID))
{
// Skip relationships we have already drawn
continue;
}
else
{
// Record we are drawing this relationship
_processedRelationships.Add(metadataID);
// Define convenience variables based upon the direction of referencing with respect to the core entity.
VisioApi.Shape rect2;
// Do not draw relationships involving the entity itself, SystemUser, BusinessUnit,
// or those that are intentionally excluded.
if (String.Compare(entity2.LogicalName, "systemuser", true) != 0 &&
String.Compare(entity2.LogicalName, "businessunit", true) != 0 &&
String.Compare(entity2.LogicalName, rect.Name, true) != 0 &&
String.Compare(entity.LogicalName, "systemuser", true) != 0 &&
String.Compare(entity.LogicalName, "businessunit", true) != 0 &&
!_excludedEntityTable.ContainsKey(entity2.LogicalName.GetHashCode()) &&
!_excludedRelationsTable.ContainsKey(attribute.LogicalName.GetHashCode()))
{
// Either find or create a shape that represents this secondary entity, and add the name of
// the involved attribute to the shape's text.
try
{
rect2 = rect.ContainingPage.Shapes.get_ItemU(entity2.SchemaName);
if (rect2.Text.IndexOf(attribute2.SchemaName) == -1)
{
rect2.get_CellsSRC(VISIO_SECTION_OJBECT_INDEX, (short)VisioApi.VisRowIndices.visRowXFormOut, (short)VisioApi.VisCellIndices.visXFormHeight).ResultIU += 0.25;
rect2.Text += "\n" + attribute2.SchemaName;
// If the attribute is a primary key for the entity, append a [PK] label to the attribute name to indicate this.
if (String.Compare(entity2.PrimaryIdAttribute, attribute2.LogicalName) == 0)
{
rect2.Text += " [PK]";
}
}
}
catch (System.Runtime.InteropServices.COMException)
{
rect2 = DrawEntityRectangle(rect.ContainingPage, entity2.SchemaName, entity2.OwnershipType.Value);
rect2.Text += "\n" + attribute2.SchemaName;
// If the attribute is a primary key for the entity, append a [PK] label to the attribute name to indicate so.
if (String.Compare(entity2.PrimaryIdAttribute, attribute2.LogicalName) == 0)
//.........这里部分代码省略.........
示例3: ConnectShapes
private static void ConnectShapes(Visio.Shape shape1, Visio.Shape shape2, Visio.Shape connector)
{
// get the cell from the source side of the connector
Visio.Cell beginXCell = connector.get_CellsSRC(
(short)Visio.VisSectionIndices.visSectionObject,
(short)Visio.VisRowIndices.visRowXForm1D,
(short)Visio.VisCellIndices.vis1DBeginX);
// glue the source side of the connector to the first shape
beginXCell.GlueTo(shape1.get_CellsSRC(
(short)Visio.VisSectionIndices.visSectionObject,
(short)Visio.VisRowIndices.visRowXFormOut,
(short)Visio.VisCellIndices.visXFormPinX));
// get the cell from the destination side of the connector
Visio.Cell endXCell = connector.get_CellsSRC(
(short)Visio.VisSectionIndices.visSectionObject,
(short)Visio.VisRowIndices.visRowXForm1D,
(short)Visio.VisCellIndices.vis1DEndX);
// glue the destination side of the connector to the second shape
endXCell.GlueTo(shape2.get_CellsSRC(
(short)Visio.VisSectionIndices.visSectionObject,
(short)Visio.VisRowIndices.visRowXFormOut,
(short)Visio.VisCellIndices.visXFormPinX));
}
示例4: DrawRelationships
/// <summary>
/// Draw on a Visio page the entity relationships defined in the passed-in relationship collection.
/// </summary>
/// <param name="entity">Core entity</param>
/// <param name="rect">Shape representing the core entity</param>
/// <param name="relationshipCollection">Collection of entity relationships to draw</param>
/// <param name="areReferencingRelationships">Whether or not the core entity is the referencing entity in the relationship</param>
/// <param name="worker">The worker.</param>
/// <param name="e">The <see cref="DoWorkEventArgs"/> instance containing the event data.</param>
private void DrawRelationships(EntityMetadata entity, VisioApi.Shape rect, RelationshipMetadataBase[] relationshipCollection, bool areReferencingRelationships, BackgroundWorker worker, DoWorkEventArgs e)
{
ManyToManyRelationshipMetadata currentManyToManyRelationship = null;
OneToManyRelationshipMetadata currentOneToManyRelationship = null;
EntityMetadata entity2 = null;
AttributeMetadata attribute2 = null;
AttributeMetadata attribute = null;
Guid metadataID = Guid.NewGuid();
bool isManyToMany = false;
// Draw each relationship in the relationship collection.
foreach (RelationshipMetadataBase entityRelationship in relationshipCollection)
{
if (worker.CancellationPending)
{
e.Cancel = true;
return;
}
entity2 = null;
if (entityRelationship is ManyToManyRelationshipMetadata)
{
isManyToMany = true;
currentManyToManyRelationship = entityRelationship as ManyToManyRelationshipMetadata;
// The entity passed in is not necessarily the originator of this relationship.
if (String.Compare(entity.LogicalName, currentManyToManyRelationship.Entity1LogicalName, true) != 0)
{
entity2 = GetEntityMetadata(currentManyToManyRelationship.Entity1LogicalName);
}
else
{
entity2 = GetEntityMetadata(currentManyToManyRelationship.Entity2LogicalName);
}
attribute2 = GetAttributeMetadata(entity2, entity2.PrimaryIdAttribute);
attribute = GetAttributeMetadata(entity, entity.PrimaryIdAttribute);
metadataID = currentManyToManyRelationship.MetadataId.Value;
}
else if (entityRelationship is OneToManyRelationshipMetadata)
{
isManyToMany = false;
currentOneToManyRelationship = entityRelationship as OneToManyRelationshipMetadata;
entity2 = GetEntityMetadata(areReferencingRelationships ? currentOneToManyRelationship.ReferencingEntity : currentOneToManyRelationship.ReferencedEntity);
attribute2 = GetAttributeMetadata(entity2, areReferencingRelationships ? currentOneToManyRelationship.ReferencingAttribute : currentOneToManyRelationship.ReferencedAttribute);
attribute = GetAttributeMetadata(entity, areReferencingRelationships ? currentOneToManyRelationship.ReferencedAttribute : currentOneToManyRelationship.ReferencingAttribute);
metadataID = currentOneToManyRelationship.MetadataId.Value;
}
// Verify relationship is either ManyToManyMetadata or OneToManyMetadata
if (entity2 != null)
{
if (_processedRelationships.Contains(metadataID))
{
// Skip relationships we have already drawn
continue;
}
else
{
// Record we are drawing this relationship
_processedRelationships.Add(metadataID);
// Define convenience variables based upon the direction of referencing with respect to the core entity.
VisioApi.Shape rect2;
// Do not draw relationships involving the entity itself, SystemUser, BusinessUnit,
// or those that are intentionally excluded.
string selectedEntityFound = selectedEntitiesNames.Find(en => en == entity2.LogicalName);
if (String.Compare(entity2.LogicalName, "systemuser", true) != 0 &&
String.Compare(entity2.LogicalName, "businessunit", true) != 0 &&
String.Compare(entity2.LogicalName, rect.Name, true) != 0 &&
(selectedEntityFound != null) &&
String.Compare(entity.LogicalName, "systemuser", true) != 0 &&
String.Compare(entity.LogicalName, "businessunit", true) != 0)
{
// Either find or create a shape that represents this secondary entity, and add the name of
// the involved attribute to the shape's text.
try
{
rect2 = rect.ContainingPage.Shapes.get_ItemU(entity2.LogicalName);
if (rect2.Text.IndexOf(attribute2.LogicalName) == -1)
{
rect2.get_CellsSRC(VISIO_SECTION_OJBECT_INDEX, (short)VisioApi.VisRowIndices.visRowXFormOut, (short)VisioApi.VisCellIndices.visXFormHeight).ResultIU += 0.25;
rect2.Text += "\n" + attribute2.LogicalName;
// If the attribute is a primary key for the entity, append a [PK] label to the attribute name to indicate this.
if (String.Compare(entity2.PrimaryIdAttribute, attribute2.LogicalName) == 0)
{
rect2.Text += " [PK]";
}
}
}
//.........这里部分代码省略.........
示例5: SetTextProperties
/// <summary>
/// This method is setting shape text properties
/// </summary>
/// <param name="aShape">shape to work upon</param>
/// <param name="aText">text to assign to shape</param>
/// <param name="aFontSize">font size of shape text</param>
/// <param name="aHorizAlignment">text alignment</param>
private void SetTextProperties( Visio.Shape aShape, string aText, string aFontSize, int aHorizAlignment )
{
// set shape text
aShape.Text = aText;
// set font size
aShape.get_CellsSRC((short)Visio.VisSectionIndices.visSectionCharacter, (short)Visio.VisRowIndices.visRowFirst, (short)Visio.VisCellIndices.visCharacterSize).FormulaForceU = aFontSize;
// set alignment
aShape.get_CellsSRC((short)Visio.VisSectionIndices.visSectionParagraph, (short)Visio.VisRowIndices.visRowFirst, (short)Visio.VisCellIndices.visHorzAlign).set_ResultFromIntForce( Visio.VisUnitCodes.visNoCast, aHorizAlignment );
// set transparent text background
aShape.get_Cells( CELL_TEXT_BKGND_TRANS ).FormulaForceU = "100%";
}