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.
6126
Views
Dirty assign auf Feld in interner Tabelle mit Index
von Romaniac » 06.12.2019 12:31 • Verfasst in ABAP® Core
6
Antw.
4227
Views
Standardtexte variabel einbinden
von dame » 25.01.2008 07:54 • Verfasst in ABAP® für Anfänger
2
Antw.
1293
Views
Textelemente variabel abfragen?
von Alexity » 09.09.2019 14:20 • Verfasst in ABAP® für Anfänger
1
Antw.
4828
Views
Strukturfeld variabel ansprechen
von supermario73 » 19.10.2006 13:46 • Verfasst in ABAP® für Anfänger
1
Antw.
2122
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

LSMW-Problem
vor 3 Tagen von mazu gelöst 5 / 1100
ATC Finding in Smartforms
vor einer Woche von sap_enthusiast 2 / 1098

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

LSMW-Problem
vor 3 Tagen von mazu gelöst 5 / 1100
ATC Finding in Smartforms
vor einer Woche von sap_enthusiast 2 / 1098

Unbeantwortete Forenbeiträge

SFP/SEGW - Fehler beim Rendering
letzen Monat von Manfred K. 1 / 86896
Benutzerdefinierte Felder PSP
January 2026 von Rabea1103 1 / 140133