Tạo biểu đồ ORG Java

Biểu đồ ORG đượ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ệ của một viện hoặc công ty. Bạn có thể tạo biểu đồ ORG 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 đồ ORG khác nhau theo lập trình trong Java.

ORG Chart Maker - 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 biểu đồ ORG trong kiểu CompactTree trong Java

Bạn có thể tạo biểu đồ ORG 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.

Đoạn mã mẫu sau đây trình bày cách tạo biểu đồ ORG 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 Biểu đồ ORG trong Kiểu Lưu đồ trong Java

Bạn có thể cần tạo các loại biểu đồ ORG khác nhau có thể tuân theo các mẫu khác nhau. Tại đây, bạn sẽ học cách tạo biểu đồ ORG theo kiểu Lưu đồ theo lập 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ã bên dưới giải thích cách tạo biểu đồ ORG theo kiểu lưu đồ bằng 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ể kiểm tra API mà không có bất kỳ giới hạn đánh giá nào 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 biểu đồ ORG theo chương trình trong Java. Nó giải thích việc tạo biểu đồ kiểu CompactTree hoặc Flowchart theo nhu cầu của bạn. Hơn nữa, bạn có thể xem qua nhiều tính năng khác bằng cách xem qua tài liệu không gian. Vui lòng viết thư cho chúng tôi tại diễn đàn trong trường hợp bạn muốn thảo luận về bất kỳ yêu cầu hoặc mối quan tâm nào của mình.

Xem thêm

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