Buat bagan ORG C#

Bagan ORG adalah diagram visual yang mewakili hierarki karyawan dalam suatu organisasi. Ini berisi peran, tanggung jawab, posisi, dll. Dan informasi relevan lainnya. Anda dapat membuat berbagai jenis bagan organisasi dengan beberapa panggilan API tanpa perlu menggambar bentuk atau koneksi secara manual. Artikel ini membahas cara membuat bagan ORG di C#.

Pembuat Bagan ORG – Instalasi C# API

Aspose.Diagram for .NET API mendukung bekerja dengan berbagai jenis diagram dan bagan. Cukup akses API dengan mengunduh file DLL-nya dari bagian Rilis Baru atau dengan perintah instalasi NuGet berikut:

PM> Install-Package Aspose.Diagram

Buat Bagan ORG dalam Gaya CompactTree di C#

Anda dapat membuat bagan ORG dalam gaya CompactTree dengan mengikuti langkah-langkah di bawah ini:

  1. Muat master dari diagram, stensil, atau templat apa pun yang ada.
  2. Tentukan nilai untuk membangun hierarki.
  3. Tambahkan bentuk dan koneksi antar node.
  4. Simpan diagram keluaran.

Cuplikan kode di bawah ini menjelaskan cara membuat bagan ORG di C#:

// Muat master dari diagram, stensil, atau templat apa pun yang ada
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;
// Tentukan nilai untuk membangun hierarki
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" });
// Tentukan Hashtable untuk memetakan nama string ke id bentuk panjang
Hashtable shapeIdMap = new Hashtable();
// Buat diagram baru
Diagram diagram = new Diagram(visioStencil);
diagram.Pages[pageNumber].PageSheet.PageProps.PageWidth.Value = 11;
foreach (string orgnode in listPos)
{
    // Tambahkan bentuk persegi panjang baru
    long rectangleId = diagram.AddShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Atur properti bentuk baru
    Shape shape = diagram.Pages[pageNumber].Shapes.GetShape(rectangleId);
    shape.Text.Value.Add(new Txt(orgnode));
    shape.Name = orgnode;
    shapeIdMap.Add(orgnode, rectangleId);
}
// Membuat koneksi antar node
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);
    }
}

//bagan CompactTree tata letak otomatis
LayoutOptions compactTreeOptions = new LayoutOptions
{
    LayoutStyle = LayoutStyle.CompactTree,
    Direction = LayoutDirection.DownThenRight,
    EnlargePage = false
};

diagram.Pages[pageNumber].Layout(compactTreeOptions);

// Simpan diagram
diagram.Save("CompactTreeChart_out.vsdx", SaveFileFormat.VSDX);

Tangkapan layar berikut menunjukkan bagan ORG keluaran yang dibuat menggunakan cuplikan kode di atas:

Buat bagan ORG C#

Buat Bagan ORG dalam Gaya Bagan Alir di C#

Anda mungkin perlu membuat berbagai jenis bagan ORG yang mungkin mengikuti templat berbeda. Di sini Anda akan belajar cara membuat bagan ORG dengan gaya Flowchart secara terprogram dalam C#:

  1. Muat master dari diagram, stensil, atau templat apa pun yang ada.
  2. Tambahkan node dan konektor organisasi.
  3. Atur tata letak dan simpan diagram keluaran.

Kode contoh berikut menunjukkan cara membuat bagan ORG dengan gaya bagan alur di C#:

// Muat master dari diagram, stensil, atau templat apa pun yang ada
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;
// Tentukan nilai untuk membangun hierarki
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" });
// Tentukan Hashtable untuk memetakan nama string ke id bentuk panjang
Hashtable shapeIdMap = new Hashtable();
// Buat diagram baru
Diagram diagram = new Diagram(visioStencil);
foreach (string orgnode in listPos)
{
    // Tambahkan bentuk persegi panjang baru
    long rectangleId = diagram.AddShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Atur properti bentuk baru
    Shape shape = diagram.Pages[pageNumber].Shapes.GetShape(rectangleId);
    shape.Text.Value.Add(new Txt(orgnode));
    shape.Name = orgnode;
    shapeIdMap.Add(orgnode, rectangleId);
}
// Membuat koneksi antar node
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);
    }
}

//Diagram Alir tata letak otomatis
LayoutOptions flowChartOptions = new LayoutOptions
{
    LayoutStyle = LayoutStyle.FlowChart,
    Direction = LayoutDirection.TopToBottom,
    EnlargePage = true
};

diagram.Pages[pageNumber].Layout(flowChartOptions);

// Simpan diagram
diagram.Save("FlowChart_out.vsdx", SaveFileFormat.VSDX);

Dapatkan Lisensi Sementara Gratis

Anda dapat meminta lisensi sementara gratis untuk mengevaluasi API dalam kapasitas penuhnya.

Kesimpulan

Pada artikel ini, Anda telah memahami cara membuat bagan ORG secara terprogram dalam C#. Anda dapat membuat diagram dari stensil dan membuat bagan gaya CompactTree atau Flowchart berdasarkan kebutuhan Anda. Selain itu, Anda dapat mengunjungi bagian dokumentasi untuk melihat fitur-fitur lain yang tercakup dalam berbagai bab dan bagian. Jika ada pertanyaan, jangan ragu untuk menghubungi kami melalui forum.

Lihat juga

Ubah VSDM ke PDF dalam C#