[54362] in SAPr3-news
Re: Select auf dyn. Tabellennamen
daemon@ATHENA.MIT.EDU (news.t-online.de)
Fri May 6 09:28:19 2005
To: sapr3-news@mit.edu
Date: Fri, 6 May 2005 15:26:39 +0200
From: "news.t-online.de" <hj.traebert@web.de>
Message-ID: <d5frao$17b$00$1@news.t-online.com>
Hallo,
das Problem ist ab 46c recht einfach zu lösen:
REPORT mein_geniales_programm.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS: pv_table TYPE tabname,
pv_anz TYPE i.
SELECTION-SCREEN END OF BLOCK b1.
DATA: ref_tableline TYPE REF TO data.
FIELD-SYMBOLS: <line> TYPE ANY,
<field> TYPE ANY.
START-OF-SELECTION.
* 1. Objekt erzeugen
CREATE DATA ref_tableline TYPE (pv_table).
* 2. dem Kind einen Namen geben um zugreifen zu können
ASSIGN ref_tableline->* TO <line>.
* 3. verwenden
SELECT * INTO <line>
FROM (pv_table).
IF sy-dbcnt GT pv_anz.
**** NICHT SY-INDEX, der bleibt hier auf 0 ****
EXIT.
ENDIF.
* where ginge auch dynamisch mit 'where itab' (siehe Online Doku)
DO.
ASSIGN COMPONENT sy-index
* hier passt der SY-INDEX
OF STRUCTURE <line> TO <field>.
IF sy-subrc NE 0.
NEW-LINE.
EXIT.
ENDIF.
WRITE: <field>.
ENDDO.
ENDSELECT.
Ab WAS sind auch dynamische Tabellen mit create Data möglich.
Bis dahin müsste man sich mit GENERATE SUBROUTINE POOL ...
behelfen.
Gruss
Hans-Jürgen
"Matze" <sonstig_mre_at_@gmx.de> schrieb im Newsbeitrag
news:d5b9j8$l0$01$1@news.t-online.com...
> Hallo,
> ich brauche ein Programm, das den Inhalt einer Tabelle (Parameter)
> downloaded. Folgender Versuch scheitert aber an der into-Zuweisung.
> Bei
> einem Charakter-Arbeitsbereich werden die gepackten Zahlen nicht
> konvertiert. Für Ideen bin ich dankbar.
>
> Viele Grüße
> Matthias
>
> REPORT Z_DOWNLOAD_TABLE .
> TABLES: dd02l, dd03l.
>
> DATA: i_dd03l LIKE dd03l OCCURS 0 WITH HEADER LINE,
> wa(2000).
> FIELD-SYMBOLS <wa> TYPE any.
>
> PARAMETERS: p_table LIKE DD02L-TABNAME OBLIGATORY,
> p_file(200),
> p_anz LIKE SY-TFILL, " nur ein paar Zeilen
> p_trenn(1) DEFAULT ';',
> p_out AS CHECKBOX.
>
>
> ASSIGN (p_table) TO <wa>. --> hier ist das Problem
> SELECT * FROM (p_table) INTO <wa>. ---> bzw. hier
> WRITE:/ <wa>.
> IF SY-INDEX > p_anz and
> p_anz > 0.
> EXIT.
> ENDIF.
>
> ENDSELECT.
>
>
>