उदाहरणों के साथ SAP ABAP टेबल कंट्रोल

Anonim

टेबल कंट्रोल और स्टेप लूप स्क्रीन टेबल डिस्प्ले के लिए ऑब्जेक्ट हैं जिन्हें आप स्क्रीन पेंटर में स्क्रीन पर जोड़ते हैं।
एक प्रोग्रामिंग दृष्टिकोण से, टेबल नियंत्रण और चरण लूप लगभग समान हैं। टेबल कंट्रोल को केवल स्टेप लूप्स में सुधार किया जाता है जो डेस्कटॉप एप्लिकेशन में टेबल के साथ जुड़े हुए लुक और फील के साथ डेटा प्रदर्शित करता है।
तालिका नियंत्रण के साथ, उपयोगकर्ता कर सकता है:

  • तालिका के माध्यम से लंबवत और क्षैतिज रूप से स्क्रॉल करें
  • किसी स्तंभ की चौड़ाई को पुनः आकार दें
  • फ़ील्ड के भीतर स्क्रॉल करें (जब फ़ील्ड सामग्री फ़ील्ड से अधिक व्यापक हो)
  • तालिका पंक्तियों या स्तंभों का चयन करें
  • स्तंभों के क्रम को पुनः क्रम दें
  • भविष्य के उपयोग के लिए वर्तमान प्रदर्शन सेटिंग्स को सहेजें

टेबल नियंत्रण भी विशेष स्वरूपण सुविधाएँ (कुछ स्वचालित, कुछ वैकल्पिक) प्रदान करते हैं जो तालिका को देखने और उपयोग करने में आसान बनाते हैं। तालिका नियंत्रण प्रदान करता है -

  • उपयोगकर्ता द्वारा विंडो का आकार बदलने पर स्वचालित टेबल का आकार (ऊर्ध्वाधर और क्षैतिज)
  • पंक्तियों के बीच और स्तंभों के बीच विभाजक रेखाएं (ऊर्ध्वाधर और क्षैतिज)
  • सभी स्तंभों के लिए स्तंभ शीर्ष लेख फ़ील्ड

स्टेप लूप्स की एक विशेषता यह है कि उनकी टेबल पंक्तियाँ स्क्रीन पर एक से अधिक रेखाएँ फैला सकती हैं। दूसरी ओर, तालिका नियंत्रण की एक पंक्ति को हमेशा एक ही पंक्ति में शामिल किया जाना चाहिए (हालाँकि स्क्रॉल करना संभव है)।
सामान्य तौर पर, टेबल नियंत्रण द्वारा प्रदान की जाने वाली कई विशेषताएं आपके सिस्टम के SAPgui फ्रंटेंड द्वारा स्थानीय रूप से नियंत्रित की जाती हैं, इसलिए आपको उन्हें स्वयं प्रोग्राम करने की आवश्यकता नहीं है। इसका एकमात्र उल्लेखनीय अपवाद ऊर्ध्वाधर स्क्रॉलिंग है
उदाहरण (लेन-देन TZ60)


सिंटैक्स
ABAP कार्यक्रमों में तालिका नियंत्रण को संभालने के लिए, आपको निम्नलिखित कथन का उपयोग करके प्रत्येक तालिका नियंत्रण के लिए कार्यक्रम के घोषणा भाग में नियंत्रण घोषित करना चाहिए:

नियंत्रित करें

जहाँ ABAP प्रोग्राम में स्क्रीन पर टेबल कंट्रोल का नाम है। नियंत्रण ABAP प्रोग्राम को तालिका नियंत्रण की विशेषताओं को पढ़ने और नियंत्रण को प्रभावित करने की अनुमति देता है। कहीं, स्क्रीन नंबर है जहां तालिका के प्रारंभिक मान लोड किए जाते हैं।
तालिका नियंत्रण के लिए कर्सर स्थिति निम्न तरीकों से सेट की जा सकती है:
PBO पर आप तालिका नियंत्रण की एक विशिष्ट पंक्ति के विशिष्ट क्षेत्र पर कर्सर सेट कर सकते हैं।

CURSOR FIELD  LINE 
 [OFFSET ] सेट करें

OFFSET के वैकल्पिक जोड़ का उपयोग करके, आप कर्सर की स्थिति के अनुसार फ़ील्ड में कर्सर की भरपाई दर्ज कर सकते हैं।
PAI में आप वर्तमान कर्सर स्थिति पढ़ सकते हैं।

CURSOR FIELD प्राप्त करें  LINE 

फाइंडिंग आउट द कर्सर पोज़िशन के तहत दी गई जानकारी के अलावा, फ़ील्ड में वह जानकारी होती है जिस पर कर्सर को नियंत्रित करने वाली तालिका की पंक्ति वर्तमान में है। आप भी उपयोग कर सकते हैं

प्राप्त लाइन लाइन <लिन>।

तालिका नियंत्रण की पंक्ति निर्धारित करने के लिए। SY-SUBRC आपको यह जांचने की अनुमति देता है कि कर्सर को टेबल कंट्रोल की एक पंक्ति में रखा गया है या नहीं।
आंतरिक तालिका की संबंधित पंक्ति प्राप्त करने के लिए:

CURSOR लाइन 
 प्राप्त करें।ind = 
 -top_line + 
 - 1।तालिका पढ़ें  इंडेक्स इंड।

सिस्टम वैरिएबल स्टेपल - एक लूप में वर्तमान टेबल लाइन इंडेक्स ... एंडलूप है। लूपक - तालिका में दिखाई देने वाली पंक्तियों की संख्या है।
तालिका नियंत्रण बनाने के लिए
1. अपनी स्क्रीन पर तालिका नियंत्रण तत्व
जोड़ें। तालिका नियंत्रण के लिए एक नाम दें। ABAP प्रोग्राम में समान के साथ एक संरचना की घोषणा करें (नियंत्रण टाइप करें TABLEVIEW USING SCREEN )
3.To फ़ील्ड बनाएँ Dict./Program फ़ील्ड फ़ंक्शन पर जाएँ।

  • उस संरचना का नाम दर्ज करें जिसके फ़ील्ड आप चाहते हैं। (यदि आप इसे अपने प्रोग्राम के शब्दकोश से चुनना चाहते हैं, तो संबंधित प्यूहबटन पर क्लिक करें)।
  • फ़ील्ड सूची में, इच्छित फ़ील्ड चुनें और ठीक चुनें।
  • तालिका नियंत्रण क्षेत्र में क्लिक करें

यदि आप एक चयन कॉलम चाहते हैं, तो विशेषताओं में उपयुक्त चेक बॉक्स की जांच करें और इसे एक नाम दें। ABAP प्रोग्राम में फ़ील्ड बनाएँ।
PBO में आपको स्टेटमेंट होना चाहिए

 USING CONTROL  पर LOOP।ENDLOOP

PAI में आपको होना चाहिए।

LOOP पर ।ENDLOOP

यह छोरों के भीतर है कि डेटा ट्रांसफर स्क्रीन और आंतरिक तालिका के बीच होता है। जब आप आंतरिक तालिका का उपयोग करते हैं, तो DESCRIBE टेबल का उपयोग करें LINES -lines, नियंत्रण में कुल पंक्तियों को संग्रहीत करने के लिए। FIELD स्टेटमेंट डेटा ट्रांसफर होने पर नियंत्रित करने के लिए इस्तेमाल किया जा सकता है
। अलग-अलग सेल की विशेषताओं को बदलने के लिए अस्थायी रूप से PBO में स्क्रीन तालिका बदल सकते हैं। आप नियंत्रण कथन द्वारा बनाई गई संरचना की विशेषताओं को बदल सकते हैं

 -fixed_cols आदि नियंत्रण के गुण हैं -cols-index आदि कॉलम की विशेषताएं हैं। -cols- स्क्रीन-अदृश्य आदि प्रत्येक स्तंभ की स्क्रीन विशेषताएँ हैं।