alv_grid aktualisieren

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

alv_grid aktualisieren

Beitrag von Egzon (ForumUser / 3 / 2 / 0 ) »
Hallo zusammen

Ich bin seit ein paar Wochen als SAP ABAP-Entwickler tätig und habe keine Vorkenntnise zu SAP.

Ich versuche gerade eine Tabelle in mein Dynpro auszugeben, welches mit einer Eingabefläche und einen Button diese dann immer aktualisiert wird sobald es nach einem Material gesucht wird. Dazu habe ich eine Klasse erstellt, weil dies auch der Wunsch von meinem Arbeitgeber war. In der Klasse habe ich diese Methoden:

Constructor, GET_DATA, FILTER_DATA und DISPLAY.



Mein Report:

Code: Alles auswählen.

DATA: ok_code LIKE sy-ucomm.
DATA: gt_mara TYPE TABLE OF mara.
DATA: gs_stock TYPE zmm_s_bestandspflege.
DATA: gv_matnr TYPE matnr.



*&---------------------------------------------------------------------*
*& Start
*&---------------------------------------------------------------------*
START-OF-SELECTION.

  DATA(lo_mm_bestandspflege) = NEW zcl_mm_bestandspflege( ) .

  CALL SCREEN '100'.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'STATUS_0100'.
  SET TITLEBAR 'Bestandspflege'.
  lo_mm_bestandspflege->display( ).
ENDMODULE.


*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*&      text
*&----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.

  CASE ok_code.
    WHEN 'BACK' OR 'CANCEL'.
      LEAVE TO SCREEN 0.
    WHEN 'EXIT'.
      LEAVE PROGRAM.
    WHEN 'OK_SEARCH'.
      lo_mm_bestandspflege->filter_data( iv_matnr = gv_matnr ).
  ENDCASE.
ENDMODULE. 

Im Constructor ist nur

Code: Alles auswählen.

gt_stock = get_data(  ).


Display:

Code: Alles auswählen.

  METHOD display.


*&---------------------------------------------------------------------*
*&  Container erzeugen
*&---------------------------------------------------------------------*
    CREATE OBJECT go_cont
      EXPORTING
        container_name              = co_container_name
      EXCEPTIONS
        cntl_error                  = 1
        cntl_system_error           = 2
        create_error                = 3
        lifetime_error              = 4
        lifetime_dynpro_dynpro_link = 5
        OTHERS                      = 6.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.

    CREATE OBJECT go_grid
      EXPORTING
        i_parent          = go_cont
      EXCEPTIONS
        error_cntl_create = 1
        error_cntl_init   = 2
        error_cntl_link   = 3
        error_dp_create   = 4
        OTHERS            = 5.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.

    CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
      EXPORTING
        i_structure_name       = co_structure_name
      CHANGING
        ct_fieldcat            = gf_fcat
      EXCEPTIONS
        inconsistent_interface = 1
        program_error          = 2
        OTHERS                 = 3.
    IF sy-subrc <> 0.

    ENDIF.




    go_grid->set_table_for_first_display(
      CHANGING
     it_outtab                     = gt_stock
     it_fieldcatalog               = gf_fcat
  EXCEPTIONS
    invalid_parameter_combination = 1
    program_error                 = 2
    too_many_lines                = 3
    OTHERS                        = 4
           ) .
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
  ENDMETHOD.
   
und FILTER_DATA:

Code: Alles auswählen.

  METHOD filter_data.
*    DELETE gt_stock WHERE NOT matnr = iv_matnr.

    clear:  gt_stock.

    SELECT  a~matnr,
            b~maktx,
            c~meins,
            d~lvsme,
            a~lpmax,
            a~lpmin,
            a~nsmng
      FROM mlgt AS a
      INNER JOIN makt AS b ON a~matnr = b~matnr
      INNER JOIN mara AS c ON a~matnr = c~matnr
      INNER JOIN mlgn AS d ON a~matnr = d~matnr
      where a~matnr = @iv_matnr
      INTO TABLE @gt_stock.

    go_grid->refresh_table_display(
      EXCEPTIONS
        finished       = 1                " Display wurde beendet ( durch Export ).
        others         = 2
    ).
    IF SY-SUBRC <> 0.
     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
       WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

  ENDMETHOD.
Wenn ich jetzt mein Report ausführe, wird die Tabelle angezeigt. Einmal zu filtern geht auch aber beim zweiten oder dritten mal wird meine Tabelle nicht aktualisiert. Kann mir jemand helfen was ich da verbessern soll? Wenn ich den Debugger anmache soll der Code auch funktionieren weil die selects auch stimmen.
Ich habe es auch gegooglet, bin aber auf nichts gestossen was mir helfen könnte.

Danke schon im Voraus

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


Re: alv_grid aktualisieren

Beitrag von JHM (Top Expert / 1190 / 1 / 196 ) »
die Methode DISPLAY erzeugt bei jedem PBO eine neue Container- und ALV-Instanz.
Wenn es beides schon gibt, wieso dann noch mal erzeugen?

Folgende Benutzer bedankten sich beim Autor JHM für den Beitrag:
Egzon

Gruß Hendrik

Re: alv_grid aktualisieren

Beitrag von a-dead-trousers (Top Expert / 4295 / 214 / 1146 ) »
IF ... IS [NOT] BOUND.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Egzon

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.18
Basis: 7.50

Re: alv_grid aktualisieren

Beitrag von Egzon (ForumUser / 3 / 2 / 0 ) »
Danke an euch beiden. Habe es jetzt hinbekommen.

Gruss Egzon

Seite 1 von 1

Vergleichbare Themen

4
Antw.
4424
Views
ALV Grid Sortierung aktualisieren im grid 1 und grid 2
von c oco » 06.02.2012 10:09 • Verfasst in ABAP Objects®
6
Antw.
2729
Views
Nur aktuelle Zeile im GRID aktualisieren
von Kojak » 30.01.2006 13:02 • Verfasst in ABAP® Core
1
Antw.
2598
Views
Feldkatalog aktualisieren @ ALV Grid Control
von m4rkusr » 21.09.2006 15:40 • Verfasst in Dialogprogrammierung
3
Antw.
2528
Views
ALV Grid Liste aktualisieren vor Button klick?
von dimes » 16.09.2009 12:07 • Verfasst in ABAP® Core
2
Antw.
2365
Views
ALV aktualisieren
von dawns » 22.11.2006 10:36 • Verfasst in ABAP Objects®

Über diesen Beitrag



Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

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.