for all entries

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

for all entries

Beitrag von Dieter (ForumUser / 12 / 0 / 0 ) »
Hallo zusammen,

ich erzeuge mittels
call method cl_alv_table_create=>create_dynamic_table
zwei interne Tabellen (CE3 und CE4 des COPA)

Der erste select der ce3 daten funktioniert.
Nun wollte ich mittels select for all entries in ce3... alle zugehörigen ce4
sätze lesen.

Problem: Wie kann ich die where bedingung erzeugen wenn ich ich die tabellen mittels feldsymbolen anspreche ?

Der Syntaxcheck liefert:

Der angegebene Typ besitzt keine Struktur und hat daher auch keine Komponente mit Name PAOBJNR. :?


Danke

Dieter

Code: Alles auswählen.


select  * from (lv_tabnam)
        into corresponding fields of table <fs_4table>
        for all entries in <fs_3table>
        where PAOBJNR = <fs_3table>-PAOBJNR
        and   PASUBNR = <fs_3table>-PASUBNR

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


Klappt nicht

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
Moin.

Leider funktioniert dieses Konstrukt genau gar nicht. :(

Ich meine, unter 6.x0 müsste das mit dynamischen Tabellen klappen, die mittels CREATE DATA erzeugt werden, aber sicher bin ich mir da nicht. Probiere ich ggf. nochmal aus.

Gruss,
Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

Beitrag von Kalle ( / / 0 / 3 ) »
Hi Dieter,

ich weiß nicht, ob die Tabelle, die der ALV erzeugt eine Tabelle mit Kopfzeile ist. Denn wenn das nicht der Fall ist kann das Konstrukt nicht funktionieren. Unter der Annahme, dass eine Kopfzeile da ist, kannst Du versuchen, das ganze mit einer dynamischen where-Klausel zu machen:

Also in der Art (Beispiel aus SAP-Doku):

Code: Alles auswählen.

PARAMETERS: airline(2) TYPE C, 
            date       TYPE D. 
DATA: where_clause TYPE STRING, 
      connid       TYPE sflight-connid. 

CONCATENATE     'carrid = ''' airline '''' 
            ' AND fldate = ''' date '''' INTO where_clause. 

SELECT connid FROM sflight INTO connid 
  WHERE (where_clause). 
  WRITE: / date, airline, connid. 
ENDSELECT.
Gruss,
Kalle

Beitrag von Wolfgang G. Propfe (ForumUser / 23 / 0 / 0 ) »
Dear Dieter:
The method call method cl_alv_table_create=>create_dynamic_table uses a subroutine generation, so you might as well generate a subroutine yourself, declare the table, and declare typed field-symbols. Then you should be able to use the field symbols (or the itab name itself) to get to the fields.

Regards,
Wolfgang

Beitrag von DRABAP (ForumUser / 30 / 0 / 1 ) »
Hallo Dieter,
der Syntaxfehler kommt natürlich zurecht, weil <fs_3table> sicherlich vom Typ ANY TABLE ist und damit die Struktur dem Compiler nicht bekannt ist. Wenn Du nun aber genau weiss, dass Du das Feld PAOBJNR auf der Datenbank vergleichen willst (deren Namen Du nicht kennst), dass kennst Du doch aber sicherlich auch den Typ von PAOBJNR. Leg doch die Forallentries-Tabelle dann einfach statisch über diesem Typ an. Dann klappt es auch. Wenn der Typ von PAOBJNR je nach Tabelle unterschiedlich ist, so bleibt Dir nichts anderes übrig als auch die Forallentries-Tabelle dynamisch zu erzeugen. In diesem Fall muss dann aber auch die Where-Bedingung dynamisch sein.
Dr. ABAP

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1338
Views
FOR ALL ENTRIES IN
von melisy » 02.04.2009 12:11 • Verfasst in ABAP® für Anfänger
6
Antw.
3795
Views
FOR ALL ENTRIES IN
von Bajdu » 21.08.2006 14:25 • Verfasst in ABAP® für Anfänger
1
Antw.
2229
Views
Select mit all entries !!!!!
von Apabtalker » 01.04.2010 12:55 • Verfasst in ABAP® für Anfänger
4
Antw.
5718
Views
HANA und for all entries
von ST22 » 14.06.2016 11:19 • Verfasst in SAP HANA für Anfänger
1
Antw.
1858
Views
For all entries bei Stringtabelle
von Azreal » 03.12.2008 11:04 • Verfasst in ABAP® Core

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.