إنشاء مخطط تنظيمي csharp.png C#

يستخدم المخطط التنظيمي لتصوير هيكل الأعمال أو الحكومة أو المنظمة. يمكن أن يتم إزعاجهم لأسباب مختلفة مثل وضع سياسة أو أغراض التخطيط. يمكنك إنشاء نوع مختلف من المخططات التنظيمية عن طريق عمل أشكال وموصلات مختلفة. تتناول هذه المقالة كيفية إنشاء مخطط تنظيمي في C#.

صانع المخطط التنظيمي - تثبيت C# API

يمكن استخدام API Aspose.Diagram for .NET لإنشاء مخططات ومخططات Visio مختلفة. يمكنك تكوين API بسهولة عن طريق تنزيل ملفها المرجعي من صفحة الإصدارات الجديدة أو باستخدام أمر التثبيت NuGet التالي:

PM> Install-Package Aspose.Diagram

إنشاء مخطط تنظيمي في نمط شجرة CompactTree في C#

يمكنك إنشاء مخطط تنظيمي في نمط 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 لتعيين اسم السلسلة لمعرف الشكل الطويل
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);

تُظهر لقطة الشاشة التالية المخطط التنظيمي الناتج الذي تم إنشاؤه باستخدام مقتطف الشفرة أعلاه:

إنشاء مخطط تنظيمي C#

إنشاء مخطط تنظيمي في نمط مخطط انسيابي في C#

قد تحتاج إلى إنشاء نوع مختلف من المخططات التنظيمية التي قد تتبع قوالب مختلفة. هنا سوف تتعلم كيفية إنشاء مخطط تنظيمي في نمط مخطط انسيابي برمجيًا في C#:

  1. تحميل الأساسيات من أي رسم تخطيطي أو استنسل أو قالب موجود.
  2. أضف عقدًا وموصلات تنظيمية.
  3. تعيين التخطيط وحفظ الرسم التخطيطي الإخراج.

يوضح نموذج التعليمات البرمجية التالي كيفية إنشاء مخطط تنظيمي في نمط مخطط انسيابي في 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 لتعيين اسم السلسلة لمعرف الشكل الطويل
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 بكامل طاقتها.

استنتاج

في هذه المقالة ، فهمت كيفية إنشاء مخطط تنظيمي برمجيًا في C#. يمكنك إنشاء رسم تخطيطي من الاستنسل وإنشاء مخطط نمط مضغوط أو مخطط انسيابي بناءً على متطلباتك. علاوة على ذلك ، يمكنك زيارة قسم التوثيق لإلقاء نظرة على الميزات الأخرى التي تغطيها الفصول والأقسام المختلفة. في حالة وجود أي استفسارات ، فلا تتردد في الاتصال بنا عبر المنتدى.

أنظر أيضا

تحويل VSDM إلى PDF في C#