إنشاء مخطط تنظيمي جافا

يتم استخدام مخطط تنظيمي لشرح التسلسل الهرمي لإعداد التقارير أو العلاقة في مؤسسة أو شركة. يمكنك إنشاء مخطط تنظيمي دون الحاجة إلى تثبيت تطبيق أو أداة قائمة على واجهة المستخدم. تتناول هذه المقالة كيفية إنشاء أنواع مختلفة من المخططات التنظيمية برمجيًا في Java.

صانع المخطط التنظيمي - تثبيت Java API

Aspose.Diagram for Java يمكن استخدام API لإنشاء أنواع عديدة من الرسوم البيانية المرئية بما في ذلك الرسوم البيانية والمخططات الانسيابية. يمكنك تنزيل ملف JAR من قسم التنزيلات أو باستخدام المواصفات التالية Maven في ملف pom.xml لتطبيقك:

مخزن:

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

الاعتماد:

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

قم بإنشاء مخطط تنظيمي في نمط CompactTree في Java

يمكنك إنشاء مخطط تنظيمي في نمط CompactTree بالخطوات التالية:

  1. تحميل الأساسيات من أي رسم تخطيطي أو استنسل أو قالب موجود.
  2. تحديد القيم لبناء التسلسل الهرمي.
  3. أضف الأشكال والوصلات بين العقد.
  4. احفظ مخطط الإخراج.

نموذج التعليمات البرمجية أدناه هو نموذج لكيفية إنشاء مخطط تنظيمي في نمط CompactTree في Java:

// تحميل الأساسيات من أي رسم تخطيطي أو استنسل أو قالب موجود
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;
// تحديد القيم لبناء التسلسل الهرمي
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" });
// حدد Hashtable لتعيين اسم السلسلة لمعرف الشكل الطويل
Hashtable shapeIdMap = new Hashtable();
// قم بإنشاء رسم تخطيطي جديد
Diagram diagram = new Diagram(visioStencil);
diagram.getPages().get(pageNumber).getPageSheet().getPageProps().getPageWidth().setValue(11);
for (String orgnode : listPos)
{
    // أضف شكل مستطيل جديد
    long rectangleId = diagram.addShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // عيّن خصائص الشكل الجديد
    Shape shape = diagram.getPages().get(pageNumber).getShapes().getShape(rectangleId);
    shape.getText().getValue().add(new Txt(orgnode));
    shape.setName(orgnode);
    shapeIdMap.put(orgnode, rectangleId);
}
// إنشاء اتصالات بين العقد
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);
    }
}

//تخطيط تلقائي 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);

// حفظ الرسم التخطيطي
diagram.save("DrawCompactTreeChart_java.vsdx", SaveFileFormat.VSDX);

قم بإنشاء مخطط تنظيمي في نمط مخطط انسيابي في Java

يمكنك تصميم عدة أنواع من المخططات التنظيمية التي قد تتبع قوالب مختلفة. توضح الخطوات التالية كيفية إنشاء مخطط تنظيمي بنمط مخطط انسيابي برمجيًا في Java:

  1. تحميل الأساسيات من أي رسم تخطيطي أو استنسل أو قالب موجود.
  2. أضف عقدًا وموصلات تنظيمية.
  3. تعيين التخطيط وحفظ الرسم التخطيطي الإخراج.

يوضح مقتطف الشفرة التالي كيفية إنشاء مخطط تنظيمي بأسلوب مخطط انسيابي في Java:

// تحميل الأساسيات من أي رسم تخطيطي أو استنسل أو قالب موجود
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;
// تحديد القيم لبناء التسلسل الهرمي
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" });
// حدد Hashtable لتعيين اسم السلسلة لمعرف الشكل الطويل
Hashtable shapeIdMap = new Hashtable();
// قم بإنشاء رسم تخطيطي جديد
Diagram diagram = new Diagram(visioStencil);
diagram.getPages().get(pageNumber).getPageSheet().getPageProps().getPageWidth().setValue(11);
for (String orgnode : listPos)
{
    // أضف شكل مستطيل جديد
    long rectangleId = diagram.addShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // عيّن خصائص الشكل الجديد
    Shape shape = diagram.getPages().get(pageNumber).getShapes().getShape(rectangleId);
    shape.getText().getValue().add(new Txt(orgnode));
    shape.setName(orgnode);
    shapeIdMap.put(orgnode, rectangleId);
}
// إنشاء اتصالات بين العقد
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);
    }
}

//مخطط انسيابي للتخطيط التلقائي
LayoutOptions flowChartOptions = new LayoutOptions();
flowChartOptions.setLayoutStyle(LayoutStyle.FLOW_CHART);
flowChartOptions.setDirection(LayoutDirection.TOP_TO_BOTTOM);
flowChartOptions.setEnlargePage(true);

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

// حفظ الرسم التخطيطي
diagram.save("DrawFlowChart_java.vsdx", SaveFileFormat.VSDX);

احصل على رخصة مؤقتة مجانية

يمكنك تقييم API بكامل طاقتها من خلال طلب ترخيص مؤقت مجاني.

استنتاج

في هذه المقالة ، تعلمت كيفية إنشاء مخطط تنظيمي برمجيًا في Java. ويغطي عمل مخطط نمط CompactTree أو مخطط انسيابي حسب متطلباتك. علاوة على ذلك ، يمكنك زيارة قسم التوثيق للتعرف على الميزات الأخرى لواجهة برمجة التطبيقات. في حال احتجت إلى مناقشة حالة الاستخدام أو مخاوفك ، يمكنك الاتصال بنا على المنتدى.

أنظر أيضا

تحويل VSD أو VSDX إلى VTX بجافا