ایجاد نمودار ORG C#

نمودار ORG یک نمودار بصری است که سلسله مراتب کارکنان یک سازمان را نشان می دهد. این شامل نقش ها، مسئولیت ها، موقعیت و غیره و سایر اطلاعات مرتبط است. شما می توانید انواع مختلفی از نمودارهای سازمانی را با چند تماس API بدون نیاز به رسم دستی اشکال یا اتصالات ایجاد کنید. این مقاله نحوه ایجاد نمودار ORG در سی شارپ را پوشش می دهد.

ORG Chart Maker – C# API نصب

Aspose.Diagram for .NET API از کار با انواع مختلف نمودارها و نمودارها پشتیبانی می کند. به سادگی با دانلود فایل DLL آن از بخش New Releases یا با دستور نصب زیر NuGet به API دسترسی پیدا کنید:

PM> Install-Package Aspose.Diagram

ایجاد نمودار ORG به سبک CompactTree در سی شارپ

با دنبال کردن مراحل زیر می توانید یک نمودار ORG به سبک CompactTree ایجاد کنید:

  1. بارگذاری اصلی از هر نمودار، استنسیل یا الگوی موجود.
  2. مقادیر را برای ساخت سلسله مراتب تعریف کنید.
  3. شکل ها و اتصالات بین گره ها را اضافه کنید.
  4. نمودار خروجی را ذخیره کنید.

قطعه کد زیر نحوه ایجاد نمودار ORG در سی شارپ را توضیح می دهد:

// بارگذاری اصلی از هر نمودار، استنسیل یا الگوی موجود
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" });
// برای نگاشت نام رشته به id شکل بلند، یک 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 در سبک فلوچارت در سی شارپ

ممکن است لازم باشد انواع مختلفی از نمودارهای ORG ایجاد کنید که ممکن است از الگوهای مختلفی پیروی کنند. در اینجا یاد خواهید گرفت که چگونه یک نمودار ORG به سبک فلوچارت به صورت برنامه نویسی در سی شارپ ایجاد کنید:

  1. بارگذاری اصلی از هر نمودار، استنسیل یا الگوی موجود.
  2. گره ها و اتصال دهنده های سازمان را اضافه کنید.
  3. طرح بندی را تنظیم کرده و نمودار خروجی را ذخیره کنید.

کد نمونه زیر نحوه ایجاد نمودار ORG به سبک فلوچارت در سی شارپ را نشان می دهد:

// بارگذاری اصلی از هر نمودار، استنسیل یا الگوی موجود
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" });
// برای نگاشت نام رشته به id شکل بلند، یک 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 به صورت برنامه نویسی در سی شارپ را درک کرده اید. می‌توانید نموداری از استنسیل ایجاد کنید و نمودار سبک CompactTree یا Flowchart را بر اساس نیاز خود ایجاد کنید. علاوه بر این، می‌توانید از بخش مستندات دیدن کنید تا به سایر ویژگی‌های تحت پوشش در فصل‌ها و بخش‌های مختلف نگاهی بیندازید. در صورت وجود هرگونه سوال، لطفاً از طریق [ انجمن 10 با ما تماس بگیرید.

همچنین ببینید

تبدیل VSDM به PDF در سی شارپ