렌더링 된 간트 차트 이미지에 여러 열을 표시합니다

개요

Microsoft 프로젝트에서 프로젝트 데이터는 텍스트 형식으로 제공 될뿐만 아니라 차트로 그래픽으로 표시 할 수도 있습니다. 가장 인기있는 차트 유형은 Gantt 차트, 작업 사용 및 리소스 사용량입니다. .NET 용 작업장은 프로젝트 데이터를 차트로 렌더링하는 것을 지원합니다.

이 기사에서는 Gantt 차트에 포함될 프로젝트 열을 사용자 정의 할 수있는 두 가지 방법을 설명하고 차트를 이미지로 렌더링하는 방법을 보여줍니다.

간트 차트

간트 차트는 며칠, 몇 주 또는 몇 달으로 분류 된 프로젝트 작업의 그래픽 표현입니다. 프로젝트는 다른 리소스에 할당 된 작업으로 구성됩니다. 개별 작업은 작업 관리의 일부로 하위 작업으로 나눌 수 있습니다. 모든 작업에는 기간을 결정하는 시작 날짜 및 종료 날짜가 있습니다. Microsoft Project의 Gantt 차트는 이러한 프로젝트 데이터를 빠르게 볼 수 있습니다. 이 스크린 샷은 Microsoft Project의 일반적인 Gantt 차트를 보여줍니다.

Gantt 차트는 Microsoft Project로 대표됩니다

Aspose.Tasks in gantt 차트 이미지 .net

Aspose.Tasks. 프로젝트 클래스는 프로젝트 데이터를 다른 파일 형식으로 내보내기위한 “저장"메소드 인 경우 다른 오버로드를 노출시킵니다. 사용자는 매개 변수를 전달하여 프로젝트 데이터를 모든 지원 형식으로 내보내도록이 메소드를 구성 할 수 있습니다.

예를 들어, 저장 (문자열, SaveOptions) 오버로드를 고려하십시오.

SaveOptions 유형

렌더링 동작은 SaveOptions 클래스 (또는 상속자 중 하나)의 속성을 사용하여 사용자 정의 할 수 있습니다. 예를 들어, 출력 문서의 페이지 크기는 SaveOptions.custOmsize 속성 또는 SaveOptions.LegenDoneachPage를 설정하여 각 페이지에 범례를 표시 해야하는지 정의 할 수 있습니다.

1pdfsaveoptions saveoptions = 새로운 pdfsaveoptions ()
2{
3   CustomPagesize = New Sizef (800, 600),
4   Legendoneachpage = false
5};

렌더링 된 차트의 모양을 사용자 정의하기위한 두 가지 이상의 접근법이 있습니다.

ProjectView 유형을 사용하여 Gantt 차트 열 사용자 정의

외관을 사용자 정의하는 쓸모없는 방법이며 향후 확장되거나 개선 될 가능성이 적습니다. ProjectView 클래스의 기능이 제한되어 있으며 출력 이미지에 특정 열을 표시하는 데 사용할 수 있습니다. 이 클래스의 생성자는 GanttChartColumn 클래스의 배열 목록을 인수로 가져옵니다. 결과 ProjectView 인스턴스는 SaveOptions.view 속성의 값으로 설정해야합니다. 예제 코드는 작동 방식을 보여줍니다.

 1// 뷰 열을 만듭니다
 2var  =  목록 <GantTchartColumn> ();
 3columns.add (new GanttChartColumn ( "name", 100, new TasktocolumnTextConverter (taskName)));
 4columns.add (new GanttChartColumn ( "notes", 100, New TasktocolumnTextConverter (tasknotes)));
 5columns.add (New GanttChartColumn ( "Resources", 200, New TasktocolumnTextConverter (taskResources)));
 6//보기를 만듭니다
 7projectView projectView =  프로젝트  ();
 8
 9// SaveOptions를 만듭니다
10pdfsaveoptions saveoptions = 새로운 pdfsaveoptions ()
11{
12   CustomPagesize = New Sizef (800, 600),
13   View = ProjectView
14};
15
16// 프로젝트를 PDF에 저장합니다.
17project.save ( "output.pdf", saveoptions);

GanttChartColumn 클래스의 생성자는 작업 데이터를 열 텍스트로 변환하기 위해 열 이름, 너비 및 대의원 TaskTocolumnTextConverter의 세 가지 인수를 취합니다. 위의 코드 예제에서 TaskTocolumnTextConverter Delegate는이 열의 데이터를 텍스트로 변환하기 위해 TaskName, TaskNoTes 및 TaskResources의 세 가지 대상 방법을 호출합니다. 세 가지 방법은 다음 코드 예제에서 구현됩니다.

 1/// <요약>
 2/// 작업의 이름 데이터를 열 텍스트로 변환합니다.
 3/// </summary>
 4/// <param name = "task"> 현재 작업. </param>
 5/// <Returns> 열의 텍스트. </returns>
 6개인 문자열 작업 이름 (작업 작업)
 7{
 8    StringBuilder res = new StringBuilder ();
 9    for (int i = 1; i <task.outlinelevel; i ++)
10    {
11        Res.Append ( "");
12    }
13
14    res.AppendFormat("{0}. {1}", task.Id, task.Name);
15    return res.ToString();
16}
17
18/// <요약>
19/// 작업의 이름 데이터를 열 텍스트로 변환합니다.
20/// </summary>
21/// <param name = "task"> 현재 작업. </param>
22/// <Returns> 열의 텍스트. </returns>
23개인 문자열 tasknamehtml (작업 작업)
24{
25    StringBuilder res = new StringBuilder ();
26    for (int i = 1; i <task.outlinelevel; i ++)
27    {
28        Res.Append ( "");
29    }
30
31    res.AppendFormat("{0}. {1}", task.Id, task.Name);
32    return res.ToString();
33}
34
35/// <요약>
36/// 작업의 메모 데이터를 열 텍스트로 변환합니다.
37/// </summary>
38/// <param name = "task"> 현재 작업. </param>
39/// <Returns> 열의 텍스트. </returns>
40개인 문자열 작업 노트 (작업 작업)
41{
42    if (task.notestext! = null)
43        return task.notestext;
44     다른
45        return string.empty;
46}
47
48/// <요약>
49/// 작업의 리소스 데이터를 열 텍스트로 변환합니다.
50/// </summary>
51/// <param name = "task"> 현재 작업. </param>
52/// <Returns> 열의 텍스트. </returns>
53비공개 문자열 작업 구분 (작업 작업)
54{
55    StringBuilder res = new StringBuilder ();
56    프로젝트 프로젝트 = task.parentProject;
57    bool bfirst = true;
58    foreach (project.getResourCeasSignmentsBytask (task) ResourceAssignment 할당)
59    {
60        if (과제 .Resource! = null)
61        {
62            if (! bfirst)
63            {
64                res.append ( ",");
65            }
66 
67            res.Append(assignment.Resource.Name);
68            bFirst = false;
69        }
70    }
71
72    return res.ToString();
73}

다음은 예제 코드로 생성 된 이미지 및 HTML 이미지입니다.

결과적으로 HTML이 Aspose.Tasks  에 의해 내보내기 1 결과적으로 HTML을 Aspose.Tasks   2

보기 유형을 사용하여 간트 차트 열을 사용자 정의하십시오

사용보기 클래스 및 상속자는 프로젝트 데이터를 렌더링 할 때 차트를 사용자 정의하는 권장 방법입니다. View Class는 MS Project (MPP 파일에 저장)에 사용되는보기 설정에 해당하며 ProjectView의 API와 비교하여 더 풍부한 API를 제공합니다. View 클래스의 사용 가능한 속성은 API 참조에 있습니다. 기존보기 (Microsoft Project에서 저장된보기가있는 MPP 파일에서로드 된 프로젝트의 경우), 다음 코드 스 니펫에 표시된대로 Customized 및 Project.Save 메소드로 전달됩니다.

 1프로젝트 프로젝트 =  프로젝트 ( "input.mpp"));
 2
 3// 기존보기를 얻습니다.
 4var view = (GanttChartView) project.views.getByName ( "& Gantt Chart");
 5
 6// 뷰에 새 열을 정의하고 삽입하십시오.
 7테이블 필드 필드 = 새로운 테이블 필드 ()
 8{
 9    aligndata = stringalignment.far,
10    너비 = 50,
11    field = field.taskName,
12    제목 = "작업 이름"
13};
14
15view.table.tablefields.insert (1, 필드);
16pdfsaveoptions saveoptions = 새로운 pdfsaveoptions ()
17{
18    ViewSettings =보기
19};
20
21project.save ( "output.pdf", saveoptions);
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.