ایجاد فلوچارت C#

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

چرا فلوچارت بسازیم؟

ایجاد فلوچارت به دلایل مختلف مفید است. مثلا:

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

نمودارهای پویا: نمودارهای جریانی پویا و مبتنی بر داده ایجاد کنید که می توانند در زمان واقعی بر اساس ورودی کاربر یا سایر متغیرها تغییر کنند.

یکپارچه‌سازی: فلوچارت‌ها را در برنامه‌های خود جاسازی کنید، به کاربران اجازه می‌دهد تا مستقیماً در نرم‌افزار با آنها تعامل داشته باشند و آنها را دستکاری کنند.

Flowchart Generator - C# API Installation

برای دنبال کردن این آموزش، باید Visual Studio IDE را پیکربندی کنید و محیط را با نصب Conholdate.Total for .NET با دستور نصب NuGet در زیر آماده کنید:

PM> NuGet\Install-Package Conholdate.Total

ساخت فلوچارت در سی شارپ

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

  • با ایجاد طرح واره برای نمودار فلوچارت شروع کنید.
  • Master را برای اضافه کردن اشکال با استفاده از کلاس Diagram بارگذاری کنید.
  • طبق طرح، شکل ها و رابط ها را اضافه کنید.
  • چیدمان نمودار فلوچارت را ترتیب دهید.
  • در نهایت، فلوچارت را به عنوان یک فایل VSDX با استفاده از روش Save ذخیره کنید.

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

namespace CreateFlowchart
{
    class Program
    {
        static void Main(string[] args)
        {
            //طرحی برای نموداری که باید ایجاد شود
            Input diagramObject = new Input()
            {
                InputRectangles = new List<InputRectangle>() {
                        new InputRectangle() {
                            Name = "A",
                            Text = "Manager"
                        },
                        new InputRectangle() {
                            Name = "B",
                            Text = "Team Leader"
                        },
                        new InputRectangle() {
                            Name = "C",
                            Text = "Team Member"
                        },
                        new InputRectangle() {
                            Name = "D",
                            Text = "Team Member"
                        },
                        new InputRectangle() {
                            Name = "E",
                            Text = "Team Member"
                        }
                    },
                InputConnectors = new List<InputConnector>() {
                        new InputConnector() {
                            OriginShapeName = "A",
                            DestinationShapeName = "B"
                        },
                        new InputConnector() {
                            OriginShapeName = "B",
                            DestinationShapeName = "C"
                        },
                        new InputConnector() {
                            OriginShapeName = "B",
                            DestinationShapeName = "D"
                        },
                        new InputConnector() {
                            OriginShapeName = "B",
                            DestinationShapeName = "E"
                        }
                    }
            };

            Diagram diagram = new Diagram("BasicShapes.vss");
            Page page = diagram.Pages[0];

            Dictionary<string, long> shapeNames = new Dictionary<string, long>();

            //اضافه کردن اشکال و اتصال دهنده ها از طرحواره
            foreach (var rectangle in diagramObject.InputRectangles)
            {
                Shape shape = new Shape();
                var shapeId = diagram.AddShape(shape, @"Rectangle", 0);
                shapeNames.Add(rectangle.Name, shapeId);
                shape = page.Shapes.GetShape(shapeId);
                shape.Text.Value.Add(new Txt(rectangle.Text));
            }


            foreach (var connector in diagramObject.InputConnectors)
            {
                var connectorId = diagram.AddShape(new Shape(), "Dynamic connector", 0);
                page.ConnectShapesViaConnector(shapeNames[connector.OriginShapeName],
                                                ConnectionPointPlace.Right,
                                                shapeNames[connector.DestinationShapeName],
                                                ConnectionPointPlace.Left,
                                                connectorId);
            }


            LayoutOptions layoutOptions = new LayoutOptions()
            {
                LayoutStyle = LayoutStyle.FlowChart,
                Direction = LayoutDirection.LeftToRight,
                SpaceShapes = 5,
                EnlargePage = true
            };

            diagram.Layout(layoutOptions);

            page.PageSheet.PrintProps.PrintPageOrientation.Value = PrintPageOrientationValue.Landscape;

            DiagramSaveOptions saveOptions = new DiagramSaveOptions()
            {
                SaveFormat = SaveFileFormat.Vsdx,
                AutoFitPageToDrawingContent = true
            };

            diagram.Save("output.vsdx", saveOptions);
        }
    }

    public class Input
    {
        public System.Collections.Generic.List<InputRectangle> InputRectangles { get; set; }
        public System.Collections.Generic.List<InputConnector> InputConnectors { get; set; }
    }

    public class InputRectangle
    {
        public string Name { get; set; }
        public string Text { get; set; }
    }

    public class InputConnector
    {
        public string OriginShapeName { get; set; }
        public string DestinationShapeName { get; set; }
    }
}

پروژه نمایشی

برای نمایش سریع این ویژگی، می‌توانید [نمونه پروژه 6 را در انتهای خود دانلود کنید. علاوه بر این، می توان با اصلاح اشکال، اتصالات، اتصالات و غیره برای آزمایش موارد استفاده مختلف، آن را بیشتر تقویت کرد.

مجوز ارزیابی رایگان

ممکن است یک مجوز موقت رایگان برای آزمایش APIها با ظرفیت کامل آنها دریافت کنید.

جمع بندی

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

سوالات متداول

آیا می توانم فلوچارت های پیچیده تری با شکل ها و رابط های اضافی ایجاد کنم؟

بله، شما می توانید به تعداد مورد نیاز شکل ها و اتصال دهنده ها را برای نمایش هر فرآیند ایجاد کنید.

آیا می توانم فلوچارت را به یک تصویر یا PDF صادر کنم؟

بله، از صادرات فلوچارت ها به فرمت های مختلف از جمله تصاویر و PDF پشتیبانی می کند.

آیا می توانم اشکال سفارشی را به فلوچارت اضافه کنم؟

بله، شما می توانید اشکال سفارشی ایجاد کنید. این به شما امکان می دهد تا اشکالی را ایجاد کنید که متناسب با نیازهای خاص شما هستند.

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