Variabel jede Tabelle lesen mit Assign

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Variabel jede Tabelle lesen mit Assign

Beitrag von Adrian (Specialist / 126 / 61 / 0 ) »
Hallo zusammen,

ich will ein Programm schreiben das mir variabel eine Tabelle einliest und sie mir per html E-Mail zurücksendet.
Jetzt muss ich da mit Assign arbeiten aber das funktioniert irgendwie nicht.

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*& Report  ZINFOMAIL
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zinfomail.

DATA zinfomail TYPE zinfomail.

DATA: dd03t TYPE dd03t.
DATA: dd03l TYPE dd03l.

FIELD-SYMBOLS: <ztabname>   TYPE ANY.
DATA : ztabname(50)  TYPE c.
FIELD-SYMBOLS: <zfieldname> TYPE ANY.
DATA : zfieldname(50)  TYPE c.
DATA zeilen TYPE i.

DATA: header    TYPE sodocchgi1.
DATA: zreceiver TYPE TABLE OF somlreci1.
DATA: receiver  TYPE somlreci1.
DATA: zdata     TYPE TABLE OF solisti1.
DATA: data      TYPE solisti1.


SELECT * FROM zinfomail INTO zinfomail.

  header-obj_name = zinfomail-struktur.

  SELECT SINGLE ddtext FROM dd02t INTO header-obj_descr
    WHERE tabname  = zinfomail-struktur
    AND   as4local = 'A'
    AND   ddtext  <> ''.

  REFRESH zreceiver.
  receiver-receiver = zinfomail-verteiler.
  receiver-express  = 'X'.
  receiver-rec_type = 'U'.
  APPEND receiver TO zreceiver.

  REFRESH zdata.

  data-line = '<html>'.
  APPEND data TO zdata.
  data-line = '<head>'.
  APPEND data TO zdata.
  CONCATENATE '<title>' header-obj_descr '</title>' INTO data-line.
  APPEND data TO zdata.
  data-line = '</head>'.
  APPEND data TO zdata.
  data-line = '</html>'.
  APPEND data TO zdata.
  data-line = ''.
  APPEND data TO zdata.
  data-line = '<table border="1">'.
  APPEND data TO zdata.
  data-line = '<tr>'.
  APPEND data TO zdata.
  CLEAR data.

  SELECT * FROM dd03l INTO dd03l
    WHERE tabname = zinfomail-struktur
    AND   as4local = 'A'
    ORDER BY position.

    SELECT SINGLE ddtext FROM dd03t INTO data-line
      WHERE tabname = zinfomail-struktur
      AND   as4local = 'A'
      AND   fieldname = dd03l-fieldname.

    CONCATENATE '<th>' data-line '</th>' INTO data-line.
    APPEND data TO zdata.
    CLEAR data.

  ENDSELECT.

  data-line = '</tr>'.
  APPEND data TO zdata.

  CLEAR ztabname.
  MOVE zinfomail-struktur TO ztabname.
  ASSIGN (ztabname) TO <ztabname>.

  SELECT * FROM (zinfomail-struktur) INTO <ztabname>.

    SELECT * FROM dd03l INTO dd03l
      WHERE tabname = zinfomail-struktur
      AND   as4local = 'A'
      ORDER BY position.

      UNASSIGN <zfieldname>.
      CLEAR zfieldname.
      ASSIGN dd03l-fieldname TO <zfieldname>.

      IF sy-subrc = 0.
        CONCATENATE '<th>' <ztabname>-<zfieldname> '</th>' INTO data-line.
        APPEND data TO zdata.
        CLEAR data.
      ENDIF.
    ENDSELECT.

  ENDDO.

  CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
    EXPORTING
      document_type              = 'HTM'
      commit_work                = 'X'
      document_data              = header
    TABLES
      object_content             = zdata
      receivers                  = zreceiver
    EXCEPTIONS
      too_many_receivers         = 1
      document_not_sent          = 2
      document_type_not_exist    = 3
      operation_no_authorization = 4
      parameter_error            = 5
      x_error                    = 6
      enqueue_error              = 7
      OTHERS                     = 99.

  WRITE sy-subrc.

ENDSELECT.
Vielen Dank für die Hilfe

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


Re: Variabel jede Tabelle lesen mit Assign

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Hi!

Um die Tabelle auzulesen brauchst du einen entsprechenden Speicherbereich:

Code: Alles auswählen.

data lr_line type ref to data.
create data lr_line type (ztabname).
assign lr_line->* to <ztabname>.
Um die Spalten daraus auszulesen musst du folgendes machen:

Code: Alles auswählen.

field-symbols <la_field> type any.
assign component dd03l-fieldname of structure <ztabname> to <la_field>.
Um den Inhalt der Tabellenspalte für deine Ausgabe aufzubereiten, solltest du diesen über ein Text oder Stringfeld konvertieren:

Code: Alles auswählen.

data ld_text type string.
ld_text = <la_field>.
CONCATENATE '<td>' ld_text '</td>' INTO data-line.
lg ADT

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Adrian

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Variabel jede Tabelle lesen mit Assign

Beitrag von Adrian (Specialist / 126 / 61 / 0 ) »
Perfekt.

Vielen Dank.

Seite 1 von 1

Vergleichbare Themen

4
Antw.
2477
Views
Feldnamen einer internen Tabelle variabel festlegen.
von Kojak » 03.11.2005 12:08 • Verfasst in ABAP® für Anfänger
5
Antw.
3009
Views
Dirty assign auf Feld in interner Tabelle mit Index
von Romaniac » 06.12.2019 12:31 • Verfasst in ABAP® Core
1
Antw.
4327
Views
Strukturfeld variabel ansprechen
von supermario73 » 19.10.2006 13:46 • Verfasst in ABAP® für Anfänger
2
Antw.
617
Views
Textelemente variabel abfragen?
von Alexity » 09.09.2019 14:20 • Verfasst in ABAP® für Anfänger
6
Antw.
3336
Views
Standardtexte variabel einbinden
von dame » 25.01.2008 07:54 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 37 Minuten von Bright4.5 1 / 15
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1686
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8288