2012-07-27 2 views
5

The picture다른 필수 매개 변수를 모두 채우지 않고 매개 변수에 대해 여러 범위를 선택하는 방법은 무엇입니까?

"판매 주문 번호"에 대해 여러 범위를 선택할 수 있기를 원합니다.

문제점 : 녹색으로 표시된 버튼을 누르면 "필요한 모든 입력란을 채우십시오."라는 오류 메시지가 나타납니다.

START-OF-SELECTION 이벤트에 내 메인 프로세싱 블록을 넣었습니다.

이런 일이 발생하지 않도록하려면 어떻게해야합니까? 그것은 내가 다른 모든 필수 필드를 채우는 모든 번거 로움없이 여러 선택을 추가 할 수 있어야합니다.

답변

6

매개 변수/select-options가 OBLIGATORY로 설정되어 있으면 작동하지 않습니다. 나는 얼마 전에 아주 동일한 문제가 있고, 기본적으로 유용한 값으로 필수 입력 매개 변수를 입력 할 기회가 있었다, 그래서 나는 다음 않았다

  • 모든 선택 - 옵션에서 필수 옵션을 제거하고
  • 매개 변수
  • 의무의 경우 입력 자신없는 F4, 도움말 F1 도움말 또는 옵션을 선택 옆에있는 버튼에 대한 검사를 핸들을 누르면 :

코드 :

AT SELECTION-SCREEN ON s_reswk. 

IF sy-ucomm(1) <> '%' AND  " sel screen action request 
    sy-ucomm(1) <> '_' AND  " scope option 
    s_reswk IS INITIAL.   " Obligatory input missing 
    MESSAGE text-e01 TYPE 'E'. " Error message 
ENDIF. 
+3

... 그리고 메시지 클래스를 사용하십시오. 나중에 문서 텍스트를 추가 할 수 있습니다. – vwegert

-2

다음은 OBLIGATORY 추가로 설정된 동작을 완전히 재현 한 것입니다.

1 : "OBLIGATORY"추가 항목을 제거하십시오.

2

: PBO에서 :
LOOP AT SCREEN. 
    IF screen-name cs 'name-of-your-select-options-or-parameter'. 
    screen-required = 2. 
    MODIFY SCREEN. 
    ENDIF. 

3

: PAI에서 :

if sscrfields-ucomm = 'ONLI'. 
    if 'name of your select-option-or-parameter' is initial. 
     clear sscrfields. 
     message 'Fill in all required fields.'(009) type 'E'. 
    endif. 
    endif. 

주의 문은 'CS'논리 연산자가 포함되어있는 경우 첫 번째. 그것은 당신의 컨트롤의 이름도 다른 이상한 것들을 포함합니다 사촌이야. 예를 들어, % _P_MATNR_ % 화면 %% (매개 변수가 p_matnr 인 경우).

또한 선언 : TABLES sscrfields.이 필요합니다.

+2

이것은 정말 좋은 생각입니다. 이 방법을 사용하면 programm를 직접 실행할 때 필수 입력란을 입력 할 수 있지만 사용자는 동일한 매개 변수를 입력하지 않고도이를 백그라운드 작업으로 예약 할 수 있습니다. 또한 문서에 따르면 screen-required는 0 또는 1 중 하나를 취합니다. 2로 설정하면 효과가 변경되거나 경고없이 더 이상 작동하지 않을 수 있습니다. – vwegert

관련 문제