특성
- 단순 특성은 생성 시 EGL에 정보를
전달하며 동적으로(즉, 런타임 시) 변경될 수
없습니다. 단순 특성에는 단일 필드 값만 있습니다.
속기를 사용하여 값 설정 블록(값 설정 블록 참조)에서
특성 이름을 해당 값으로 동등화하기만 하면 이 필드를 설정할 수 있습니다. 다음 예제에서 displayName은
단순 특성입니다.
DataItem socSecNum INT { displayName = "Social Security Number"} end - 복합 특성도 생성 시 EGL에 정보를 전달하며 런타임 시 변경될 수 없습니다. 복합 특성은 하나의 필드 대신 여러 필드가 있다는 점만 단순 특성과 다릅니다. 이와 같은 각 이름 - 값 쌍을 특성 필드라고 합니다. 종종 복합 특성 앞에 단항 @ 연산자가 표시되는데 이는 피연산자가 필드가 아니라 특성임을 표시합니다(@ 연산자 참조). 이 주제의 "복합 특성"도 참조하십시오.
- 암시적 필드는 특성과 비슷한 이름 - 값 쌍이지만 빌드 시 컴파일러에 표시되지 않습니다. 일반적으로 이 암시적 필드는 런타임 시 변경 가능합니다. EGL은 이 필드를 예외 레코드와 같은 특정 스테레오타입의 파트에 자동으로 추가합니다(예외 스테레오타입 참조).
- 콘솔 UI에 "의사 특성"도 있습니다. 단순 특성과 마찬가지로 의사 특성은 ConsoleField와 같은 변수의 특정 유형을 선언할 때 지정할 수 있는 이름 - 값 쌍입니다. 단순 특성과는 달리 생성에 아무 영향도 주지 않습니다. 이러한 의사 특성은 종종 런타임 시 변경 가능하지만 일부는 읽기 전용으로 선언됩니다. 자세한 정보는 특정 UI 기술에 대한 주제를 참조하십시오.
이 문서에서는 "특성"이라는 용어를 느슨한 의미로 사용하여 위의 모든 변수를 가리킵니다.
값 설정 블록에 자세히 설명되어 있는 값 설정 블록에서 이들 특성을 설정할 수 있습니다. 특정 파트 또는 명령문에 사용 가능한 특성과 값에 대한 자세한 정보는 해당 파트와 명령문의 특정 특성 주제를 참조하십시오.
- 각 파트 유형이 특성 세트를 정의하며 이러한 특성을
변경하여 파트의 특성을 수정할 수 있습니다. 각 프로그램
파트에 예를 들어 컴파일 가능 단위의 이름을 식별하는
alias 특성이 있습니다.
파트에 스테레오타입 지정된 경우 파트뿐 아니라 파트 내의 필드에서도 추가 특성을 사용할 수 있습니다(스테레오타입 참조). 자세한 정보는 스테레오타입이 해당 파트를 특화하는 UI 기술 또는 특정 데이터 액세스를 참조하십시오.
- 일부 변수 선언에서 관련 파트 정의에 지정된
특성을 대체할 수 있지만 해당 컨텍스트에서 특성이
의미가 있는 경우에만 대체할 수 있습니다.
- DataItem 파트(DataItem 파트 참조)를
기반으로 하는 변수를 선언할 때 특성을 대체할 수 있습니다. 다음 정의를
검토합니다.
다음 명령문은 IDNumber 유형의 UI 필드를 선언하지만 명령문에 사용자가 숫자를 입력하지 않아도 됩니다.DataItem IDNumber CHAR(9) { minimumInput = 9, // requires 9 input characters isDecimalDigit = yes, // requires digits column = "SSN" // is related to a column } endmyID IDNumber { isDecimalDigit = no };이 예제에서 대체는 minimumInput 특성과 column 특성에 영향을 주지 않습니다.
- 레코드 파트와 같은 복합 파트의 특성을 대체할 수
있습니다. 다음 예제에서는 단일 필드로 레코드를 정의합니다.
이 정의를 기반으로 변수를 선언하는 경우 color 특성의 값을 대체할 수 있습니다.Record TestRecord y int {color = red}; endmyRec TestRecord {y{color = black}};
- DataItem 파트(DataItem 파트 참조)를
기반으로 하는 변수를 선언할 때 특성을 대체할 수 있습니다. 다음 정의를
검토합니다.
- 기본 유형 변수를 선언할 때 변수 선언의 컨텍스트에서 유용한 필드 레벨 특성을 설정할 수 있습니다.
- 레코드 변수를 선언하는 경우 파트를 정의할 때 설정할 수 없는 redefines 특성을 지정할 수 있습니다. 이 특성에 대한 세부사항은 "다른 변수를 재정의하는 레코드 변수 선언"을 참조하십시오.
런타임 시 단순 또는 복합 특성에 액세스할 수 없습니다. (암시적 필드에는 액세스할 수 있습니다.) 예를 들어, 관계형 데이터베이스 레코드에 대해 스테레오타입 지정된 변수를 작성하는 경우 사용자가 쓰는 논리는 tableNames 특성에 지정된 이름을 검색하거나 변경할 수 없습니다. 이 특성은 레코드에서 액세스하는 데이터베이스 테이블을 식별합니다. 변수 선언에서 특성 값을 대체해도 프로그램 논리는 사용자가 개발 시 지정한 값을 변경할 수 없습니다.
이와 같은 특성 값에 대한 런타임 액세스가 없는 것은 변수의 컨텐츠를 지정하거나 변수를 매개변수로 사용할 때 특성 값이 컨텐츠와 함께 전송되지 않음을 의미합니다. 마찬가지로 EGL 함수에 레코드를 전달하는 경우 매개변수는 필드 컨텐츠를 수신하지만 개발 시 지정된 특성을 유지합니다. 다시 말해 함수에서는 프로그램이 작성한 레코드 특성의 대체를 볼 수 없습닌다.
변수 이름 및 특성
- 기본 프로그램
- inputRecord
- JSF 핸들러 스테레오타입
- onConstructionFunction, initialUI 배열 요소입니다.
- Rich UI 핸들러 스테레오타입
- onConstructionFunction, validationByPassFunctions, validatorFunction, viewRootVar.
- SQLRecord 스테레오타입
- keyItems
- 기타 특성
- msgField, numElementsItem, selectedIndexItem, selectedRowItem, selectedValueItem , selectFromListItem, validatorDataTable, validatorFunction, redefines
복합 특성
myService ExampleService {
@xml {
name="HelloWorld",
namespace="http://my.website/services"} }
...
end
런타임 시 복합 특성 또는 해당 특성 필드에 액세스할 수 없습니다.
지정 및 특성
myVar1 INT {color = red} = 5;
myVar2 INT {color = blue} = 2;
myVar1 = myVar2;
지정 후 myVar1의 값은 2이고 색상은 빨간색입니다.
변수를 함수에 인수로 전달하는 경우 동일한 결과가 발생합니다. 함수는 변수의 값을 수신하지만 변수의 특성은 수신하지 않습니다.
myDictionary1 Dictionary { caseSensitive=NO };
myDictionary2 Dictionary { caseSensitive=YES };
myDictionary1 = myDictionary2;
지정 후 myDictionary1이 myDictionary2와 동일한 사전 파트를 가리키므로 이제 myDictionary1은 대소문자를 구분합니다.