2012-07-27 4 views
5

The pictureपहले पैरामीटर के लिए कई श्रेणियों का चयन कैसे करें अन्य सभी आवश्यक पैरामीटर भरने के बिना?

मैं "बिक्री आदेश संख्या" के लिए एकाधिक श्रेणी चयन करने में सक्षम होना चाहता हूं।

समस्या यह है: जब मैं हरे रंग के साथ चिह्नित बटन दबाता हूं, तो मुझे त्रुटि मिलती है "सभी आवश्यक प्रवेश फ़ील्ड भरें"।

मैंने अपना मुख्य प्रसंस्करण ब्लॉक स्टार्ट-ऑफ-चयन ईवेंट में रखा है।

ऐसा करने के लिए क्या करना है? ऐसा लगता है कि मुझे हर दूसरे अनिवार्य क्षेत्र को भरने की सभी परेशानी के बिना कई चयन जोड़ना चाहिए।

उत्तर

6

पैरामीटर/चयन-विकल्प OBLIGATORY पर सेट के साथ, यह काम नहीं करेगा। मैं कुछ समय पहले बहुत ही समस्या थी, और डिफ़ॉल्ट रूप से उपयोगी मूल्यों के साथ अनिवार्य इनपुट पैरामीटर को भरने के लिए कोई मौका नहीं था, इसलिए मैं निम्नलिखित किया:

  • सभी का चयन-विकल्पों में से अनिवार्य विकल्प निकालें और
  • पैरामीटर
  • मामलों में अनिवार्य इनपुट खुद कोई F4, मदद, एफ 1 मदद या किसी विकल्प का चयन करने के लिए बटन अगले के लिए चेक संभाल दबाया जाता है:

कोड:

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: "ऑब्लिगेटरी" अतिरिक्त निकालें।

2: PBO पर:

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

3: पीएआई पर:

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. 

सूचना पहले अगर बयान एक 'सीएस' तार्किक ऑपरेटर शामिल हैं। यह है कि आपके नियंत्रण के नाम में अन्य अजीब सामान भी शामिल होंगे। उदाहरण के लिए% _P_MATNR_% स्क्रीन %% (जहां आपका पैरामीटर p_matnr था)।

इसके अलावा, घोषणा: TABLES sscrfields. आवश्यक है।

+2

यह वास्तव में एक बुरा विचार है। इस तरह, आप सीधे प्रोग्राम चलाते समय आवश्यक फ़ील्ड की प्रविष्टि को लागू करते हैं, लेकिन उपयोगकर्ता इसे समान पैरामीटर दर्ज किए बिना पृष्ठभूमि नौकरी के रूप में शेड्यूल करने में सक्षम होगा। इसके अलावा, प्रलेखन के अनुसार, स्क्रीन-आवश्यक या तो 0 या 1 लेता है। इसे 2 पर सेट करना अब काम कर सकता है, लेकिन इसके प्रभाव को बदलें या बिना किसी चेतावनी के पूरी तरह से काम करने के लिए रोकें। – vwegert

संबंधित मुद्दे