إنشاء مخطط ORG C#

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

ORG Chart Maker - تثبيت C# API

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

PM> Install-Package Aspose.Diagram

إنشاء مخطط ORG في نمط CompactTree في C#

يمكنك إنشاء مخطط ORG في نمط CompactTree باتباع الخطوات أدناه:

  1. تحميل الأساسيات من أي رسم تخطيطي أو استنسل أو قالب موجود.
  2. تحديد القيم لبناء التسلسل الهرمي.
  3. أضف الأشكال والوصلات بين العقد.
  4. احفظ مخطط الإخراج.

يوضح مقتطف الشفرة أدناه كيفية إنشاء مخطط ORG في 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);

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

إنشاء مخطط ORG C#

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

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

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

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

استنتاج

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

أنظر أيضا

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