В этом руководстве объясняется, как создать ORG-диаграмму на C#. В нем обсуждается пошаговая процедура настройки системы и фрагмент кода для разработки создателя организационных диаграмм на C#. Кроме того, этот фрагмент кода можно расширить, чтобы создать ORG chart в соответствии с вашими требованиями.
Шаги по созданию организационной диаграммы в C#
- Настройте API Aspose.Diagram в своей системе для создания организационной диаграммы.
- Загрузите образцы фигур из существующего трафарета с помощью класса Diagram.
- Добавляйте новые фигуры и создавайте связи между узлами.
- Установите свойства диаграммы с помощью класса LayoutOptions и сохраните выходную диаграмму организационной структуры.
Эти шаги описывают алгоритм создания генератора диаграмм ORG на C#. Предварительно настройте среду и загрузите образцы фигур из существующего набора элементов. Затем добавьте фигуры и соответствующие соединения перед сохранением файла выходной схемы.
Код для создания организационной диаграммы на C#
using System; | |
using System.Collections.Generic; | |
class Program | |
{ | |
static void Main(string[] args) // Create organization chart in C# | |
{ | |
// Set the license | |
new Aspose.Diagram.License().SetLicense("License.lic"); | |
// Load the masters | |
string visioStencil = "BasicShapes.vss"; | |
const string rectangleMaster = "Rectangle"; | |
const string connectorMaster = "Dynamic connector"; | |
const int pageNumber = 0; | |
const double width = 1; | |
const double height = 1; | |
double pinX = 4.25; | |
double pinY = 9.5; | |
// Define the hierarchy | |
List listPos = new List(new string[] { "0", "0:0", "0:1", "0:2", "0:3", "0:4", "0:5", "0:6", "0:0:0", "0:0:1", "0:3:0", "0:3:1", "0:3:2", "0:6:0", "0:6:1" }); | |
// Define a Hashtable for name and shape id | |
System.Collections.Hashtable shapeIdMap = new System.Collections.Hashtable(); | |
// Create a new diagram | |
Aspose.Diagram.Diagram diagram = new Aspose.Diagram.Diagram(visioStencil); | |
diagram.Pages[pageNumber].PageSheet.PageProps.PageWidth.Value = 11; | |
foreach (string orgnode in listPos) | |
{ | |
// Add a new rectangle shape | |
long rectangleId = diagram.AddShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber); | |
// Set the new shape's properties | |
Aspose.Diagram.Shape shape = diagram.Pages[pageNumber].Shapes.GetShape(rectangleId); | |
shape.Text.Value.Add(new Aspose.Diagram.Txt(orgnode)); | |
shape.Name = orgnode; | |
shapeIdMap.Add(orgnode, rectangleId); | |
} | |
// Create connections between nodes | |
foreach (string orgName in listPos) | |
{ | |
int lastColon = orgName.LastIndexOf(':'); | |
if (lastColon > 0) | |
{ | |
string parendName = orgName.Substring(0, lastColon); | |
long shapeId = (long)shapeIdMap[orgName]; | |
long parentId = (long)shapeIdMap[parendName]; | |
Aspose.Diagram.Shape connector1 = new Aspose.Diagram.Shape(); | |
long connecter1Id = diagram.AddShape(connector1, connectorMaster, pageNumber); | |
diagram.Pages[pageNumber].ConnectShapesViaConnector(parentId, Aspose.Diagram.Manipulation.ConnectionPointPlace.Right, | |
shapeId, Aspose.Diagram.Manipulation.ConnectionPointPlace.Left, connecter1Id); | |
} | |
} | |
//auto layout CompactTree chart | |
Aspose.Diagram.AutoLayout.LayoutOptions compactTreeOptions = new Aspose.Diagram.AutoLayout.LayoutOptions | |
{ | |
LayoutStyle = Aspose.Diagram.AutoLayout.LayoutStyle.CompactTree, | |
Direction = Aspose.Diagram.AutoLayout.LayoutDirection.DownThenRight, | |
EnlargePage = false | |
}; | |
diagram.Pages[pageNumber].Layout(compactTreeOptions); | |
// Save diagram | |
diagram.Save("ORGChart_out.vsdx", Aspose.Diagram.SaveFileFormat.Vsdx); | |
Console.WriteLine("Done"); | |
} | |
} | |
Этот фрагмент кода предназначен для создания построителя диаграмм ORG на C#. Однако вы можете изменить его в соответствии со своими потребностями, например изменить количество прямоугольных фигур, высоту, ширину, положение и т. д. в методе AddShape. Аналогичным образом вы можете манипулировать соединениями между узлами, используя идентификаторы их родительских фигур или точки соединения в соответствии с вашими требованиями.
В этом базовом руководстве подробно описаны создание конструктора диаграмм ORG на C#. А если вы хотите нарисовать блок-схему, прочитайте статью на как создать блок-схему на C#.