تقارير ALV في SAP البرنامج التعليمي - عارض قائمة ABAP
الميزات المشتركة المطلوبة لأي تقرير هي "محاذاة الأعمدة"، والفرز، والتصفية، والإجماليات الفرعية، والإجماليات وما إلى ذلك. ولتنفيذ هذه الميزات من البداية، يجب بذل الكثير من جهود الترميز. لتجنب ذلك يمكننا استخدام مفهوم يسمى ABAP List Viewer (ALV).
يقدم كل من هذه التقارير وحدات الوظيفة والتي تساعد في إنتاج المخرجات المطلوبة دون بذل الكثير من الجهد. دعونا ننظر إليها بالتفصيل -
تقرير بسيط
وحدات وظيفية مهمة في هذه تقرير هم -
- Reuse_alv_fieldcatalog_merge
- إعادة استخدام_alv_list_display
- Reuse_alv_events_get
- إعادة استخدام_alv_grid_display
- إعادة استخدام_alv_commentary_write
REUSE_ALV_FIELDCATALOG_MERGE
يتم استخدام وحدة الوظيفة هذه لملء كتالوج الحقول وهو أمر ضروري لعرض البيانات في ALV.
إذا كانت بيانات الإخراج من جدول قاموس واحد وتم تحديد جميع الأعمدة، فلن نحتاج إلى إنشاء كتالوج الحقول حصريًا. يكفي ذكر اسم الجدول كمعلمة (I_structure_name) في REUSE_ALV_LIST_DISPLAY. لكن في حالات أخرى نحتاج إلى إنشائه.
ملاحظة: يمكن أيضًا ملء كتالوج الحقل يدويًا عن طريق ملء جميع التفاصيل المطلوبة في الجدول الداخلي
المعلمات الهامة في هي:
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_buffer_active : ' '
- I_callback_pf_status_set: روتين حيث يمكن للمستخدم تعيين حالة pf الخاصة به أو تغيير وظيفة حالة pf الموجودة.
- I_callback_user_command: روتين حيث يتم التعامل مع رموز الوظائف.
- I_structure name : اسم جدول القاموس
- Is_Layout: هيكل لتعيين تخطيط التقرير
- It_fieldcat: جدول داخلي يحتوي على قائمة بجميع الحقول وسماتها التي سيتم طباعتها (يمكن ملء هذا الجدول تلقائيًا بواسطة الوظيفة)
- It_events: جدول داخلي يحتوي على قائمة بجميع الأحداث المحتملة لـ ALV وأسماء النماذج المقابلة لها.
2. الجداول:
- أ. t_outtab: جدول داخلي بالبيانات المراد إخراجها
REUSE_ALV_EVENTS_GET:
إرجاع جدول الأحداث المحتملة لنوع القائمة أأ
1. الاستيراد:
الأحداث_والأحداث :يتم إرجاع جدول الأحداث مع كافة أحداث رد الاتصال الممكنة لنوع القائمة المحدد (العمود 'NAME'). لتتم معالجة الأحداث بواسطة رد الاتصال، يجب ملء حقل "النموذج" الخاص بها. إذا تمت تهيئة الحقل، فسيتم تجاهل الحدث. يمكن قراءة الإدخال من جدول الأحداث، وملء الحقل "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، فانتقل إلى القائمة أو الشبكة ولكن يتعين على المطور اتخاذ قرار بناءً على خبرته. إذا لم تكن متأكدًا، فإن القائمة هي الخيار الأفضل
REUSE_ALV_COMMENTARY_WRITE
يُستخدم هذا في حدث أعلى الصفحة لطباعة العناوين والتعليقات الأخرى الخاصة بالقائمة.
معلمات مهمة
- 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
يتم استخدام وحدة الوظيفة هذه لتعيين حالة واجهة المستخدم الرسومية الافتراضية وما إلى ذلك. تشبه المعلمات تلك المستخدمة في 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_CALLBACK_PROGRAM
- I_CALLBACK_PF_STATUS_SET
- I_CALLBACK_USER_COMMAND
- IS_LAYOUT
- It_fieldcat
- it_events
- I_tabname_header : اسم الجدول الداخلي في البرنامج الذي يحتوي على بيانات الإخراج ذات أعلى مستوى هرمي.
- I_tabname_item : اسم الجدول الداخلي في البرنامج الذي يحتوي على بيانات الإخراج لأدنى مستوى هرمي.
- Is_keyinfo: تحتوي هذه البنية على أسماء حقول جدول الرأس والعناصر التي تربط الجدولين (المفتاح المشترك).
طاولات
- t_outtab_header: جدول الرأس الذي يحتوي على البيانات المراد إخراجها
- t_outtab_item : اسم الجدول الداخلي في البرنامج الذي يحتوي على بيانات الإخراج لأدنى مستوى هرمي.
يتم الإعلان عن جميع تعريفات الجداول والهياكل والثوابت الداخلية في تجمع نوع يسمى SLIS. يمكن ملء هذا الجدول الداخلي تلقائيًا باستخدام REUSE_ALV_FIELDCATALOG_MERGE'.
عرض المتغيرات
- يتم استخدام متغيرات العرض لتعيين الخصائص الافتراضية لمخرجات alv مثل معايير الفرز ومعايير التصفية والإجمالي والإجمالي الفرعي وما إلى ذلك
- يمكن أن تكون متغيرات العرض خاصة بالمستخدم وقياسية (يمكن لأي مستخدم استخدام المتغيرات القياسية)
- يتم التحكم في نوع متغيرات العرض التي يمكن حفظها بواسطة المعلمة i_save التي يتم تمريرها في الوحدات الوظيفية reuse_alv_list_display / reuse_alv_grid_display
- يمكنك توفير خيار على شاشة التحديد لتحديد متغير العرض الذي سيتم استخدامه
وحدات الوظائف الشائعة المتعلقة باختيار/التحقق من صحة متغيرات العرض هي
- Reuse_alv_variant_default_get
- إعادة استخدام_alv_variant_f4
- إعادة استخدام_alv_variant_existence
هذا كل شيء ABAP - برمجة ALV!