ए.एल.वी. की रिपोर्ट SAP ट्यूटोरियल – ABAP सूची दर्शक
किसी भी रिपोर्ट की आम वांछित विशेषताएँ हैं "कॉलम संरेखण", सॉर्टिंग, फ़िल्टरिंग, सबटोटल, टोटल इत्यादि। इन्हें शुरू से लागू करने के लिए, बहुत सारे कोडिंग प्रयास करने पड़ते हैं। इससे बचने के लिए हम ABAP लिस्ट व्यूअर (ALV) नामक अवधारणा का उपयोग कर सकते हैं।
इनमें से प्रत्येक रिपोर्ट में यह जानकारी दी गई है फ़ंक्शन मॉड्यूल जो बिना किसी प्रयास के वांछित आउटपुट प्राप्त करने में मदद करते हैं। आइए उन पर विस्तार से नज़र डालें –
सरल रिपोर्ट
इनमें महत्वपूर्ण फ़ंक्शन मॉड्यूल रिपोर्ट हैं -
- पुनः उपयोग_alv_fieldcatalog_merge
- पुनः उपयोग_alv_list_display
- पुनः उपयोग_alv_events_get
- पुनः उपयोग_alv_grid_display
- पुनः उपयोग_alv_commentary_write
REUSE_ALV_FIELDCATALOG_MERGE
इस फ़ंक्शन मॉड्यूल का उपयोग फ़ील्ड कैटलॉग को पॉप्युलेट करने के लिए किया जाता है जो ALV में डेटा प्रदर्शित करने के लिए आवश्यक है।
यदि आउटपुट डेटा एक ही डिक्शनरी टेबल से है और सभी कॉलम चुने गए हैं, तो हमें विशेष रूप से फ़ील्ड कैटलॉग बनाने की आवश्यकता नहीं है। REUSE_ALV_LIST_DISPLAY में पैरामीटर (I_structure_name) के रूप में टेबल नाम का उल्लेख करना पर्याप्त है। लेकिन अन्य मामलों में हमें इसे बनाने की आवश्यकता है।
नोट: फ़ील्डकैटलॉग को आंतरिक तालिका में सभी आवश्यक विवरण भरकर मैन्युअल रूप से भी भरा जा सकता है
महत्वपूर्ण पैरामीटर इस प्रकार हैं:
1. निर्यात:
- I_program_name : रिपोर्ट आईडी
- I_internal_tabname : आंतरिक आउटपुट तालिका
- I_inclname : रिपोर्ट का नाम शामिल करें जहां सभी गतिशील प्रपत्रों को प्रबंधित किया जाता है।
2. बदलना
- ct_fieldcat : एक आंतरिक तालिका प्रकार SLIS_T_FIELDCAT_ALV के साथ जिसे प्रकार पूल SLIS में घोषित किया गया है।
REUSE_ALV_LIST_DISPLAY
यह फ़ंक्शन मॉड्यूल है जो डेटा प्रिंट करता है।
महत्वपूर्ण पैरामीटर इस प्रकार हैं:
1. निर्यात:
- I_callback_program : रिपोर्ट आईडी
- I_bypassing_buffer : 'X'
- I_बफर_सक्रिय : ' '
- I_callback_pf_status_set : रूटीन जहां उपयोगकर्ता अपनी स्वयं की pf स्थिति निर्धारित कर सकता है या मौजूदा pf स्थिति की कार्यक्षमता को बदल सकता है।
- I_callback_user_command : रूटीन जहां फ़ंक्शन कोड प्रबंधित किए जाते हैं।
- I_structure नाम : शब्दकोश तालिका का नाम
- Is_Layout : रिपोर्ट का लेआउट सेट करने के लिए संरचना
- It_fieldcat : आंतरिक तालिका जिसमें मुद्रित किए जाने वाले सभी फ़ील्ड और उनकी विशेषताओं की सूची होती है (यह तालिका फ़ंक्शन द्वारा स्वचालित रूप से भरी जा सकती है)
- It_events : ALV की सभी संभावित घटनाओं और उनके संगत प्रपत्र नामों की सूची वाली आंतरिक तालिका।
2. तालिकाएँ:
- a. t_outtab : आउटपुट किए जाने वाले डेटा वाली आंतरिक तालिका
REUSE_ALV_EVENTS_GET:
aa सूची प्रकार के लिए संभावित घटनाओं की तालिका लौटाता है
1. आयात:
एट_इवेंट्स :इवेंट टेबल को निर्दिष्ट सूची प्रकार (कॉलम 'NAME') के लिए सभी संभावित CALLBACK इवेंट के साथ लौटाया जाता है। कॉलबैक द्वारा संसाधित किए जाने वाले इवेंट के लिए, उनके 'FORM' फ़ील्ड को भरना होगा। यदि फ़ील्ड आरंभीकृत है, तो इवेंट को अनदेखा कर दिया जाता है। प्रविष्टि को इवेंट टेबल से पढ़ा जा सकता है, फ़ील्ड 'FORM' को भरा जा सकता है और टाइप पूल SLIS से स्थिरांक का उपयोग करके प्रविष्टि को संशोधित किया जा सकता है।
2. निर्यात:
I_list_type: 0 = सरल सूची REUSE_ALV_LIST_DISPLAY
1 = पदानुक्रमित-अनुक्रमिक सूची REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = सरल ब्लॉक सूची REUSE_ALV_BLOCK_LIST_APPEND
3 = पदानुक्रमित-अनुक्रमिक ब्लॉक सूची REUSE_ALV_BLOCK_LIST_HS_APPEND
REUSE_ALV_GRID_DISPLAY
ABAP4.6 संस्करण से एक नया फ़ंक्शन, जो परिणामों को पूर्वावलोकन के बजाय ग्रिड में प्रदर्शित करता है।
पैरामीटर : reuse_alv_list_display के समान
नोट: ग्रिड उच्च मात्रा को संभाल नहीं सकता। यदि प्रदर्शित किए जाने वाले डेटा की मात्रा अधिक है, तो सॉर्ट, स्क्रॉलिंग डाउन जैसे फ़ंक्शन बहुत अधिक संसाधन/समय लेते हैं। कोई स्पष्ट परिभाषा नहीं है कि यदि डेटा की मात्रा X है तो सूची या ग्रिड का उपयोग करें, लेकिन डेवलपर को अपने अनुभव के आधार पर निर्णय लेना होगा। यदि निश्चित नहीं हैं, तो सूची बेहतर विकल्प है
पुनः उपयोग_ALV_टिप्पणी_लिखें
इसका उपयोग सूची के शीर्षकों और अन्य टिप्पणियों को प्रिंट करने के लिए टॉप-ऑफ़-पेज इवेंट में किया जाता है।
महत्वपूर्ण पैरामीटर
- It_list_commentary : slis_t_listheader प्रकार के शीर्षकों वाली आंतरिक तालिका।
इस आंतरिक तालिका में तीन फ़ील्ड हैं:
- टाइप : 'H' – हेडर, 'S' – चयन, 'A' – क्रिया
- कुंजी : केवल जब टाइप 'S' हो।
- जानकारी : मुद्रित किया जाने वाला पाठ
ब्लॉक रिपोर्ट
यह एक साधारण रिपोर्ट की तरह दिखता है लेकिन इस रिपोर्ट में केवल सॉर्टिंग और फ़िल्टरिंग की विशेषताएं हैं। इस रिपोर्ट का उपयोग तब किया जाता है जब आपको आउटपुट पर एक से अधिक रिपोर्ट प्रदर्शित करनी होती है। तकनीकी रूप से कहें तो अगर आपके पास अलग-अलग ब्लॉक के रूप में प्रदर्शित किए जाने वाले डेटा के साथ कई आंतरिक टेबल हैं तो हम ALV की ब्लॉक रिपोर्ट का उपयोग करते हैं।
इस रिपोर्ट को बनाने के लिए उपयोग किए जाने वाले महत्वपूर्ण कार्य हैं:
- REUSE_ALV_BLOCK_LIST_INIT
- REUSE_ALV_BLOCK_LIST_APPEND
- REUSE_ALV_BLOCK_LIST_DISPLAY
REUSE_ALV_BLOCK_LIST_INIT
इस फ़ंक्शन मॉड्यूल का उपयोग डिफ़ॉल्ट GUI स्थिति आदि सेट करने के लिए किया जाता है। पैरामीटर reuse_alv_list_display या reuse_alv_grid_display में उपयोग किए जाने वाले पैरामीटर के समान हैं।
REUSE_ALV_BLOCK_LIST_APPEND
यह फ़ंक्शन मॉड्यूल डेटा को ब्लॉक में जोड़ता है।
महत्वपूर्ण पैरामीटर
1.निर्यात:
- is_layout : ब्लॉक के लिए लेआउट सेटिंग्स
- it_fieldcat : फ़ील्ड कैटलॉग
- I_tabname : सभी संभावित घटनाओं सहित आंतरिक तालिका नाम
2. तालिकाएँ :
- t_outtab : आउटपुट डेटा के साथ आंतरिक तालिका.
REUSE_ALV_BLOCK_LIST_DISPLAY
यह फ़ंक्शन मॉड्यूल उपरोक्त फ़ंक्शन द्वारा संलग्न डेटा के साथ सूची प्रदर्शित करता है।
पैरामीटर: सभी पैरामीटर वैकल्पिक हैं।
पदानुक्रमित रिपोर्ट
पदानुक्रमित प्रदर्शन का उपयोग संबंधित डेटा प्रदर्शित करने के लिए किया जाता है। जैसे बिक्री ऑर्डर और आइटम विवरण। यहाँ बिक्री ऑर्डर विवरण हेडर डेटा हो सकता है जबकि बिक्री ऑर्डर में आइटम आइटम डेटा हो सकते हैं
इसके लिए प्रयुक्त फ़ंक्शन मॉड्यूल है
REUSE_ALV_HIERSEQ_LIST_DISPLAY
निर्यात:
- I_कॉलबैक_प्रोग्राम
- I_कॉलबैक_PF_स्थिति_सेट
- I_कॉलबैक_यूजर_कमांड
- IS_लेआउट
- इट_फील्डकैट
- आईटी_इवेंट्स
- I_tabname_header : प्रोग्राम में आंतरिक तालिका का नाम जिसमें उच्चतम पदानुक्रम स्तर का आउटपुट डेटा शामिल है।
- I_tabname_item : प्रोग्राम में आंतरिक तालिका का नाम जिसमें निम्नतम पदानुक्रम स्तर का आउटपुट डेटा शामिल है।
- Is_keyinfo : इस संरचना में हेडर और आइटम तालिका फ़ील्ड नाम होते हैं जो दो तालिकाओं (साझा कुंजी) को जोड़ते हैं।
टेबल्स
- t_outtab_header : आउटपुट किए जाने वाले डेटा के साथ हेडर तालिका
- t_outtab_item : प्रोग्राम में आंतरिक तालिका का नाम जिसमें निम्नतम पदानुक्रम स्तर का आउटपुट डेटा शामिल है।
आंतरिक तालिकाओं, संरचनाओं और स्थिरांकों की सभी परिभाषाएँ एक प्रकार-पूल में घोषित की जाती हैं जिसे कहा जाता है एसएलआईएस. इस आंतरिक तालिका को REUSE_ALV_FIELDCATALOG_MERGE' का उपयोग करके स्वचालित रूप से भरा जा सकता है।
प्रदर्शन वेरिएंट
- डिस्प्ले वेरिएंट का उपयोग किसी alv आउटपुट के डिफ़ॉल्ट गुणों को सेट करने के लिए किया जाता है जैसे सॉर्ट मानदंड, फ़िल्टरिंग मानदंड, टोटलिंग और सबटोटलिंग आदि
- डिस्प्ले वेरिएंट उपयोगकर्ता विशिष्ट और मानक हो सकते हैं (मानक वेरिएंट का उपयोग किसी भी उपयोगकर्ता द्वारा किया जा सकता है)
- सहेजे जा सकने वाले डिस्प्ले वेरिएंट का प्रकार पैरामीटर i_save द्वारा नियंत्रित किया जाता है, जिसे फ़ंक्शन मॉड्यूल reuse_alv_list_display / reuse_alv_grid_display में पास किया जाता है
- आप चयन स्क्रीन पर एक विकल्प प्रदान कर सकते हैं कि किस डिस्प्ले वैरिएंट का उपयोग किया जाए
प्रदर्शन वेरिएंट के चयन/सत्यापन से संबंधित सामान्य फ़ंक्शन मॉड्यूल हैं
- पुनः उपयोग_alv_variant_default_get
- पुनः उपयोग_alv_variant_f4
- पुनःउपयोग_alv_variant_अस्तित्व
बस इतना ही ABAP - ए.एल.वी. प्रोग्रामिंग!
