ABAP-subschermen zelfstudie: oproepsubscherm in SAP

Inhoudsopgave:

Anonim

Voordat u deze tutorial leest, moet u controleren wat een dialoogprogramma is ...

OPROEP ONDERSCHERM

  • Een subscherm is een onafhankelijk scherm dat wordt weergegeven in een gedeelte van een ander ("hoofd") scherm.
  • Met subschermen kunt u tijdens runtime het ene scherm in het andere insluiten. U kunt meerdere subschermen op het hoofdscherm plaatsen.
  • De term subscherm is zowel van toepassing op het scherm dat u insluit, als op het gebied op het hoofdscherm waarin u het plaatst. Deze tutorial gaat over subschermgebieden. De daadwerkelijke schermen die zijn gemaakt via SE51-transactie, worden subschermschermen genoemd als ze zijn gedefinieerd in schermattributen.
  • Wanneer u een subscherm gebruikt, is de stroomlogica van het ingesloten scherm ook ingebed in de stroomlogica van het hoofdscherm. Daarom is het gebruik van subschermen op schermen hetzelfde als het gebruik van include in ABAP-programma's.

Om een ​​subscherm te gebruiken, moet u drie eenvoudige stappen volgen

  1. Definieer het subschermgebied (en) op een scherm
  2. Definieer geschikte subschermen
  3. Voeg het subschermscherm toe aan het subschermgebied.

U moet ook het frame van het subscherm en het hoofdscherm aanpassen. U moet het een naam geven in het veldnaamveld.
Verder moet u ook de velden in het subscherm aanpassen om ze in het hoofdscherm te laten verschijnen. Als het subscherm groter is dan het beschikbare gebied in het hoofdscherm, is alleen het deel van het subscherm zichtbaar dat past in het beschikbare gebied. Het gebied wordt altijd gemeten vanaf de linkerbovenhoek van het scherm. Daarom moet u goed opletten bij het definiëren van subschermgebieden en het maken van subschermen.
VOORBEELD

Hier hebben we bijvoorbeeld twee subschermgebieden op het hoofdscherm gedefinieerd en twee verschillende subschermen aan de corresponderende gebieden toegevoegd. Telkens wanneer het hoofdscherm wordt opgeroepen, wordt de PBO van het hoofdscherm opgeroepen. Maar voordat ze worden weergegeven, worden de PBO's van elk scherm dat is bevestigd met subschermgebieden op het hoofdscherm ook genoemd.

U kunt een subschermscherm opnemen met behulp van de instructie CALL SUBSCREEN in de stroomlogica van het hoofdscherm.
Gebruik de volgende verklaring in de PBO-gebeurtenis van het hoofdscherm om een ​​subscherm in het subschermgebied van het hoofdscherm op te nemen en de PBO-stroomlogica op te roepen:

VERWERKEN VOORAFGAAND AAN UITVOER.CALL SUBSCREEN  INCLUSIEF [
] .

Deze instructie wijst het subschermscherm met nummer toe aan het subschermgebied met de naam . U kunt ook het programma specificeren waarin het subscherm wordt gedefinieerd (optioneel). Als u het programma niet expliciet specificeert, zoekt het systeem naar het subscherm in hetzelfde ABAP-programma als het hoofdprogramma. Als het geen bijbehorend subscherm vindt, treedt er een runtime-fout op. Op hetzelfde punt is ook de PBO-stroomlogica van het subscherm opgenomen. Dit kan PBO-modules van het ABAP-programma oproepen waarin het subscherm wordt gedefinieerd. Aan het einde van het subscherm PBO worden de globale velden van het programma doorgegeven aan alle identieke schermvelden in het subscherm. De PBO-stroomlogica van het subscherm kan zelf nog meer subschermen bevatten.

De naam van het subscreen-gebied moet direct worden ingevoerd, zonder aanhalingstekens. U kunt de namen en specificeren als letterlijke of variabelen. Als u variabelen gebruikt, moet u variabelen met dezelfde naam declareren en invullen in het ABAP-programma. Het schermnummer moet 4 tekens lang zijn. Als u geen subscherm aan een gebied toewijst, blijft het leeg.
Gebruik de volgende verklaring in de PAI-stroomlogica van het hoofdscherm om de PAI-stroomlogica van het subscherm op te roepen:

PROCES NA INVOER.CALL SUBSCREEN .

Deze verklaring bevat de PAI-stroomlogica van het subschermscherm dat is opgenomen in het subschermgebied in het PBO-evenement. Dit kan PAI-modules van het ABAP-programma oproepen waarin het subscherm wordt gedefinieerd. Gegevens worden getransporteerd tussen velden met identieke namen in het subscherm en het ABAP-programma, hetzij wanneer de PAI-gebeurtenis wordt geactiveerd, hetzij op de overeenkomstige FIELD-instructies in de PAI-stroomlogica van het subscherm.
Punten om te onthouden

  • Namen van elementen van subschermen binnen een scherm moeten uniek zijn
  • U zou OK_CODE of FCODE niet moeten hebben bijgevoegd met een subscherm. De OK_CODE van het hoofdscherm zelf is OK_CODE van het subscherm
  • Subschermen kunnen geen dialoogmodules hebben met SET TITLEBAR, SET PF-STATUS, SET SCREEN, LEAVE SCREEN of LEAVE TO SCREEN. Dit veroorzaakt een runtime-fout.
  • U moet het aanroepen in de stroomlogica (zowel PBO als PAI) van het hoofdscherm.
  • CALL SUBSCREEN is niet toegestaan ​​in de instructies CHAIN… ENDCHAIN ​​en LOOP ENDLOOP
  • Kan geen AT EXIT-COMMAND-module hebben
  • De velden die u gebruikt, zijn de globale velden. Ze moeten bovenaan worden vermeld
  • Als u subschermen uit een ander dialoogvensterprogramma gebruikt, zal de gegevensoverdracht niet plaatsvinden tenzij u specifieke code toevoegt.