Table_control und Ereignisse

Benutzeroberflächen in SAP®-Systemen.
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

Table_control und Ereignisse

Beitrag von christian123 (ForumUser / 4 / 0 / 0 ) »
Hallo

Kann mir jemand bitte einen Tipp geben, wie ich bei einem Talble control ereignisse erzeugen kann? Ich habe die ereignisse erst bei objektorentierten komponenten gesehen. Brauche ich dazu den Class Builder?

Wie gehe ich da vor oder gibt es wo eine anleitung? ich bräuchte den doppelklick event.

danke

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


Beitrag von christian123 (ForumUser / 4 / 0 / 0 ) »
hallo

habe noch eine kleine frage: Wie kann ich auf die Werte der Table control zugreifen?

wenn jetzt eine spalte markiert ist, würde ich da gerne einen wert auslesen. geht das irgendwie mit current-line?

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo christian123,

im TableControl wird ein Doppelclick als Zeile per F2-auswählen abgehandelt. Daher musst Du in deinem Status der Funktionstaste F2 einen Code (meist PICK) zuordnen, den Du dann im PAI als Funktionscode auswerten kannst.
Um das Feld und die Zeile zu bekommen, ist der Befehl GET CURSOR zu verwenden. Mit der Zeilenangabe kannst Du dann in Deiner Tabelle diese Zeile lesen.

Während des LOOP's im PAI steht Dir die aktuelle Zeile des Dynpros zur Verfügung, wobei Dir cxtab-current_line die aktuelle Zeilennummer sagt, sofern im PBO der LOOP mit Referenz auf den TableControl definiert ist.
Gruß
Ereglam


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

Beitrag von christian123 (ForumUser / 4 / 0 / 0 ) »
hallo ereglam,

Das mit dem f2 code funktioniert schon mal, ich hatte eingestellt, das ein popup kommt...

Allerdings liefert mir der der Cursor in der variable lin immer nur 0 zurück. bin so wie hier vorgegangen:

http://help.sap.com/saphelp_470/helpdat ... ontent.htm

GET CURSOR FIELD fld OFFSET off LINE lin VALUE val LENGTH len.

muss ich noch mehr machen? Habe noch nicht wirklich mit dem cursor gearbeitet.

danke!

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo christian123,

wenn lin = 0 ist, dann hast Du den Cursor wahrscheinlich auch nicht im TableControl stehen...

Ansonsten müsstest Du mal Dein Coding hier posten...

PS:
neben LINE brauchst Du i.d.R. nur noch FIELD...
Gruß
Ereglam


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

Beitrag von christian123 (ForumUser / 4 / 0 / 0 ) »
Hallo ereglam,

hm, ich finde den Fehler nicht. Ich habe das ganze mal so:

Code: Alles auswählen.

PROCESS BEFORE OUTPUT.
  MODULE readdatabands.
LOOP WITH CONTROL TABLE_BANDS.
    MODULE i_band2tc. " StepLoop - zeilenweise Daten von
ENDLOOP. " der itab auf den Steploop bringen

Code: Alles auswählen.

PROCESS AFTER INPUT.
LOOP WITH CONTROL TABLE_BANDS.
    Module tc2i_band.
  ENDLOOP. " der itab auf den Steploop bringen

Code: Alles auswählen.

MODULE readdatabands OUTPUT.
  IF do_readdbband = 1.
    do_readdbband = 0.
    CLEAR i_band.
    REFRESH i_band.
    SELECT * FROM zz3akdvk0709_ban INTO CORRESPONDING FIELDS OF k_band ORDER BY b_id.
      k_band-ausw = ' '.
      k_band-flag = ' '.
      APPEND k_band TO i_band.
    ENDSELECT.
  ENDIF.
  DESCRIBE TABLE i_band LINES table_bands-lines.
ENDMODULE.                 " readdatabands  OUTPUT

Code: Alles auswählen.

MODULE i_band2tc OUTPUT.
  READ TABLE i_band INTO k_band INDEX table_bands-current_line.

ENDMODULE.                 " i_band2tc  OUTPUT

Code: Alles auswählen.

MODULE tc2i_band INPUT.
  CLEAR band_orig.
  IF table_bands-current_line > table_bands-lines.
* Es wurden neue Zeilen eingetippt
  ELSE.
    READ TABLE i_band INTO band_orig INDEX table_bands-current_line.
  ENDIF.

  IF ( table_bands-current_line > table_bands-lines AND
  k_band-b_id IS NOT INITIAL AND
  k_band-b_name IS NOT INITIAL AND
  k_band-b_datum IS NOT INITIAL ) OR
   ( table_bands-current_line <= table_bands-lines ).
  ENDIF.

  IF k_band-b_id = band_orig-b_id AND
  k_band-b_name = band_orig-b_name AND
  k_band-b_datum = band_orig-b_datum AND
  k_band-b_bild = band_orig-b_bild.
  ELSE.
    do_saveindbtabband = 0.

    IF table_bands-current_line > table_bands-lines.
      k_band-flag = 'I'.
      APPEND k_band TO i_band.

    ELSE.
      k_band-flag = 'M'.
      MODIFY i_band FROM k_band INDEX table_bands-current_line.
    ENDIF.
  ENDIF.

  IF k_band-ausw = band_orig-ausw.
  ELSE.
    MODIFY i_band FROM k_band INDEX table_bands-current_line.
  ENDIF.

ENDMODULE.                 " tc2i_band  INPUT

dann hatte ich in einem neuen modul diesen f2 code mit
GET CURSOR FIELD fld OFFSET LINE lin off VALUE val LENGTH len.

danke

Hi

Beitrag von da-events (ForumUser / 3 / 0 / 0 ) »
Du solltest mal den sy-subrc auslesen, der steht bei Doppelklick auf dem Tablecontrol auf 0, ansonsten auf 4.

Die Fieldanweisung muss bei einem Subscreen im PAI des Subscreens erfolgen, und nicht auf dem des Trägerdynpros (was aber den PICK haben muss)....

denk dran, daß Du mit 'cz = cz - tc-topline -1' die Kopfzeile rausschmeißt...
(cz = Zeilennummer)...

der Christian

Seite 1 von 1

Vergleichbare Themen

16
Antw.
8782
Views
Table Control in Custom Control?
von ralf.wenzel » 29.11.2013 21:21 • Verfasst in ABAP Objects®
1
Antw.
2083
Views
Table Control
von amjahid » 22.11.2007 13:57 • Verfasst in ABAP® für Anfänger
3
Antw.
2489
Views
Table Control in OO
von chris690 » 27.02.2005 10:16 • Verfasst in ABAP Objects®
2
Antw.
2478
Views
Table Control
von scharlie » 01.02.2008 18:20 • Verfasst in ABAP Objects®
6
Antw.
3413
Views
Table Control
von khb » 16.02.2016 10:27 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Regex in where
vor 2 Stunden von edwin 7 / 162
Daten an Tabelle binden
vor 15 Stunden von Bright4.5 3 / 1485

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

Regex in where
vor 2 Stunden von edwin 7 / 162
Daten an Tabelle binden
vor 15 Stunden von Bright4.5 3 / 1485

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9821