Skapa Organisationsschema Java

Ett Organisationsschema används för att förklara rapportering- eller relationshierarkin i ett institut eller ett företag. Du kan skapa ett organisationsschema utan att behöva installera ett användargränssnittsbaserat program eller verktyg. Den här artikeln tar upp hur du skapar olika typer av organisationsdiagram programmatiskt i Java.

Organizational Chart Maker – Java API-installation

Aspose.Diagram for Java API kan användas för att skapa många typer av visuella diagram inklusive diagram och flödesscheman. Du kan ladda ner JAR-filen från avsnittet Nedladdningar eller använda följande Maven-specifikationer i pom.xml-filen för din applikation:

Förvar:

 <repositories>
    <repository>
        <id>AsposeJavaAPI</id>
        <name>Aspose Java API</name>
        <url>http://repository.aspose.com/repo/</url>
    </repository>
</repositories>

Beroende:

 <dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-diagram</artifactId>
        <version>22.8</version>
        <classifier>jdk16</classifier>
    </dependency>
</dependencies>

Skapa organisationsschema i CompactTree Style i Java

Du kan skapa ett organisationsdiagram i CompactTree-stil med följande steg:

  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.

Kodexemplet nedan är ett exempel på hur man skapar ett organisationsschema i CompactTree-stil i Java:

// Ladda masters från alla befintliga diagram, stenciler eller mallar
String visioStencil = "Basic Shapes.vss";
String rectangleMaster = "Rectangle";
String connectorMaster = "Dynamic connector";
int pageNumber = 0;
double width = 1;
double height = 1;
double pinX = 4.25;
double pinY = 9.5;
// Definiera värden för att konstruera hierarkin
List<String> listPos = Arrays.asList(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.getPages().get(pageNumber).getPageSheet().getPageProps().getPageWidth().setValue(11);
for (String orgnode : 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.getPages().get(pageNumber).getShapes().getShape(rectangleId);
    shape.getText().getValue().add(new Txt(orgnode));
    shape.setName(orgnode);
    shapeIdMap.put(orgnode, rectangleId);
}
// Skapa anslutningar mellan noder
for (String orgName : listPos)
{
    int lastColon = orgName.lastIndexOf(':');
    if(lastColon > 0)
    {
        String parendName = orgName.substring(0, lastColon);
        long shapeId = (long)shapeIdMap.get(orgName);
        long parentId = (long)shapeIdMap.get(parendName);
        Shape connector1 = new Shape();
        long connecter1Id = diagram.addShape(connector1, connectorMaster, pageNumber);
        diagram.getPages().get(pageNumber).connectShapesViaConnector(parentId, ConnectionPointPlace.RIGHT,
            shapeId, ConnectionPointPlace.LEFT, connecter1Id);
    }
}

//automatisk layout CompactTree diagram
LayoutOptions compactTreeOptions = new LayoutOptions();
compactTreeOptions.setLayoutStyle(LayoutStyle.COMPACT_TREE);
compactTreeOptions.setDirection(LayoutDirection.DOWN_THEN_RIGHT);
compactTreeOptions.setEnlargePage(false);

diagram.getPages().get(pageNumber).layout(compactTreeOptions);

// Spara diagram
diagram.save("DrawCompactTreeChart_java.vsdx", SaveFileFormat.VSDX);

Skapa organisationsschema i flödesschemastil i Java

Du kan designa flera typer av organisationsscheman som kan följa olika mallar. Följande steg visar hur du skapar ett organisationsdiagram i flödesschema-stil programmatiskt i Java:

  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 kodavsnitt visar hur man skapar ett organisationsschema i flödesdiagramstil i Java:

// Ladda masters från alla befintliga diagram, stenciler eller mallar
String visioStencil = "Basic Shapes.vss";
String rectangleMaster = "Rectangle";
String connectorMaster = "Dynamic connector";
int pageNumber = 0;
double width = 1;
double height = 1;
double pinX = 4.25;
double pinY = 9.5;
// Definiera värden för att konstruera hierarkin
List<String> listPos = Arrays.asList(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.getPages().get(pageNumber).getPageSheet().getPageProps().getPageWidth().setValue(11);
for (String orgnode : 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.getPages().get(pageNumber).getShapes().getShape(rectangleId);
    shape.getText().getValue().add(new Txt(orgnode));
    shape.setName(orgnode);
    shapeIdMap.put(orgnode, rectangleId);
}
// Skapa anslutningar mellan noder
for (String orgName : listPos)
{
    int lastColon = orgName.lastIndexOf(':');
    if(lastColon > 0)
    {
        String parendName = orgName.substring(0, lastColon);
        long shapeId = (long)shapeIdMap.get(orgName);
        long parentId = (long)shapeIdMap.get(parendName);
        Shape connector1 = new Shape();
        long connecter1Id = diagram.addShape(connector1, connectorMaster, pageNumber);
        diagram.getPages().get(pageNumber).connectShapesViaConnector(parentId, ConnectionPointPlace.RIGHT,
            shapeId, ConnectionPointPlace.LEFT, connecter1Id);
    }
}

//automatisk layout Flödesschema
LayoutOptions flowChartOptions = new LayoutOptions();
flowChartOptions.setLayoutStyle(LayoutStyle.FLOW_CHART);
flowChartOptions.setDirection(LayoutDirection.TOP_TO_BOTTOM);
flowChartOptions.setEnlargePage(true);

diagram.getPages().get(pageNumber).layout(flowChartOptions);

// Spara diagram
diagram.save("DrawFlowChart_java.vsdx", SaveFileFormat.VSDX);

Få gratis tillfällig licens

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

Slutsats

I den här artikeln har du lärt dig hur du skapar ett organisationsschema programmatiskt i Java. Det täcker att skapa ett CompactTree- eller flödesdiagram, beroende på dina krav. Dessutom kan du besöka avsnittet dokumentation för att lära dig andra funktioner i API:t. Om du behöver diskutera ditt användningsfall eller problem kan du kontakta oss på forumet.

Se även

Konvertera VSD eller VSDX till VTX i Java