수식 소개
Contents
[
Hide
Show
]Aspose.Tasks for .NET API는 Microsoft Project (MPP) 파일에서 수식을 읽고 쓸 수 있습니다.
수식은 기존 프로젝트 데이터를 기반으로 작업, 리소스 및 프로젝트 필드의 사용자 정의 값을 계산하는 데 사용됩니다.
해당 수식 속성은 ExtendedAttributeDefinition
클래스는 수식을 할당하고 읽기 위한 인터페이스를 제공합니다.
만약 유효하지 않은 수식 문자열 가 할당되면, FormatException
예외가 발생합니다.
이 페이지에서는 수식에 사용되는 문법, 지원되는 연산자와 함수 및 예제를 소개합니다.
수식 문법
Microsoft Project는 다음과 같은 수식 문법을 사용하며 Aspose.Tasks도 이를 따릅니다:
1 Formula -> Formula Binary_Op Primary | Primary
2 Primary -> (Formula) | Unary_Op Primary | Function | ValidFieldName | ValidDoubleValue | "StringLiteral"
3 Function -> ValidFunctionName(Args)
4 Args -> Args Delimiter Formula | Formula | |
5 Delimiter -> , | ; // Note: Delimiter is culture-specific in XML format ( , or ; ) and persistent in MPP ( , )
6 Binary_Op -> + | - | * | / | & | MOD | ^ | = | <> | < | > | AND | OR
7 Unary_Op -> NOT | + | -
지원 요소
1. 필드
유효한 Microsoft Project 필드 이름(예: [Duration]
, [Actual Duration]
, [Standard Rate]
).
2. 연산자
수식은 다음을 지원합니다:
- 산술 연산자:
+
,-
,*
,/
,MOD
,^
- 비교 연산자:
=
,<>
,<
,>
- 논리 연산자:
AND
,OR
,NOT
- 문자열 연결:
&
3. 함수
대부분의 표준 Microsoft Project 함수가 지원됩니다. 예를 들면:
- 날짜 및 시간 함수 (예:
DateDiff
,Now
) - 수학 함수 (예:
Round
,Abs
,IIf
) - 문자열 함수 (예:
Len
,Instr
,Left
,Right
)
예제
예제 1: 간단한 산술
1var attr = ExtendedAttributeDefinition.CreateTaskDefinition(
2 CustomFieldType.Number,
3 ExtendedAttributeTask.Number1,
4 "WorkPerDay");
5
6attr.Formula = "[Work] / [Duration]";
이 수식은 작업의 하루 평균 작업량을 계산합니다.
예제 2: 조건식
1var attr = ExtendedAttributeDefinition.CreateTaskDefinition(
2 CustomFieldType.Text,
3 ExtendedAttributeTask.Text1,
4 "TaskStatus");
5
6attr.Formula = "IIf([% Complete] = 100, \"Done\", \"In Progress\")";
이 수식은 사용자 정의 필드 값을 “완료” 로 설정합니다(작업이 완료된 경우), 그렇지 않으면 “진행 중”.
오류 처리
- 만약 수식이 구문적으로 올바르지 않은인 경우,
FormatException
할당할 때 예외가 발생합니다. - 만약 수식이 존재하지 않는 필드 또는 함수, 계산 중에 오류를 일으킬 수 있습니다.
- 문화별 구분 기호(
;
대,
)을 XML 프로젝트 파일 작업 시 고려해야 합니다. MPP 파일에서는 MPP files, 구분자는 항상 쉼표입니다,
.