Dynamischer Inhalt von Tabellenfeldern

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

Dynamischer Inhalt von Tabellenfeldern

Beitrag von MacGro (ForumUser / 1 / 0 / 0 ) »
Hallo,

ich bin recht neu auf dem Gebiet der SAP / ABAP – Programmierung und hätte nun eine kleine Frage:
Ich versuche derzeit einem Feld einer Tabelle quasi einen dynamischen Inhalt zu geben. In diesem Feld soll am ende buchungskreis_jahr_periode drin stehen, bzw die jewiligen Werte dafür. Das Problem dabei ist, dass ich dies in einer festen Transaktion versuche, ich kann also die Transaktion nicht direkt umprogrammieren. Ich muss also das Feld irgendwie anders automatisch befüllen lassen.

Meine Idee wäre ja, dass ich in das Feld quasi 3 Variablen schreib und diese zusammensetzen lassen, in etwa so: $variable1_$variable2_$variable3
Würde das funktionieren? Ansonsten würde mir da noch einfallen, dass ich ein ABAP Programm schreibe und diese Programm irgendwie diesem einen Feld zuweise, damit dieses Feld mit dem Ergebnis gefüllt wird. Ist sowas in der Art machbar!?

Ich hoffe, ich habe mich halbwegs verständlich ausdrücken können.

Mit freundlichen Grüßen,
Marco Grosch

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


Re: Dynamischer Inhalt von Tabellenfeldern

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
hi!

Ich schätze mal mit Tabelle meinst du eine Datenbanktabelle und du willst an diese ein weiteres Feld anhängen.
In wie weit hast du Zugriff und Änderungsrechte auf diese Tabelle? Handelt es sich um eine Z*-Tabelle? (Also eine im Kundennamensraum)
Wenn es eine SAP-Standardtabelle ist, kannst du mittels APPEND weitere Felder hinzufügen. SE11 -> Datenbanktabelle -> Append-Struktur.
Aber dir muss bewusst sein, dass diese Felder in allen Standardanwendungen dann trotzdem ignoriert werden.
Du musst dich um das Befüllen/Auslesen der Daten selbst kümmern. z.B. indem du dich bei den Standardanwendungen mittels sog. Enhancements (BAdI/User-Exit/usw.) dranhängst. Ob es für deine Anwendung ein entsprechendes Badi gibt und wie du es verwenden kannst, da müssen dir wahrscheinlich andere weiterhelfen, weil es sich höchstwahrscheinlich um FI handeln wird und damit hab ich wenig am Hut.

Aber du musst schon sagen um welche SAP-Komponente/Tabelle es eigentlich geht :P

lg ADT
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: Dynamischer Inhalt von Tabellenfeldern

Beitrag von Paddy (ForumUser / 21 / 5 / 0 ) »
Also irgendwie verstehe ich die Logik dieser Rtti Klassen nicht wirklich.... ;-(

ich habe eine dref, die mit type table to sflight instantiiert wurde. Ich gehe daher davon aus, dass ich die statische Methode

cl_abap_datadescr=>describe_by_data( dref ) aufrufe und dies an die Referenz lo_refdescr übergebe. Da ziehe ich mir den realtiven Namen mit string = lo_refdescr->get_relative_name( ). heraus. Aber irgendwie funktioniert das alles überhaput nicht. Gibt es irgendwo eine Anleitung, welche statische Methode ich aufrufen muss um welches Ergebnis zu erzielen?

Vielen Dank im Voraus

Re: Dynamischer Inhalt von Tabellenfeldern

Beitrag von black_adept (Top Expert / 4098 / 128 / 941 ) »
Hallo Paddy,

eine Anleitung habe ich zwar nicht - aber wenn man sich die Methoden von cl_abap_datadescr anschaut findet man auch die Methoden DESCRIBE_BY_OBJECT_REF und DESCRIBE_BY_DATA_REF.
Und wenn ich dich richtig verstanden habe ist doch dref eine Referenz auf eine Tabelle, wodurch die letztere der beiden obigen Methoden die für dich Relevante sein sollte.

(DESCRIBE_BY_DATA gibt dir bestimmt Informationen über deine Referenzvariable zurück und nicht über das was referenziert wird )
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Dynamischer Inhalt von Tabellenfeldern

Beitrag von Paddy (ForumUser / 21 / 5 / 0 ) »
Hallo,
black_adept hat geschrieben:...(DESCRIBE_BY_DATA gibt dir bestimmt Informationen über deine Referenzvariable zurück und nicht über das was referenziert wird )
Das Problem ist, dass ich selbst mit describe_by_data_ref nicht auf den Typ komme.

Ich möchte doch eigentlich nur wissen, mit welchem Type dref instantiiert wurde. Ich habe aber bisher nicht herausgefunden wie. Gibt es da überhaupt ne Möglichkeit?

Code: Alles auswählen.

data dref type ref to data.

create data dref type table of sflight.

data lo_refdescr type ref to cl_abap_refdescr.
data lo_tabledescr type ref to cl_abap_tabledescr.
data lo_typedescr type ref to cl_abap_typedescr.
data lo_datadescr type ref to cl_abap_datadescr.
data lo_complexdescr type ref to cl_abap_complexdescr.
data string type string.
data bool type abap_bool.


lo_typedescr ?= cl_abap_typedescr=>describe_by_data_ref( dref ).

bool = lo_typedescr->is_ddic_type( ).

Re: Dynamischer Inhalt von Tabellenfeldern

Beitrag von Paddy (ForumUser / 21 / 5 / 0 ) »
ok, ich habe es rausbekommen... hae irgendwie die Methode get_table_line_type übersehen....

Code: Alles auswählen.

lo_typedescr ?= cl_abap_typedescr=>describe_by_data_ref( dref ).

lo_tabledescr ?= lo_typedescr.
lo_datadescr = lo_tabledescr->get_table_line_type( ).


string = lo_datadescr->get_relative_name( ).

Re: Dynamischer Inhalt von Tabellenfeldern

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
*hehehe*

Wenn man selbst ein wenig herum experimentiert, findet man oft überaschende Lösungen :P

Zur Sicherheit kannst du noch LO_TYPEDESCR->KIND EQ CL_ABAP_TYPEDESCR=>KIND_TABLE überprüfen. Sonst bekommst du uU einen Kurzdump bei ?= wenn z.B. DREF keine Tabelle ist.

lg ADT

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

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

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1412
Views
Metadaten zu Tabellenfeldern
von m.schwertle » 25.01.2008 14:06 • Verfasst in ABAP® Core
2
Antw.
1249
Views
Fragen und Probleme zu Tabellenfeldern
von markus1234 » 14.11.2016 15:55 • Verfasst in ABAP® Core
13
Antw.
7728
Views
Dynamischer Selection Screen mit dynamischer Suchhilfe
von Johnny11 » 26.03.2014 08:19 • Verfasst in ABAP® Core
2
Antw.
1956
Views
Dynamischer Methodenaufruf mit dynamischer Tabelle
von mark.thk » 12.12.2018 10:34 • Verfasst in ABAP Objects®
5
Antw.
4698
Views
Dynamischer Methodenaufruf mit dynamischer Tabelle
von Tommy Nightmare » 08.09.2017 13:23 • Verfasst in ABAP Objects®

Aktuelle Forenbeiträge

IT0024 Qualifikationen CP-ID
vor 5 Minuten von DeathAndPain 2 / 268
BUSOBJEKT zu CMIS PHIO ermitteln
vor einer Stunde von snooga87 1 / 2
Bedarfszusammenfassung "Einzelbedarfe"
vor 3 Stunden von harri 2 / 1200
Trennen Strasse und Hausnummer
vor 5 Stunden von ralf.wenzel 21 / 11303

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

IT0024 Qualifikationen CP-ID
vor 5 Minuten von DeathAndPain 2 / 268
BUSOBJEKT zu CMIS PHIO ermitteln
vor einer Stunde von snooga87 1 / 2
Bedarfszusammenfassung "Einzelbedarfe"
vor 3 Stunden von harri 2 / 1200
Trennen Strasse und Hausnummer
vor 5 Stunden von ralf.wenzel 21 / 11303

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor einer Stunde von snooga87 1 / 2
aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3196
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9785