gelöst Daten aus Klasse auslesen und anzeigen


Getting started ... Alles für einen gelungenen Start.

Moderatoren: Jan, Steff

gelöst Daten aus Klasse auslesen und anzeigen

Beitragvon newone » 07.12.2017, 10:17

Hallo,

ich muss zuerst erwähnen, dass ich ein Anfänger bin und vor paar Tagen damit angefangen habe mich mit ABAP-Entwicklung zu beschäftigen. Daher bitte ich um Nachsicht, wenn es teilweise auch für euch einfache/unnötige Fragen sind.
Ich soll in einem Report eine zuvor erstellte Klasse nutzen, Daten auslesen und anzeigen.
Ich habe in die Tabelle Attribute aus den Standardtabellen aus SAP (wie SFLIGHT) eingelesen und möchte in meinem Report diese Attribute/Werte auslesen.

Im Report habe ich eine Referenz zur Klasse erstellt, interne Tabelle und eine Struktur erzeugt sowie ein Objekt erstellt.
Ich bekomme leider keine Ausgabe bzw. weis auch nicht genau wie ich da vorgehen muss. Habe auch schon viel gegoogelt, aber da fehlt leider noch die Erfahrung.

Mein Code:
Data: lr_ref TYPE REF TO meineKlasse,
itab TYPE TABLE OF REF TO meineKlasse,
ls_str TYPE structure.

CREATE OBJECT lr_ref.


Ich komme einfach nicht weiter, habe schon einiges probiert; wäre zu viel das Ganze hier mit aufzunehmen. Ich freue mich über jede Hilfe, vielen Dank im Voraus.
newone
ForumUser
 
Beiträge: 3
Registriert: 07.12.2017, 09:51
Dank erhalten: 0 mal
Ich bin: sonstiges

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Daten aus Klasse auslesen und anzeigen

Beitragvon sapnup » 07.12.2017, 11:24

Hallo newone,

wenn deine Aufgabe darin besteht irgendwelche Daten die in einem Objekt "drin sind" auszugeben, dann hast du es fast geschafft.
Code: Alles auswählen
Data: lr_ref TYPE REF TO meineKlasse " Hier kann warscheinlich ein . hin
itab TYPE TABLE OF REF TO meineKlasse, " Das kann weg
ls_str TYPE structure. " Das kann warscheinlich auch weg

CREATE OBJECT lr_ref.

* angenommen deine Daten sind ein Attribut der Klasse vom Typ structure und mit dem Namen attr, dann schriebst du:
write: lr_ref->attr-feldname.
 


Mit -> greifst du bei Objekten auf ihre Attribute (gewissermaßen sind es die Daten) und Methoden (wieder gewissermaßen: Unterprogramme) zu.
Ein einfacher Weg um zu sehen was dir alles zur Auswahl steht ist den Mauscursor direkt nach -> zu plazieren und Strg+Leertaste zu drücken.

Für den Einstieg ins Thema Klassen / Objekte solltest du folgende Stichworte nachgoogeln (und verinnerlichen): Constructor, Methode, Attribut, Unterschied zwischen statischen und dynamischen Klassen, Zugriffsmodifikatoren private und public.

Gruß!

Für diese Nachricht hat sapnup einen Dank bekommen :
newone
sapnup
ForumUser
 
Beiträge: 32
Registriert: 14.06.2016, 07:16
Dank erhalten: 7 mal
Ich bin: Entwickler/in

Re: Daten aus Klasse auslesen und anzeigen

Beitragvon newone » 07.12.2017, 14:36

Hallo sapnup,

vielen Dank für deine Antwort und die Informationen!
An sich klappt das jetzt, zumindest läuft er durch, aber gibt mir leider kein Wert zurück.
Erst wenn ich nach dem erzeugen des Objektes die untere Zeile hinzufüge bekomme ich den Wert 'wertName' zurück:

CREATE OBJEKT lr_ref.
lr_ref->att-feldname = 'wertName'.

Das dürfte ja auch nicht so ganz richtig sein. Eigentlich müsste er mir ja die Werte die hinter meinem Attribut versteck sind ausgeben oder tue ich da was missverstehen?
newone
ForumUser
 
Beiträge: 3
Registriert: 07.12.2017, 09:51
Dank erhalten: 0 mal
Ich bin: sonstiges

Re: Daten aus Klasse auslesen und anzeigen

Beitragvon sapnup » 08.12.2017, 08:30

Naja, die Daten kommen nicht von selbst in die Objekte rein. Jetzt kenne ich deinen Fall nicht genau, aber generell wird es für dich wohl folgende Alternativen geben:

- Du musst selbst den Wert des Attributs ermitteln - also berechnen oder aus irgendwelchen Tabellen auslesen. IdR kapselt man diesen Vorgang in Methoden die das Ergebnis im Anschluss zurückgeben und/oder in entsprechende Attribute des Objekts schreiben. Oder:

- Du musst mit einem bereits existierenden Objekt arbeiten, bei dem die Werte schon außerhalb deines Einflussbereichs gesetzt wurden. In diesem Fall brauchst du kein

Code: Alles auswählen
DATA lr_ref TYPE REF TO meineKlasse.
CREATE OBJECT lr_ref.
 


sondern nur den Namen dieses anderen, bereits existierenden Objekts.
sapnup
ForumUser
 
Beiträge: 32
Registriert: 14.06.2016, 07:16
Dank erhalten: 7 mal
Ich bin: Entwickler/in

Re: Daten aus Klasse auslesen und anzeigen

Beitragvon ewx » 08.12.2017, 09:47

Hier ein einfachstes Beispiel direkt von SAP:
Programm DEMO_CLASS_COUNTER
Code: Alles auswählen
REPORT demo_class_counter .

CLASS counter DEFINITION.
  PUBLIC SECTION.
    METHODS: set
               IMPORTING value(set_value) TYPE i,
             increment,
             get
               EXPORTING value(get_value) TYPE i.
  PRIVATE SECTION.
    DATA count TYPE i.
ENDCLASS.

CLASS counter IMPLEMENTATION.
  METHOD set.
    count = set_value.
  ENDMETHOD.
  METHOD increment.
    ADD 1 TO count.
  ENDMETHOD.
  METHOD get.
    get_value = count.
  ENDMETHOD.
ENDCLASS.

DATA number TYPE i VALUE 5.
DATA cnt TYPE REF TO counter.

START-OF-SELECTION.

  CREATE OBJECT cnt.

  cnt->set( number ).

  DO 3 TIMES.
    cnt->increment( ).
  ENDDO.

  cnt->get( IMPORTING get_value = number ).

  cl_demo_output=>display( number ).
ewx
Top Expert
 
Beiträge: 3452
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 222 mal

Re: Daten aus Klasse auslesen und anzeigen

Beitragvon newone » 12.12.2017, 09:24

Danke für Eure Hilfe, habe es mittlerweile mit Euren Tipps und paar kleinen Erweiterungen, entsprechend meiner Aufgabe, hinbekommen.

VG
newone
ForumUser
 
Beiträge: 3
Registriert: 07.12.2017, 09:51
Dank erhalten: 0 mal
Ich bin: sonstiges


Zurück zu ABAP® für Anfänger

  Aktuelle Beiträge   
DSGVO in SAP umsetzen
vor 38 Minuten von ralf.wenzel 0 Antw.
Berechtigungsprüfung Dialog- vs. RFC-User im Single Sign On
vor 2 Stunden von sapdepp 0 Antw.
Reporttransaktion für andere Mitarbeiter zugänglich machen
vor 5 Stunden von Tron 1 Antw.
Materialkalkulation
vor 8 Stunden von erp-bt 1 Antw.
gelöst Barcodes in Warenbewegungen & Belegen
vor 7 Stunden von marc.braun 1 Antw.

  Ähnliche Beiträge beta
Merkmalgruppierung einer Bewertung zur Klasse auslesen
28.11.2016, 14:56 von Andy1984 2 Antw.
eine Datenbank anlegen + die Daten anzeigen
11.10.2004, 07:50 von GastX 8 Antw.
Wie Cluster-Daten auslesen?
13.09.2005, 18:47 von ewx 4 Antw.
Hintergrundjob: Daten URL auslesen
26.01.2006, 14:32 von olli-x 3 Antw.
Daten aus SAP auslesen mit Web Service
17.12.2015, 22:53 von Tron 8 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!