ORG şeması oluşturma C#

ORG şeması, bir kuruluştaki çalışanların hiyerarşisini temsil eden görsel bir diyagramdır. Görevlerini, sorumluluklarını, konumlarını vb. ve diğer ilgili bilgileri içerir. Manuel olarak şekil veya bağlantı çizmeye gerek kalmadan, birkaç API çağrısıyla farklı türde kuruluş şemaları oluşturabilirsiniz. Bu makale, C# dilinde bir ORG grafiğinin nasıl oluşturulacağını kapsar.

ORG Chart Maker – C# API Kurulumu

Aspose.Diagram for .NET API, farklı türden diyagramlar ve grafiklerle çalışmayı destekler. Yeni Çıkanlar bölümünden veya aşağıdaki NuGet yükleme komutuyla DLL dosyasını indirerek API’ye erişmeniz yeterlidir:

PM> Install-Package Aspose.Diagram

C#’ta CompactTree Stilinde ORG Şeması Oluşturma

Aşağıdaki adımları izleyerek CompactTree stilinde bir ORG grafiği oluşturabilirsiniz:

  1. Mevcut herhangi bir diyagram, şablon veya şablondan ana şablonları yükleyin.
  2. Hiyerarşiyi oluşturmak için değerleri tanımlayın.
  3. Düğümler arasında şekiller ve bağlantılar ekleyin.
  4. Çıkış diyagramını kaydedin.

Aşağıdaki kod parçacığı, C# dilinde bir ORG grafiğinin nasıl oluşturulacağını açıklar:

// Herhangi bir mevcut diyagram, şablon veya şablondan ana kopyaları yükleyin
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;
// Hiyerarşiyi oluşturmak için değerleri tanımlayın
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" });
// Dize adını uzun şekil kimliğine eşlemek için bir Hashtable tanımlayın
Hashtable shapeIdMap = new Hashtable();
// Yeni bir diyagram oluştur
Diagram diagram = new Diagram(visioStencil);
diagram.Pages[pageNumber].PageSheet.PageProps.PageWidth.Value = 11;
foreach (string orgnode in listPos)
{
    // Yeni bir dikdörtgen şekli ekleyin
    long rectangleId = diagram.AddShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Yeni şeklin özelliklerini ayarlayın
    Shape shape = diagram.Pages[pageNumber].Shapes.GetShape(rectangleId);
    shape.Text.Value.Add(new Txt(orgnode));
    shape.Name = orgnode;
    shapeIdMap.Add(orgnode, rectangleId);
}
// Düğümler arasında bağlantılar oluşturun
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);
    }
}

//otomatik düzen CompactTree grafiği
LayoutOptions compactTreeOptions = new LayoutOptions
{
    LayoutStyle = LayoutStyle.CompactTree,
    Direction = LayoutDirection.DownThenRight,
    EnlargePage = false
};

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

// Diyagramı kaydet
diagram.Save("CompactTreeChart_out.vsdx", SaveFileFormat.VSDX);

Aşağıdaki ekran görüntüsü, yukarıdaki kod parçacığı kullanılarak oluşturulan çıktı ORG grafiğini gösterir:

ORG şeması oluşturma C#

C# Akış Şeması Stilinde ORG Şeması Oluşturma

Farklı şablonları takip edebilecek farklı türde ORG şemaları oluşturmanız gerekebilir. Burada, C# dilinde programlı olarak Akış Şeması stilinde bir ORG grafiği oluşturmayı öğreneceksiniz:

  1. Mevcut herhangi bir diyagram, şablon veya şablondan ana şablonları yükleyin.
  2. Kuruluş düğümlerini ve bağlayıcıları ekleyin.
  3. Düzeni ayarlayın ve çıktı diyagramını kaydedin.

Aşağıdaki örnek kod, C# dilinde akış şeması stilinde bir ORG grafiğinin nasıl oluşturulacağını gösterir:

// Herhangi bir mevcut diyagram, şablon veya şablondan ana şablonları yükleyin
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;
// Hiyerarşiyi oluşturmak için değerleri tanımlayın
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" });
// Dize adını uzun şekil kimliğine eşlemek için bir Hashtable tanımlayın
Hashtable shapeIdMap = new Hashtable();
// Yeni bir diyagram oluştur
Diagram diagram = new Diagram(visioStencil);
foreach (string orgnode in listPos)
{
    // Yeni bir dikdörtgen şekli ekleyin
    long rectangleId = diagram.AddShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Yeni şeklin özelliklerini ayarlayın
    Shape shape = diagram.Pages[pageNumber].Shapes.GetShape(rectangleId);
    shape.Text.Value.Add(new Txt(orgnode));
    shape.Name = orgnode;
    shapeIdMap.Add(orgnode, rectangleId);
}
// Düğümler arasında bağlantılar oluşturun
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);
    }
}

//otomatik düzen Akış Şeması
LayoutOptions flowChartOptions = new LayoutOptions
{
    LayoutStyle = LayoutStyle.FlowChart,
    Direction = LayoutDirection.TopToBottom,
    EnlargePage = true
};

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

// Diyagramı kaydet
diagram.Save("FlowChart_out.vsdx", SaveFileFormat.VSDX);

Ücretsiz Geçici Lisans Alın

API’yi tam kapasitesiyle değerlendirmek için bir ücretsiz geçici lisans talep edebilirsiniz.

Çözüm

Bu makalede, C# dilinde programlı olarak bir ORG grafiğinin nasıl oluşturulacağını anladınız. Bir şablondan bir diyagram oluşturabilir ve gereksinimlerinize göre CompactTree veya Flowchart stil şeması oluşturabilirsiniz. Ayrıca, farklı bölüm ve bölümlerde ele alınan diğer özelliklere göz atmak için belgeler bölümünü ziyaret edebilirsiniz. Herhangi bir sorunuz olması durumunda, lütfen forum aracılığıyla bizimle iletişime geçmekten çekinmeyin.

Ayrıca bakınız

C# dilinde VSDM’yi PDF’ye dönüştürün