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: