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 / 15 / 8 / 1 ) » 19. Jun 2019 11:24

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


Re: Feld Symbol in Klasse

Beitrag von a-dead-trousers (Top Expert / 3233 / 81 / 813 ) » 19. Jun 2019 11:40

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.07
Basis: 7.40

Re: Feld Symbol in Klasse

Beitrag von ichse18577 (ForumUser / 15 / 8 / 1 ) » 19. Jun 2019 12:41

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 / 3233 / 81 / 813 ) » 19. Jun 2019 13:51

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.07
Basis: 7.40

Re: Feld Symbol in Klasse

Beitrag von ewx (Top Expert / 3982 / 164 / 373 ) » 19. Jun 2019 18:28

ichse18577 hat geschrieben:
19. Jun 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

Aktuelle Forenbeiträge

Datenquelle einer Query ändern
vor 2 Tagen von Level83 3 / 117
Spaltennummer-Umwandlung Excel.
vor 2 Tagen von il.ost 7 / 214
Black out im Bereich Objekterzeugung bei Vererbung gelöst
vor 2 Tagen von Thomas R. 4 / 132

Unbeantwortete Forenbeiträge

Transaktion VL06 Verteilung ausgehender Lieferungen
vor 4 Tagen von SAP_ENTWICKLER 1 / 67
FuBa EXIT_SAPLVEDC_003 S/4 1809
vor 6 Tagen von SAP_ENTWICKLER 1 / 103
CDS VIEW mit BOPF Framework update
vor einer Woche von Abapanfänger 1 / 101
SAP Document Builder: Dokumenterzeugung
vor einer Woche von robin.heidrich 1 / 226
Lohnsteuerbescheinigung
vor einer Woche von kaim77 1 / 136