Tạo sơ đồ tổ chức csharp.png C#

Sơ đồ tổ chức được sử dụng để mô tả cấu trúc của một doanh nghiệp, chính phủ hoặc một tổ chức. Họ có thể bị bất bình vì những lý do khác nhau như hoạch định chính sách hoặc mục đích lập kế hoạch. Bạn có thể tạo các loại biểu đồ tổ chức khác nhau bằng cách tạo các hình dạng và trình kết nối khác nhau. Bài viết này trình bày cách tạo biểu đồ Tổ chức trong C#.

Trình tạo sơ đồ tổ chức - Cài đặt API C#

API Aspose.Diagram for .NET có thể được sử dụng để tạo các sơ đồ và biểu đồ Visio khác nhau. Bạn có thể dễ dàng định cấu hình API bằng cách tải xuống tệp tham chiếu của nó từ trang Bản phát hành mới hoặc sử dụng lệnh cài đặt NuGet sau:

PM> Install-Package Aspose.Diagram

Tạo sơ đồ tổ chức theo kiểu CompactTree trong C#

Bạn có thể tạo sơ đồ tổ chức theo kiểu CompactTree bằng cách làm theo các bước bên dưới:

  1. Tải bản gốc từ bất kỳ sơ đồ, khuôn mẫu hoặc khuôn mẫu hiện có nào.
  2. Xác định các giá trị để xây dựng cấu trúc phân cấp.
  3. Thêm hình dạng và kết nối giữa các nút.
  4. Lưu sơ đồ đầu ra.

Đoạn mã bên dưới giải thích cách tạo biểu đồ Tổ chức trong C#:

// Tải bản gốc từ bất kỳ sơ đồ, khuôn mẫu hoặc mẫu hiện có nào
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;
// Xác định các giá trị để xây dựng hệ thống phân cấp
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" });
// Xác định Hashtable để ánh xạ tên chuỗi thành id hình dạng dài
Hashtable shapeIdMap = new Hashtable();
// Tạo một sơ đồ mới
Diagram diagram = new Diagram(visioStencil);
diagram.Pages[pageNumber].PageSheet.PageProps.PageWidth.Value = 11;
foreach (string orgnode in listPos)
{
    // Thêm một hình dạng hình chữ nhật mới
    long rectangleId = diagram.AddShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Đặt thuộc tính của hình dạng mới
    Shape shape = diagram.Pages[pageNumber].Shapes.GetShape(rectangleId);
    shape.Text.Value.Add(new Txt(orgnode));
    shape.Name = orgnode;
    shapeIdMap.Add(orgnode, rectangleId);
}
// Tạo kết nối giữa các nút
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);
    }
}

//bố cục tự động Biểu đồ CompactTree
LayoutOptions compactTreeOptions = new LayoutOptions
{
    LayoutStyle = LayoutStyle.CompactTree,
    Direction = LayoutDirection.DownThenRight,
    EnlargePage = false
};

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

// Lưu sơ đồ
diagram.Save("CompactTreeChart_out.vsdx", SaveFileFormat.VSDX);

Ảnh chụp màn hình sau đây cho thấy sơ đồ tổ chức đầu ra được tạo bằng đoạn mã ở trên:

Tạo sơ đồ tổ chức C#

Tạo sơ đồ tổ chức theo kiểu lưu đồ trong C#

Bạn có thể cần tạo các loại biểu đồ tổ chức khác nhau có thể tuân theo các mẫu khác nhau. Tại đây, bạn sẽ tìm hiểu cách tạo biểu đồ Tổ chức theo kiểu Lưu đồ theo chương trình trong C#:

  1. Tải bản gốc từ bất kỳ sơ đồ, khuôn mẫu hoặc khuôn mẫu hiện có nào.
  2. Thêm các nút tổ chức và trình kết nối.
  3. Đặt bố trí và lưu sơ đồ đầu ra.

Mã mẫu sau đây cho thấy cách tạo biểu đồ Tổ chức theo kiểu lưu đồ trong C#:

// Tải các bản gốc từ bất kỳ sơ đồ, stencil hoặc mẫu hiện có nào
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;
// Xác định các giá trị để xây dựng hệ thống phân cấp
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" });
// Xác định Hashtable để ánh xạ tên chuỗi thành id hình dạng dài
Hashtable shapeIdMap = new Hashtable();
// Tạo một sơ đồ mới
Diagram diagram = new Diagram(visioStencil);
foreach (string orgnode in listPos)
{
    // Thêm một hình dạng hình chữ nhật mới
    long rectangleId = diagram.AddShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Đặt thuộc tính của hình dạng mới
    Shape shape = diagram.Pages[pageNumber].Shapes.GetShape(rectangleId);
    shape.Text.Value.Add(new Txt(orgnode));
    shape.Name = orgnode;
    shapeIdMap.Add(orgnode, rectangleId);
}
// Tạo kết nối giữa các nút
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);
    }
}

//bố cục tự động FlowChart
LayoutOptions flowChartOptions = new LayoutOptions
{
    LayoutStyle = LayoutStyle.FlowChart,
    Direction = LayoutDirection.TopToBottom,
    EnlargePage = true
};

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

// Lưu sơ đồ
diagram.Save("FlowChart_out.vsdx", SaveFileFormat.VSDX);

Nhận Giấy phép Tạm thời Miễn phí

Bạn có thể yêu cầu giấy phép tạm thời miễn phí để đánh giá API trong toàn bộ khả năng của nó.

Sự kết luận

Trong bài viết này, bạn đã hiểu cách tạo Biểu đồ tổ chức theo chương trình trong C#. Bạn có thể tạo sơ đồ từ stencil và tạo biểu đồ kiểu CompactTree hoặc Flowchart dựa trên yêu cầu của bạn. Hơn nữa, bạn có thể truy cập phần tài liệu để xem các tính năng khác được đề cập trong các chương và phần khác nhau. Trong trường hợp có bất kỳ thắc mắc nào, vui lòng liên hệ với chúng tôi qua diễn đàn.

Xem thêm

Chuyển VSDM sang PDF trong C#