표현식에서 이름 해석

EGL 표현식에서 이름은 다음을 가리킵니다.
  • 매개변수
  • 변수
  • 필드
  • 함수
  • 파트(이름이 규정된 경우)

이름 해석 프로세스는 표현식의 위치에 관계 없이 동일합니다(표현식은 지정 명령문, 함수 호출 또는 기타 위치에 있을 수 있음). 파트 이름을 해석하는 규칙은 다릅니다. EGL 파트 해석 규칙의 내용을 참조하십시오.

표현식에 있는 이름을 해석하기 위해 EGL은 다음 선언을 순서대로 조사합니다.
  1. 로컬 변수와 매개변수. 함수 내에 선언된 변수입니다. 여기에는 함수의 매개변수 목록과 레코드 변수 이름이 포함됩니다(해당 레코드 내의 필드 이름은 포함되지 않음). 이 카테고리에서 중복된 이름은 허용되지 않습니다.
  2. 로컬 입출력(I/O) 오브젝트. 함수에 고유한 입출력(I/O) 오브젝트와 기타 필드입니다. 입출력(I/O) 오브젝트는 get 문에서 참조되는 SQL 레코드의 배열을 포함할 수 있습니다. 이와 동일한 레벨에는 함수에 매개변수로 선언되거나 전달되는 레코드 변수의 필드가 있습니다. 함수 레벨에서 선언된 레코드 변수를 1단계에서 찾을 수 있습니다. 프로그램 레벨에서 선언된 레코드 변수는 이 단계에서 찾을 수 있습니다. 이 카테고리에서는 중복된 이름을 사용할 수 있습니다.

    예를 들어, 두 개의 레코드 변수가 각각 customerNumber 필드가 있는 동일한 CustomerRecord 정의를 기반으로 할 수 있습니다. 이 경우 모호성이 없도록 이름 customerNumber를 레코드 변수의 이름으로 규정해야 합니다.

    다른 예로 동일한 이름의 프로그램 레벨 레코드 변수와 함수 레벨 필드를 들 수 있습니다. 이 경우에는 다음 중 하나 이상의 조치를 수행하십시오.
    • 프로그램 레벨 레코드 변수의 이름을 this 키워드로 규정하십시오.
    • allowUnqualifiedItemReferences 특성을 YES로 설정하십시오.
    • DataTable의 이름, 양식 또는 해당 필드를 포함하는 구조화 레코드로 필드를 규정하십시오. 비구조화 레코드의 필드 이름은 항상 레코드 이름으로 규정되어야 합니다.
  3. 프로그램 변수. 프로그램 레벨에서 선언된 변수입니다. 이 변수는 매개변수 목록(호출된 프로그램의 경우)과 레코드 변수 이름을 포함합니다(해당 레코드의 필드 이름은 포함하지 않음). 이 카테고리에서 중복된 이름은 허용되지 않습니다.
  4. 양식 이름. 해당 양식 이름을 다음 방법 중 하나로 선언할 수 있습니다.
    • use 선언에서 선언합니다.
    • inputForm 특성으로 지정합니다.
    • 프로그램의 매개변수 목록에서 선언합니다.
    • 프로그램에서 함수의 입출력(I/O) 명령문에서 선언합니다.
    use 선언에서 FormGroup을 참조하는 경우 EGL은 그룹에 있는 모든 양식 이름을 조사합니다. 이 카테고리에서 중복된 이름은 허용되지 않습니다.
  5. 데이터 테이블 이름. use 선언에서 데이터 테이블 이름을 조사합니다. 이 카테고리에서 중복된 이름은 허용되지 않습니다.
  6. 필드. EGL이 3 - 5단계의 레코드, 양식, 데이터 테이블에 있는 모든 필드를 조사합니다. 이 카테고리의 중복된 이름은 모호성이 없도록 규정되어야 합니다.
  7. 라이브러리 변수. use 선언에 지정된 사용자 라이브러리의 변수입니다. 이 카테고리의 중복된 이름은 라이브러리의 이름으로 규정되어야 합니다.
  8. 시스템 변수. 마지막으로 EGL이 EGL 시스템 라이브러리의 변수를 조사합니다. 이 카테고리에는 중복된 이름이 없습니다.