แผนภูมิ ORG เป็นไดอะแกรมภาพที่แสดงถึงลำดับชั้นของพนักงานในองค์กร ประกอบด้วยบทบาท ความรับผิดชอบ ตำแหน่ง ฯลฯ และข้อมูลอื่น ๆ ที่เกี่ยวข้อง คุณสามารถสร้างแผนผังองค์กรประเภทต่างๆ ได้ด้วยการเรียก API เพียงไม่กี่ครั้ง โดยไม่จำเป็นต้องวาดรูปร่างหรือการเชื่อมต่อด้วยตนเอง บทความนี้กล่าวถึงวิธีการสร้างแผนภูมิ ORG ใน C#
- ORG Chart Maker – การติดตั้ง C# API
- สร้างแผนภูมิ ORG ในรูปแบบ CompactTree ใน C #
- สร้าง ORG Chart ในรูปแบบ Flowchart ใน 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 โดยทำตามขั้นตอนด้านล่าง:
- โหลดต้นแบบจากไดอะแกรม stencil หรือเทมเพลตที่มีอยู่
- กำหนดค่าเพื่อสร้างลำดับชั้น
- เพิ่มรูปร่างและการเชื่อมต่อระหว่างโหนด
- บันทึกไดอะแกรมเอาต์พุต
ข้อมูลโค้ดด้านล่างอธิบายวิธีสร้างแผนภูมิ 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 Chart ในรูปแบบ Flowchart ใน C#
คุณอาจต้องสร้างแผนภูมิ ORG ประเภทต่างๆ ซึ่งอาจใช้เทมเพลตต่างกัน ที่นี่คุณจะได้เรียนรู้วิธีสร้างแผนภูมิ ORG ในรูปแบบ Flowchart โดยทางโปรแกรมใน C#:
- โหลดต้นแบบจากไดอะแกรม stencil หรือเทมเพลตที่มีอยู่
- เพิ่มโหนดองค์กรและตัวเชื่อมต่อ
- กำหนดเค้าโครงและบันทึกไดอะแกรมเอาต์พุต
โค้ดตัวอย่างต่อไปนี้แสดงวิธีการสร้างแผนภูมิ 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 เพื่อดูคุณสมบัติอื่นๆ ที่ครอบคลุมในบทและส่วนต่างๆ ในกรณีที่มีข้อสงสัย โปรดติดต่อเราผ่านทาง ฟอรัม