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 / 4483 / 231 / 1205 ) »
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

5
Antw.
6158
Views
Dirty assign auf Feld in interner Tabelle mit Index
von Romaniac » 06.12.2019 12:31 • Verfasst in ABAP® Core
6
Antw.
4258
Views
Standardtexte variabel einbinden
von dame » 25.01.2008 07:54 • Verfasst in ABAP® für Anfänger
2
Antw.
1328
Views
Textelemente variabel abfragen?
von Alexity » 09.09.2019 14:20 • Verfasst in ABAP® für Anfänger
1
Antw.
4857
Views
Strukturfeld variabel ansprechen
von supermario73 » 19.10.2006 13:46 • Verfasst in ABAP® für Anfänger
1
Antw.
2134
Views
Batch input variabel steuern
von Kojak » 08.08.2006 15:00 • Verfasst in ABAP® Core

Ü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

Aktuelle Forenbeiträge

Materialstammerweiterung: Neuer Reiter
vor 3 Tagen von DeathAndPain gelöst 4 / 397
Ermittlung der Arbeitstage (Mosid)
vor 4 Tagen von Radinator 11 / 46071
LSMW-Problem
vor einer Woche von DeathAndPain gelöst 6 / 3958
SFP (Adobe Forms) QR-Code wird nicht angezeigt
vor einer Woche von Sebastian82 gelöst 4 / 2449

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.

Aktuelle Forenbeiträge

Materialstammerweiterung: Neuer Reiter
vor 3 Tagen von DeathAndPain gelöst 4 / 397
Ermittlung der Arbeitstage (Mosid)
vor 4 Tagen von Radinator 11 / 46071
LSMW-Problem
vor einer Woche von DeathAndPain gelöst 6 / 3958
SFP (Adobe Forms) QR-Code wird nicht angezeigt
vor einer Woche von Sebastian82 gelöst 4 / 2449