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 } ]};양식 유효성 검증을 사용할 때 양식 필드에 displayName 및 controller 값만 지정합니다. 나머지 값은 유효성 검증 자체에서 처리됩니다.
어떤 경우에도 각 양식 필드를 순서대로 처리하는 함수를 호출하여 양식을 전체적으로 유효성 검증합니다.
양식 개발의 시작 지점
- Rich UI 편집기에서 핸들러를 열고 레코드 정의를 디자인 탭으로 끌어서 놓으십시오.
- “데이터를 Rich UI 편집기로 끌어와서 위젯 작성”에 설명된 대로 마법사에서 작업하십시오.
- 양식 관리자. 선언의 양식 필드는 사용자 요구에 특정합니다.
- 양식 관리자에서 일반적인 양식 처리 로직에 액세스하는 함수.
양식 필드
양식 필드는 데이터 콜렉션입니다(FormField 유형의 레코드). 이 레코드는 양식 관리자와 양식 유효성 검증에 다르게 사용됩니다. 두 메커니즘 모두에 대해 단일 레코드 유형을 사용하면 둘 사이를 쉽게 전환할 수 있습니다.
다음 표에서 제안된 대로 사용에 적절한 레코드 필드를 설정합니다.
| FormField 유형의 레코드에 있는 필드 | 필드 값 | 컨텍스트 | 세부사항 |
|---|---|---|---|
| controller | 제어기 | 양식 관리자 또는 양식 유효성 검증 | 이 제어기는 보기를 모델에 관련시키는 정의입니다. |
| displayName | 문자열? | 양식 유효성 검증 | 이 문자열은 양식 유효성 검증에서 사용자에게 제공하는 필드 레이블에 지정됩니다. 양식 관리자를 사용하는 경우 이 문자열은 무시됩니다. |
| errorLabel | TextLabel | 양식 관리자 | 이름이 errorLabel인 텍스트 레이블은 오류 필드입니다.
이는 양식 필드를 유효성 검증하는 중에 출력이 되는 오류 메시지(있는 경우)를 표시합니다.
오류 필드의 모양은 오류가 발생할 때 변경됩니다.
양식 관리자를 사용하는 경우 양식 필드를 선언할 때 텍스트 레이블을 제공하십시오 그러나 양식 유효성 검증을 사용하는 경우 이 텍스트 레이블이 사용자에게 제공됩니다. |
| nameLabel | TextLabel | 양식 관리자 | 양식 필드 레이블입니다. 레이블을 제공하고 해당 레이블에 displayName 값을 지정하는 양식 유효성 검증을 사용하는 경우에는 이 설정이 무시됩니다. |
| labelClass | 문자열? | Rich UI용으로 사용 | CSS 클래스입니다. 이 값을 변경하지 마십시오. 이 값은 오류가 해결된 후 양식 필드 레이블을 원래 모양으로 변경하는 데 사용됩니다.
클래스 이름은 EglRuiTextLabel입니다. 보조 클래스: FormErrorLabel이 추가된 오류가 발생하면 동일한 클래스 이름이 사용됩니다. |
양식 유효성 검증을 사용하여 작업하는 경우 controller 및 displayName 값을 제공하십시오. 양식 관리자를 사용하여 작업하는 경우 controller 및 nameLabel 값을 제공하고 errorLabel 값은 선택적으로 제공하십시오.
양식 레벨 함수
양식 레벨 함수는 제어기 특정 함수를 호출합니다. 호출 순서는 entries 배열의 양식 필드 순서와 반대입니다.
if (employeeForm.isValid())
employeeForm.commit();
end
제어기가 유효성 검증의 끝에서 제어기 특정 validStateSetter 함수를 호출합니다.
- 양식 레벨 isValid 함수를 호출하면 모든 제어기에 대해 차례로 다음 효과를 가집니다.
- 제어기의 isValid 함수를 호출합니다. 이는 제어기 정의에서 참조되는 validator 함수를 차례로 호출합니다. 또한 프로세스에는 제어기 모델의 isDecimalDigit 특성과 같은 기본 유효성 검증이 포함됩니다.
- 제어기의 validStateSetter 함수를 호출합니다. 기본적으로 이 함수는 양식 레벨 validStateSetter 함수입니다.
- 모든 제어기 보기에 유효한 데이터가 있으면 사용자 코드에서 양식 레벨 commit 함수를 호출합니다. 해당 함수는 각 제어기 특정 commit 함수를 호출하여 제어기 보기의 데이터를 형식화 해제하고 제어기 모델에 값을 작성합니다.
if (employeeForm.isValid())
if (myValidation())
employeeForm.commit();
end
end
다음은 알파벳순의 양식 레벨 함수입니다.
- commit()
- 모든 보기를 커미트하여 모델을 한 명령과 관련시킵니다.
양식 레벨 commit 함수를 호출하면 모든 모델 데이터를 서비스에 전송할 수 있습니다.
이 함수에는 매개변수 또는 리턴 값이 없습니다.
- isFormValid()
이 함수에는 매개변수가 없고, 모든 양식 필드에 대해 유효성 검증이 성공했는지 여부를 표시하는 부울 값을 리턴합니다. 이 함수와 isValid() 사이의 차이는 이 함수가 유효한 상태 변경 리스너를 알리지 않는 것입니다.
- isValid()
- 제어기 특정 isValid 함수를 호출합니다.
- 이 함수에는 매개변수가 없고, 모든 양식 필드에 대해 유효성 검증이 성공했는지 여부를 표시하는 부울 값을 리턴합니다.
- publish()
- 각 제어기 특정 publish 함수를 호출하여 제어기 모델에 저장된 데이터를 형식화하고 형식화된 데이터를 제어기 보기에 씁니다.
사용자 코드는 콜백 함수에서 양식 레벨 publish 명령을 호출할 수 있습니다. 이 콜백 함수는 사용자 코드가 서비스에서 리턴된 데이터를 받은 후에 호출됩니다.
이 함수에는 매개변수 또는 리턴 값이 없습니다.
- validate()
- 제어기 특정 validate 함수를 호출합니다.
이 함수에는 매개변수가 없고, 유효성 검증이 성공했는지 여부를 표시하는 부울 값을 리턴합니다. 즉 모든 제어기 특정 validate 함수가 널 또는 공백을 리턴했는지를 표시합니다.