C# .NET'te Akış Şeması Oluşturma

Akış çizelgeleri, farklı iş akışlarını temsil edecek şekilde oluşturulur veya tasarlanır. Belirli durumlarda, farklı durumları yönetmek için akış şemaları oluşturmanız gerekebilir. Bu makale, C# dilinde programlı olarak bir akış şeması diyagramının nasıl oluşturulacağını kapsar.

Akış Şeması Şeması Oluşturmak için C# API’sini Kurun

Aspose.Diagram for .NET API’sini kullanarak akış şeması diyagramları oluşturabilirsiniz. VSD, VSDX ve diğer desteklenen biçimlerde Visio dosyaları oluşturmayı veya düzenlemeyi destekler. Yeni Sürümler bölümünden DLL dosyasını indirerek veya aşağıdaki kurulum komutuyla NuGet Paket Yöneticisini kullanarak API’yi kolayca yükleyebilirsiniz:

PM> Install-Package Aspose.Diagram

Programlı Olarak C# ile Akış Şeması Oluşturma

Gereksinimlerinize göre farklı süreçlerin akış şemasını oluşturabilirsiniz. Akış şemaları oluşturmak için lütfen aşağıdaki adımları izleyin:

  1. İlk olarak, diyagramı oluşturmak için şemayı oluşturun.
  2. Diagram sınıfını kullanarak şekil eklemek için master’ı yükleyin.
  3. Şemadan şekiller ve bağlayıcılar ekleme.
  4. Akış şeması diyagramı için düzeni ayarlayın.
  5. Son olarak, akış şeması içeren çıktı dosyasını Kaydet yöntemini kullanarak VSDX formatında yazın.

Aşağıdaki kod parçacığı, C# dilinde programlı olarak bir akış şeması diyagramının nasıl oluşturulacağını detaylandırır:

class Program
{
    static void Main(string[] args)
    {
        // Oluşturulacak diyagram için şema
        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>();

        //Şemadan şekiller ve bağlayıcılar ekleme
        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; }
}

Örnek Proje İndir

Giriş ve çıkış dosyalarıyla birlikte örnek projeyi indirebilirsiniz.

Örnek Çıktı Akış Şeması Önizlemesi

C# ile Akış Şeması Oluşturun

Ücretsiz API Lisansı Alın

Ücretsiz geçici lisans talep ederek API’nin tüm özelliklerini herhangi bir sınırlama olmaksızın değerlendirebilirsiniz.

Çözüm

Bu makalede, C# kullanarak programlı olarak akış şemaları oluşturmayı veya yapmayı öğrendiniz. Karar, süreç gibi farklı şekillerin yanı sıra soldan sağa veya sağdan sola vb. Lütfen forumdan bize ulaşmaktan çekinmeyin.

Ayrıca bakınız