Текущее время: Вт, июл 29 2025, 13:31

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: CONTAINER
СообщениеДобавлено: Пн, янв 18 2010, 16:10 
Специалист
Специалист

Зарегистрирован:
Пн, дек 21 2009, 11:07
Сообщения: 167
Добрый вечер.

По возможности подскажите какой-нибудь пример по контейнерам.
Мне нужно на экране в подэкран поместить ALV-GRID. Через ALV всего лишь вывожу данные из моей вн. таблицы .

Заранее благодарен.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: CONTAINER
СообщениеДобавлено: Пн, янв 18 2010, 16:28 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, мар 03 2009, 12:33
Сообщения: 141
Привет, посмотри программы в пакете slis - они почти все на контейнерах.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: CONTAINER
СообщениеДобавлено: Пн, янв 18 2010, 16:58 
Специалист
Специалист

Зарегистрирован:
Пн, дек 21 2009, 11:07
Сообщения: 167
Спасибо


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: CONTAINER
СообщениеДобавлено: Чт, янв 21 2010, 15:51 
Специалист
Специалист

Зарегистрирован:
Пн, дек 21 2009, 11:07
Сообщения: 167
Коллеги,
Подскажите плиз, в чем может быть причина, того что кнопка суммирования не активна.
Code:
    CREATE OBJECT g_container
      EXPORTING
        container_name              = g_custom_control_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.
    ENDIF.

    CREATE OBJECT gr_alvgrid
      EXPORTING
        i_parent          = g_container
      EXCEPTIONS
        error_cntl_create = 1
        error_cntl_init   = 2
        error_cntl_link   = 3
        error_dp_create   = 4
        OTHERS            = 5.
    IF sy-subrc <> 0.
    ENDIF.

<...>

CALL METHOD gr_alvgrid->set_table_for_first_display
    EXPORTING
      is_layout = gs_layout
    CHANGING
      it_outtab = it_tovar[]
      it_fieldcatalog = gt_fieldcat
    EXCEPTIONS
      invalid_parameter_combination = 1
      program_error = 2
      too_many_lines = 3
      OTHERS = 4 .
    IF sy-subrc <> 0.
    ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: CONTAINER
СообщениеДобавлено: Чт, янв 21 2010, 16:03 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
DarZ написал(а):
Подскажите плиз, в чем может быть причина, того что кнопка суммирования не активна.

а в таблице it_tovar есть числовые поля?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: CONTAINER
СообщениеДобавлено: Чт, янв 21 2010, 16:04 
Специалист
Специалист

Зарегистрирован:
Пн, дек 21 2009, 11:07
Сообщения: 167
есть (datatype = 'DEC')


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: CONTAINER
СообщениеДобавлено: Чт, янв 21 2010, 17:41 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
специально сделал тестовый пример, на нем кнопка суммы присутствует... возможно, у вас с филдкаталогом какие-то проблемы
Code:

CALL SCREEN 0100.

*&---------------------------------------------------------------------*
MODULE pbo_0100 OUTPUT.

* ------------------заполнение таблицы тестовыми данными
  DATA:
    BEGIN OF it_tovar OCCURS 0,
      data     TYPE dats,
      summa    TYPE p DECIMALS 2,
    END   OF it_tovar.

  DO 10 TIMES.
    it_tovar-data  = sy-datum + sy-index.
    it_tovar-summa = sy-index.
    APPEND it_tovar.
  ENDDO.

* ------------------грид
  DATA:
    g_container   TYPE REF TO cl_gui_custom_container,
    gr_alvgrid    TYPE REF TO cl_gui_alv_grid.
  DATA:
    fcat_lvc    TYPE lvc_t_fcat,
    fcat_slis   TYPE slis_t_fieldcat_alv,
    g_repid     TYPE syrepid.

  CHECK g_container IS INITIAL
    AND gr_alvgrid  IS INITIAL.

* создание контейнера
  CREATE OBJECT g_container
    EXPORTING
      container_name = 'FOR_GRID'
    EXCEPTIONS
      OTHERS         = 6.
  CHECK sy-subrc EQ 0.

* создание грида
  CREATE OBJECT gr_alvgrid
    EXPORTING
      i_parent = g_container
    EXCEPTIONS
      OTHERS   = 5.
  CHECK sy-subrc EQ 0.

* танцы с бубном вокруг филдкаталога
  g_repid = sy-repid.
  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      i_program_name         = g_repid
      i_internal_tabname     = 'IT_TOVAR'
      i_inclname             = g_repid
      i_bypassing_buffer     = 'X'
    CHANGING
      ct_fieldcat            = fcat_slis
    EXCEPTIONS
      OTHERS                 = 3.

  CALL FUNCTION 'LVC_TRANSFER_FROM_SLIS'
    EXPORTING
      it_fieldcat_alv = fcat_slis
    IMPORTING
      et_fieldcat_lvc = fcat_lvc
    TABLES
      it_data         = it_tovar[]
    EXCEPTIONS
      OTHERS          = 2.

* отображение грида
  CALL METHOD gr_alvgrid->set_table_for_first_display
    CHANGING
      it_outtab                     = it_tovar[]
      it_fieldcatalog               = fcat_lvc[]
    EXCEPTIONS
      OTHERS                        = 4.

ENDMODULE.                 " PBO_0100  OUTPUT
*&---------------------------------------------------------------------*
MODULE pai_0100 INPUT.

  CHECK sy-ucomm EQ 'EXIT'.
  LEAVE PROGRAM.

ENDMODULE.                 " PAI_0100  INPUT


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: CONTAINER
СообщениеДобавлено: Ср, янв 27 2010, 07:26 
Специалист
Специалист

Зарегистрирован:
Пн, дек 21 2009, 11:07
Сообщения: 167
Здравствуйте, коллеги.

1.
Подскажите плиз, как можно расширить ALV-GRID (CONTAINER) по ширине экрана, вывожу его через элемент "СПЕЦ.УПР.ЭЛЕМЕНТ"?
Также есть элемент "РАМКА" на экране, я его растянул максимально по ширине на экране, а он занимает только часть области экрана. ???
В итоге нужно чтобы и ALV-GRID, и РАМКА были одинаковы по ширине.

2.
Можно как-нибудь поймать OK_CODE для дальнейшей обработки.
Code:
CALL METHOD gr_alvgrid->set_table_for_first_display



Заранее спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: CONTAINER
СообщениеДобавлено: Ср, янв 27 2010, 10:13 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
DarZ написал(а):
как можно расширить ALV-GRID (CONTAINER) по ширине экрана, вывожу его через элемент "СПЕЦ.УПР.ЭЛЕМЕНТ"

1) на вкладке "Свойства" экрана, в поле "Строки/столбцы - Ведение" необходимо ввести максимальную ширину и высоту экрана - "с запасом" (так, чтобы превышало любую диаганаль монитора) - например, 150 на 200. Экран ресайзится на уменьшение автоматически.
2) "СПЕЦ.УПР.ЭЛЕМЕНТ" (проще говоря, контейнер) необходимо растянуть до нижнего и правого краев экрана. Дважды щелкните по контейнеру - появится панель атрибутов, в которой надо поставить галочки "Изменение размера по вертикали/горизонтали"; в поля "Мин.строк/Мин.столбцов" введите значения поменьше, например, 10,10 (это минимальные ширина и высота экрана, до которых будет ресайзится контейнер).

К сожалению, рамку растянуть на всю ширину экрана не получится, т.к. максимально возможная ширина рамки 134 пункта... на большом мониторе это примерно половина экрана.

DarZ написал(а):
Можно как-нибудь поймать OK_CODE для дальнейшей обработки

а ОК-код какой команды вас интересует?
Если речь идет о событиях экрана, то в PAI-логике.
Если необходимо добавить свои кнопки на тулбар ALV-грида, то см.примеры обработки события toolbar. Обработка этих команд будет происходить в обработчике события user_command.
Если необходимо переопределить стандартные команды ALV-грида, то см.примеры обработки события before_user_command.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: CONTAINER
СообщениеДобавлено: Ср, янв 27 2010, 11:42 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
DarZ Вы пакет SLIS смотрели?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: CONTAINER
СообщениеДобавлено: Ср, янв 27 2010, 14:28 
Специалист
Специалист

Зарегистрирован:
Пн, дек 21 2009, 11:07
Сообщения: 167
Мне нужно изменить назначение некоторых кнопок в контейнере (к примеру выгружать только в XLS и убрать другие форматы).
В фм REUSE_ALV_GRID_DISPLAY есть параметр i_callback_user_command. А в CALL METHOD gr_alvgrid->set_table_for_first_display нету этого параметра или я плохо ищу...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: CONTAINER
СообщениеДобавлено: Ср, янв 27 2010, 14:37 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
DarZ написал(а):
нету этого параметра или я плохо ищу...

http://sap-partner.hu/ABAP_HELP_INFO/An%20Easy%20Reference%20for%20ALV%20Grid%20Control.pdf


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: CONTAINER
СообщениеДобавлено: Ср, янв 27 2010, 14:43 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
DarZ написал(а):
Мне нужно изменить назначение некоторых кнопок в контейнере (к примеру выгружать только в XLS и убрать другие форматы).
В фм REUSE_ALV_GRID_DISPLAY есть параметр i_callback_user_command. А в CALL METHOD gr_alvgrid->set_table_for_first_display нету этого параметра или я плохо ищу...

кнопок в контейнере нету, кнопки на тулбаре алв грида.
Почему Вы не смотрите пакет SLIS? :)
программа BCALV_GRID_05 из вышеуказанного пакета, в ней показано как добавлять кнопку на тулбар.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: CONTAINER
СообщениеДобавлено: Ср, янв 27 2010, 15:37 
Специалист
Специалист

Зарегистрирован:
Пн, дек 21 2009, 11:07
Сообщения: 167
Спасибо за пример.
Почти разобрался.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: CONTAINER
СообщениеДобавлено: Чт, янв 28 2010, 12:26 
Специалист
Специалист

Зарегистрирован:
Пн, дек 21 2009, 11:07
Сообщения: 167
Добрый день.
Вопрос конечно не в тему, не хотелось открывать новую тему. Не подскажите есть ли в системе BAPi на основе транзакции F-44?
В тр. BAPI смотрел, результат пока безуспешен.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.

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


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

Сейчас этот форум просматривают: Google [Bot]


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

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