Crea diagramma di flusso in C# .NET

Diagrammi di flusso sono creati o progettati per rappresentare flussi di lavoro diversi. In determinate situazioni, potrebbe essere necessario creare diagrammi di flusso per gestire situazioni diverse. Questo articolo illustra come creare un diagramma di diagramma di flusso a livello di codice in C#.

Installa l’API C# per creare un diagramma di flusso

È possibile creare diagrammi di flusso usando l’API Aspose.Diagram for .NET. Supporta la creazione o la modifica di file Visio in VSD, VSDX e altri formati supportati. È possibile installare facilmente l’API scaricando il file DLL dalla sezione Nuove versioni o utilizzando NuGet Package Manager con il seguente comando di installazione:

PM> Install-Package Aspose.Diagram

Crea diagramma di flusso a livello di codice in C#

È possibile creare un diagramma di flusso di diversi processi in base alle proprie esigenze. Si prega di seguire i passaggi seguenti per creare diagrammi di flusso:

  1. Innanzitutto, crea lo schema per creare il diagramma.
  2. Carica il master per aggiungere forme usando la classe Diagram.
  3. Aggiunta di forme e connettori dallo schema.
  4. Impostare il layout per il diagramma di flusso.
  5. Infine, scrivi il file di output con il diagramma di flusso in formato VSDX usando il metodo Salva.

Il frammento di codice seguente elabora come creare un diagramma di diagramma di flusso a livello di codice in C#:

class Program
{
    static void Main(string[] args)
    {
        // schema per il diagramma da creare
        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>();

        //Aggiunta di forme e connettori dallo schema
        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; }
}

Scarica il progetto di esempio

Puoi scaricare il progetto di esempio insieme ai file di input e output.

Anteprima del diagramma di flusso dell’output di esempio

Crea diagramma di flusso in C#

Ottieni la licenza API gratuita

Puoi valutare tutte le funzionalità dell’API senza alcuna limitazione richiedendo una licenza temporanea gratuita.

Conclusione

In questo articolo si è appreso come creare o creare diagrammi di flusso a livello di codice usando C#. Puoi progettare forme diverse come la decisione, il processo, nonché layout diversi come da sinistra a destra o da destra a sinistra, ecc. Inoltre, puoi visitare l’API documentazione per saperne di più sulle funzionalità dell’API. Non esitare a contattarci nel forum.

Guarda anche