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

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

لماذا إنشاء المخططات الانسيابية؟

يعد إنشاء المخططات الانسيابية مفيدًا لأسباب مختلفة. على سبيل المثال:

التوثيق الآلي: إنشاء مخططات انسيابية تلقائيًا استنادًا إلى التعليمات البرمجية أو ملفات التكوين، مما يضمن تحديث الوثائق.

الرسوم البيانية الديناميكية: قم بإنشاء مخططات انسيابية ديناميكية تعتمد على البيانات والتي يمكن أن تتغير في الوقت الفعلي بناءً على مدخلات المستخدم أو المتغيرات الأخرى.

التكامل: قم بتضمين المخططات الانسيابية داخل تطبيقاتك، مما يسمح للمستخدمين بالتفاعل معها ومعالجتها مباشرة داخل البرنامج.

مولد المخطط الانسيابي - تثبيت C# API

لمتابعة هذا البرنامج التعليمي، تحتاج إلى تكوين Visual Studio IDE، وإعداد البيئة عن طريق تثبيت Conholdate.Total for .NET باستخدام أمر تثبيت NuGet أدناه:

PM> NuGet\Install-Package Conholdate.Total

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

يمكنك تعلم كيفية إنشاء مخطط انسيابي في لغة C# عن طريق إضافة بعض الأشكال والموصلات:

  • ابدأ بإنشاء المخطط للمخطط الانسيابي.
  • قم بتحميل الملف الرئيسي لإضافة أشكال باستخدام فئة الرسم التخطيطي.
  • أضف الأشكال والموصلات وفقًا للمخطط.
  • ترتيب التخطيط للمخطط الانسيابي.
  • وأخيرًا، احفظ المخطط الانسيابي كملف VSDX باستخدام طريقة الحفظ.

يوضح نموذج التعليمات البرمجية أدناه كيفية إنشاء مخطط انسيابي في C#:

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; }
    }
}

المشروع التجريبي

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

رخصة التقييم المجانية

قد تحصل على ترخيص مؤقت مجاني لاختبار واجهات برمجة التطبيقات بكامل طاقتها.

تلخيص لما سبق

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

الأسئلة الشائعة

هل يمكنني إنشاء مخططات انسيابية أكثر تعقيدًا بأشكال وموصلات إضافية؟

نعم، يمكنك إنشاء العديد من الأشكال والموصلات حسب الحاجة لتمثيل أي عملية.

هل يمكنني تصدير المخطط الانسيابي إلى صورة أو PDF؟

نعم، فهو يدعم تصدير المخططات الانسيابية إلى تنسيقات مختلفة، بما في ذلك الصور وملفات PDF.

هل يمكنني إضافة أشكال مخصصة إلى المخطط الانسيابي؟

نعم، يمكنك إنشاء أشكال مخصصة. يتيح لك هذا إنشاء أشكال مصممة خصيصًا لتلبية احتياجاتك الخاصة.

أنظر أيضا