Tablecontrol -> Mehr Zeilen markieren trotz Einstellung

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

Tablecontrol -> Mehr Zeilen markieren trotz Einstellung

Beitrag von nopp (ForumUser / 4 / 0 / 0 ) » 6. Dez 2006 08:35

Moin,

vielleicht ist das Thema hier schon mal behandelt worden.. Habe aber nix dazu gefunden.. Folgendes..

Habe ein Tablecontrol angelegt mit der Eigenschaft "Nur eine Zeile markierbar".

Funktioniert solange, bis man anfängt zu scrollen.. Wenn die markierte Zeile außerhalb des Sichtbereiches ist, kann man eine weitere Zeile markieren u.s.w.

Hat da jemand für mich eine Lösung?

Danke.. Nopp
Nieder mit der Schwerkraft! Es lebe der Leichsinn!


Beitrag von ewx (Top Expert / 3974 / 164 / 368 ) » 6. Dez 2006 11:36

Moin nopp,

du musst dir merken, welche Zeile markiert wurde. Im TableControl kannst du eine Markierspalte angeben. Bei jedem Tastendruck wird die aktuell markierte Zeile in der internen Tabelle ebenfalls markiert.
Im PBO muss die Markierung entspr. gesetzt werden.
Prog DEMO_DYNPRO_TABLE_CONTROL_2

Gruß, Enno

Zeilenmarkierungen

Beitrag von nopp (ForumUser / 4 / 0 / 0 ) » 6. Dez 2006 12:53

Danke Enno für die schnelle Antwort,

daß eigentlich Problem ist ja ein anderes: Ich kann einem Tablecontrol die Eigenschaft setzen, daß nur eine Zeile markiert werden kann. Solange man nicht im Table-Control blättert, funktioniert das ganze ja auch. Eine marktierte Zeile wird wieder demarkiert, wenn eine andere Zeile markiert wird.

Jetzt kommt der Knackpunkt. Markiere ich z. B. die erste Zeile und blättere nach unten, so, daß die erste Zeile aus der Ansicht verschwindet, dann kann ich eine weitere Zeile markieren, ohne daß die erste Zeile demarkiert wird.

Ich habe inzwischen eine Lösung dafür: Im PAI eine Field-Anweisung auf das Mark-Feld im Loop auf die Tabelle..

* PAI des Dynpros..

LOOP AT l_tab_table.

FIELD l_wrk_table-flag
MODULE tc_table_mark ON REQUEST.

ENDLOOP.


* Module..

MODULE tc_table_mark INPUT.

MODIFY l_tab_table
FROM l_wrk_tab_table
INDEX tc_table-current_line
TRANSPORTING flag.

* Mehrere Zeilen markieren verhindern, wenn im Table-Control
* geblättert wird..
IF l_wrk_tab_table-flag = 'X'.
CLEAR l_tmp_wrk_tab_table.
LOOP AT l_tab_table INTO l_tmp_wrk_tab_table.
IF sy-tabix <> tc_table-current_line.
l_tmp_wrk_tab_table-flag = ' '.
MODIFY l_tab_table FROM l_tmp_wrk_tab_table.
ENDIF.
ENDLOOP.
ENDIF.

ENDMODULE.

________________________________________________

Das funktioniert so ganz gut. Ich bin mir aber nicht sicher, ob das denn so unbedingt nötig wäre..

Gruß nopp
Nieder mit der Schwerkraft! Es lebe der Leichsinn!

Seite 1 von 1

Aktuelle Forenbeiträge

Langtext zur Exception
vor 11 Stunden von ewx 12 / 135
Feld Symbol in Klasse
vor 15 Stunden von ewx 5 / 89
Eigener Knopf im Ausgabefenster
vor 18 Stunden von DeathAndPain 2 / 44
Welche Entwicklertools?
Gestern von LostDarkness 2 / 936

Unbeantwortete Forenbeiträge

DOCVARIABLE in Worddokument setzen (OLE?)
vor 2 Tagen von msfox 1 / 40
BAPI_PO_CREATE1 und Einkaufsinfosatz
vor 4 Tagen von SweetRuedi 1 / 84
WCOCO: Gruppe für Betragsfelder 0S01
vor 6 Tagen von SAP_ENTWICKLER 1 / 55
CAS-Nr.: Chemical Abstracs Service
vor einer Woche von SAP_ENTWICKLER 1 / 93
Interaktives Skript, Rolle IC-Manager
vor 3 Wochen von erubadhron86 1 / 129