สร้างแผนภูมิ ORG C#

แผนภูมิ ORG เป็นไดอะแกรมภาพที่แสดงถึงลำดับชั้นของพนักงานในองค์กร ประกอบด้วยบทบาท ความรับผิดชอบ ตำแหน่ง ฯลฯ และข้อมูลอื่น ๆ ที่เกี่ยวข้อง คุณสามารถสร้างแผนผังองค์กรประเภทต่างๆ ได้ด้วยการเรียก API เพียงไม่กี่ครั้ง โดยไม่จำเป็นต้องวาดรูปร่างหรือการเชื่อมต่อด้วยตนเอง บทความนี้กล่าวถึงวิธีการสร้างแผนภูมิ ORG ใน C#

ORG Chart Maker – การติดตั้ง C# API

Aspose.Diagram for .NET API รองรับการทำงานกับไดอะแกรมและแผนภูมิประเภทต่างๆ เพียงเข้าถึง API โดยดาวน์โหลดไฟล์ DLL จากส่วน New Releases หรือด้วยคำสั่งการติดตั้ง NuGet ต่อไปนี้:

PM> Install-Package Aspose.Diagram

สร้างแผนภูมิ ORG ในรูปแบบ CompactTree ใน C

คุณสามารถสร้างแผนภูมิ ORG ในรูปแบบ CompactTree โดยทำตามขั้นตอนด้านล่าง:

  1. โหลดต้นแบบจากไดอะแกรม stencil หรือเทมเพลตที่มีอยู่
  2. กำหนดค่าเพื่อสร้างลำดับชั้น
  3. เพิ่มรูปร่างและการเชื่อมต่อระหว่างโหนด
  4. บันทึกไดอะแกรมเอาต์พุต

ข้อมูลโค้ดด้านล่างอธิบายวิธีสร้างแผนภูมิ ORG ใน C #:

// โหลดต้นแบบจากไดอะแกรม stencil หรือเทมเพลตที่มีอยู่
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 เพื่อแมปชื่อสตริงกับรหัสรูปร่างยาว
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 Chart ในรูปแบบ Flowchart ใน C#

คุณอาจต้องสร้างแผนภูมิ ORG ประเภทต่างๆ ซึ่งอาจใช้เทมเพลตต่างกัน ที่นี่คุณจะได้เรียนรู้วิธีสร้างแผนภูมิ ORG ในรูปแบบ Flowchart โดยทางโปรแกรมใน C#:

  1. โหลดต้นแบบจากไดอะแกรม stencil หรือเทมเพลตที่มีอยู่
  2. เพิ่มโหนดองค์กรและตัวเชื่อมต่อ
  3. กำหนดเค้าโครงและบันทึกไดอะแกรมเอาต์พุต

โค้ดตัวอย่างต่อไปนี้แสดงวิธีการสร้างแผนภูมิ ORG ในรูปแบบผังงานใน C#:

// โหลดต้นแบบจากไดอะแกรม stencil หรือเทมเพลตที่มีอยู่
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 เพื่อแมปชื่อสตริงกับรหัสรูปร่างยาว
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);
    }
}

//FlowChart เค้าโครงอัตโนมัติ
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 ตามความต้องการของคุณ นอกจากนี้ คุณสามารถไปที่ส่วน documentation เพื่อดูคุณสมบัติอื่นๆ ที่ครอบคลุมในบทและส่วนต่างๆ ในกรณีที่มีข้อสงสัย โปรดติดต่อเราผ่านทาง ฟอรัม

ดูสิ่งนี้ด้วย

แปลง VSDM เป็น PDF ใน C#