Namen eines Feldsymboles erst zur Laufzeit bekannt

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

Namen eines Feldsymboles erst zur Laufzeit bekannt

Beitrag von ST22 (Specialist / 279 / 43 / 41 ) »
Hallo Forum,
Ich habe folgendes Problem:
Über Customizing bekomme ich in einer Formroutine zur Laufzeit den Namen einer Programmstruktur und den Namen eines Feldsymbols z.B. CUSTOMIZING-Programmstruktur = 'GS_PROG_STTRUCTURE' CUSTOMIZING-Feldsymbol = '<FS_FIELD_SYMBOL>.

wie bekomme ich den assign hin?

assign (CUSTOMIZING-Programmstruktur) to ?.
Wie kann ich den Namen des Feldsymbols dynamisch angeben, geht das überhaupt oder muss ich irgendwelche Umwege über weitere Feldsymbole machen?

Danke für eure Hilfe!

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


Beitrag von Gast ( / / 0 / 3 ) »
Hab ich noch nicht verstanden. Den Feldnamen selbst hast Du zur Laufzeit in einem Feldsymbol? Feldnamen und Struktur oder nur Feldnamen?

Wenn es Feldnamen und Struktur ist, brauchst Du ja lediglich nur noch einen assign auf ein weiteres Feldsymbol zu machen:

Code: Alles auswählen.

assign (<fieldnamestructure>) to <field>.
Ansonsten müßtest Du so vorgehen:

Code: Alles auswählen.

assign component <fieldname> of structure struc to <field>.

Re: Namen eines Feldsymboles erst zur Laufzeit bekannt

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
ST22 hat geschrieben:Hallo Forum,
Ich habe folgendes Problem:
Über Customizing bekomme ich in einer Formroutine zur Laufzeit den Namen einer Programmstruktur und den Namen eines Feldsymbols z.B. CUSTOMIZING-Programmstruktur = 'GS_PROG_STTRUCTURE' CUSTOMIZING-Feldsymbol = '<FS_FIELD_SYMBOL>.

wie bekomme ich den assign hin?

assign (CUSTOMIZING-Programmstruktur) to ?.
Wie kann ich den Namen des Feldsymbols dynamisch angeben, geht das überhaupt oder muss ich irgendwelche Umwege über weitere Feldsymbole machen?

Danke für eure Hilfe!
grundsätzlich funktioniert das Zuweisen eines dynamisch definierten Feldsymbols genauso, wie auch bei 'normalen' Variablen.

Generell gilt, dass die entsprechenden Bezeichner im entsprechenden Coding bekannt sein müssen.

Ich habe das sicherheitshalber auch noch einmal ausprobiert:

Code: Alles auswählen.

data:
    fs_value type i value 5,
    fs_name    type char8 value '<FS_VAL>',
    fs_text    type char40.
field-symbols:
    <fs_val> type any,
    <fs>     type any.

assign fs_value to <fs_val>.
assign (fs_name) to <fs>.

write <fs> to fs_text left-justified.
concatenate
    'Der Wert ist ='
    fs_text
    into fs_text
    separated by space.

CALL FUNCTION 'POPUP_TO_CONFIRM'
  EXPORTING
*   TITLEBAR                    = ' '
*   DIAGNOSE_OBJECT             = ' '
    text_question               = fs_text
*   TEXT_BUTTON_1               = 'Ja'(001)
*   ICON_BUTTON_1               = ' '
*   TEXT_BUTTON_2               = 'Nein'(002)
*   ICON_BUTTON_2               = ' '
*   DEFAULT_BUTTON              = '1'
*   DISPLAY_CANCEL_BUTTON       = 'X'
*   USERDEFINED_F1_HELP         = ' '
*   START_COLUMN                = 25
*   START_ROW                   = 6
*   POPUP_TYPE                  =
*   IV_QUICKINFO_BUTTON_1       = ' '
*   IV_QUICKINFO_BUTTON_2       = ' '
* IMPORTING
*   ANSWER                      =
* TABLES
*   PARAMETER                   =
* EXCEPTIONS
*   TEXT_NOT_FOUND              = 1
*   OTHERS                      = 2
          .
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
/edit: etwaige Überschneidungen mit dem vorangegangen Poster sind rein zufällig und waren nicht beabsichtigt.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von ST22 (Specialist / 279 / 43 / 41 ) »
Hallo,

danke für die schnelle Antwort,
aber ich glaube, das trifft noch nicht mein Problem, hier ein kleines Programm:

REPORT zj_field_symbols .
* Datenndefinitionen im TOP-Include (global)
FIELD-SYMBOLS:
<fs_tvko> TYPE ANY,
<fs_t001> TYPE ANY.
DATA:
gs_tvko TYPE tvko,
gs_t001 TYPE t001.

START-OF-SELECTION.

BREAK-POINT.
* Aufruf der Formroutine, Feldsymbole sind noch nicht zugewiesen
* danach soll <FS_TVKO> die Struktur von GS_TVKO haben
PERFORM feld_symbol USING 'TVKO'.
BREAK-POINT.
* danach soll <FS_T001> die Struktur von GS_T001 haben
PERFORM feld_symbol USING 'T001'.
BREAK-POINT.

END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form feld_symbol
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0023 text
*----------------------------------------------------------------------*
FORM feld_symbol USING p_name.
DATA:
BEGIN OF customizing,
prog_structure(30),
field_symbol(30),
END OF customizing.

FIELD-SYMBOLS:
<lokales_fs>,
<fs_name>,
<fs_struktur>.

* das würde dynamisch aus dem Customizing ermittelt
CASE p_name.
WHEN 'TVKO'.
customizing-prog_structure = 'GS_TVKO'.
customizing-field_symbol = '<FS_TVKO>'.
ASSIGN (customizing-prog_structure) TO <fs_struktur>.
WHEN 'T001'.
customizing-prog_structure = 'GS_T001'.
customizing-field_symbol = '<FS_T001>'.
ENDCASE.
* nach ASSIGN soll das Feldsymbol, dass in customizing-field_symbol
* benannt ist, die Struktur haben, die in customizing-prog_structure
* steht
ASSIGN COMPONENT 'FIELD_SYMBOL'
OF STRUCTURE customizing TO <fs_name>.
ASSIGN <fs_struktur> TO <fs_name>.
* das bringt logischerweise Syntaxerror, spiegelt aber wieder, was ich
* eigentlich vorhabe
* ASSIGN (customizing-prog_structure) TO customizing-field_symbol.

ENDFORM. " feld_symbol

Vielleicht habe ich wirklich heute einen Black-Out und mir kann jemand auf die Sprünge helfen.

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
wenn ich Dich jetzt richtig verstanden habe, möchtest Du eine Variante

Code: Alles auswählen.

ASSIGN (customizing-prog_structure) TO (customizing-field_symbol).
verwenden.
Gemäß Hilfe, ist eine solche Variante aber nicht vorgesehen. :(

Statt dessen musst Du Dir mal die Möglichkeiten mittels CREATE DATA anschauen. Dort könntest Du etwas finden, mit dem Du Deine dynamischen Verweise verwalten kannst.

Auf die Schnelle gedacht (vorsicht Explosionsgefahr... :twisted: ) würde ich versuchen wollen, die Daten in einer Tabelle mit 'Spalte 1 = Name' und 'Spalte 2 = REF TO DATA' aufzubauen.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Seite 1 von 1

Vergleichbare Themen

4
Antw.
2206
Views
SY-REPID nicht bekannt?!?
von ralf.wenzel » 08.01.2008 08:08 • Verfasst in ABAP® Core
5
Antw.
2521
Views
BW Modellierungs Tool bekannt?
von kid » 07.04.2006 11:25 • Verfasst in Sonstige Module
6
Antw.
8851
Views
Referenz auf lokale Klasse -> Methode nicht bekannt
von ChrisB85 » 10.09.2007 10:52 • Verfasst in ABAP Objects®
2
Antw.
1918
Views
Generische Namen für Flatfiles
von miramar » 08.01.2007 15:36 • Verfasst in Sonstige Module
2
Antw.
1270
Views
Namen der Web-Dynpro-Componenten
von RiffRaff » 17.09.2008 09:06 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Eclipse - warum/wann verwendet ihr es [nicht]
vor 24 Minuten von tar 21 / 1373
Dialog-Container mit Toolbar/Status
vor 2 Stunden von DeathAndPain gelöst 22 / 2781
Daten an Tabelle binden
vor 7 Stunden von Lukas Sanders 2 / 863
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 417

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

Eclipse - warum/wann verwendet ihr es [nicht]
vor 24 Minuten von tar 21 / 1373
Dialog-Container mit Toolbar/Status
vor 2 Stunden von DeathAndPain gelöst 22 / 2781
Daten an Tabelle binden
vor 7 Stunden von Lukas Sanders 2 / 863
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 417

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2454
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9040