Tạo sơ đồ tổ chức Java

Sơ đồ tổ chức được sử dụng để giải thích hệ thống phân cấp báo cáo hoặc mối quan hệ trong một viện hoặc công ty. Bạn có thể tạo biểu đồ Tổ chức mà không cần cài đặt ứng dụng hoặc công cụ dựa trên giao diện người dùng. Bài viết này trình bày cách tạo các loại biểu đồ Tổ chức khác nhau theo chương trình trong Java.

Trình tạo sơ đồ tổ chức - Cài đặt Java API

Aspose.Diagram for Java API có thể được sử dụng để tạo nhiều loại sơ đồ trực quan bao gồm biểu đồ và sơ đồ. Bạn có thể tải xuống tệp JAR từ phần Tải xuống hoặc sử dụng các thông số kỹ thuật Maven sau trong tệp pom.xml của ứng dụng của bạn:

Kho:

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

Sự phụ thuộc:

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

Tạo sơ đồ tổ chức trong kiểu CompactTree trong Java

Bạn có thể tạo biểu đồ Tổ chức theo kiểu CompactTree bằng các bước sau:

  1. Tải bản gốc từ bất kỳ sơ đồ, khuôn mẫu hoặc khuôn mẫu hiện có nào.
  2. Xác định các giá trị để xây dựng cấu trúc phân cấp.
  3. Thêm hình dạng và kết nối giữa các nút.
  4. Lưu sơ đồ đầu ra.

Mẫu mã dưới đây là ví dụ về cách tạo sơ đồ tổ chức theo kiểu CompactTree trong Java:

// Tải bản gốc từ bất kỳ sơ đồ, khuôn mẫu hoặc mẫu hiện có nào
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;
// Xác định các giá trị để xây dựng hệ thống phân cấp
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" });
// Xác định Hashtable để ánh xạ tên chuỗi thành id hình dạng dài
Hashtable shapeIdMap = new Hashtable();
// Tạo một sơ đồ mới
Diagram diagram = new Diagram(visioStencil);
diagram.getPages().get(pageNumber).getPageSheet().getPageProps().getPageWidth().setValue(11);
for (String orgnode : listPos)
{
    // Thêm một hình dạng hình chữ nhật mới
    long rectangleId = diagram.addShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Đặt thuộc tính của hình dạng mới
    Shape shape = diagram.getPages().get(pageNumber).getShapes().getShape(rectangleId);
    shape.getText().getValue().add(new Txt(orgnode));
    shape.setName(orgnode);
    shapeIdMap.put(orgnode, rectangleId);
}
// Tạo kết nối giữa các nút
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);
    }
}

//bố cục tự động Biểu đồ CompactTree
LayoutOptions compactTreeOptions = new LayoutOptions();
compactTreeOptions.setLayoutStyle(LayoutStyle.COMPACT_TREE);
compactTreeOptions.setDirection(LayoutDirection.DOWN_THEN_RIGHT);
compactTreeOptions.setEnlargePage(false);

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

// Lưu sơ đồ
diagram.save("DrawCompactTreeChart_java.vsdx", SaveFileFormat.VSDX);

Tạo sơ đồ tổ chức theo kiểu lưu đồ trong Java

Bạn có thể thiết kế một số loại biểu đồ tổ chức có thể theo các mẫu khác nhau. Các bước sau đây cho biết cách tạo sơ đồ tổ chức kiểu Lưu đồ theo chương trình trong Java:

  1. Tải bản gốc từ bất kỳ sơ đồ, khuôn mẫu hoặc khuôn mẫu hiện có nào.
  2. Thêm các nút tổ chức và trình kết nối.
  3. Đặt bố trí và lưu sơ đồ đầu ra.

Đoạn mã sau đây trình bày cách tạo sơ đồ tổ chức theo kiểu lưu đồ trong Java:

// Tải bản gốc từ bất kỳ sơ đồ, khuôn mẫu hoặc mẫu hiện có nào
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;
// Xác định các giá trị để xây dựng hệ thống phân cấp
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" });
// Xác định Hashtable để ánh xạ tên chuỗi thành id hình dạng dài
Hashtable shapeIdMap = new Hashtable();
// Tạo một sơ đồ mới
Diagram diagram = new Diagram(visioStencil);
diagram.getPages().get(pageNumber).getPageSheet().getPageProps().getPageWidth().setValue(11);
for (String orgnode : listPos)
{
    // Thêm một hình dạng hình chữ nhật mới
    long rectangleId = diagram.addShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Đặt thuộc tính của hình dạng mới
    Shape shape = diagram.getPages().get(pageNumber).getShapes().getShape(rectangleId);
    shape.getText().getValue().add(new Txt(orgnode));
    shape.setName(orgnode);
    shapeIdMap.put(orgnode, rectangleId);
}
// Tạo kết nối giữa các nút
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);
    }
}

//bố cục tự động FlowChart
LayoutOptions flowChartOptions = new LayoutOptions();
flowChartOptions.setLayoutStyle(LayoutStyle.FLOW_CHART);
flowChartOptions.setDirection(LayoutDirection.TOP_TO_BOTTOM);
flowChartOptions.setEnlargePage(true);

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

// Lưu sơ đồ
diagram.save("DrawFlowChart_java.vsdx", SaveFileFormat.VSDX);

Nhận Giấy phép Tạm thời Miễn phí

Bạn có thể đánh giá API ở mức đầy đủ của nó bằng cách yêu cầu giấy phép tạm thời miễn phí.

Sự kết luận

Trong bài viết này, bạn đã học cách tạo sơ đồ tổ chức theo lập trình trong Java. Nó bao gồm việc tạo biểu đồ kiểu CompactTree hoặc Flowchart tùy thuộc vào yêu cầu của bạn. Ngoài ra, bạn có thể truy cập phần tài liệu để tìm hiểu các tính năng khác của API. Trong trường hợp bạn cần thảo luận về trường hợp sử dụng hoặc các mối quan tâm của mình, bạn có thể liên hệ với chúng tôi tại diễn đàn.

Xem thêm

Chuyển đổi VSD hoặc VSDX sang VTX trong Java