SAP ABAP तालिका नियंत्रण उदाहरण सहित
टेबल नियंत्रण और स्टेप लूप स्क्रीन टेबल डिस्प्ले के लिए ऑब्जेक्ट हैं जिन्हें आप स्क्रीन में जोड़ते हैं Painter.
प्रोग्रामिंग के दृष्टिकोण से, टेबल कंट्रोल और स्टेप लूप लगभग एक जैसे ही हैं। टेबल कंट्रोल बस बेहतर स्टेप लूप हैं जो डेस्कटॉप एप्लीकेशन में टेबल से जुड़े लुक और फील के साथ डेटा प्रदर्शित करते हैं।
ABAP तालिका नियंत्रण की विशेषताएं
तालिका नियंत्रणों के साथ, उपयोगकर्ता यह कर सकता है:
- तालिका को लंबवत और क्षैतिज रूप से स्क्रॉल करें
- कॉलम की चौड़ाई का आकार बदलें
- किसी फ़ील्ड के भीतर स्क्रॉल करें (जब फ़ील्ड की सामग्री फ़ील्ड से अधिक चौड़ी हो)
- तालिका पंक्तियाँ या स्तंभ चुनें
- स्तंभों के अनुक्रम को पुनः व्यवस्थित करें
- भविष्य में उपयोग के लिए वर्तमान प्रदर्शन सेटिंग्स सहेजें
टेबल नियंत्रण विशेष स्वरूपण सुविधाएँ भी प्रदान करते हैं (कुछ स्वचालित, कुछ वैकल्पिक) जो टेबल को देखना और उपयोग करना आसान बनाते हैं। टेबल नियंत्रण प्रदान करता है –
- जब उपयोगकर्ता विंडो का आकार बदलता है तो स्वचालित रूप से तालिका का आकार बदलना (ऊर्ध्वाधर और क्षैतिज)
- पंक्तियों के बीच और स्तंभों के बीच विभाजक रेखाएँ (ऊर्ध्वाधर और क्षैतिज)
- सभी स्तंभों के लिए स्तंभ शीर्षलेख फ़ील्ड
स्टेप लूप की एक विशेषता यह है कि उनकी टेबल पंक्तियाँ स्क्रीन पर एक से अधिक पंक्तियों में फैल सकती हैं। दूसरी ओर, टेबल नियंत्रण की एक पंक्ति हमेशा एक ही पंक्ति में समाहित होनी चाहिए (हालाँकि स्क्रॉल करना संभव है)।
सामान्यतः, टेबल नियंत्रण द्वारा प्रदान की गई कई सुविधाएँ आपके सिस्टम द्वारा स्थानीय रूप से नियंत्रित की जाती हैं। SAPgui फ्रंटएंड, इसलिए आपको उन्हें खुद प्रोग्राम करने की ज़रूरत नहीं है। इसका एकमात्र उल्लेखनीय अपवाद वर्टिकल स्क्रॉलिंग है.
उदाहरण (लेनदेन TZ60)
वाक्य - विन्यास
ABAP प्रोग्रामों में तालिका नियंत्रणों को संभालने के लिए, आपको निम्नलिखित कथन का उपयोग करके प्रत्येक तालिका नियंत्रण के लिए प्रोग्राम के घोषणा भाग में एक नियंत्रण घोषित करना होगा:
CONTROLS <ctrl> TYPE TABLEVIEW USING SCREEN <scr>
कहाँ ABAP प्रोग्राम में स्क्रीन पर टेबल कंट्रोल का नाम है। यह कंट्रोल ABAP प्रोग्राम को टेबल कंट्रोल की विशेषताओं को पढ़ने और कंट्रोल को प्रभावित करने की अनुमति देता है। यहाँ, वह स्क्रीन संख्या है जहाँ तालिका के प्रारंभिक मान लोड किए जाते हैं।
तालिका नियंत्रण के लिए कर्सर स्थिति निम्नलिखित तरीकों से सेट की जा सकती है:
पीबीओ में आप कर्सर को तालिका नियंत्रण की किसी विशिष्ट पंक्ति के विशिष्ट क्षेत्र पर सेट कर सकते हैं।
SET CURSOR FIELD <f> LINE <lin> [OFFSET <off>]
वैकल्पिक अतिरिक्त OFFSET का उपयोग करके, आप फ़ील्ड में कर्सर का ऑफसेट दर्ज कर सकते हैं जैसा कि कर्सर स्थिति सेट करना के अंतर्गत वर्णित है।
PAI पर आप वर्तमान कर्सर स्थिति पढ़ सकते हैं।
GET CURSOR FIELD <f> LINE <lin> ...
कर्सर की स्थिति का पता लगाना के अंतर्गत दी गई जानकारी के अतिरिक्त, फ़ील्ड इसमें यह जानकारी होती है कि कर्सर वर्तमान में टेबल कंट्रोल की किस पंक्ति पर है। आप इसका उपयोग भी कर सकते हैं
GET CURSOR LINE <lin>.
तालिका नियंत्रण की पंक्ति निर्धारित करने के लिए। SY-SUBRC आपको यह जाँचने की अनुमति देता है कि कर्सर तालिका नियंत्रण की पंक्ति में रखा गया है या नहीं।
की संगत पंक्ति प्राप्त करने के लिए आंतरिक तालिका:
GET CURSOR line <lin>. ind = <table_control>-top_line + <lin> - 1. Read table <itab> index ind.
सिस्टम वैरिएबल stepl - लूप में मौजूदा टेबल लाइन इंडेक्स को शामिल करता है... endloop. Loopc - टेबल में दिखाई देने वाली लाइनों की संख्या को शामिल करता है
तालिका नियंत्रण बनाने के लिए
1.अपनी स्क्रीन पर एक टेबल नियंत्रण तत्व जोड़ें
2.टेबल कंट्रोल को एक नाम दें। ABAP प्रोग्राम में उसी (CONTROLS) के साथ एक संरचना घोषित करें स्क्रीन का उपयोग करके टेबलव्यू टाइप करें )
3. फ़ील्ड बनाने के लिए Dict./Program फ़ील्ड फ़ंक्शन पर जाएँ।
- उस संरचना का नाम दर्ज करें जिसके फ़ील्ड आप चाहते हैं। (यदि आप इसे अपने प्रोग्राम के शब्दकोश से चुनना चाहते हैं तो संबंधित बटन पर क्लिक करें)।
- फ़ील्ड सूची में अपनी इच्छित फ़ील्ड चुनें और ओके चुनें।
- तालिका नियंत्रण क्षेत्र में क्लिक करें
यदि आप चयन कॉलम चाहते हैं, तो विशेषताओं में उपयुक्त चेक बॉक्स को चेक करें और उसे एक नाम दें। फ़ील्ड बनाएँ एबीएपी कार्यक्रम.
पीबीओ में आपके पास यह कथन होना चाहिए
LOOP at <itab> USING CONTROL <cntrl_name>. ENDLOOP.
पीएआई में आपके पास होना चाहिए।
LOOP at <itab>. ENDLOOP.
It is within the loops that data transfer happens between the screen and the internal table.When you populate the internal table use DESCRIBE TABLE <itab> LINES <cntrl_name>-lines, to store the total number of lines in the control.The FIELD statement can be used to control when the data transfer happens
व्यक्तिगत कक्षों की विशेषताओं को बदलने के लिए PBO में SCREEN तालिका को अस्थायी रूप से बदलें। आप CONTROLS कथन द्वारा बनाई गई संरचना की विशेषताओं को बदल सकते हैं
<cntrl>-fixed_cols etc are the attributes of the control <cntrl>-cols-index etc are the attributes of the columns. <cntrl>-cols-screen-invisible etc are the screen attributes of each column.

