gelöst Editierbarer ALV GRID - Neue Zeile hinzufügen


Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).

Moderatoren: Jan, Steff

gelöst Editierbarer ALV GRID - Neue Zeile hinzufügen

Beitragvon ABAP_DEV » 03.01.2017, 10:32

Hallo zusammen,
ich habe ein Problem mit meinem ALV GRID und brauche dringend Hilfe. Ich habe ein editierbarer ALV implementiert, leider bekomme ich immer Fehlermeldungen wenn ich neue Zeile hinzufüge. Kann jemand mir sagen woran das Problem liegt.

Hier den Quellecode:

Tabelle ZBC02_AGRS
Bildschirmfoto 2017-01-03 um 10.23.53.png


Der Feldkatalog:

DATA: ls_fcat TYPE lvc_s_fcat.

CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
* I_BUFFER_ACTIVE =
I_STRUCTURE_NAME = 'zbc02_agrs'
* I_CLIENT_NEVER_DISPLAY = 'X'
* I_BYPASSING_BUFFER =
* I_INTERNAL_TABNAME =
CHANGING
ct_fieldcat = pt_fieldcat
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

LOOP AT pt_fieldcat INTO ls_fcat.
IF ls_fcat-fieldname EQ 'AGR_NAME'.
* Editierbare Feld
ls_fcat-EDIT = 'X'.
ls_fcat-checktable = '!'.

MODIFY pt_fieldcat FROM ls_fcat.
ELSEIF ls_fcat-fieldname = 'MANDT' OR ls_fcat-fieldname = 'UNAME'.

* Den Wert wird automatisch ermittelt
ls_fcat-auto_value = 'X'.
ls_fcat-checktable = '!'.

MODIFY pt_fieldcat FROM ls_fcat.
ENDIF.

ENDLOOP.

ALV GRID:
DATA: lt_exclude TYPE ui_functions,
ls_exclude TYPE ui_func.

ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row.
APPEND ls_exclude TO lt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_undo.
APPEND ls_exclude TO lt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row.
APPEND ls_exclude TO lt_exclude.

DATA: gs_layout TYPE disvariant,
ls_layout TYPE lvc_s_layo.

gs_layout-REPORT = sy-repid.

ls_layout-stylefname = 'CELLTAB'.

CALL METHOD lo_alv_grid->set_table_for_first_display
EXPORTING it_toolbar_excluding = lt_exclude
is_layout = ls_layout
CHANGING
it_fieldcatalog = pt_fieldcat
it_outtab = pt_outtab[].

* CALL METHOD lo_alv_grid->set_table_for_first_display
* EXPORTING is_variant = ls_layout
* i_save = 'A'
* CHANGING it_fieldcatalog = pt_fieldcat
* it_outtab = pt_outtab[].

CALL METHOD lo_alv_grid->set_ready_for_input
EXPORTING
i_ready_for_input = 1.


Fehlermeldung:
Bildschirmfoto 2017-01-03 um 10.26.51.png


Danke im Voraus
Marcel
ABAP_DEV
ForumUser
 
Beiträge: 5
Registriert: 29.11.2016, 10:16
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Editierbarer ALV GRID - Neue Zeile hinzufügen

Beitragvon ST22 » 03.01.2017, 12:14

Hi,

setz das mal in Großbuchstaben ein:
Code: Alles auswählen
I_STRUCTURE_NAME = 'zbc02_agrs'
,
gibt es die Struktur ZBC02_AGRS wirklich im Dictionary?

Grüße
Frank
ST22
Specialist
 
Beiträge: 205
Registriert: 15.04.2005, 07:34
Dank erhalten: 18 mal
Ich bin: Entwickler/in

Re: Editierbarer ALV GRID - Neue Zeile hinzufügen

Beitragvon ABAP_DEV » 03.01.2017, 16:50

Hi Frank,
ja die Struktur ist in Dictionary angelegt wurde. Ich habe das Problem gelöst. Ich musste bei dem Definition des Feldkatalog ein Ref-Field eingeben.
Jetzt wird nach jede LOOP nicht nur die Ref_Tab eingegeben, sondern auch den Ref_Field, so ist das eindeutig..

Hier die Lösung

CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
* I_BUFFER_ACTIVE =
I_STRUCTURE_NAME = 'ZBC02_AGRS'
* I_CLIENT_NEVER_DISPLAY = 'X'
* I_BYPASSING_BUFFER =
* I_INTERNAL_TABNAME =
CHANGING
ct_fieldcat = pt_fieldcat
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

LOOP AT pt_fieldcat INTO ls_fcat.
IF ls_fcat-fieldname EQ 'AGR_NAME'.
* Editierbare Feld
ls_fcat-EDIT = 'X'.
ls_fcat-checktable = '!'.
ls_fcat-ref_field = ls_fcat-fieldname.

MODIFY pt_fieldcat FROM ls_fcat.
ELSEIF ls_fcat-fieldname = 'MANDT' OR ls_fcat-fieldname = 'UNAME'.

* Den Wert wird automatisch ermittelt
ls_fcat-auto_value = 'X'.
ls_fcat-checktable = '!'.
ls_fcat-ref_field = ls_fcat-fieldname.
MODIFY pt_fieldcat FROM ls_fcat.
ENDIF.

ENDLOOP.
ABAP_DEV
ForumUser
 
Beiträge: 5
Registriert: 29.11.2016, 10:16
Dank erhalten: 0 mal
Ich bin: Entwickler/in


Zurück zu ABAP Objects®

  Aktuelle Beiträge   
Ungelesene Beiträge
vor 11 Stunden von gtoXX 0 Antw.
Laden von Dateien
vor 13 Stunden von fr-g 2 Antw.
SAP Workflow
vor 16 Stunden von SAP_ENTWICKLER 0 Antw.
Tabellen mit Adobe forms
vor 16 Stunden von jocoder 1 Antw.
Inhalt einer internen Tabelle in ein Field Symbol übertragen
vor 13 Stunden von gtoXX 7 Antw.

  Ähnliche Beiträge beta
ALV-neue Zeile anfügen
02.09.2005, 20:55 von babap 3 Antw.
ALV mit editierbarer Spalte und Merging
05.02.2008, 08:23 von mania999 0 Antw.
ALV Grid / Zeile fixieren
29.09.2016, 14:31 von black_adept 4 Antw.
Zeile aus ALV Grid auslesen
15.10.2004, 12:49 von Asaph 1 Antw.
Alv Grid Zeile mit Icon + Text
19.10.2007, 17:26 von K430040 3 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!