렌더링 된 간트 차트 이미지에 여러 열을 표시합니다
개요
Microsoft 프로젝트에서 프로젝트 데이터는 텍스트 형식으로 제공 될뿐만 아니라 차트로 그래픽으로 표시 할 수도 있습니다. 가장 인기있는 차트 유형은 Gantt 차트, 작업 사용 및 리소스 사용량입니다. .NET 용 작업장은 프로젝트 데이터를 차트로 렌더링하는 것을 지원합니다.
이 기사에서는 Gantt 차트에 포함될 프로젝트 열을 사용자 정의 할 수있는 두 가지 방법을 설명하고 차트를 이미지로 렌더링하는 방법을 보여줍니다.
간트 차트
간트 차트는 며칠, 몇 주 또는 몇 달으로 분류 된 프로젝트 작업의 그래픽 표현입니다. 프로젝트는 다른 리소스에 할당 된 작업으로 구성됩니다. 개별 작업은 작업 관리의 일부로 하위 작업으로 나눌 수 있습니다. 모든 작업에는 기간을 결정하는 시작 날짜 및 종료 날짜가 있습니다. Microsoft Project의 Gantt 차트는 이러한 프로젝트 데이터를 빠르게 볼 수 있습니다. 이 스크린 샷은 Microsoft Project의 일반적인 Gantt 차트를 보여줍니다.
Aspose.Tasks in gantt 차트 이미지 .net
Aspose.Tasks. 프로젝트 클래스는 프로젝트 데이터를 다른 파일 형식으로 내보내기위한 “저장"메소드 인 경우 다른 오버로드를 노출시킵니다. 사용자는 매개 변수를 전달하여 프로젝트 데이터를 모든 지원 형식으로 내보내도록이 메소드를 구성 할 수 있습니다.
예를 들어, 저장 (문자열, SaveOptions) 오버로드를 고려하십시오.
- 첫 번째 매개 변수는 대상 파일 이름입니다.
- 두 번째이자 가장 중요한 매개 변수는 SaveOptions 클래스의 상속자 중 하나를 수용합니다. 예를 들어, PDF 형식의 경우 PDFSaveOptions를 전달할 수 있습니다.
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 이미지입니다.
보기 유형을 사용하여 간트 차트 열을 사용자 정의하십시오
사용보기 클래스 및 상속자는 프로젝트 데이터를 렌더링 할 때 차트를 사용자 정의하는 권장 방법입니다. 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);