SAP ABAP tabeli juhtimine näidetega

⚡ Nutikas kokkuvõte

SAP ABAP-tabeli juhtelement kuvab sisemise tabeli keritava ruudustikuna ekraanil, mis on ehitatud ekraani sisse. PainterSee leht selgitab selle funktsioone, CONTROLS-deklaratsiooni, kursori käsitsemist, PBO- ja PAI-tsükleid ning veeru atribuute.

  • 🖥️ Põhidefinitsioon: Tabeli juhtelement on täiustatud samm-sammult tsükkel, mis kuvab tabeli andmeid töölauarakenduse ruudustiku välimuse ja toimimisega.
  • 🧰 Sisseehitatud omadused: Kerimist, veergude suuruse ja järjestuse muutmist, rea valimist ja salvestatud kuvamisseadeid haldab SAPgui esiots.
  • 📜 Ühe rea reegel: Samm-tsükli rida võib hõlmata mitut ekraanirida, samas kui tabeli juhtrida peab alati mahtuma ühele reale.
  • ⌨️ Deklaratsioon: JUHTSEADISED TIPPIGE TABLEVISE KASUTADES EKRANI seob ekraanielemendi ABAP-programmiga.
  • 🎯 Kursori käsitsemine: SET CURSOR asetab kursori PBO-le ja GET CURSOR loeb välja ja rea ​​PAI-st.
  • 🔁 Andmete ülekanne: LOOP AT … USING CONTROL töötab PBO-l ja tavaline LOOP AT töötab PAI-l ning andmed liiguvad nende tsüklite sees ekraani ja sisemise tabeli vahel.
  • 🎨 Dünaamilised atribuudid: SCREEN tabel ja -cols struktuur muudab veergude nähtavust ja vormingut käitusajal.

SAP ABAP tabeli juhtimine

Mis on tabeli juhtelement? SAP ABAP?

Tabeli juhtelemendid ja sammusilmused on ekraanitabeli kuvamise objektid, mille lisate ekraanile Painter.

Programmeerimise seisukohast on tabeli juhtnupud ja sammutsüklid peaaegu täpselt samad. Tabeli juhtelemendid on lihtsalt täiustatud sammutsüklid, mis kuvavad andmeid töölauarakenduste tabelitega seotud välimuse ja tunnetusega.

ABAP tabelikontrolli omadused

Tabeli juhtelementidega saab kasutaja:

  • Kerige tabelit vertikaalselt ja horisontaalselt
  • Muutke veeru laiust
  • Kerige väljal (kui välja sisu on väljast laiem)
  • Valige tabeli read või veerud
  • Järjestage veergude järjestus ümber
  • Salvestage praegused kuvaseaded edaspidiseks kasutamiseks

Tabeli juhtelemendid pakuvad ka spetsiaalseid vormindamisfunktsioone (mõned automaatsed, mõned valikulised), mis muudavad tabelite vaatamise ja kasutamise lihtsamaks. Tabelikontroll pakub –

  • automaatne tabeli suuruse muutmine (vertikaalne ja horisontaalne), kui kasutaja muudab akna suurust
  • eraldusjooned ridade ja veergude vahel (vertikaalne ja horisontaalne)
  • veeru päise väljad kõigi veergude jaoks

Üldiselt haldab paljusid tabeli juhtelemendi pakutavaid funktsioone teie süsteem kohapeal SAPgui frontend, nii et te ei pea neid ise programmeerima. Ainus märkimisväärne erand sellest on vertikaalne kerimine.

Näide (tehing TZ60)

SAP ABAP tabeli juhtimine

Ülaltoodud tehing TZ60 näitab lõpptulemust: ruudustik veerupäiste, eraldusjoonte ja valikuveeruga. Erinevused vanemast sammutsüklist on kokku võetud järgnevalt.

Laua juhtimine vs astmeline silmus

Üks astmeliste tsüklite omadus on see, et nende tabeli read võivad ulatuda ekraanil rohkem kui ühele reale. Tabeli juhtelemendi rida seevastu peab alati asuma ühel real (kuigi kerimine on võimalik). Allolev tabel võrdleb kahte ekraanielementi.

Kriteeriumid Tabeli kontroll Astmeline silmus
Rea paigutus Üks rida on alati üks ekraanirida Üks rida võib hõlmata mitut ekraanirida
Veergude käsitlemine Kasutaja saab veergude suurust muuta, järjekorda muuta ja peita Ekraanil määratletud fikseeritud veergude paigutus
Kerige Horisontaalne kerimine esiotsa poolt, vertikaalne kerimine programmeeritud PAI-s Täielikult ABAP-koodis programmeeritud
deklaratsioon JUHTSEADISED … TIPPIGE EKRANI ABIL TABLEVIEW Programmis puudub juhtimisstruktuur
Kuva seaded Kasutaja saab salvestada isikliku paigutuse Pole saadaval

Kuna tabeli juhtelement on moodne element, programmeerib ülejäänud leht seda.

Kuidas luua ja programmeerida tabeli juhtelementi

Tabeli juhtelement vajab ekraanielementi, programmis olevat juhtstruktuuri ja tsüklit nii PBO-s kui ka PAI-s. Allolevad alajaotised järgivad seda järjekorda.

Kontrolli deklareerimine

Tabeli juhtelementide käsitlemiseks ABAP-programmides peate iga tabeli juhtelemendi programmi deklaratsiooniosas juhtelemendi deklareerima, kasutades järgmist lauset:

CONTROLS <ctrl> TYPE TABLEVIEW USING SCREEN <scr>

kus on tabeli juhtelemendi nimi ABAP programmi ekraanil. Juhtseade võimaldab ABAP-programmil lugeda tabeli juhtelemendi atribuute ja mõjutada juhtelementi. on ekraani number, kuhu laaditakse tabeli algväärtused.

Kursori asukoha määramine ja lugemine

Tabeli juhtelemendi kursori asukohta saab määrata järgmistel viisidel:

PBO-s saate seada kursori tabeli juhtelemendi konkreetse rea konkreetsele väljale.

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

Valikulise lisamise OFFSET abil saate sisestada väljale kursori nihke, nagu on kirjeldatud jaotises Kursori asukoha määramine.

PAI-s saate lugeda kursori praegust asukohta.

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

Lisaks väljal Kursori asukoha väljaselgitamine antud teabele sisaldab teavet selle kohta, millisel tabeli juhtelemendi real kursor parasjagu on. Võite ka kasutada

GET CURSOR LINE <lin>.

tabeli juhtelemendi rea määramiseks. SY-SUBRC võimaldab kontrollida, kas kursor asub tabeli juhtelemendi real.

Vastava sisemise tabeli rea lugemine

Vastava rea ​​saamiseks sisemine laud:

GET CURSOR line <lin>.

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

Read table <itab> index ind.

Süsteemi muutuja stepl – sisaldab praegust tabelirea indeksit tsüklis … endloop. Loopc – sisaldab tabelis nähtavate ridade arvu

Juhtelemendi loomine ekraanil Painter

Tabeli juhtelemendi loomiseks

  1. Tabeli juhtelemendi lisamine ekraanile
  2. Andke tabelile juhtelement nimi. ABAP-programmis deklareerige sama nimetusega struktuur (CONTROLS tüüp TABLEVIEW USING SCREEN )
  3. Väljade loomiseks minge funktsiooni Dict./Program fields (Sõnastiku/Programmi väljad).
    • Sisestage selle struktuuri nimi, mille välju soovite. (Kui soovite, et see valiks selle teie programmi sõnastikust, klõpsake vastavat nuppu).
    • Valige väljade loendist soovitud väljad ja valige OK.
    • Klõpsake tabeli juhtalal

Kui soovite valikuveergu, märkige atribuutides vastav märkeruut ja andke sellele nimi. Looge väljal ABAP programm.

PBO ja PAI ahelate kodeerimine

PBO-s peaks teil olema avaldus

LOOP at <itab> USING CONTROL <cntrl_name>.

ENDLOOP.

PAI-s peaks teil olema.

LOOP at <itab>.

ENDLOOP.

Andmeedastus ekraani ja sisemise tabeli vahel toimub tsüklite sees. Sisemise tabeli täitmisel kasutage käsku DESCRIBE TABLE. LINES -read, et salvestada juhtelemendi ridade koguarv. FIELD-lauset saab kasutada andmeedastuse toimumise juhtimiseks.

⚠️ Hoiatus: PBO tsükkel peab juhtelemendi nimetama USING CONTROL abil. Ilma selleta ei tea juhtelement ridade arvu ja vertikaalne kerimine lakkab töötamast.

Veergude atribuutide muutmine käitusajal

Üksikute lahtrite atribuutide muutmiseks muutke ajutiselt PBO tabelit SCREEN. Saate muuta CONTROLS-lausega loodud struktuuri atribuute

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

💡 Näpunäide: Tsükkel üle -cols PBO-s, et peita või kaitsta veergu antud kasutajarolli jaoks, selle asemel, et luua teine ​​ekraan.

KKK

Esiosa haldab horisontaalset kerimist, kuid vertikaalne kerimine on kodeeritud PAI-s. Hinnake SY-UCOMM-i kerimisfunktsioonide koodide jaoks ja liigutage juhtstruktuuri top_line välja enne järgmise PBO käivitamist.

An ALV-võrk Pakub sortimist, filtreerimist, kokkuvõtteid ja eksporti ilma lisakoodita, seega sobib see kuvatavate loenditega. Tabeli juhtelementi eelistatakse siis, kui ekraan vajab kohandatud sisestusloogikat ja täielikku kontrolli iga lahtri üle.

SY-STEPL hoiab ekraanitsüklis hetkel töödeldava rea ​​indeksit ja SY-LOOPC hoiab ekraanil nähtavate ridade arvu. Mõlemad täidetakse ainult juhtelemendi tsükli LOOP … ENDLOOP sees.

Jah. ABAP-i arendustööriistades olevad tehisintellekti assistendid koostavad sisemise tabeli kirjelduse põhjal CONTROLS-deklaratsiooni, mõlemad ekraanitsüklid ja kerimisloogika. Genereeritud vooloogikat tuleb veel ekraanil testida. Painter.

Tehisintellekti analüüsitööriistad loevad dynpro vooloogikat, loetlevad väljad ja funktsioonikoodid ning pakuvad välja samaväärse Fiori või ALV-põhise disaini. See ettepanek lühendab moderniseerimisprojekti analüüsifaasi.

Võta see postitus kokku järgmiselt: