Skapa ORG-diagram C#

Ett ORG-diagram är ett visuellt diagram som representerar hierarkin för anställda i en organisation. Den innehåller deras roller, ansvar, position etc. och annan relevant information. Du kan skapa olika typer av organisationsdiagram med några få API-anrop utan att behöva rita former eller anslutningar manuellt. Den här artikeln beskriver hur man skapar ett ORG-diagram i C#.

ORG Chart Maker – C# API-installation

Aspose.Diagram for .NET API stöder arbete med olika typer av diagram och diagram. Få åtkomst till API:et genom att ladda ner dess DLL-fil från avsnittet Nya utgåvor eller med följande installationskommando NuGet:

PM> Install-Package Aspose.Diagram

Skapa ORG-diagram i CompactTree Style i C#

Du kan skapa ett ORG-diagram 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 ORG-diagram 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 utdata-ORG-diagrammet som skapats med ovanstående kodavsnitt:

Skapa ORG-diagram C#

Skapa ORG-diagram i flödesdiagramstil i C#

Du kan behöva skapa olika typer av ORG-diagram som kan följa olika mallar. Här kommer du att lära dig hur du skapar ett ORG-diagram i Flowchart-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 ett ORG-diagram 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 ett ORG-diagram programmatiskt i C#. Du kan skapa ett diagram från en 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. Vid eventuella frågor är du välkommen att kontakta oss via forum.

Se även

Konvertera VSDM till PDF i C#