किसी भी रिपोर्ट की सामान्य वांछित विशेषताएं "कॉलम संरेखण" हैं, छँटाई, छानना, उप-योग, योग आदि। इन्हें खरोंच से लागू करने के लिए, कोडिंग के बहुत प्रयास किए जाने हैं। इससे बचने के लिए हम ABAP लिस्ट व्यूअर (ALV) नामक एक अवधारणा का उपयोग कर सकते हैं।
इस ट्यूटोरियल में आप सीखेंगे:
- सरल रिपोर्ट
- ब्लॉक की रिपोर्ट
- पदानुक्रमित रिपोर्ट
- वेरिएंट प्रदर्शित करें
इनमें से प्रत्येक रिपोर्ट फ़ंक्शन मॉड्यूल प्रदान करती है जो बहुत प्रयास के बिना वांछित आउटपुट का उत्पादन करने में मदद करती है। आइए उन्हें विस्तार से देखें -
सरल रिपोर्ट
इन रिपोर्ट में महत्वपूर्ण फ़ंक्शन मॉड्यूल हैं -
- Reuse_alv_fieldcatalog_merge
- Reuse_alv_list_display
- Reuse_alv_events_get
- Reuse_alv_grid_display
- Reuse_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 प्रकार के साथ एक आंतरिक तालिका जो कि प्रकार पूल XIS में घोषित की गई है।
REUSE_ALV_LIST_DISPLAY
यह फ़ंक्शन मॉड्यूल है जो डेटा प्रिंट करता है।
महत्वपूर्ण पैरामीटर हैं:
1. निर्यात:
- I_callback_program: रिपोर्ट आईडी
- I_bypassing_buffer: 'X'
- I_buffer_active: ''
- I_callback_pf_status_set: उपयोगकर्ता जहां अपना स्वयं का pf स्टेटस सेट कर सकता है या मौजूदा pf स्टेटस की कार्यक्षमता बदल सकता है।
- I_callback_user_command: नियमित रूप से जहां फ़ंक्शन कोड संभाला जाता है।
- I_structure नाम: शब्दकोश तालिका का नाम
- Is_Layout: रिपोर्ट का लेआउट सेट करने के लिए संरचना
- It_fieldcat: सभी फ़ील्ड की सूची और उनकी विशेषताओं के साथ आंतरिक तालिका जो मुद्रित की जानी है (यह तालिका फ़ंक्शन द्वारा स्वचालित रूप से पॉप्युलेट की जा सकती है)
- It_events: ALV की सभी संभावित घटनाओं और उनके संबंधित प्रपत्र नामों की सूची के साथ आंतरिक तालिका।
2. टेबल्स:
- ए। t_outtab: आउटपुट वाली डेटा के साथ आंतरिक तालिका
REUSE_ALV_EVENTS_GET: एक
सूची प्रकार
1 के लिए संभावित घटनाओं की तालिका । आयात:
Et_Events: घटना तालिका निर्दिष्ट सूची प्रकार (स्तंभ 'नाम') के लिए सभी संभावित कॉलबैक घटनाओं के साथ वापस आ गई है। कॉलबैक द्वारा संसाधित की जाने वाली घटनाओं के लिए, उनके '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 = श्रेणीबद्ध-अनुक्रमिक ब्लॉक सूची ENDUSE
REUSE_ALV_GRID_DISPLAY
ABAP4.6 संस्करण का एक नया फ़ंक्शन, पूर्वावलोकन के बजाय ग्रिड में परिणाम प्रदर्शित करने के लिए।
पैरामीटर: reuse_alv_list_display के समान
नोट: ग्रिड उच्च मात्रा को संभाल नहीं सकता है। यदि डेटा प्रदर्शित करने की मात्रा अधिक है, तो सॉर्ट, स्क्रॉलिंग जैसे कार्य बहुत सारे संसाधनों / समय की खपत करते हैं। ऐसी कोई स्पष्ट परिभाषा नहीं है कि यदि सूची या ग्रिड के लिए डेटा की मात्रा X है, लेकिन डेवलपर को अपने अनुभव के आधार पर कॉल लेना है। अगर यकीन नहीं है, तो सूची बेहतर विकल्प है
REUSE_ALV_COMMENTARY_WRITE
शीर्ष-पेज की घटना में इसका उपयोग सूची के शीर्षकों और अन्य टिप्पणियों को प्रिंट करने के लिए किया जाता है।
महत्वपूर्ण पैरामीटर
- It_list_commentary: slis_t_listheader प्रकार की हेडिंग के साथ आंतरिक तालिका।
इस आंतरिक तालिका में तीन क्षेत्र हैं:
- टाइप: 'एच' - हेडर, 'एस' - चयन, 'ए' - एक्शन
- कुंजी: केवल जब टाइप '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_isisplay
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_CALLBACK_PROGRAM
- I_CALLBACK_PF_STATUS_SET
- I_CALLBACK_USER_COMMAND
- IS_LAYOUT
- इट_फिल्केट
- It_events
- I_tabname_header: उच्चतम पदानुक्रम स्तर के आउटपुट डेटा वाले कार्यक्रम में आंतरिक तालिका का नाम।
- I_tabname_item: प्रोग्राम में आंतरिक तालिका का नाम जिसमें सबसे कम पदानुक्रम स्तर का आउटपुट डेटा है।
- Is_keyinfo: इस संरचना में शीर्ष लेख और आइटम तालिका फ़ील्ड नाम हैं जो दो तालिकाओं (साझा कुंजी) को लिंक करते हैं।
टेबल
- t_outtab_header: आउटपुट के लिए डेटा के साथ शीर्ष लेख तालिका
- t_outtab_item: प्रोग्राम में आंतरिक तालिका का नाम जिसमें सबसे कम पदानुक्रम स्तर का आउटपुट डेटा है।
आंतरिक तालिकाओं, संरचनाओं और स्थिरांक की सभी परिभाषाएँ SLIS नामक एक प्रकार के पूल में घोषित की जाती हैं। REUSE_ALV_FIELDCATALOG_MERGE 'का उपयोग करके इस आंतरिक तालिका को स्वचालित रूप से आबाद किया जा सकता है।
वेरिएंट प्रदर्शित करें
- डिस्प्ले वेरिएंट का उपयोग एलवी आउटपुट के डिफ़ॉल्ट गुणों को सेट करने के लिए किया जाता है, जैसे सॉर्ट मानदंड, फ़िल्टरिंग मानदंड, टोटलिंग और सबोटोटलिंग आदि।
- डिस्प्ले वेरिएंट उपयोगकर्ता विशिष्ट हो सकता है और मानक (मानक वेरिएंट किसी भी उपयोगकर्ता द्वारा उपयोग किया जा सकता है)
- सहेजे जा सकने वाले डिस्प्ले वेरिएंट्स को पैरामीटर मॉड्यूल i_save द्वारा नियंत्रित किया जाता है जो फ़ंक्शन मॉड्यूल में पारित होता है reuse_alv_list_display / reuse_alv_grid_display
- आप चयन स्क्रीन पर एक विकल्प प्रदान कर सकते हैं कि किस संस्करण का उपयोग किया जाए
प्रदर्शन वेरिएंट के चयन / सत्यापन से संबंधित सामान्य फ़ंक्शन मॉड्यूल हैं
- Reuse_alv_variant_default_get
- Reuse_alv_variant_f4
- Reuse_alv_variant_existence
सभी ABAP को- ALV प्रोग्रामिंग!