ORG 차트 만들기 C#

ORG 차트는 조직의 직원 계층을 나타내는 시각적 다이어그램입니다. 여기에는 그들의 역할, 책임, 직위 등 및 기타 관련 정보가 포함됩니다. 모양이나 연결을 수동으로 그릴 필요 없이 몇 번의 API 호출로 다양한 유형의 조직도를 만들 수 있습니다. 이 문서에서는 C#에서 ORG 차트를 만드는 방법을 다룹니다.

ORG 차트 메이커 – C# API 설치

Aspose.Diagram for .NET API는 다양한 종류의 다이어그램 및 차트 작업을 지원합니다. New Releases 섹션에서 DLL 파일을 다운로드하거나 다음 NuGet 설치 명령을 사용하여 API에 액세스하기만 하면 됩니다.

PM> Install-Package Aspose.Diagram

C#에서 CompactTree 스타일로 ORG 차트 만들기

아래 단계에 따라 CompactTree 스타일의 ORG 차트를 생성할 수 있습니다.

  1. 기존 다이어그램, 스텐실 또는 템플릿에서 마스터를 로드합니다.
  2. 계층을 구성할 값을 정의합니다.
  3. 노드 사이에 모양과 연결을 추가합니다.
  4. 출력 다이어그램을 저장합니다.

아래 코드 조각은 C#에서 ORG 차트를 만드는 방법을 설명합니다.

// 기존 다이어그램, 스텐실 또는 템플릿에서 마스터 로드
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;
// 계층 구조를 구성하기 위한 값 정의
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" });
// 문자열 이름을 긴 모양 ID에 매핑하는 해시 테이블을 정의하십시오.
Hashtable shapeIdMap = new Hashtable();
// 새 다이어그램 만들기
Diagram diagram = new Diagram(visioStencil);
diagram.Pages[pageNumber].PageSheet.PageProps.PageWidth.Value = 11;
foreach (string orgnode in listPos)
{
    // 새 직사각형 모양 추가
    long rectangleId = diagram.AddShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // 새 모양의 속성 설정
    Shape shape = diagram.Pages[pageNumber].Shapes.GetShape(rectangleId);
    shape.Text.Value.Add(new Txt(orgnode));
    shape.Name = orgnode;
    shapeIdMap.Add(orgnode, rectangleId);
}
// 노드 간 연결 생성
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);
    }
}

//자동 레이아웃 CompactTree 차트
LayoutOptions compactTreeOptions = new LayoutOptions
{
    LayoutStyle = LayoutStyle.CompactTree,
    Direction = LayoutDirection.DownThenRight,
    EnlargePage = false
};

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

// 다이어그램 저장
diagram.Save("CompactTreeChart_out.vsdx", SaveFileFormat.VSDX);

다음 스크린샷은 위의 코드 조각을 사용하여 만든 출력 ORG 차트를 보여줍니다.

ORG 차트 만들기 C#

C#의 순서도 스타일로 ORG 차트 만들기

다른 템플릿을 따를 수 있는 다른 종류의 ORG 차트를 만들어야 할 수도 있습니다. 여기에서는 C#에서 프로그래밍 방식으로 순서도 스타일의 ORG 차트를 만드는 방법을 배웁니다.

  1. 기존 다이어그램, 스텐실 또는 템플릿에서 마스터를 로드합니다.
  2. 조직 노드 및 커넥터를 추가합니다.
  3. 레이아웃을 설정하고 출력 다이어그램을 저장합니다.

다음 샘플 코드는 C#에서 순서도 스타일로 ORG 차트를 만드는 방법을 보여줍니다.

// 기존 다이어그램, 스텐실 또는 템플릿에서 마스터 로드
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;
// 계층 구조를 구성하기 위한 값 정의
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" });
// 문자열 이름을 긴 모양 ID에 매핑하는 해시 테이블을 정의하십시오.
Hashtable shapeIdMap = new Hashtable();
// 새 다이어그램 만들기
Diagram diagram = new Diagram(visioStencil);
foreach (string orgnode in listPos)
{
    // 새 직사각형 모양 추가
    long rectangleId = diagram.AddShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // 새 모양의 속성 설정
    Shape shape = diagram.Pages[pageNumber].Shapes.GetShape(rectangleId);
    shape.Text.Value.Add(new Txt(orgnode));
    shape.Name = orgnode;
    shapeIdMap.Add(orgnode, rectangleId);
}
// 노드 간 연결 생성
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);
    }
}

//자동 레이아웃 순서도
LayoutOptions flowChartOptions = new LayoutOptions
{
    LayoutStyle = LayoutStyle.FlowChart,
    Direction = LayoutDirection.TopToBottom,
    EnlargePage = true
};

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

// 다이어그램 저장
diagram.Save("FlowChart_out.vsdx", SaveFileFormat.VSDX);

무료 임시 라이센스 받기

API를 전체 용량으로 평가하려면 무료 임시 라이선스를 요청할 수 있습니다.

결론

이 기사에서는 C#에서 프로그래밍 방식으로 ORG 차트를 만드는 방법을 이해했습니다. 스텐실에서 다이어그램을 만들고 요구 사항에 따라 CompactTree 또는 Flowchart 스타일 차트를 만들 수 있습니다. 또한 문서 섹션을 방문하여 다른 장과 섹션에서 다루는 다른 기능을 살펴볼 수 있습니다. 문의 사항이 있으시면 포럼을 통해 문의해 주시기 바랍니다.

또한보십시오

C#에서 VSDM을 PDF로 변환