SAP Programarea rapoartelor ABAP
⚡ Rezumat inteligent
Programarea rapoartelor ABAP construiește programe executabile care selectează, procesează și afișează volume mari de informații. SAP date. Această pagină explică adăugările la antetul raportului, ecranul de selecție, secvența evenimentelor, comenzile de formatare, listele interactive și bazele de date logice.

Ce este programarea rapoartelor ABAP?
SAPABAP acceptă două tipuri de programe – programe de raportare și programe de dialog. Programele de raportare sunt utilizate atunci când trebuie afișate cantități mari de date.
Scopul/Utilizarea programelor de raportare
- Acestea sunt utilizate atunci când datele dintr-un număr de tabele trebuie selectate și procesate înainte de prezentare.
- Se utilizează atunci când rapoartele necesită un format special
- Folosit atunci când raportul trebuie descărcat de pe SAP într-o foaie Excel care să fie distribuită.
- Folosit atunci când raportul trebuie trimis prin poștă unei anumite persoane.
Puncte importante de reținut despre programul de raportare
- Programele de raportare sunt întotdeauna programe executabile. Tipul programului este întotdeauna 1.
- Fiecare program de raport corespunde unui anumit tip de aplicație, adică fie cu Vânzări și distribuție, FI – CO etc. Poate fi și aplicație încrucișată, adică tip „*”.
- Programarea rapoartelor este o programare bazată pe evenimente.
- Prima linie a unui program de raportare este întotdeauna Raport .
- Pentru a suprima antetul listei sau numele programului, adăugați Fără titlu de pagină standard este folosit.
- Mărimea liniei pentru un anumit raport poate fi setată utilizând adăugarea dimensiunea liniei .
- Numărul de linii pentru o anumită pagină poate fi setat utilizând adăugarea număr de linii n(n1). N este numărul de linii pentru pagină și N1 este numărul de linii rezervate pentru subsolul paginii.
- Pentru a afișa orice informație sau mesaj de eroare adăugăm o clasă de mesaj la program folosind adăugarea: ID-ul mesajului . Clasele de mesaje sunt menținute în SE91.
Prin urmare, un program de raportare ideal ar trebui să înceapă cu:
Report <report name> no standard page heading line-size <size> line-count <n(n1)> message-id <message class>.
Program de raportare vs. program de dialog
Ambele tipuri de programe rulează în același sistem, însă rezolvă probleme opuse. Un raport citește și afișează date, în timp ce un program de dialog permite utilizatorului să le gestioneze prin intermediul ecranelor.
| Criterii | Program de raportare | Program de dialog |
|---|---|---|
| Tipul programului | Tipul 1, executabil | Tip M, piscină de module |
| început de | Numele programului sau un cod de tranzacție | Doar un cod de tranzacție |
| Controlul debitului | Evenimente precum INITIALIZARE și ÎNCEPERE SELECȚIE | Logică de flux a ecranului cu module PBO și PAI |
| Intrare utilizator | Un ecran de selecție generat | Ecrane proiectate în Screen Painter |
| Utilizare tipică | Afișarea și descărcarea unor volume mari de date | Crearea și modificarea datelor de business |
Ecranul de selecție este locul unde un raport își colectează datele de intrare, așa că este descris în continuare.
Ecran de selecție
„Ecranul de selecție” este ecranul în care se specifică valorile de intrare pentru care ar trebui să ruleze programul.
Ecranul de selecție este în mod normal generat din
- parametrii
- Selectati optiunile
Sintaxă
Selection-screen begin of screen <screen #> selection-screen begin of block <#> with frame title <text> ......... ......... selection-screen end of block <#> selection-screen end of screen <screen #>
parametrii
Parametrii ajută la selectarea dinamică. Acestea pot găzdui o singură valoare pentru un ciclu de execuție a programului.
Sintaxă
Definirea parametrilor ca tip de date
Parameters p_id(30) type c.
Definirea parametrilor precum un câmp de tabel.
Parameter p_id like <table name>-<field name>.
Parametrii pot fi casete de selectare, precum și butoane radio.
Parameters p_id as checkbox.Parameters p_id1 radiobutton group <group name>. Parameters p_id2 radiobutton group <group name>.
Parametrii pot fi listbox.
Parameter p_id like <table name>-<field name> as listbox
Selectati optiunile
O opțiune de selectare este utilizată pentru a introduce un interval de valori sau un set de valori într-un program
Sintaxă
select-options s_vbeln for vbak-vbeln.
Captura de ecran arată câmpurile de introducere cu valoare mică și mare pe care le generează o opțiune de selectare, împreună cu butonul de selecție multiplă.
De asemenea, puteți defini o opțiune de selectare ca o variabilă
select-options s_vbeln for vbak-vbeln no intervals no-extension
Odată ce datele de intrare sunt colectate, programul reacționează la o secvență fixă de evenimente.
Evenimente într-un program de raport ABAP
Programele de raport ABAP sunt programe bazate pe evenimente. Diferitele evenimente dintr-un program de raport sunt:
Încărcare de program
- Declanșează evenimentul asociat într-o sesiune internă după încărcarea unui program de tip 1, M, F sau S.
- De asemenea, rulează blocul de procesare asociat o dată și o singură dată pentru fiecare program și sesiune internă.
- Blocul de procesare LOAD-OF-PROGRAM are aproximativ aceeași funcție pentru un program ABAP de tip 1, M, F sau S ca un constructor are pentru clasele din obiecte ABAP
Inițializare.
- Acest eveniment este executat înainte ca ecranul de selecție să fie afișat.
- Inițializarea tuturor valorilor.
- Puteți aloca valori diferite, altele decât valorile implicite pe ecranul de selecție.
- Puteți completa ecranul de selecție cu unele valori în timpul execuției.
La Selecție-Ecran.
- Evenimentul este procesat când ecranul de selecție a fost procesat (la sfârșitul PAI).
- Validarea și verificările valorilor introduse au loc aici
Începutul selecției.
- Aici programul începe să selecteze valorile din tabele.
Sfârșitul selecției.
- După ce toate datele au fost selectate, acest eveniment scrie datele pe ecran.
Evenimente interactive
- Folosit pentru raportarea interactivă. Este folosit pentru a crea o listă detaliată dintr-o listă de bază.
💡 Sfat: Instrucțiunile scrise fără niciun cuvânt cheie de eveniment aparțin în mod implicit START-OF-SELECTION, motiv pentru care un raport rulează în continuare chiar și atunci când evenimentul lipsește.
Exemplu: Un program simplu de raportare ABAP
Programul de mai jos combină adăugările, ecranul de selecție și evenimentele într-un singur raport funcțional. Acesta citește anteturile comenzilor de vânzare din VBAK pentru numerele introduse pe ecranul de selecție și le scrie ca o listă.
REPORT z_sales_order_list NO STANDARD PAGE HEADING LINE-SIZE 80 LINE-COUNT 65(3) MESSAGE-ID zsd. TABLES: vbak. DATA: lt_vbak TYPE STANDARD TABLE OF vbak, ls_vbak TYPE vbak. * Selection screen SELECT-OPTIONS: s_vbeln FOR vbak-vbeln. PARAMETERS: p_erdat LIKE vbak-erdat. INITIALIZATION. p_erdat = sy-datum. AT SELECTION-SCREEN. IF p_erdat > sy-datum. MESSAGE e001(zsd). " Date must not lie in the future ENDIF. START-OF-SELECTION. SELECT * FROM vbak INTO TABLE lt_vbak WHERE vbeln IN s_vbeln AND erdat LE p_erdat. END-OF-SELECTION. LOOP AT lt_vbak INTO ls_vbak. WRITE: / ls_vbak-vbeln, ls_vbak-erdat, ls_vbak-netwr. HIDE ls_vbak-vbeln. ENDLOOP.
Trei detalii merită menționate. INITIALIZATION completează parametrul date înainte de apariția ecranului de selecție. AT SELECTION-SCREEN validează intrarea și generează un mesaj din clasa ZSD. HIDE stochează numărul de ordine al fiecărui rând scris, astfel încât un dublu clic poate construi o listă secundară din acesta, care face obiectul secțiunii următoare.
Formatarea raportului
ABAP permite ca rapoartele să fie formatate așa cum dorește utilizatorul. De exemplu, „Linii alternative” trebuie să apară în culori diferite, iar linia „Totale” trebuie să apară în galben.
Sintaxă
Format Color n Format Color n Intensified On
n poate corespunde diferitelor numere
Vă rugăm să rețineți că există și alte completări împreună cu formatul
FORMAT COLOR OFF INTENSIFIED OFF INVERSE OFF HOTSPOT OFF INPUT OFF
Programare interactivă a rapoartelor
- Folosind programarea interactivă, utilizatorii pot controla activ recuperarea și afișarea datelor.
- Folosit pentru a crea o listă detaliată pornind de la o listă foarte simplă
- Datele detaliate sunt scrise pe o listă secundară.
- Lista secundară poate fie să suprapună complet primul ecran, fie se poate afișa într-un nou ecran
- Listele secundare pot fi ele însele interactive.
- Prima listă poate, de asemenea, să numească o tranzacție.
- Există diferite evenimente asociate cu programarea interactivă.
Unele comenzi utilizate pentru programarea interactivă
Hotspot
Dacă trageți mouse-ul peste datele afișate în raport, cursorul se schimbă într-o Mână cu degetul arătător întins. Un hotspot poate fi realizat folosind instrucțiunea FORMAT.
Syntax: Format Hotspot On (Off).
Ascunde
Această comandă vă ajută să stocați numele câmpurilor pe baza cărora va efectua procesări ulterioare pentru a obține o listă detaliată. Este scris direct după instrucțiunea WRITE pentru un câmp. Când este selectat un rând, valorile sunt completate automat în variabile pentru utilizare ulterioară.
Syntax: Hide <field-name>.
Rapoartele care citesc mai multe tabele își pot înlocui instrucțiunile SELECT cu o bază de date logică, descrisă mai jos.
Baze de date logice
- În loc să utilizați interogări „Selectați”, puteți utiliza baza de date logică pentru a prelua date pentru un program.
- Bazele de date logice sunt create prin tranzacție SE36
- Numele unei baze de date logice poate avea până la 20 de caractere. Poate începe cu un prefix de spațiu de nume.
- Datele sunt selectate de un alt program și se poate accesa datele folosind GET comanda care plasează datele în zona de lucru .
Avantajele unei baze de date logice față de interogările Select normale.
- Oferă condiții de verificare pentru a vedea dacă introducerea este corectă, completă și plauzibilă
- Conține verificări de autorizare centrală pentru accesul la baza de date
- Îmbunătățiri, cum ar fi îmbunătățirea performanței, se aplică imediat tuturor rapoartelor care utilizează baza de date logică.
Notă: Din cauza complexității implicate, bazele de date logice nu sunt utilizate în majoritatea cazurilor
