SAP التحكم في جدول ABAP مع الأمثلة

⚡ ملخص ذكي

SAP يعرض عنصر تحكم جدول ABAP جدولًا داخليًا كشبكة قابلة للتمرير على شاشة مدمجة في الشاشة Painterتشرح هذه الصفحة ميزاتها، وإعلان CONTROLS، ومعالجة المؤشر، وحلقات PBO وPAI، وسمات الأعمدة.

  • 🖥️ التعريف الأساسي: عنصر التحكم في الجدول عبارة عن حلقة خطوات محسّنة تعرض بيانات الجدول بمظهر وشكل شبكة تطبيق سطح المكتب.
  • 🧰 الميزات المضمنة: يتم التعامل مع التمرير، وتغيير حجم الأعمدة، وإعادة ترتيب الأعمدة، وتحديد الصفوف، وإعدادات العرض المحفوظة بواسطة SAPواجهة المستخدم الرسومية.
  • 📜 قاعدة الخط الواحد: قد يمتد صف حلقة الخطوة على عدة أسطر من الشاشة، بينما يجب أن يتناسب صف التحكم في الجدول دائمًا مع سطر واحد.
  • ⌨️ إعلان: أدوات التحكم اكتب TABLEVIEW باستخدام الشاشة يربط عنصر الشاشة ببرنامج ABAP.
  • 🎯 معالجة المؤشر: يقوم الأمر SET CURSOR بوضع المؤشر في PBO، بينما يقوم الأمر GET CURSOR بقراءة الحقل والصف في PAI.
  • 🔁 نقل البيانات: يتم تشغيل حلقة LOOP AT … USING CONTROL في PBO ويتم تشغيل حلقة LOOP AT العادية في PAI، وتنتقل البيانات بين الشاشة والجدول الداخلي داخل تلك الحلقات.
  • 🎨 السمات الديناميكية: طاولة الشاشة و -cols تغيير بنية الأعمدة ورؤية الأعمدة وتنسيقها أثناء التشغيل.

SAP التحكم في جدول ABAP

ما هو عنصر تحكم الجدول في SAP ABAP؟

عناصر التحكم في الجدول وحلقات الخطوات هي كائنات لعرض جدول الشاشة والتي يمكنك إضافتها إلى شاشة في الشاشة Painter.

من وجهة نظر البرمجة، فإن عناصر التحكم في الجدول وحلقات الخطوات هي نفسها تقريبًا. عناصر التحكم في الجدول هي ببساطة حلقات متدرجة محسنة تعرض البيانات بالشكل والمظهر المرتبطين بالجداول في تطبيقات سطح المكتب.

ميزات التحكم في جدول ABAP

باستخدام عناصر التحكم في الجدول، يمكن للمستخدم:

  • قم بالتمرير عبر الجدول عموديًا وأفقيًا
  • إعادة حجم عرض العمود
  • التمرير داخل الحقل (عندما تكون محتويات الحقل أوسع من الحقل)
  • حدد صفوف أو أعمدة الجدول
  • إعادة ترتيب تسلسل الأعمدة
  • احفظ إعدادات العرض الحالية لاستخدامها في المستقبل

توفر عناصر التحكم في الجدول أيضًا ميزات تنسيق خاصة (بعضها تلقائي وبعضها اختياري) تجعل من السهل النظر إلى الجداول واستخدامها. يوفر التحكم في الجدول –

  • تغيير حجم الجدول تلقائيًا (رأسيًا وأفقيًا) عندما يقوم المستخدم بتغيير حجم النافذة
  • الخطوط الفاصلة بين الصفوف وبين الأعمدة (الرأسية والأفقية)
  • حقول رأس العمود لجميع الأعمدة

بشكل عام، يتم التعامل مع العديد من الميزات التي يوفرها عنصر تحكم الجدول محليًا بواسطة نظامك SAPالواجهة الأمامية لواجهة المستخدم الرسومية، لذلك لا تحتاج إلى برمجتها بنفسك. الاستثناء الوحيد الملحوظ لذلك هو التمرير العمودي.

مثال (المعاملة TZ60)

SAP التحكم في جدول ABAP

تُظهر العملية TZ60 أعلاه النتيجة النهائية: جدول بيانات يحتوي على عناوين الأعمدة، وخطوط فاصلة، وعمود للاختيار. وفيما يلي ملخص للاختلافات عن حلقة الخطوات السابقة.

التحكم في الجدول مقابل حلقة الخطوات

من خصائص حلقات الخطوات أن صفوف جداولها قد تمتد على أكثر من سطر واحد على الشاشة. أما صف عنصر تحكم الجدول، فيجب أن يكون دائمًا ضمن سطر واحد (مع إمكانية التمرير). يقارن الجدول أدناه بين عنصري الشاشة هذين.

المعايير التحكم في الجدول حلقة متدرجة
تخطيط الصف يمثل كل صف سطرًا واحدًا على الشاشة. قد يمتد صف واحد على عدة أسطر من الشاشة
معالجة الأعمدة يمكن للمستخدم تغيير حجم الأعمدة وإعادة ترتيبها وإخفائها. تخطيط الأعمدة الثابتة المحدد على الشاشة
التمرير التمرير الأفقي من خلال واجهة المستخدم، والتمرير الرأسي مبرمج في PAI تمت برمجته بالكامل باستخدام لغة ABAP
إعلان عناصر التحكم … اكتب TABLEVIEW باستخدام الشاشة لا يوجد هيكل تحكم في البرنامج
عرض إعدادات يمكن للمستخدم حفظ تصميم شخصي غير متوفرة

لأن عنصر التحكم في الجدول هو العنصر الحديث، فإن بقية هذه الصفحة تبرمج ذلك العنصر.

كيفية إنشاء وبرمجة عنصر تحكم الجدول

يحتاج عنصر التحكم في الجدول إلى عنصر شاشة، وبنية تحكم في البرنامج، وحلقة تكرار في كل من PBO وPAI. وتتبع الأقسام الفرعية أدناه هذا الترتيب.

إعلان السيطرة

للتعامل مع عناصر التحكم في الجدول في برامج ABAP، يجب عليك إعلان عنصر تحكم في جزء الإعلان في البرنامج لكل عنصر تحكم في الجدول باستخدام العبارة التالية:

CONTROLS <ctrl> TYPE TABLEVIEW USING SCREEN <scr>

أين هو اسم عنصر تحكم الجدول الموجود على الشاشة في برنامج ABAP. يتيح عنصر التحكم لبرنامج ABAP قراءة سمات عنصر تحكم الجدول والتأثير على عنصر التحكم.هنا، هو رقم الشاشة حيث يتم تحميل القيم الأولية للجدول.

تحديد موضع المؤشر وقراءته

يمكن ضبط موضع المؤشر لعنصر التحكم في الجدول بالطرق التالية:

في PBO يمكنك ضبط المؤشر على حقل معين لصف معين من عنصر تحكم الجدول.

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 – يحتوي على عدد الأسطر المرئية في الجدول

إنشاء عنصر التحكم في الشاشة Painter

لإنشاء عنصر تحكم الجدول

  1. أضف عنصر تحكم جدول إلى شاشتك
  2. قم بتسمية عنصر التحكم في الجدول. في برنامج ABAP، قم بتعريف بنية بنفس الاسم (CONTROLS). اكتب TABLEVIEW باستخدام الشاشة )
  3. لإنشاء الحقول، انتقل إلى وظيفة حقول القاموس/البرنامج.
    • أدخل اسم البنية التي تريد حقولها. (إذا كنت تريد اختياره من قاموس برنامجك، فانقر فوق الزر المناسب).
    • في قائمة الحقول اختر الحقول التي تريدها واختر موافق.
    • انقر في منطقة التحكم في الجدول

إذا كنت تريد عمود اختيار، فحدد مربع الاختيار المناسب في السمات وأعطه اسمًا. أنشئ الحقل في برنامج ABAP.

برمجة حلقات PBO و PAI

في PBO يجب أن يكون لديك البيان

LOOP at <itab> USING CONTROL <cntrl_name>.

ENDLOOP.

في PAI يجب أن يكون لديك.

LOOP at <itab>.

ENDLOOP.

يتم نقل البيانات بين الشاشة والجدول الداخلي داخل الحلقات. عند ملء الجدول الداخلي، استخدم الأمر DESCRIBE TABLE LINES يُستخدم الأمر FIELD لتخزين العدد الإجمالي للأسطر في عنصر التحكم. ويمكن استخدامه للتحكم في وقت نقل البيانات.

⚠️ تحذير: يجب أن تُسمّي حلقة PBO عنصر التحكم باستخدام USING CONTROL. بدون ذلك، لن يعرف عنصر التحكم عدد الأسطر الموجودة، وسيتوقف التمرير الرأسي عن العمل.

تغيير سمات الأعمدة أثناء التشغيل

لتغيير سمات الخلايا الفردية، قم بتغيير جدول SCREEN في PBO مؤقتًا. يمكنك تغيير سمات البنية التي تم إنشاؤها بواسطة عبارة 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.

💡 نصيحة: كرر العملية -cols في PBO لإخفاء أو حماية عمود لدور مستخدم معين، بدلاً من إنشاء شاشة ثانية.

الأسئلة الشائعة

تتولى واجهة المستخدم الأمامية التمرير الأفقي، بينما تتم برمجة التمرير الرأسي في PAI. قم بتقييم SY-UCOMM للحصول على رموز وظائف التمرير، ثم انقل حقل top_line الخاص ببنية التحكم قبل تشغيل PBO التالي.

An شبكة ALV يوفر هذا البرنامج إمكانية الفرز والتصفية وحساب الإجماليات والتصدير دون الحاجة إلى كتابة أكواد إضافية، مما يجعله مناسبًا لعرض القوائم. يُفضل استخدام عنصر تحكم الجدول عندما تتطلب الشاشة منطق إدخال مخصصًا وتحكمًا كاملًا في كل خلية.

يحتوي المتغير SY-STEPL على فهرس الصف الذي تتم معالجته حاليًا داخل حلقة الشاشة، بينما يحتوي المتغير SY-LOOPC على عدد الصفوف الظاهرة على الشاشة. ويتم ملء كلا المتغيرين فقط داخل حلقة LOOP … ENDLOOP الخاصة بالعنصر.

نعم. تقوم مساعدات الذكاء الاصطناعي في أدوات تطوير ABAP بصياغة تعريف عناصر التحكم، وحلقات الشاشة، ومنطق التمرير من وصف الجدول الداخلي. لا يزال منطق التدفق المُنشأ بحاجة إلى اختبار في الشاشة. Painter.

تقوم أدوات تحليل الذكاء الاصطناعي بقراءة منطق تدفق البيانات في شاشة العرض الديناميكية، وسرد الحقول ورموز الوظائف، واقتراح تصميم مكافئ قائم على Fiori أو ALV. يساهم هذا الاقتراح في تقصير مرحلة التحليل في مشروع التحديث.

تلخيص هذه التدوينة بـ: