Skapa organisationsschema csharp.png C#

Ett Organisationsschema används för att skildra strukturen för ett företag, en regering eller en organisation. De kan förnekas av olika skäl som att göra en policy eller planeringsändamål. Du kan skapa olika typer av organisationsscheman genom att skapa olika former och kopplingar. Den här artikeln beskriver hur du skapar ett organisationsdiagram i C#.

Organisation Chart Maker – C# API-installation

Aspose.Diagram for .NET API kan användas för att skapa olika Visio-diagram och diagram. Du kan enkelt konfigurera API:et genom att ladda ner referensfilen från sidan Nya utgåvor eller använda följande installationskommando NuGet:

PM> Install-Package Aspose.Diagram

Skapa organisationsschema i CompactTree Style i C#

Du kan skapa ett organisationsschema i CompactTree-stil genom att följa stegen nedan:

  1. Ladda masters från alla befintliga diagram, stenciler eller mallar.
  2. Definiera värden för att konstruera hierarkin.
  3. Lägg till former och kopplingar mellan noder.
  4. Spara utgångsdiagrammet.

Kodavsnittet nedan förklarar hur man skapar ett organisationsdiagram i C#:

// Ladda masters från alla befintliga diagram, stenciler eller mallar
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;
// Definiera värden för att konstruera hierarkin
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" });
// Definiera en hashtabell för att mappa strängens namn till lång form-id
Hashtable shapeIdMap = new Hashtable();
// Skapa ett nytt diagram
Diagram diagram = new Diagram(visioStencil);
diagram.Pages[pageNumber].PageSheet.PageProps.PageWidth.Value = 11;
foreach (string orgnode in listPos)
{
    // Lägg till en ny rektangelform
    long rectangleId = diagram.AddShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Ställ in den nya formens egenskaper
    Shape shape = diagram.Pages[pageNumber].Shapes.GetShape(rectangleId);
    shape.Text.Value.Add(new Txt(orgnode));
    shape.Name = orgnode;
    shapeIdMap.Add(orgnode, rectangleId);
}
// Skapa anslutningar mellan noder
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);
    }
}

//automatisk layout CompactTree diagram
LayoutOptions compactTreeOptions = new LayoutOptions
{
    LayoutStyle = LayoutStyle.CompactTree,
    Direction = LayoutDirection.DownThenRight,
    EnlargePage = false
};

diagram.Pages[pageNumber].Layout(compactTreeOptions);

// Spara diagram
diagram.Save("CompactTreeChart_out.vsdx", SaveFileFormat.VSDX);

Följande skärmdump visar utdataorganisationsdiagrammet som genererats med kodavsnittet ovan:

Skapa organisationsdiagram C#

Skapa organisationsschema i flödesschemastil i C#

Du kan behöva skapa olika typer av organisationsscheman som kan följa olika mallar. Här kommer du att lära dig hur du skapar organisationsdiagram i flödesschema-stil programmatiskt i C#:

  1. Ladda masters från alla befintliga diagram, stenciler eller mallar.
  2. Lägg till organisationsnoder och kopplingar.
  3. Ställ in layout och spara utdatadiagram.

Följande exempelkod visar hur man skapar organisationsdiagram i flödesdiagramstil i C#:

// Ladda masters från alla befintliga diagram, stenciler eller mallar
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;
// Definiera värden för att konstruera hierarkin
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" });
// Definiera en hashtabell för att mappa strängens namn till lång form-id
Hashtable shapeIdMap = new Hashtable();
// Skapa ett nytt diagram
Diagram diagram = new Diagram(visioStencil);
foreach (string orgnode in listPos)
{
    // Lägg till en ny rektangelform
    long rectangleId = diagram.AddShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Ställ in den nya formens egenskaper
    Shape shape = diagram.Pages[pageNumber].Shapes.GetShape(rectangleId);
    shape.Text.Value.Add(new Txt(orgnode));
    shape.Name = orgnode;
    shapeIdMap.Add(orgnode, rectangleId);
}
// Skapa anslutningar mellan noder
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);
    }
}

//automatisk layout Flödesschema
LayoutOptions flowChartOptions = new LayoutOptions
{
    LayoutStyle = LayoutStyle.FlowChart,
    Direction = LayoutDirection.TopToBottom,
    EnlargePage = true
};

diagram.Pages[pageNumber].Layout(flowChartOptions);

// Spara diagram
diagram.Save("FlowChart_out.vsdx", SaveFileFormat.VSDX);

Få gratis tillfällig licens

Du kan begära en gratis temporär licens för att utvärdera API:t i dess fulla kapacitet.

Slutsats

I den här artikeln har du förstått hur du skapar organisationsdiagram programmatiskt i C#. Du kan skapa ett diagram från stencil och skapa CompactTree eller Flowchart stildiagram baserat på dina krav. Dessutom kan du besöka avsnittet dokumentation för att ta en titt på andra funktioner som täcks av olika kapitel och avsnitt. Om du har några frågor är du välkommen att kontakta oss via forumet.

Se även

Konvertera VSDM till PDF i C#