ایجاد نمودار سازمانی csharp.png C#

یک نمودار سازمانی برای به تصویر کشیدن ساختار یک کسب و کار، دولت یا یک سازمان استفاده می شود. آنها را می توان به دلایل مختلفی مانند ایجاد یک سیاست یا اهداف برنامه ریزی نادیده گرفت. شما می توانید انواع مختلفی از نمودارهای سازمانی را با ایجاد اشکال و رابط های مختلف ایجاد کنید. این مقاله نحوه ایجاد نمودار سازمانی در سی شارپ را پوشش می دهد.

نمودار سازمانی – نصب C# API

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

PM> Install-Package Aspose.Diagram

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

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

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

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

// بارگذاری اصلی از هر نمودار، استنسیل یا الگوی موجود
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);

تصویر زیر نمودار سازمانی خروجی ایجاد شده با قطعه کد بالا را نشان می دهد:

ایجاد نمودار سازمانی C#

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

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

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

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

// بارگذاری اصلی از هر نمودار، استنسیل یا الگوی موجود
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 در ظرفیت کامل، [مجوز موقت رایگان] درخواست کنید.

نتیجه

در این مقاله با نحوه ایجاد نمودار سازمانی به صورت برنامه‌ریزی در سی شارپ آشنا شدید. می توانید یک نمودار از استنسیل ایجاد کنید و نمودار سبک CompactTree یا Flowchart را بر اساس نیاز خود ایجاد کنید. علاوه بر این، می‌توانید از بخش مستندات دیدن کنید تا به سایر ویژگی‌های تحت پوشش در فصل‌ها و بخش‌های مختلف نگاهی بیندازید. در صورت هرگونه سوال، لطفاً از طریق [فروم 10 با ما تماس بگیرید.

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

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