Interne Tabelle Füllen

Getting started ... Alles für einen gelungenen Start.
16 Beiträge • Seite 1 von 2 (current) Nächste
16 Beiträge Seite 1 von 2 (current) Nächste

Interne Tabelle Füllen

Beitrag von ABAPNeuling (ForumUser / 2 / 0 / 0 ) »
Hallo,

Habe da eine Frage,

möchte gerne ein Feld füllen mit dem Wert O_001 bis O_100.

Wie kann ich das Feld Deklarieren?

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von Gast ( / / 0 / 3 ) »
Hi,

Code: Alles auswählen.

data: lv_feld type char5.
oder

Code: Alles auswählen.

data:  lv_feld(5) type c.

Beitrag von ABAPNeuling (ForumUser / 2 / 0 / 0 ) »
Wie kann ich den dieses Feld dann füllen mit O_000 bis 0_100?? :shock:

Beitrag von sev ( / / 0 / 3 ) »
watch this:

Code: Alles auswählen.

data: z(3) type n,
     field(5) type c.

data: mytab type standard table of char5.


do 100 times.
 move sy-index to z.
 concatenate 'O_' z into field.
 append field to mytab.
enddo.
mytab enthält 100 Einträge von O_001 bis O_100.

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Man kann das "Feld" auch als Struktur definieren:

Code: Alles auswählen.

data: 
  begin of itab occurs 0,
    char(2) type c,
    numc(3) type n,
  end of itab.

itab-char = 'O_'.
itab-numc = 0.
do 100 times.
  add 1 to itab-numc.
  append itab.
enddo.
Gruß, Enno

Beitrag von ABAPneuling1 ( / / 0 / 3 ) »
Danke das hat mir sehr viel weitergeholen, der füllt jetzt meine Interne Tabelle.
Will aber jetzt das er jetzt beide Felder überprüft und das ausgibt was nicht vorhanden ist???
Irgendwie klappt das nicht so ganz, mit dem CODE zeigt der mir alle Felder an:

zb: O_000
O_006
O_011
O_026
O_038
O_159
O_159_001
O_159_002


Code sieht so aus:

REPORT zrolle.

TABLES: agr_define.




DATA: BEGIN OF zrolle OCCURS 500,
bezeichnung(12) TYPE c,
agr_name LIKE agr_define-agr_name,
parent_agr LIKE agr_define-parent_agr,
create_usr LIKE agr_define-create_usr,
create_dat LIKE agr_define-create_dat,
END OF zrolle.

SELECT * FROM agr_define.

MOVE-CORRESPONDING agr_define TO zrolle .


APPEND zrolle.
ENDSELECT.


DATA:
BEGIN OF itab OCCURS 0,
char(2) TYPE c,
numc(3) TYPE n,
END OF itab.

itab-char = 'O_'.
itab-numc = 0.
DO 100 TIMES.
ADD 1 TO itab-numc.

IF itab-numc CO zrolle-agr_name.
LOOP AT zrolle.
WRITE: / zrolle-agr_name.
ENDLOOP.

else.
Write: / 'Nichts gefunden'.
ENDIF.



APPEND itab.
ENDDO.

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Hallo,

meinst du in etwa sowas ??
mfg
Richard

Code: Alles auswählen.

TYPES: BEGIN OF zrolle ,
        bezeichnung(12) TYPE c,
        agr_name        LIKE agr_define-agr_name,
        parent_agr      LIKE agr_define-parent_agr,
        create_usr      LIKE agr_define-create_usr,
        create_dat      LIKE agr_define-create_dat,
      END OF zrolle.


DATA: it_zrolle TYPE TABLE OF zrolle,
      wa_zrolle TYPE zrolle.

DATA: z(3)     TYPE n,
      field(5) TYPE c.


START-OF-SELECTION.

  SELECT * FROM agr_define
    INTO CORRESPONDING FIELDS OF TABLE it_zrolle.

  SORT it_zrolle.

  DO 100 TIMES.
    MOVE sy-index TO z.
    CONCATENATE 'O_' z INTO field.

    READ TABLE it_zrolle INTO wa_zrolle
                    WITH KEY agr_name = field
                    BINARY SEARCH.

    IF sy-subrc <> 0.
      WRITE: / field,
               ' nicht gefunden!'.
    ENDIF.
  ENDDO.

Beitrag von ABAPneuling1 ( / / 0 / 3 ) »
Nee damit geht das nicht, er zeigt mir die gefüllten Tabellen von O_001 bis O_100 und dahinter steht nicht drauf ??
O_001 nicht gefunden!
O_002 nicht gefunden!
O_003 nicht gefunden!
O_004 nicht gefunden!
O_005 nicht gefunden!

Ich möchte aber das er die Beiden Tabllen übeprüft und mir dann alles anzeigt was nicht in der Tabelle agr_define-agr_name vorhanden ist.
Zb:

O_001 = O_001 nicht anzeigen
O_002 = leer Anzeigen

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Hai,

glaub mal, irgendwie versteh ich dich nicht ganz.

das prog durchlauft alle 'nummern' (O_001, O_002...O_100) und prüft, ob die nummer in der tabelle agr_define im feld agr_name vorkommt.
kommt sie vor: passiert nichts
kommt sie nicht vor: wird die nummer ausgegeben
zB O_002 nicht gefunden!

mfg
Richard

ABABneuling1

Beitrag von Gast ( / / 0 / 3 ) »
JA genau so :roll:

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
und genau das mach das prog.

wenn es in der tabelle agr_define kein O_001 bis O_100 gibt, ist das ergebniss:
O_001 nicht gefunden!
O_002 nicht gefunden!
O_003 nicht gefunden!
.
.
O_100 nicht gefunden!

wenn das dein ergebniss ist, dann gibt es keinen entsprechenden text (nummer) in der tabelle.

mfg
richard

Beitrag von Gast ( / / 0 / 3 ) »
Hmm aber in der Tabelle sind schon einige Nummer drin wie zB: O_001

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Hmm aber in der Tabelle sind schon einige Nummer drin wie zB: O_001

steht NUR O_001 im feld, oder kommt noch ein weiter text vor?? (zb: NumO_100)

mfg

Beitrag von ABAPneuling1 ( / / 0 / 3 ) »
also jetzt macht der das , er zeigt mir aber alles an was in dem Feld drin ist.

nicht gefunden!
nicht gefunden!
nicht gefunden!
nicht gefunden!
nicht gefunden!
O_006 nicht gefunden!
O_006 nicht gefunden!
O_006 nicht gefunden!
O_006 nicht gefunden!
O_011 nicht gefunden!
O_011 nicht gefunden!
O_011 nicht gefunden!
O_011 nicht gefunden!
O_011 nicht gefunden!
O_011 nicht gefunden!
O_011 nicht gefunden!
O_011 nicht gefunden!

und zeigt mir diese dann auch mehrmals an

folgendes habe ich geändert:

IF sy-subrc <> 0.
WRITE: / wa_zrolle-agr_name,
' nicht gefunden!'.

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
ist auch klar:
1) read: O_001 gibts net - wa_zrolle ist leer
ausgabe nix & nicht gefunden
2) read: O_002 gibts net - wa_zrolle ist leer
ausgabe nix & nicht gefunden
3) read: O_003 gibts net - wa_zrolle ist leer
ausgabe nix & nicht gefunden
4) read: O_004 gibts net - wa_zrolle ist leer
ausgabe nix & nicht gefunden
5) read: O_005 gibts net - wa_zrolle ist leer
ausgabe nix & nicht gefunden
6) read: O_006 gibt es - wa_zrolle wird gefüllt
ausgabe keine
7) read: O_007 gibts net - wa_zrolle nicht NEU befüllt
ausgabe O_006 & nicht gefunden


das heißt, es müßten die nummer dastehen, die es gibt.

Nee damit geht das nicht, er zeigt mir die gefüllten Tabellen von O_001 bis O_100 und dahinter steht nicht drauf ??
O_001 nicht gefunden!
O_002 nicht gefunden!
O_003 nicht gefunden!
O_004 nicht gefunden!
O_005 nicht gefunden!
da sollte dann eigentlich O_006 fehlen, und es mit O_007 weitergehen.

mfg
richard

Vergleichbare Themen

10
Antw.
4709
Views
Interne Tabelle mit Zeilen füllen
von Sonne1234 » 18.12.2019 16:30 • Verfasst in ABAP® für Anfänger
3
Antw.
3287
Views
Interne Tabelle dynamisch füllen
von stas » 27.10.2007 10:41 • Verfasst in ABAP® Core
12
Antw.
1062
Views
Interne Tabelle füllen und ausgeben
von Armin93 » 01.10.2019 06:55 • Verfasst in ABAP® für Anfänger
8
Antw.
4609
Views
dynamische interne Tabelle füllen
von cuncon » 20.03.2018 16:04 • Verfasst in ABAP® für Anfänger
12
Antw.
7689
Views
dynamisch interne Tabelle füllen
von LittleT » 03.04.2007 15:27 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.