Текущее время: Пн, июл 28 2025, 21:13

Часовой пояс: 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 часа


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

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


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

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