In einem ALV automatisch zu einer Zeile Scrollen

Aus diversen Gründen kommt es immer wieder einmal vor, dass man in einem Web Dynpro ALV direkt zu einer Zeile Scrollen möchte. Dies kann zB dann erforderlich sein, wenn man eine neue Zeile dem ALV Kontext hinzufügt und hierfür nicht die ADD oder INSERT Funktion der Tabelle nutzt.

Hier ein kurzes Beispiel, wie man die neue leere Zeile in das Sichtfeld des ALV`s bringt.

Damit die Methode etwas flexibler ist, wird der gewünschte Zeilenindex per Importing Attribut an die Methode übergeben. Der Parameter hierfür ist IV_INDEX. Der Rest des Coding ist dann ALV Standard. Zuerst holt man sich die Referenz auf die Component. Wenn diese noch nicht existiert, dann wird diese direkt erzeugt. Danach die Referenz auf die ALV Tabelle holen und die erste sichtbare Zeile bekannt geben.

  DATA: obj_table_api TYPE REF TO iwci_salv_wd_table,
        obj_table TYPE REF TO cl_salv_wd_config_table.
  DATA: obj_cmp_usage TYPE REF TO if_wd_component_usage.

  FIELD-SYMBOLS:  TYPE salv_wd_s_column_ref.

* Init alv component
  obj_cmp_usage = wd_this->wd_cpuse_cmp_products_table( ).

* Create component if necessary
  IF obj_cmp_usage->has_active_component( ) IS INITIAL.
    obj_cmp_usage->create_component( ).
  ENDIF.

* Get table api and set focus
  obj_table_api = wd_this->wd_cpifc_cmp_products_table( ).
  obj_table = obj_table_api->get_model( ).
  obj_table->if_salv_wd_table_settings~set_first_visible_row( iv_index ).

  FREE: obj_table, obj_table_api, obj_cmp_usage.

Und das war es auch schon. Mehr ist nicht notwendig, um die gewünschte Zeile in den ALV Fokus zu rücken.

Posted on 20. März 2015 in Blog, Web Dynpro/ABAP

Back to Top