[63077] in SAPr3-news
=?ISO-8859-1?Q?Re=3A_ALV_mit_selbst_erstellter_Dropdow?=
daemon@ATHENA.MIT.EDU (Thomas Lichtenstein)
Tue Oct 18 04:43:20 2011
To: sapr3-news@mit.edu
Date: Tue, 18 Oct 2011 10:36:30 +0200
From: Thomas Lichtenstein <thomas.lichtenstein@ufz.de>
Message-ID: <9g4s4eFqpU1@mid.dfncis.de>
Am 17.10.2011 16:07, schrieb whg@t-link.de:
> On 17 Okt., 15:50, w...@t-link.de wrote:
>> Hallo NG,
>>
>> es gibt hier zwar etliche Freds, aber offensichtlich keinen der mein
>> Problem löst:
>>
>> Ich muss für ein editierbares Feld im ALV eine Dropdown-Liste
>> erstellen. Die Dropdown-Liste selbst ist ein Datenextrakt aus einer
>> Customizing-Tabelle, deshalb scheidet die "Standard-F4-Hilfe" aus. Das
>> Feld selbst ist zweistellig, ich möchte es aber gerne mit den
>> dazugehörenden Kurztexten anzeigen, z,B.:
>>
>> 01 Rot
>> 02 Gelb
>> 03 Blau
>>
>> usw.
>>
>> Die Anzeige dieser Dropdown-Liste funktioniert auch, aber ich habe ein
>> Folgeproblem: die Mehtode "handle_data_changed" erkennt nicht, dass
>> ein Wert aus der Dropdown-Liste in das Zielfeld des ALV gestellt
>> wurde. Dadurch läuft meine Folgeverarbeitung in's Leere.
>>
>> Hat jemand eine Idee?
>
> Hallo NG,
>
> ich bin einen Schritt weiter:
>
> Das Zielfeld im ALV ist zweistellig, akzeptiert also nur die Werte 01,
> 02, 03 usw. Wenn ich die Dropdown-Liste entsprechend aufbaue, wird die
> Übernahme in das Zielfeld korrekt erkannt (Methode
> "handle_data_changed". Allerdings ist diese Dropdown-Liste nicht das
> was ich will:
>
> 01
> 02
> 03
>
> usw.
>
> Kennt jemand von euch einen Weg, wie ich diese Liste mit erweiterter
> Info aufbauen und verarbeiten kann:
>
> 01 Rot
> 02 Gelb
> 03 Blau
>
> usw.?
>
> Danke für jeden Tipp
>
> Wolfgang
>
Hallo Wofgang,
in Deinem Feldkatalog
DATA: lt_fcat TYPE lvc_t_fcat,
ls_fcat TYPE lvc_s_fcat.
musst Du diesen für [dein Feld] auf drdn_* erweitern.
ls_fcat-fieldname = [dein Feld].
ls_fcat-ref_table = '[deine DD-Tabelle]'.
ls_fcat-drdn_alias = abap_true.
ls_fcat-drdn_hndl = 1. " erstes Drop-Down
Daten nach lt_fcat übertragen oder updaten.
Danach einen Drop-Down Dialog bauen:
DATA: lt_dral TYPE lvc_t_dral,
ls_dral TYPE lvc_s_dral.
ls_dral-handle = '1'.
ls_dral-value = '[dein Text 1]'.
ls_dral-int_value = [dein key 1].
APPEND ls_dral TO lt_dral.
ls_dral-value = '[dein Text 2]'.
ls_dral-int_value = [dein key 2].
APPEND ls_dral TO lt_dral.
...
Dropdown an Grid anhängen:
r_grid->set_drop_down_table(
EXPORTING
"it_drop_down = lt_drop
it_drop_down_alias = lt_dral ).
Grid mit geänderten Feldkatalog prozessieren:
r_grid->set_table_for_first_display(
EXPORTING
CHANGING
it_outtab = [deine interne Tabelle mit Daten]
it_fieldcatalog = lt_fcat.
Viele Grüße
Thomas