Автор Тема: CL_SALV_TABLE - Класс для быстрого вывода ALV-таблицы на экран  (Прочитано 183291 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 346
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Как ни странно, но у меня почему то не все поля получается переименовать, всё отрабатывает, в дамп ничего не падает, но у пару полей имена не изменились, это получается РНН - IM_STCD1 и БИН - IM_STCD3. Странно, там нет ни каких ограничений у это класса на количеству  использования метода этого или ещё что?!

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 346
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Всем здравствуйте! Я извиняюсь за интеллект и за назойливость, есть ли возможность у этого класса допустим вывести на экран табличку в конкретно заданной шириной столбца, т.е. чтобы столбец был распахнут по длине текста названия этого слобца, чтобы вручную его не растягивать чтобы прочесть название столбца? Я понимаю что это мелочь и руки не отвалятся если я столбец растяну чтобы название посмотреть, но всё же....?!

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 346
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
You are not allowed to view links. Register or Login
Как ни странно, но у меня почему то не все поля получается переименовать, всё отрабатывает, в дамп ничего не падает, но у пару полей имена не изменились, это получается РНН - IM_STCD1 и БИН - IM_STCD3. Странно, там нет ни каких ограничений у это класса на количеству  использования метода этого или ещё что?!
Разобрался, всё дело было в параметрах длины поля, поставил оба параметра
short  и long, и нормально, переименовались. А вот как быть с шириной столбца при выводе на экран? Может кто подскажет?

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
А вот как быть с шириной столбца при выводе на экран? Может кто подскажет?
Скорее всего, что никак. У ALV-сетки есть параметр, который подстраивает ширину ячейки под выводимую в ней информацию, а вот параметра, подстраивающего вывод, под выводимый заголовок колонки нет, так что скорее всего никак.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 346
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Ну вот ширина сетки поля самой таблицы, да, она автоматически подгоняет под содержимое поле, но вот например Название столбца МеткаБлокировкиБЕ а содержимое поле стоит просто метка X, и таких у меня столбцов 6, ни как нельзя заставить сетку думать что содержимое поля, которое содержит Х, что там больше символов чем на самом деле и таким бы образом он выводил ширину столбца пошире, может у кого нибудь ещё будут мнения на этот счёт?!

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 346
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Есть метод у этого класса set_OUTPUT_LENGTH, вызываем его и пишем gc_colwork->set_OUTPUT_LENGTH( ' длина числом' ), с числом можно поэкспериментировать. А так в принципе ширину столбца изменил.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
Есть метод у этого класса set_OUTPUT_LENGTH, вызываем его и пишем gc_colwork->set_OUTPUT_LENGTH( ' длина числом' ), с числом можно поэкспериментировать. А так в принципе ширину столбца изменил.
Это называются костыли, но если вас они устраивают, то не вопрос.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 346
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Да я понимаю что костыли, но что поделаешь, пользователи просят сделать как можно читабельней выводимую табличку.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 346
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Доброго времени суток, господа-товарищи! Мне опять нужен ваш совет, возникла необходимость сделать даблклил, в выводимой табличке и чтобы при даблклике отркывалась ещё одна табличка, т.е. при даблклике происходило событие заполяющее данными вторую табличку, например я хочу посмотреть некоторые данные того или иного кредитора, я щёлкаю на поле даблкликом и у меня выходит ещё небольшая табличка с данными об этом кредиторе. Возможно ли это организовать средствами, приводимого вами в пример класса, или подгрузить отдельно как то?! Ошень надо сделать, буду весьма признателен за помощь.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
Доброго времени суток, господа-товарищи! Мне опять нужен ваш совет, возникла необходимость сделать даблклил, в выводимой табличке и чтобы при даблклике отркывалась ещё одна табличка, т.е. при даблклике происходило событие заполяющее данными вторую табличку
Ну конечно, делаете реакцию на клик мышью в ячейке, попадаете в метод, в котором пишете код выбора необходимой информации после чего выводите ее в отдельном диалоговом окне. Как выводить это уже другой вопрос...

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 346
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Мне бы какой нить класс подсказать ааа, или в cl_salv_table какой нить метод, чтоб не сильно программку переделывать?

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
Мне бы какой нить класс подсказать ааа, или в cl_salv_table какой нить метод, чтоб не сильно программку переделывать?
Ну зачем же ее переделывать, но вам надо прочитать BC410 кажется, который называется диалоговое программирование, который содержит информацию как рисовать свои окошки в SAP. Класс вам тут не очень поможет. Хотя есть к примеру можно по быстрому воспользоватся такими ФМ:

You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Форматирование вывода будет не очень красивым, зато будет быстро и не надо свои экраны рисовать.


Оффлайн themax

  • Newbie
  • *
  • Сообщений: 346
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Добрый день уважаемые ABAPer-ы. Вот не получается что то у меня даблклик, видимо всё таки делаю что то не так: Объявляю классы:
Код: You are not allowed to view links. Register or Login
DATA: gc_alv_table TYPE REF TO cl_salv_table,
      gc_columns TYPE REF TO cl_salv_columns_table,
      gc_colwork TYPE REF TO cl_salv_column_table,
      gc_functions TYPE REF TO cl_salv_functions,
      gc_display TYPE REF TO cl_salv_display_settings,
      gr_table type ref to cl_salv_table.


class lcl_handle_events definition deferred.
data: gr_events type ref to lcl_handle_events.

class lcl_handle_events definition.
  public section.
    methods:
        on_double_click for event double_click of cl_salv_events_table
        importing row column.

endclass.                    "lcl_handle_events DEFINITION

*---------------------------------------------------------------------*
*       CLASS lcl_handle_events IMPLEMENTATION
class lcl_handle_events implementation.

  method on_double_click.
    perform double_click using row column.
  endmethod.                    "on_double_click

endclass.     





выше у меня идут объявления данных, их типов, записей и таблиц, я их не стал выкладывать, поскольку программка работает, т.е. выводит табличку в соответствии с теми классами которые я использовал на примерах приводимых здесь, но вот именно даблклик не пашет, видимо у меня догонялки не хватает додумать что я не так делаю. Затем у меня идёт start of selection, потом выводится табличка на экран и дальше идёт  perform double_click

Код: You are not allowed to view links. Register or Login
FORM double_click  using  i_row    type i
                            i_column type lvc_fname.


  data: lr_selections     type ref to cl_salv_selections,
        ls_cell           type salv_s_cell.

  CASE i_column.
    WHEN 'IM_LIFNR'  " Подробно, документы
      OR 'IM_BUKRS'.
    lr_selections = gr_table->get_selections( ).
    ls_cell = lr_selections->get_current_cell( ).
    read table im_tab  index ls_cell-row.

  CLEAR wa.
  wa-program = 'SAPMF02K'.
  wa-dynpro = '0106'.
  wa-dynbegin = 'X'.
  APPEND wa TO bdcdata.

  CLEAR wa.
  wa-fnam = 'BDC_OKCODE'.
  wa-fval = '/00'.
  APPEND wa TO bdcdata.

  CLEAR wa.
  wa-fnam = 'RF02K-LIFNR'.
  wa-fval = im_tab-im_lifnr.  "Vendor
  APPEND wa TO bdcdata.

  CLEAR wa.
  wa-fnam = 'RF02K-BUKRS'.
  wa-fval = im_tab-im_bukrs.  "Company code
  APPEND wa TO bdcdata.

*General data
  CLEAR wa.
  wa-fnam = 'RF02K-D0110'.  "Address
  wa-fval = 'X'.
  APPEND wa TO bdcdata.

  CLEAR wa.
  wa-fnam = 'RF02K-D0120'. "Control
  wa-fval = 'X'.
  APPEND wa TO bdcdata.

  CLEAR wa.
  wa-fnam = 'RF02K-D0130'. "Payment transactions
  wa-fval = 'X'.
  APPEND wa TO bdcdata.

  CLEAR wa.
  wa-fnam = 'WRF02K-D0380'. "contact person
  wa-fval = 'X'.
  APPEND wa TO bdcdata.

*Company code data
  CLEAR wa.
  wa-fnam = 'RF02K-D0210'. "account info
  wa-fval = 'X'.
  APPEND wa TO bdcdata.

  CLEAR wa.
  wa-fnam = 'RF02K-D0215'. "Payment transactions
  wa-fval = 'X'.
  APPEND wa TO bdcdata.

  CLEAR wa.
  wa-fnam = 'RF02K-D0220'. "correspondence
  wa-fval = 'X'.
  APPEND wa TO bdcdata.

  CLEAR wa.
  wa-fnam = 'RF02K-D0610'. "With holding tax
  wa-fval = 'X'.
  APPEND wa TO bdcdata.

  CALL TRANSACTION 'FK03' USING bdcdata MODE 'E'.
  ENDCASE.
ENDFORM.


Есть у кого какие мысли что именно я не так делаю?? Буду весьма признателен за помощь, а то сам наверное не разберусь.

Оффлайн insaf121

  • Newbie
  • *
  • Сообщений: 25
  • Репутация: +1/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Обьяви
Код: You are not allowed to view links. Register or Login
DATA:   gc_events TYPE REF TO cl_salv_events_table.
И после  CREATE OBJECT gr_events.
Код: You are not allowed to view links. Register or Login
gc_events = gc_alv_table->get_event( ).
 CREATE OBJECT gr_events.
SET HANDLER gr_events->on_double_click FOR gc_events.

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
а как можно выделить строки определенным цветом?

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
а как можно выделить строки определенным цветом?
Читать где-то отсюда: You are not allowed to view links. Register or Login

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
так как я создавал ALV так как Uukrul прописал...т.е. без ФМ REUSE_ALV_GRID_DISPLAY, то пришлось пойти другим путем....для этого наткнулся на пример SALV_DEMO_TABLE_COLUMNS и You are not allowed to view links. Register or Login
В результате:

1) в своей табличке для ALV добавил поле
Код: You are not allowed to view links. Register or Login
data: begin of gt_alv OCCURS 50,
...
t_color           TYPE lvc_t_scol, " установка цвета строки
end of  gt_alv.

2) объявил структуру и таблицу для установки цвета
Код: You are not allowed to view links. Register or Login
data:   go_color  TYPE        lvc_s_scol,
        go_col    TYPE        lvc_t_scol.

3) перед выводом на экран таблички gt_alv написал следующее
Код: You are not allowed to view links. Register or Login
LOOP AT gt_alv. " пробежимся по строчкам таблицы
    CLEAR go_col.
    CLEAR  go_color.

    if <условие>
          go_color-color-col = col_positive. " цвет
          go_color-color-int = 0.
          go_color-color-inv = 0.

          APPEND go_color TO go_col.

          gt_alv-t_color = go_col. " закинем настройки цвета текущей строки в поле таблички

      TRY.

        go_columns->set_color_column( 'T_COLOR' ). " указывается имя поля из пункта (1)

      CATCH cx_salv_data_error.                         "#EC NO_HANDLER

      ENDTRY.

      MODIFY gt_alv.

    ENDIF.

  ENDLOOP.

go_alv->display( ). " вызов экрана


PS:

1) gt_alv - таблица с данными для ALV

2)
Код: You are not allowed to view links. Register or Login
DATA:   go_alv            TYPE REF TO cl_salv_table,
           go_columns        TYPE REF TO cl_salv_columns_table.

3) вместо col_positive вроде можно просто прописать число от 1 до 9.

вот как-то так....таким же образом и отдельную ячейку можно покрасить))

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 346
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
You are not allowed to view links. Register or Login
Обьяви
Код: You are not allowed to view links. Register or Login
DATA:   gc_events TYPE REF TO cl_salv_events_table.
И после  CREATE OBJECT gr_events.
Код: You are not allowed to view links. Register or Login
gc_events = gc_alv_table->get_event( ).
 CREATE OBJECT gr_events.
SET HANDLER gr_events->on_double_click FOR gc_events.

Здравствуйте уважаемые ABAPеры, в общем я сделал как вы и сказали, но чота у меня всё равно даблклик так и не срабатывает. Видимо я  всё равно что то не так делаю, как вы и сказали я объявил
Код: You are not allowed to view links. Register or Login
DATA:   gc_events TYPE REF TO cl_salv_events_table.
вставил я это объявления в кучу объявлений всех моих классов.
затем идёт класс
Код: You are not allowed to view links. Register or Login
class lcl_handle_events definition deferred.
data: gr_events type ref to lcl_handle_events.

class lcl_handle_events definition.
  public section.
    methods:
        on_double_click for event double_click of cl_salv_events_table
        importing row column.

endclass.                    "lcl_handle_events DEFINITION

*---------------------------------------------------------------------*
*       CLASS lcl_handle_events IMPLEMENTATION
class lcl_handle_events implementation.

  method on_double_click.
    perform double_click using row column.
  endmethod.                    "on_double_click

endclass.
затем идёт START-OF-SELECTION, затем идёт вывод таблички на экран с помощью класса gc_alv_table->display( ).
И после это я создаю объект и вставляю метод
Код: You are not allowed to view links. Register or Login
CREATE OBJECT gr_events.
SET HANDLER gr_events->on_double_click FOR gc_events.
Затем у меня идёт форма даблклика и вызова транзакций по даблклику. Может подскажите что именно я не так делаю?
« Последнее редактирование: Декабрь 06, 2012, 05:15:20 am от themax »

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 346
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
В общем я попробывал вставить
Код: You are not allowed to view links. Register or Login
gc_events = gc_alv_table->get_event( ).
CREATE OBJECT gr_events.
SET HANDLER gr_events->on_double_click FOR gc_events.

До конца выполнения вывода таблички на экран, перед
Код: You are not allowed to view links. Register or Login
gc_alv_table->display( ).
Даблклик стал отрабатывать и падать в дамп,  а мозгов как не хватало для решения это проблемки, так и щас не хватает. Может кто подскажет?! Буду весьма признателен.
« Последнее редактирование: Декабрь 06, 2012, 06:27:01 am от themax »

Оффлайн insaf121

  • Newbie
  • *
  • Сообщений: 25
  • Репутация: +1/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Вот пример для аналогии.

Код: You are not allowed to view links. Register or Login
REPORT 121.


DATA:  BEGIN OF test_tabl OCCURS 1,
  SIGNAL type c,
  vtoroe(15) TYPE c,
  tretie(15) TYPE c
  .
DATA:  END   OF test_tabl.

FIELD-SYMBOLS: <test_tabl> like LINE OF test_tabl.

DATA: text TYPE string ,
      nomer TYPE n.

DATA: gc_layout     TYPE REF TO cl_salv_layout, "для варианта
      gc_alv_table  TYPE REF TO cl_salv_table,
      gc_columns    TYPE REF TO cl_salv_columns_table,
      gc_colwork    TYPE REF TO cl_salv_column_table,
      gc_display    TYPE REF TO cl_salv_display_settings,
      gc_events     TYPE REF TO cl_salv_events_table,
      gc_functions  TYPE REF TO cl_salv_functions
      .

*----------------------------------------------------------------------*
*       CLASS lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_handle_events DEFINITION.
  PUBLIC SECTION.
*    CLASS-DATA:
*        lo_popup TYPE REF TO cl_salv_table.
    METHODS:

        on_double_click FOR EVENT double_click OF cl_salv_events_table
      IMPORTING row column,

    on_function_click
    FOR EVENT if_salv_events_functions~added_function
    OF cl_salv_events_table IMPORTING e_salv_function,


      on_link_click FOR EVENT link_click OF cl_salv_events_table
    IMPORTING row column .


ENDCLASS.                    "lcl_handle_events DEFINITION

*---------------------------------------------------------------------*
*       CLASS lcl_handle_events IMPLEMENTATION
*---------------------------------------------------------------------*
* §5.2 implement the events for handling the events of cl_salv_table
*---------------------------------------------------------------------*
CLASS lcl_handle_events IMPLEMENTATION.

  METHOD on_double_click. "Для двойного щелчка

    text = 'Вы выбрали'.
    nomer = row.
    CONCATENATE text  'строчку №' nomer 'и столбец' column INTO text SEPARATED BY space.
    MESSAGE text TYPE 'I' .

  ENDMETHOD.                    "on_double_click

  METHOD on_function_click. "Это для кнопок в заголовке

    CASE e_salv_function.
      WHEN 'EDIT'.

      WHEN 'ALL'.

    ENDCASE.
  ENDMETHOD.                    "on_function_click

  METHOD on_link_click. "Для вызова по ссылке
    CASE column.
      WHEN 'SIGNAL'.
        text = 'Отработка чек-бокса.'.
        MESSAGE text TYPE 'I' .


        read TABLE test_tabl ASSIGNING <test_tabl> INDEX  row.

        CASE <test_tabl>-SIGNAL.
          WHEN 'X'.
            <test_tabl>-SIGNAL = ' '.
          WHEN ' '.
            <test_tabl>-SIGNAL = 'X'.
          WHEN OTHERS.
        ENDCASE.

        gc_alv_table->refresh( ).

      WHEN 'TRETIE'.
        text = 'Ну и вызов чего-нибудь.'.
        MESSAGE text TYPE 'I' .
        call TRANSACTION 'ABAPDOCU'.
      WHEN OTHERS.
    ENDCASE.

  ENDMETHOD.                    "on_single_click


ENDCLASS.                    "lcl_handle_events IMPLEMENTATION

DATA: gr_events TYPE REF TO lcl_handle_events.


START-OF-SELECTION.

  DO 5 TIMES.
    test_tabl-SIGNAL = 'X'.
    test_tabl-vtoroe = sy-index * 2.
    test_tabl-tretie = 'Здесь будет ваша ссылка.'.
    append test_tabl.
  ENDDO.
  cl_salv_table=>factory( IMPORTING r_salv_table = gc_alv_table CHANGING t_table = test_tabl[] ).

  gc_columns = gc_alv_table->get_columns( ).

*-Нажимаемый чекбокс одновременно является ссылкой
  gc_colwork ?= gc_columns->get_column( 'SIGNAL' ).
  gc_colwork->set_cell_type( if_salv_c_cell_type=>checkbox_hotspot ).
  gc_colwork->set_long_text( 'CHECKBOX' ).


  gc_colwork ?= gc_columns->get_column( 'TRETIE' ).
  gc_colwork->set_cell_type( if_salv_c_cell_type=>hotspot ).
  gc_colwork->set_long_text( 'Ссылка на что-то' ).

  gc_events = gc_alv_table->get_event( ).

  CREATE OBJECT gr_events.

  SET HANDLER gr_events->on_link_click FOR gc_events.
  SET HANDLER gr_events->on_double_click FOR gc_events.


  gc_layout = gc_alv_table->get_layout( ).
  gc_layout->set_save_restriction( if_salv_c_layout=>restrict_none ).
  gc_layout->set_default('X'). "Вроде таким образом он будет помнить вариант по умолчанию который выбрал пользователь

  gc_functions = gc_alv_table->get_functions( ).
  gc_functions->set_all( 'X' ).



  gc_display = gc_alv_table->get_display_settings( ).
  gc_display->set_list_header( 'Тестовая таблица' ).


  gc_alv_table->display( ).

А по поводу вашей ошибки он говорит что параметр еще не присвоен.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 346
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Уряяяя, получилось, оказывается я использовал две ссылки на один и тот же класс, поэтому он у меня и падал в дамп, убрал вторую ссылку и заработало, спасибо insaf121 за помощь.
 

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
спасибо insaf121 за помощь.
Под иконкой пользователя выбираешь сердечко и добавляешь человеку свое спасибо  8)

Оффлайн Rpl

  • Newbie
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Всем доброго времени суток!

Uukrul , большое спасибо за тему, часто пользуюсь :)

У меня следующая ситуация:
Использую описанный класс для вывода данных, и в "top of page" вывожу критерии выбора селекционного экране. Если в поле многократного выбора было внесено некое большое количество параметров, то этот "top of page" занимает весь экран и нужно его вручную уменьшить. Можно ограничивать количество выводимых строк в "top of page" или вручную изменять высоту. Конечно, это не так уж критично.
Но все же, есть ли возможность программно управлять высотой блока "top of page"?
Спасибо!

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
Но все же, есть ли возможность программно управлять высотой блока "top of page"?
Как вы туда вообще попадаете? У меня почему-то в свое время
Код: You are not allowed to view links. Register or Login
    on_top_of_page
      FOR EVENT if_salv_events_list~top_of_page OF cl_salv_events_table
      IMPORTING r_top_of_page page table_index.

-------------------

  gc_events = gc_alv_table->get_event( ).
  CREATE OBJECT gr_events.

  SET HANDLER gr_events->on_top_of_page FOR gc_events.

ни при каких условиях не хотело попадать в это событие  :-\

Оффлайн Rpl

  • Newbie
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
You are not allowed to view links. Register or Login
Как вы туда вообще попадаете?

Сори, ошибочка:-[ :-[ ... вывожу в "top of list"

Код: You are not allowed to view links. Register or Login
DATA: lr_header     TYPE REF TO cl_salv_form_layout_grid,
          lr_flow         TYPE REF TO cl_salv_form_layout_flow.

CREATE OBJECT lr_header.

      lr_flow = lr_header->create_flow( row = sy-index   column  = 1 ).
      r_flow->create_text( text = 'text' ).

      gc_salv_table->set_top_of_list( lr_header ).
« Последнее редактирование: Сентябрь 19, 2013, 12:17:12 pm от Rpl »

Sapforum.Biz