แผนผังองค์กร ใช้เพื่ออธิบายโครงสร้างของธุรกิจ รัฐบาล หรือองค์กร พวกเขาอาจถูกปฏิเสธด้วยเหตุผลต่างๆ เช่น การกำหนดนโยบายหรือวัตถุประสงค์ในการวางแผน คุณสามารถสร้างแผนผังองค์กรประเภทต่างๆ ได้โดยสร้างรูปร่างและตัวเชื่อมต่อต่างๆ บทความนี้กล่าวถึงวิธีการสร้างแผนผังองค์กรใน C#
- API ผู้สร้างแผนผังองค์กร – การติดตั้ง C#
- สร้างแผนผังองค์กรในรูปแบบ CompactTree ใน C#
- สร้างแผนผังองค์กรในรูปแบบผังงานใน C#
เครื่องสร้างแผนผังองค์กร – การติดตั้ง C# API
Aspose.Diagram for .NET สามารถใช้ API เพื่อสร้างไดอะแกรมและแผนภูมิ Visio ต่างๆ คุณสามารถกำหนดค่า API ได้ง่ายๆ โดยดาวน์โหลดไฟล์อ้างอิงจากหน้า New Releases หรือใช้คำสั่งติดตั้ง NuGet ต่อไปนี้:
PM> Install-Package Aspose.Diagram
สร้างแผนผังองค์กรในรูปแบบ CompactTree ใน C#
คุณสามารถสร้างแผนผังองค์กรในรูปแบบ CompactTree โดยทำตามขั้นตอนด้านล่าง:
- โหลดต้นแบบจากไดอะแกรม stencil หรือเทมเพลตที่มีอยู่
- กำหนดค่าเพื่อสร้างลำดับชั้น
- เพิ่มรูปร่างและการเชื่อมต่อระหว่างโหนด
- บันทึกไดอะแกรมเอาต์พุต
ข้อมูลโค้ดด้านล่างอธิบายวิธีสร้างแผนผังองค์กรใน 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);
ภาพหน้าจอต่อไปนี้แสดงแผนผังองค์กรเอาต์พุตที่สร้างด้วยข้อมูลโค้ดด้านบน:
สร้างแผนผังองค์กรในรูปแบบ Flowchart ใน C#
คุณอาจต้องสร้างแผนผังองค์กรประเภทต่างๆ ซึ่งอาจเป็นไปตามเทมเพลตต่างๆ ที่นี่คุณจะได้เรียนรู้วิธีสร้างแผนผังองค์กรในรูปแบบ Flowchart โดยทางโปรแกรมใน C#:
- โหลดต้นแบบจากไดอะแกรม stencil หรือเทมเพลตที่มีอยู่
- เพิ่มโหนดองค์กรและตัวเชื่อมต่อ
- กำหนดเค้าโครงและบันทึกไดอะแกรมผลลัพธ์
โค้ดตัวอย่างต่อไปนี้แสดงวิธีการสร้างแผนผังองค์กรในรูปแบบผังงานใน 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 ได้อย่างเต็มประสิทธิภาพ
บทสรุป
ในบทความนี้ คุณได้เข้าใจวิธีสร้างแผนผังองค์กรโดยทางโปรแกรมใน C# คุณสามารถสร้างไดอะแกรมจาก stencil และสร้างแผนภูมิลักษณะ CompactTree หรือ Flowchart ตามความต้องการของคุณ นอกจากนี้ คุณสามารถไปที่ส่วน documentation เพื่อดูคุณสมบัติอื่นๆ ที่ครอบคลุมในบทและส่วนต่างๆ ในกรณีที่มีข้อสงสัย โปรดติดต่อเราผ่านทาง ฟอรัม