Створення організаційної діаграми csharp.png C#

Організаційна схема використовується для зображення структури бізнесу, уряду чи організації. Вони можуть бути відхилені з різних причин, як-от створення політики чи цілі планування. Ви можете створювати різні типи організаційних діаграм, створюючи різні фігури та з’єднувачі. У цій статті описано, як створити організаційну діаграму в C#.

Конструктор організаційних діаграм – встановлення C# API

Aspose.Diagram for .NET API можна використовувати для створення різних діаграм і діаграм Visio. Ви можете легко налаштувати API, завантаживши його довідковий файл зі сторінки Нові випуски або використовуючи таку команду встановлення NuGet:

PM> Install-Package Aspose.Diagram

Створення організаційної діаграми в стилі CompactTree на C#

Ви можете створити організаційну діаграму в стилі CompactTree, виконавши наведені нижче дії.

  1. Завантажте шаблони з будь-якої існуючої діаграми, трафарету чи шаблону.
  2. Визначте значення для побудови ієрархії.
  3. Додайте форми та з’єднання між вузлами.
  4. Збережіть вихідну схему.

Наведений нижче фрагмент коду пояснює, як створити організаційну діаграму в C#:

// Завантажте шаблони з будь-якої існуючої діаграми, трафарету чи шаблону
string visioStencil = "Basic Shapes.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;
// Визначте значення для побудови ієрархії
List<string> listPos = new List<string>(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" });
// Визначте хеш-таблицю, щоб зіставити назву рядка з довгим ідентифікатором форми
Hashtable shapeIdMap = new Hashtable();
// Створіть нову діаграму
Diagram diagram = new Diagram(visioStencil);
diagram.Pages[pageNumber].PageSheet.PageProps.PageWidth.Value = 11;
foreach (string orgnode in listPos)
{
    // Додайте нову форму прямокутника
    long rectangleId = diagram.AddShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Установіть властивості нової форми
    Shape shape = diagram.Pages[pageNumber].Shapes.GetShape(rectangleId);
    shape.Text.Value.Add(new Txt(orgnode));
    shape.Name = orgnode;
    shapeIdMap.Add(orgnode, rectangleId);
}
// Створення зв'язків між вузлами
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];
        Shape connector1 = new Shape();
        long connecter1Id = diagram.AddShape(connector1, connectorMaster, pageNumber);
        diagram.Pages[pageNumber].ConnectShapesViaConnector(parentId, ConnectionPointPlace.Right,
            shapeId, ConnectionPointPlace.Left, connecter1Id);
    }
}

//автоматичний макет діаграми CompactTree
LayoutOptions compactTreeOptions = new LayoutOptions
{
    LayoutStyle = LayoutStyle.CompactTree,
    Direction = LayoutDirection.DownThenRight,
    EnlargePage = false
};

diagram.Pages[pageNumber].Layout(compactTreeOptions);

// Зберегти діаграму
diagram.Save("CompactTreeChart_out.vsdx", SaveFileFormat.VSDX);

На наступному знімку екрана показано вихідну організаційну діаграму, згенеровану за допомогою наведеного вище фрагмента коду:

Створення організаційної діаграми C#

Створення організаційної діаграми у стилі блок-схеми на C#

Вам може знадобитися створити різні типи організаційних діаграм, які можуть відповідати іншим шаблонам. Тут ви дізнаєтесь, як програмно створити організаційну діаграму у стилі блок-схеми на C#:

  1. Завантажте шаблони з будь-якої існуючої діаграми, трафарету чи шаблону.
  2. Додайте організаційні вузли та з’єднувачі.
  3. Налаштуйте макет і збережіть вихідну діаграму.

У наведеному нижче прикладі коду показано, як створити організаційну діаграму у стилі блок-схеми на C#:

// Завантажте шаблони з будь-якої існуючої діаграми, трафарету чи шаблону
string visioStencil = "Basic Shapes.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;
// Визначте значення для побудови ієрархії
List<string> listPos = new List<string>(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" });
// Визначте хеш-таблицю, щоб зіставити назву рядка з довгим ідентифікатором форми
Hashtable shapeIdMap = new Hashtable();
// Створіть нову діаграму
Diagram diagram = new Diagram(visioStencil);
foreach (string orgnode in listPos)
{
    // Додайте нову форму прямокутника
    long rectangleId = diagram.AddShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Установіть властивості нової форми
    Shape shape = diagram.Pages[pageNumber].Shapes.GetShape(rectangleId);
    shape.Text.Value.Add(new Txt(orgnode));
    shape.Name = orgnode;
    shapeIdMap.Add(orgnode, rectangleId);
}
// Створення зв'язків між вузлами
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];
        Shape connector1 = new Shape();
        long connecter1Id = diagram.AddShape(connector1, connectorMaster, pageNumber);
        diagram.Pages[pageNumber].ConnectShapesViaConnector(parentId, ConnectionPointPlace.Right,
            shapeId, ConnectionPointPlace.Left, connecter1Id);
    }
}

//блок-схема автоматичного макета
LayoutOptions flowChartOptions = new LayoutOptions
{
    LayoutStyle = LayoutStyle.FlowChart,
    Direction = LayoutDirection.TopToBottom,
    EnlargePage = true
};

diagram.Pages[pageNumber].Layout(flowChartOptions);

// Зберегти діаграму
diagram.Save("FlowChart_out.vsdx", SaveFileFormat.VSDX);

Отримайте безкоштовну тимчасову ліцензію

Ви можете подати запит на отримання безкоштовної тимчасової ліцензії, щоб оцінити повну потужність API.

Висновок

У цій статті ви зрозуміли, як програмно створити організаційну діаграму в C#. Ви можете створити діаграму за трафаретом і створити діаграму стилю CompactTree або Flowchart відповідно до ваших вимог. Крім того, ви можете відвідати розділ документація, щоб переглянути інші функції, описані в різних розділах і розділах. У разі будь-яких питань, будь ласка, зв’яжіться з нами через форум.

Дивись також

Перетворити VSDM у PDF на C#