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.

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)
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
- Lisää taulukon ohjauselementti näytöllesi
- Anna taulukon ohjausobjektille nimi. ABAP-ohjelmassa määritä rakenne, jolla on sama ( CONTROLS tyyppi TABLEVIEW KÄYTTÄEN NÄYTTÖÄ )
- 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.

