Rich UI를 사용하여 양식 처리

Rich UI에서는 비즈니스 소프트웨어에 전통적인 방식의 양식 처리 유형을 구현하는 방법을 제공합니다. 이 처리는 Rich UI 제어기에 따라 다르며, 이 제어기는 단일 보기-위젯-단일 모델-데이터 필드와 관련된 정의입니다. Rich UI 제어기에 대한 세부사항은 “Rich UI 유효성 검증 및 형식화”를 참조하십시오.

다음 단계를 이행하는 애플리케이션에서 양식 처리를 사용할 수 있습니다.
  • 애플리케이션이 데이터를 공개합니다. 즉, 사용자에게 데이터를 표시합니다.
  • 사용자가 데이터를 업데이트한 후 단추를 클릭하거나 키를 눌러 데이터를 제출합니다.
  • 코드에서 입력을 유효성 검증하고, 유효성 검증된 모든 데이터를 서비스로 전송하고, 사용자에게 응답합니다.
Rich UI에서는 두 가지 변형된 양식 처리를 제공합니다.
  • 양식 관리자는 다음 기능을 제공하는 핸들러 선언입니다.
    • 필드 레이블, 제어기 및 오류 필드를 포함할 수 있는 각 양식 필드 세트를 정의합니다. 표시 가능한 컴포넌트는 사용자 인터페이스의 어느 위치에도 있을 수 있으며 서로 분리될 수 있습니다.
    • 입력 형식화, 입력 유효성 검증 및 입력 형식화 해제를 포함하여 양식 필드 세트를 처리할 수 있습니다. 예를 들어 금액 값이 NUM 유형의 필드에 저장되는 경우 값이 저장되기 전에 입력 값에서 통화 기호를 제거합니다.

    코드를 작성하거나 Rich UI 편집기에서 사용자에게 제공하는 코드를 사용하여 양식 관리자와 상호작용합니다.

    다음은 양식 관리자의 선언입니다.
    employeeForm FormManager { entries = [
       new FormField { nameLabel="Name:",   controller=nameController },
       new FormField { nameLabel="Age:",    controller=ageController },
       new FormField { nameLabel="Salary:", controller=salaryController }
    ]};
  • 양식 유효성 검증은 양식 필드 세트를 정의하고 처리할 수 있는 컨테이너입니다. 양식 유효성 검증은 사용하기에 쉽지만 표시 가능한 양식 필드의 측면이 최대 세 개의 열로 배열되어야 한다는 점에서 덜 유연합니다. 이 경우 표시 가능한 측면은 레이블, 제어기 표시 및 오류 필드입니다.
    다음은 양식 유효성 검증의 선언입니다.
    employeeForm ValidatingForm { entries = [
       new FormField { displayName="Name:",   controller=nameController },
       new FormField { displayName="Age:",    controller=ageController },
       new FormField { displayName="Salary:", controller=salaryController }
    ]};

    양식 유효성 검증을 사용할 때 양식 필드에 displayNamecontroller 값만 지정합니다. 나머지 값은 유효성 검증 자체에서 처리됩니다.

어떤 경우에도 각 양식 필드를 순서대로 처리하는 함수를 호출하여 양식을 전체적으로 유효성 검증합니다.

양식 개발의 시작 지점

EGL에서는 양식 개발을 위한 시작 지점을 제공합니다. 간략하게 말하면 Rich UI 편집기에서 애플리케이션 특정 코드를 제공하고 사용자는 이를 호출하는 로직을 추가하면 됩니다. 초기 개발을 시작하려면 다음과 같이 수행하십시오.
  1. Rich UI 편집기에서 핸들러를 열고 레코드 정의를 디자인 탭으로 끌어서 놓으십시오.
  2. “데이터를 Rich UI 편집기로 끌어와서 위젯 작성”에 설명된 대로 마법사에서 작업하십시오.
키 입력에 대한 응답으로 편집기는 다음 코드를 핸들러에 추가합니다.
  • 양식 관리자. 선언의 양식 필드는 사용자 요구에 특정합니다.
  • 양식 관리자에서 일반적인 양식 처리 로직에 액세스하는 함수.

양식 필드

양식 필드는 데이터 콜렉션입니다(FormField 유형의 레코드). 이 레코드는 양식 관리자와 양식 유효성 검증에 다르게 사용됩니다. 두 메커니즘 모두에 대해 단일 레코드 유형을 사용하면 둘 사이를 쉽게 전환할 수 있습니다.

다음 표에서 제안된 대로 사용에 적절한 레코드 필드를 설정합니다.

FormField 유형의 레코드에 있는 필드 필드 값 컨텍스트 세부사항
controller 제어기 양식 관리자 또는 양식 유효성 검증 이 제어기는 보기를 모델에 관련시키는 정의입니다.
displayName 문자열? 양식 유효성 검증 이 문자열은 양식 유효성 검증에서 사용자에게 제공하는 필드 레이블에 지정됩니다. 양식 관리자를 사용하는 경우 이 문자열은 무시됩니다.
errorLabel TextLabel 양식 관리자 이름이 errorLabel인 텍스트 레이블은 오류 필드입니다. 이는 양식 필드를 유효성 검증하는 중에 출력이 되는 오류 메시지(있는 경우)를 표시합니다. 오류 필드의 모양은 오류가 발생할 때 변경됩니다.

양식 관리자를 사용하는 경우 양식 필드를 선언할 때 텍스트 레이블을 제공하십시오 그러나 양식 유효성 검증을 사용하는 경우 이 텍스트 레이블이 사용자에게 제공됩니다.

nameLabel TextLabel 양식 관리자 양식 필드 레이블입니다. 레이블을 제공하고 해당 레이블에 displayName 값을 지정하는 양식 유효성 검증을 사용하는 경우에는 이 설정이 무시됩니다.
labelClass 문자열? Rich UI용으로 사용 CSS 클래스입니다. 이 값을 변경하지 마십시오. 이 값은 오류가 해결된 후 양식 필드 레이블을 원래 모양으로 변경하는 데 사용됩니다.

클래스 이름은 EglRuiTextLabel입니다. 보조 클래스: FormErrorLabel이 추가된 오류가 발생하면 동일한 클래스 이름이 사용됩니다.

양식 유효성 검증을 사용하여 작업하는 경우 controllerdisplayName 값을 제공하십시오. 양식 관리자를 사용하여 작업하는 경우 controllernameLabel 값을 제공하고 errorLabel 값은 선택적으로 제공하십시오.

양식 레벨 함수

양식 레벨 함수는 제어기 특정 함수를 호출합니다. 호출 순서는 entries 배열의 양식 필드 순서와 반대입니다.

보통 사용자 코드는 데이터를 유효성 검증하고, 커미트하며, 공개하기 위해 사용됩니다. 예를 들어 사용자 코드가 다음 로직을 확장할 수 있습니다.
if (employeeForm.isValid())
   employeeForm.commit();
end

제어기가 유효성 검증의 끝에서 제어기 특정 validStateSetter 함수를 호출합니다.

이벤트 순서를 참고하십시오.
  1. 양식 레벨 isValid 함수를 호출하면 모든 제어기에 대해 차례로 다음 효과를 가집니다.
    1. 제어기의 isValid 함수를 호출합니다. 이는 제어기 정의에서 참조되는 validator 함수를 차례로 호출합니다. 또한 프로세스에는 제어기 모델의 isDecimalDigit 특성과 같은 기본 유효성 검증이 포함됩니다.
    2. 제어기의 validStateSetter 함수를 호출합니다. 기본적으로 이 함수는 양식 레벨 validStateSetter 함수입니다.
  2. 모든 제어기 보기에 유효한 데이터가 있으면 사용자 코드에서 양식 레벨 commit 함수를 호출합니다. 해당 함수는 각 제어기 특정 commit 함수를 호출하여 제어기 보기의 데이터를 형식화 해제하고 제어기 모델에 값을 작성합니다.
앞의 순서가 주어지면 양식 유효성 검증이 성공한 후에 교차 필드 유효성 검증을 호출하려고 할 수 있습니다. 사용자 코드가 다음과 같을 수 있습니다.
if (employeeForm.isValid())
   if (myValidation())
      employeeForm.commit();
   end
end

다음은 알파벳순의 양식 레벨 함수입니다.

commit()
모든 보기를 커미트하여 모델을 한 명령과 관련시킵니다. 양식 레벨 commit 함수를 호출하면 모든 모델 데이터를 서비스에 전송할 수 있습니다.

이 함수에는 매개변수 또는 리턴 값이 없습니다.

isFormValid()

이 함수에는 매개변수가 없고, 모든 양식 필드에 대해 유효성 검증이 성공했는지 여부를 표시하는 부울 값을 리턴합니다. 이 함수와 isValid() 사이의 차이는 이 함수가 유효한 상태 변경 리스너를 알리지 않는 것입니다.

isValid()
제어기 특정 isValid 함수를 호출합니다.
이 함수에는 매개변수가 없고, 모든 양식 필드에 대해 유효성 검증이 성공했는지 여부를 표시하는 부울 값을 리턴합니다.
publish()
각 제어기 특정 publish 함수를 호출하여 제어기 모델에 저장된 데이터를 형식화하고 형식화된 데이터를 제어기 보기에 씁니다. 사용자 코드는 콜백 함수에서 양식 레벨 publish 명령을 호출할 수 있습니다. 이 콜백 함수는 사용자 코드가 서비스에서 리턴된 데이터를 받은 후에 호출됩니다.

이 함수에는 매개변수 또는 리턴 값이 없습니다.

validate()
제어기 특정 validate 함수를 호출합니다.

이 함수에는 매개변수가 없고, 유효성 검증이 성공했는지 여부를 표시하는 부울 값을 리턴합니다. 즉 모든 제어기 특정 validate 함수가 널 또는 공백을 리턴했는지를 표시합니다.