Текущее время: Ср, июн 18 2025, 19:40

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Сортировка грида
СообщениеДобавлено: Пт, июн 21 2019, 10:06 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, окт 23 2015, 14:48
Сообщения: 93
Подскажите. Нужно ,чтобы при сортировке,фильтрации и других подобных изменнениях одно из полей грида(нумерация) - не менялась,т.е представим если первый стлобец где идут строки 1,2,3,..n как мы бы не меняли не сортировали грид он таким же и оставался 1,2,3,..n а не скажем 2,5,3..n в зависимости от сортировки или 3,4 если фильтр поставили на 2 строки,а вместо этого было 1,2. В каком событии грида это нужно ловить?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Сортировка грида
СообщениеДобавлено: Пт, июн 21 2019, 12:20 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Вариант реализации - через событие AFTER_USER_COMMAND. В разных реализациях ALV Grid немного отличается, вот пример для SALV. Сортируйте столбец с текстом.
Code:
TYPES: BEGIN OF ty_table,
         position TYPE i,
         text     TYPE char3,
       END OF ty_table,
       ty_table_t TYPE STANDARD TABLE OF ty_table WITH KEY position.

DATA: go_alv       TYPE REF TO cl_salv_table,
      go_columns   TYPE REF TO cl_salv_columns,
      go_column    TYPE REF TO cl_salv_column,
      go_events    TYPE REF TO cl_salv_events,
      go_functions TYPE REF TO cl_salv_functions,
      gv_string    TYPE string.

DATA(gt_data) = VALUE ty_table_t(
  ( position = 1   text = 'ABC'  )
  ( position = 2   text = 'XYZ' )
  ( position = 3   text = 'QWE' ) ).


CLASS lcl_report DEFINITION.
  PUBLIC SECTION.
    METHODS:
      on_after_salv_function  FOR EVENT after_salv_function  OF cl_salv_events IMPORTING e_salv_function.

ENDCLASS.

CLASS lcl_report IMPLEMENTATION.
  METHOD on_after_salv_function.
    LOOP AT gt_data INTO DATA(wa).
      wa-position = sy-tabix.
      MODIFY gt_data FROM wa.
    ENDLOOP.
  ENDMETHOD.
ENDCLASS.

DATA:
  lo_report TYPE REF TO lcl_report.

START-OF-SELECTION.
  TRY.
      cl_salv_table=>factory(
         IMPORTING
           r_salv_table = go_alv
         CHANGING
           t_table = gt_data ).
    CATCH cx_salv_msg .
      MESSAGE 'Ошибка при создании ALV' TYPE 'E'.
  ENDTRY.

  CREATE OBJECT lo_report.

  go_columns = go_alv->get_columns( ).

  TRY.
      go_column = go_columns->get_column( 'TEXT' ).
      " настраиваем текст
      go_column->set_long_text( 'Text' ).
      go_column->set_medium_text( 'Text' ).
      go_column->set_short_text( 'Text' ).
    CATCH cx_salv_not_found.
  ENDTRY.

  TRY.
      go_column = go_columns->get_column( 'POSITION' ).
      " настраиваем текст
      go_column->set_long_text( 'Position' ).
      go_column->set_medium_text( 'Position' ).
      go_column->set_short_text( 'Position' ).
    CATCH cx_salv_not_found.
  ENDTRY.

  go_events = go_alv->get_event( ).
  SET HANDLER lo_report->on_after_salv_function FOR go_events.

  go_functions = go_alv->get_functions( ).
  go_functions->set_all( abap_true ).

  go_alv->display( ).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сортировка грида
СообщениеДобавлено: Пт, июн 21 2019, 13:20 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
А при фильтрации потребуется дополнительно обработать.

Get set of filtered values from CL_SALV_TABLE


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сортировка грида
СообщениеДобавлено: Пт, июн 21 2019, 13:21 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, окт 23 2015, 14:48
Сообщения: 93
понял,спасибо


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB