Feld Symbol in Klasse

Getting started ... Alles für einen gelungenen Start.
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

Feld Symbol in Klasse

Beitrag von ichse18577 (ForumUser / 41 / 15 / 3 ) »
Hallo,

ich habe gerade die Aufgabe 4-Gewinnt zu programmieren.
Hierbei soll alles natürlich OO sein. Nun möchte ich in meiner Klasse ein Feld Symbol anlegen, welches anzeigen soll ob das Feld schon gefüllt ist.
Leider wird das Feld Symbol nie erzeugt was wiederum zu einem Dump führt.
Durch einen ASSIGN soll lediglich der Speicherwert eines Feldes auf mein Feld Symbol übergeben werden.

Hier der Code:

Code: Alles auswählen.


  DATA: lf_row TYPE n VALUE 6.

  FIELD-SYMBOLs: <lf_button> TYPE any.

  DO.
    IF lf_row LT 1.
      EXIT.
    ENDIF.

    cf_button_name+9 = lf_row.
    ASSIGN (cf_button_name) TO <lf_button>.

    IF <lf_button> IS INITIAL.
      UNASSIGN <lf_button>.
      EXIT.
    ENDIF.

    UNASSIGN <lf_button>.

    SUBTRACT 1 FROM lf_row.
  ENDDO.

Zur Erklärung: cf_button_name ist ein Changing Parameter und beinhaltet das Feld auf welches im Dynpro geklickt wurde.
In diesem Code soll die Reihe ermittelt werden, in die der "Stein" fallen soll.

Vielen Dank
Ichse18577

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


Re: Feld Symbol in Klasse

Beitrag von a-dead-trousers (Top Expert / 4414 / 224 / 1186 ) »
Verwende anstatt eines Feldsymbols eine Referenz (TYPE REF TO).
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: Feld Symbol in Klasse

Beitrag von ichse18577 (ForumUser / 41 / 15 / 3 ) »
Das habe ich schon öfter gelesen aber was soll dann das Referenzfeld sein
bzw. wie kriege ich dann cf_button_name in das referenzfeld

Re: Feld Symbol in Klasse

Beitrag von a-dead-trousers (Top Expert / 4414 / 224 / 1186 ) »

Code: Alles auswählen.

  DATA: lf_row TYPE n VALUE 6.
  
  FIELD-SYMBOLs: <lf_button> TYPE any.
  DATA: lr_button TYPE REF TO DATA.

  DO.
    IF lf_row LT 1.
      EXIT.
    ENDIF.

    cf_button_name+9 = lf_row.
    ASSIGN (cf_button_name) TO <lf_button>.
    GET REFERENCE OF <lf_button> INTO lr_button.    

    IF <lf_button> IS INITIAL.
      UNASSIGN <lf_button>.
      EXIT.
    ENDIF.

    UNASSIGN <lf_button>.

    SUBTRACT 1 FROM lf_row.
  ENDDO.
Das ASSIGN wird leider weiterhin benötigt, weil man nur damit ein "Dirty-Assign" hinbekommt. Die Variable LR_BUTTON kann auch als ATTRIBUT der Klasse definiert werden (aber da dein Klassenüberbau fehlt kann ich nicht näher darauf eingehen)
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: Feld Symbol in Klasse

Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
ichse18577 hat geschrieben:
19.06.2019 11:24

Code: Alles auswählen.


  DATA: lf_row TYPE n VALUE 6.

  FIELD-SYMBOLs: <lf_button> TYPE any.

  DO.
    IF lf_row LT 1.
      EXIT.
    ENDIF.
Also wenn das dein ganzer Code ist, dann ist LF_ROW = 0 und damit beendet sich die Routine gleich wieder. Klar, dass das Feldymbol nicht zugewiesen wird...

Seite 1 von 1

Vergleichbare Themen

5
Antw.
3704
Views
Klasse soll Typdefinition von anderer Klasse nutzen
von debianfan » 24.05.2017 11:30 • Verfasst in ABAP Objects®
1
Antw.
2586
Views
Lokale Klasse autom. in globale Klasse ändern
von JohnLocklay » 09.01.2019 09:10 • Verfasst in ABAP Objects®
1
Antw.
3080
Views
Symbol in ALV, Tooltip (Quickinfo)
von Andreas G » 28.07.2008 10:58 • Verfasst in ABAP® Core
3
Antw.
3122
Views
Dump bei Field-symbol
von tho_died » 24.06.2008 14:43 • Verfasst in ABAP® für Anfänger
10
Antw.
3642
Views
Probleme mit Field Symbol
von Kenny » 03.04.2013 17:11 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

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.