69. VFR의 조건부 키워드

suppressif/grayoutif/disableif/warningif/nosubmitif/inconsistentif

이번 장에서는 여러 내장된 VFR 조건을 살펴보겠다. 해당 새 키워드에 대해 자세히 알아보기 전에 양식을 한 번 더 살펴보겠다.

이번 챕터에서 양식의 모양을 변경할 것이기 때문에 참조용으로 기억하는 것이 좋다. 또한 챕터에서 사용되는 각 내장 함수는 조건문과 함께 작동한다. 그러나 우리는 요소가 어떻게 작동하는지 보여주고 싶기 때문에 조건문 대신 상수 TRUE를 사용할 것이다.

suppressif

suppress 태그는 첫 번째 중첩 객체로 나타나는 표현식이 TRUE로 평가되는 경우 중첩 객체가 사용자에게 숨겨지도록 한다.

opcode는 아래와 같이 사용한다.

VFR 토큰 정의는 아래의 링크에서 찾을 수 있다. (https://edk2-docs.gitbook.io/edk-ii-vfr-specification/2_vfr_description_in_bnf/211_vfr_form_definition#2.11.7.3-vfr-statement-suppressif-definition)

예를 들어 orderedlist를 억제해 보겠다.

확인을 하면 아래와 같이 나타난다.

요소는 단순히 사용자에게 보이지 않게 되었다. 또 하나의 suppressif 사용은 질문 안에 옵션을 숨길 수 있다는 사실이 있다. 예를 들면 현재 oneof 는 아래와 같다.

하지만 suppressif를 옵션3에 추가해보자.

결과를 보면 아래와 같이 옵션이 사라지는 것을 볼 수 있다.

grayoutif

첫 번째 중첩 개체로 나타나는 표현식이 TRUE로 평가되면 모든 중첩된 문장 또는 질문이 회색으로 표시된다(선택할 수 없고 시각적으로 구별된다).

opcode는 다음과 같다.

VFR 토큰 정의는 아래의 링크에서 찾을 수 있다. https://edk2-docs.gitbook.io/edk-ii-vfr-specification/2_vfr_description_in_bnf/211_vfr_form_definition#2.11.7.4-vfr-statement-grayoutif-definition

예를 들어 orderedlist 요소를 회색으로 표시해보겠다.

결과적으로 요소는 아래와 같이 선택할 수 없다.

disableif

첫 번째 중첩 개체로 나타나는 표현식이 TRUE로 평가되면 모든 중첩된 문, 질문, 옵션 또는 표현식이 처리되지 않는다.

opcode는 다음과 같다.

VFR 토큰 정의는 아래의 링크에서 찾을 수 있다. (https://edk2-docs.gitbook.io/edk-ii-vfr-specification/2_vfr_description_in_bnf/211_vfr_form_definition#2.11.7.2-vfr-statement-disalbeif-definition)

예시로 orederedlist 요소를 비활성화해 보겠다.

이 조건에서 우리의 형태는 suppressif 예에서 단순히 요소가 뷰에 존재하지 않는 것처럼 보인다.

warningif

질문에 대한 유효성 검사 표현식 및 경고 메시지를 생성한다.

opcode는 아래와 같다.

VFR 토큰 정의는 다음의 링크에서 찾을 수 있다. (https://edk2-docs.gitbook.io/edk-ii-vfr-specification/2_vfr_description_in_bnf/211_vfr_form_definition#2.11.6.1.7-vfr-question-tag-warningif-definition-vfrstatement)

이번에는 orderedlist에 추가해 보겠다.

Strings.uni에도 새 문자열을 추가하겠다.

변수를 변경하고 Enter 키를 누르면 경고 메시지가 나타난다.

그러나 경고를 무시하고 F10 키를 눌러 업데이트된 데이터를 계속 저장할 수 있다는 점에 유의해야 한다. warningif를 사용하면 경고 메시지에 대한 시간 초과 값을 설정할 수 있다.

해당 경우에 경고는 5초 후에 사라진다(또는 사용자가 키를 입력하는 경우 더 빨리 사라진다).

nosubmitif

양식이 제출될 때 평가될 조건식을 만든다. 조건이 TRUE로 평가되면 오류 메시지 Error가 사용자에게 표시되고 사용자는 양식을 제출할 수 없다.

opcode는 다음과 같다.

VFR 토큰 정의는 아래와 같다 (https://edk2-docs.gitbook.io/edk-ii-vfr-specification/2_vfr_description_in_bnf/211_vfr_form_definition#2.11.6.1.2-vfr-question-tag-nosubmitif-definition).

이번에는 orderedlist에 추가해 보겠다.

Strings.uni에도 문자열을 추가하겠다.

이 코드를 사용하여 여전히 변수를 변경하고 Enter 키를 누르면 Configuration changed 메시지와 함께 업데이트된 값이 양식에 표시된다. 그러나 양식 제출(F10)은 실패된다. nosubmitif 조건이 TRUE로 평가되면 변수를 저장할 수 없다.

inconsistentif

VFR 토큰 정의는 아래와 같다 (https://edk2-docs.gitbook.io/edk-ii-vfr-specification/2_vfr_description_in_bnf/211_vfr_form_definition#2.11.6.1.1-vfr-question-tag-inconsistentif-definition).

opcode는 다음과 같다.

이번에는 orderedlist에 추가해 보겠다.

Strings.uni에 문자열을 추가하겠다.

이 코드는 inconsistentif가 TRUE로 평가될 때 변수를 값으로 변경할 수 없다. 양식은 단순히 팝업 메시지를 표시하고 값을 변경하지 않는다.

Last updated