Урок за подекрани на ABAP: Обадете се на подекран SAP

Преди да прочетете този урок, уверете се какво е диалогова програма...

ПОДЕКРАН ЗА ОБАЖДАНЕ

  • Подекранът е независим екран, който се показва в област на друг („главен“) екран.
  • Подекраните ви позволяват да вграждате един екран в друг по време на изпълнение. Можете да включите няколко подекрана на основния екран.
  • Терминът подекран се отнася както за екрана, който вграждате, така и за областта на главния екран, в която го поставяте. Този урок е за подекранни области. Действителните екрани, създадени чрез транзакция SE51, се наричат ​​подекранни екрани, ако са определени в атрибутите на екрана.
  • Когато използвате подекран, логиката на потока на вградения екран също е вградена в логиката на потока на главния екран. Следователно използването на подекрани на екрани е като използване на включвания в ABAP програми.

За да използвате подекран, трябва да следвате три прости стъпки

  1. Определете подекранните области на екрана
  2. Определете подходящи подекранни екрани
  3. Включете подекранния екран в подекранната област.

Освен това трябва да настроите рамката на подекрана и главния екран. Трябва да го наименувате в полето за име на полето.

Освен това трябва да настроите полетата в подекрана, за да се показват в главния екран. В случай че подекранът е дефиниран като по-голям от наличната област в главния екран, ще се вижда само частта от подекрана, която се побира в наличната област. Площта винаги се измерва от горния ляв ъгъл на екрана. Следователно трябва да внимавате достатъчно, докато дефинирате подекранни области и създавате подекрани.

Пример

Например тук сме дефинирали две подекранни области на главния екран и сме прикачили два различни подекрана към съответните области. Всеки път, когато се извика главният екран, се извиква PBO на главния екран. Но преди показване, PBO на всеки екран, прикрепен с подекранни области на главния екран, също се извикват.

Обадете се на подекран SAP

Можете да включите подекранен екран, като използвате оператора CALL SUBSCREEN в логиката на потока на главния екран.

За да включите подекран в областта на подекрана на главния екран и да извикате неговата PBO логика на потока, използвайте следния оператор в събитието PBO на главния екран:

PROCESS BEFORE OUTPUT.

CALL SUBSCREEN <area> INCLUDING [<prog>] <dynp>.

Този оператор присвоява номер на подекранния екран към зоната на подекрана, наречена . Можете също да посочите програмата, в която е дефиниран подекранът (по избор). Ако не посочите изрично програмата, системата търси подекранния екран в същата ABAP програма като основната програма. Ако не намери съответния екран на подекрана, възниква грешка по време на изпълнение. Логиката на PBO потока на подекранния екран също е включена в същата точка. Това може да извика PBO модули на програмата ABAP, в която е дефиниран подекранният екран. В края на подекрана PBO, глобалните полета от програмата се предават на всички екранни полета с идентични имена в подекранния екран. Логиката на PBO потока на подекранния екран може сама да включва допълнителни подекранове.

Името от областта на подекрана трябва да се въведе директно без кавички. Можете да посочите имената и или като литерали, или като променливи. Ако използвате променливи, трябва да декларирате и попълните променливи с идентични имена в програмата ABAP. Номерът на екрана трябва да е с дължина 4 знака. Ако не зададете подекран на дадена област, тя остава празна.

За да извикате логиката на PAI потока на подекранния екран, използвайте следния оператор в логиката на PAI потока на главния екран:

PROCESS AFTER INPUT.

CALL SUBSCREEN <area>.

Този израз включва логиката на PAI потока на подекранния екран, включен в подекранната област в събитието PBO. Това може да извика PAI модули на програмата ABAP, в която е дефиниран подекранният екран. Данните се транспортират между полета с еднакви имена в екрана на подекрана и програмата ABAP или когато се задейства събитието PAI, или при съответните оператори FIELD в логиката на PAI потока на екрана на подекрана.

Точки за запомняне

  • Имената на елементите на подекраните в рамките на един екран трябва да бъдат уникални
  • Не трябва да имате OK_CODE или FCODE, прикачени към подекран. Самият OK_CODE на основния екран е OK_CODE на подекран
  • Под-екраните не могат да имат диалогови модули, съдържащи SET TITLEBAR, SET PF-STATUS, SET SCREEN, LEAVE SCREEN или LEAVE TO SCREEN. Това ще доведе до грешка по време на изпълнение.
  • Трябва да го извикате в логиката на потока (както PBO, така и PAI) на главния екран.
  • CALL SUBSCREEN не е позволен в операторите CHAIN..ENDCHAIN ​​и LOOP ENDLOOP
  • Не може да има модул AT EXIT-COMMAND
  • Полетата, които използвате, са глобалните полета. Те трябва да бъдат декларирани в горния списък
  • Ако използвате подекрани от друг диалогова програма прехвърлянето на данни няма да се случи, освен ако не добавите конкретен код.