SAP ABAP-taulukon ohjaus esimerkein

⚡ Älykäs yhteenveto

SAP ABAP-taulukon hallinta näyttää sisäisen taulukon vieritettävänä ruudukkona näytöllä, joka on rakennettu näytölle. PainterTällä sivulla selitetään sen ominaisuudet, CONTROLS-deklaraatio, kohdistimen käsittely, PBO- ja PAI-silmukat sekä sarakeattribuutit.

  • 🖥️ Ydinmääritelmä: Taulukko-ohjausobjekti on parannettu vaiheittainen silmukka, joka näyttää taulukkotiedot työpöytäsovelluksen ruudukon ulkoasulla ja käyttötuntumalla.
  • 🧰 Sisäänrakennetut ominaisuudet: Vieritys, sarakkeiden koon muuttaminen, sarakkeiden uudelleenjärjestely, rivin valinta ja tallennetut näyttöasetukset käsitellään SAPgraafinen käyttöliittymä.
  • 📜 Yhden rivin sääntö: Vaiheisen silmukan rivi voi ulottua useille näytön riveille, kun taas taulukon ohjausrivin on aina mahduttava yhdelle riville.
  • ⌨️ ilmoitus: OHJAIMET KIRJOITA TABLEVIEW KÄYTTÄEN NÄYTTÖÄ linkittää näyttöelementin ABAP-ohjelmaan.
  • 🎯 Kohdistimen käsittely: SET CURSOR sijoittaa kohdistimen PBO:hon ja GET CURSOR lukee kentän ja rivin PAI:sta.
  • 🔁 Tiedonsiirto: LOOP AT … USING CONTROL suoritetaan PBO:ssa ja tavallinen LOOP AT suoritetaan PAI:ssa, ja data liikkuu näytön ja sisäisen taulukon välillä näiden silmukoiden sisällä.
  • 🎨 Dynaamiset ominaisuudet: SCREEN-taulukko ja -cols-rakenne muuttaa sarakkeiden näkyvyyttä ja muotoilua suorituksen aikana.

SAP ABAP-taulukon ohjaus

Mikä on taulukko-ohjausobjekti? SAP ABAP?

Taulukon säätimet ja askelsilmukat ovat taulukon näyttöobjekteja, jotka lisäät näytölle Näytössä Painter.

Ohjelmoinnin kannalta taulukon säätimet ja askelsilmukat ovat lähes täsmälleen samat. Taulukon säätimet ovat yksinkertaisesti parannettuja askelsilmukoita, jotka näyttävät tiedot työpöytäsovellusten taulukoihin liittyvällä ulkoasulla ja tuntumalla.

ABAP Table Controlin ominaisuudet

Taulukon säätimillä käyttäjä voi:

  • Selaa taulukkoa pysty- ja vaakasuunnassa
  • Muuta sarakkeen leveyttä
  • Vieritä kentän sisällä (kun kentän sisältö on kenttää leveämpi)
  • Valitse taulukon rivit tai sarakkeet
  • Järjestä sarakkeiden järjestys uudelleen
  • Tallenna nykyiset näyttöasetukset tulevaa käyttöä varten

Taulukkoohjaimet tarjoavat myös erityisiä muotoiluominaisuuksia (osa automaattisia, osa valinnaisia), jotka helpottavat taulukoiden tarkastelua ja käyttöä. Table Control tarjoaa –

  • automaattinen taulukon koon muuttaminen (pysty- ja vaakasuuntainen), kun käyttäjä muuttaa ikkunan kokoa
  • erotinviivat rivien ja sarakkeiden välillä (pysty ja vaaka)
  • sarakkeen otsikkokentät kaikille sarakkeille

Yleensä järjestelmäsi hoitaa paikallisesti monia taulukon ohjauksen tarjoamia ominaisuuksia SAPgui frontend, joten sinun ei tarvitse ohjelmoida niitä itse. Ainoa huomattava poikkeus tähän on pystysuuntainen vieritys.

Esimerkki (tapahtuma TZ60)

SAP ABAP-taulukon ohjaus

Yllä oleva transaktio TZ60 näyttää valmiin tuloksen: ruudukon, jossa on sarakeotsikot, erotinviivat ja valintasarake. Erot vanhempaan vaihesilmukkaan verrattuna on esitetty seuraavassa yhteenvetona.

Pöydän ohjaus vs. askelsilmukka

Yksi askelsilmukoiden ominaisuus on, että niiden taulukkorivit voivat ulottua useammalle kuin yhdelle riville näytöllä. Taulukko-ohjausobjektin rivin on sitä vastoin aina sijaittava yhdellä rivillä (vaikka vieritys on mahdollista). Alla oleva taulukko vertailee näitä kahta näyttöelementtiä.

Kriteeri Taulukon hallinta Askelsilmukka
Rivin asettelu Yksi rivi on aina yksi näyttörivi Yksi rivi voi ulottua useille näyttöriveille
Sarakkeiden käsittely Käyttäjä voi muuttaa sarakkeiden kokoa, järjestystä ja piilottaa ne. Näytölle määritetty kiinteä sarakeasettelu
Vieritys Vaakasuuntainen vieritys käyttöliittymässä, pystysuuntainen vieritys ohjelmoitu PAI:ssa Ohjelmoitu kokonaan ABAP-koodilla
Ilmoitus SÄÄTIMET … KIRJOITA TABLEVIEW NÄYTÖLLÄ Ohjelmassa ei ole ohjausrakennetta
Näyttöasetukset Käyttäjä voi tallentaa henkilökohtaisen asettelun Ei saatavilla

Koska taulukon ohjausobjekti on moderni elementti, loppuosa tästä sivusta ohjelmoi sen.

Taulukon ohjauksen luominen ja ohjelmointi

Taulukko-ohjausobjekti tarvitsee screen-elementin, ohjelmassa olevan ohjausrakenteen ja silmukan sekä PBO:ssa että PAI:ssa. Alla olevat alaosiot noudattavat tätä järjestystä.

Määräysvallan julistaminen

Jos haluat käsitellä taulukon ohjausobjekteja ABAP-ohjelmissa, sinun on määritettävä ohjausobjekti ohjelman ilmoitusosassa jokaiselle taulukon ohjausobjektille seuraavalla käskyllä:

CONTROLS <ctrl> TYPE TABLEVIEW USING SCREEN <scr>

missä on taulukon ohjausobjektin nimi näytöllä ABAP-ohjelmassa. Ohjaus antaa ABAP-ohjelman lukea taulukon ohjausobjektin attribuutteja ja vaikuttaa ohjaukseen. on näytön numero, johon taulukon alkuarvot ladataan.

Kohdistimen sijainnin asettaminen ja lukeminen

Kohdistimen sijainti taulukon ohjauksessa voidaan asettaa seuraavilla tavoilla:

PBO:ssa voit asettaa kohdistimen taulukon ohjausobjektin tietyn rivin tiettyyn kenttään.

SET CURSOR FIELD <f> LINE <lin> [OFFSET <off>]

Valinnaisen OFFSET-lisäyksen avulla voit syöttää kohdistimen siirtymän kenttään kohdassa Kohdistimen sijainnin asettaminen kuvatulla tavalla.

PAI:ssa voit lukea kursorin nykyisen sijainnin.

GET CURSOR FIELD <f> LINE <lin> ...

Kohdistimen sijainnin selvittäminen -kentässä annettujen tietojen lisäksi sisältää tietoa millä taulukon ohjausobjektin rivillä kohdistin on tällä hetkellä. Voit myös käyttää

GET CURSOR LINE <lin>.

taulukko-ohjausobjektin rivin määrittämiseksi. SY-SUBRC:n avulla voit tarkistaa, onko kohdistin taulukko-ohjausobjektin rivillä.

Vastaavan sisäisen taulukkorivin lukeminen

Saadaksesi vastaavan rivin sisäinen pöytä:

GET CURSOR line <lin>.

ind = <table_control>-top_line + <lin> - 1.

Read table <itab> index ind.

Järjestelmämuuttuja stepl – sisältää nykyisen taulukon riviindeksin silmukassa … endloop. Loopc – sisältää taulukossa näkyvien rivien määrän

Ohjausobjektin luominen näytöllä Painter

Taulukon ohjausobjektin luominen

  1. Lisää taulukon ohjauselementti näytöllesi
  2. Anna taulukon ohjausobjektille nimi. ABAP-ohjelmassa määritä rakenne, jolla on sama ( CONTROLS tyyppi TABLEVIEW KÄYTTÄEN NÄYTTÖÄ )
  3. Luodaksesi kenttiä, mene Sanasto/Ohjelmakentät-toimintoon.
    • Anna sen rakenteen nimi, jonka kentät haluat. (Jos haluat sen poimivan sen ohjelmasi sanakirjasta, napsauta vastaavaa puh-painiketta).
    • Valitse kenttäluettelosta haluamasi kentät ja valitse ok.
    • Napsauta taulukon ohjausalueella

Jos haluat valintasarakkeen, valitse asianmukainen valintaruutu määritteistä ja anna sille nimi. Luo kenttä kohtaan ABAP ohjelma.

PBO- ja PAI-silmukoiden koodaus

PBO:ssa sinulla pitäisi olla lausunto

LOOP at <itab> USING CONTROL <cntrl_name>.

ENDLOOP.

PAI:ssa sinun pitäisi olla.

LOOP at <itab>.

ENDLOOP.

Tiedonsiirto näytön ja sisäisen taulukon välillä tapahtuu silmukoiden sisällä. Kun täytät sisäisen taulukon, käytä DESCRIBE TABLE -komentoa. LINES -rivit, tallentaaksesi ohjausobjektin rivien kokonaismäärän. FIELD-lauseketta voidaan käyttää tiedonsiirron ajankohdan hallintaan

⚠️ Varoitus: PBO-silmukan täytyy nimetä ohjausobjekti USING CONTROL -metodilla. Ilman sitä ohjausobjekti ei tiedä rivien lukumäärää, eikä pystysuuntainen vieritys toimi.

Sarakkeen ominaisuuksien muuttaminen suorituksen aikana

Jos haluat muuttaa yksittäisten solujen attribuutteja, muuta väliaikaisesti PBO:n SCREEN-taulukkoa. Voit muuttaa CONTROLS-käskyn luoman rakenteen attribuutteja

<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.

💡 Vinkki: Silmukka yli -cols PBO:ssa piilottaaksesi tai suojataksesi sarakkeen tietylle käyttäjäroolille toisen näytön rakentamisen sijaan.

UKK

Frontend käsittelee vaakasuuntaisen vierityksen, mutta pystysuuntainen vieritys on koodattu PAI:lla. Arvioi SY-UCOMM:n vieritysfunktioiden koodeja ja siirrä ohjausrakenteen top_line-kenttä ennen seuraavan PBO:n suorittamista.

An ALV-ruudukko tarjoaa lajittelun, suodatuksen, summat ja viennin ilman ylimääräistä koodia, joten se sopii näyttölistoihin. Taulukko-ohjausobjekti on parempi vaihtoehto, kun näyttö tarvitsee mukautettua syöttölogiikkaa ja täyden hallinnan jokaiseen soluun.

SY-STEPL sisältää näyttösilmukassa parhaillaan käsiteltävän rivin indeksin ja SY-LOOPC sisältää näytöllä näkyvien rivien lukumäärän. Molemmat täytetään vain ohjauksen LOOP … ENDLOOP -silmukan sisällä.

Kyllä. ABAP-kehitystyökalujen tekoälyavustajat laativat CONTROLS-deklaraation, molemmat näyttösilmukat ja vierityslogiikan sisäisen taulukon kuvauksesta. Luotua työnkulkulogiikkaa on vielä testattava näytöllä. Painter.

Tekoälyanalyysityökalut lukevat dynpron virtauslogiikan, listaavat kentät ja funktiokoodit ja ehdottavat vastaavaa Fiori- tai ALV-pohjaista suunnittelua. Ehdotus lyhentää modernisointiprojektin analyysivaihetta.

Tiivistä tämä viesti seuraavasti: