Створення ORG діаграми C#

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

ORG Chart Maker – встановлення C# API

Aspose.Diagram for .NET API підтримує роботу з різними видами діаграм і діаграм. Просто отримайте доступ до API, завантаживши його файл DLL із розділу Нові випуски або за допомогою наступної інсталяційної команди NuGet:

PM> Install-Package Aspose.Diagram

Створіть ORG Chart у стилі CompactTree у C#

Ви можете створити діаграму ORG у стилі 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);

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

Створення ORG діаграми C#

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

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

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

У наведеному нижче прикладі коду показано, як створити діаграму ORG у стилі блок-схеми на 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.

Висновок

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

Дивись також

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