Текущее время: Пт, июн 27 2025, 01:29

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: передача в METHOD значения через importing - exporting
СообщениеДобавлено: Чт, сен 22 2005, 12:24 
Гость
подскажите, что можно сделать?
есть метод:
Code:
METHODS popup IMPORTING
             TITLE TYPE C     
             TAB TYPE C   
             T_TAB TYPE C.

вызываю метод, передаю параметры:
Code:
CALL METHOD popup_select->popup EXPORTING     
                     TITLE = 'Choose documents'
                     TAB = 'ZBKPF'
                     T_TAB = ZBKPF.

implementation такой:
Code:
METHOD popup.                           
  CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'   
  EXPORTING                                 
    i_title = TITLE                         
    i_tabname = TAB           
    it_fieldcat = lt_fcat         
  TABLES                                   
    t_outtab = T_TAB.       
ENDMETHOD.   

TITLE и TAB прекрасно передаются, как передать T_TAB не знаю :(
ZBKPF - внутренняя таблица, определяется в определении класса.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 22 2005, 13:02 
Гость
может нужно T_TAB[] ?


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 22 2005, 13:04 
Гость
в смысле ZBKPF[] :)


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 22 2005, 13:07 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 22 2005, 09:51
Сообщения: 208
Пол: Мужской
М.б. так:

Code:
types: t_mtable type table of ZBKPF.

METHODS popup IMPORTING
             TITLE TYPE C     
             TAB TYPE C   
             T_TAB TYPE t_mtable.

CALL METHOD popup_select->popup EXPORTING     
                     TITLE = 'Choose documents'
                     TAB = 'ZBKPF'
                     T_TAB = ZBKPF[].


? :D

_________________
С уважением, В.Ш.
4.6C


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: передача в METHOD значения через importing - exporting
СообщениеДобавлено: Чт, сен 22 2005, 13:43 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Если структура таблицы не важна (например, она нужна только для передачи в ALV, то можно так описать:
Code:
METHODS popup IMPORTING
             TITLE TYPE C     
             TAB TYPE C   
             T_TAB TYPE ANY TABLE.

Вызывается так:
Code:
CALL METHOD popup_select->popup EXPORTING     
                     TITLE = 'Choose documents'
                     TAB = 'ZBKPF'
                     T_TAB = ZBKPF[].


Если внтури метода обрабатывается структура, то нужно описать тип таблицы (можно в SE11), и тогда в определении метода указывать этот тип и передавать внутренние таблицы только такой структуры.

_________________
С уважением, Сергей Королев


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 22 2005, 13:46 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 08:55
Сообщения: 331
Откуда: Украина, г.Мариуполь
Пол: Мужской
Если класс свой, можно объявить глобальный тип этой таблицы для использования в этом классе.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 22 2005, 14:54 
Гость
не помогает ничего.
мне же нужно, чтобы при втором вызове метода, можно было в функцию передать другую внутреннюю таблицу, например, ZBSEG вместо ZBKPF.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 22 2005, 15:08 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 22 2005, 09:51
Сообщения: 208
Пол: Мужской
Цитата:
не помогает ничего.

Не верю! ANY TABLE дожно подойти 100про. :shock:

_________________
С уважением, В.Ш.
4.6C


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:   Тема решена
СообщениеДобавлено: Чт, сен 22 2005, 15:24 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Пример работает в 4.6с. Обратите внимание на CHANGING, если табличный параметр описать как IMPORTING, то валится в дамп, так как функция пытается с таблицей работать в режиме записи.

Code:
REPORT zz_decl_test .

*---------------------------------------------------------------------*
*       CLASS lcl_test DEFINITION
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
CLASS lcl_test DEFINITION.
  PUBLIC SECTION.
    METHODS popup IMPORTING
                 value(tabname) TYPE dd02l-tabname
                 CHANGING
                 t_tab TYPE STANDARD TABLE.

ENDCLASS.

*---------------------------------------------------------------------*
*       CLASS lcl_test IMPLEMENTATION
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
CLASS lcl_test IMPLEMENTATION.
  METHOD popup.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
         EXPORTING
              i_structure_name = tabname
         TABLES
              t_outtab         = t_tab
         EXCEPTIONS
              program_error    = 1
              OTHERS           = 2.
  ENDMETHOD.
ENDCLASS.

DATA:
  test TYPE REF TO lcl_test,
  zbkpf TYPE TABLE OF bkpf,
  zbseg TYPE TABLE OF bseg.

START-OF-SELECTION.
  CREATE OBJECT test.

  CALL METHOD test->popup
    EXPORTING tabname = 'BKPF'
    CHANGING  t_tab = zbkpf.

  CALL METHOD test->popup
    EXPORTING tabname = 'BSEG'
    CHANGING  t_tab = zbseg.

_________________
С уважением, Сергей Королев


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 22 2005, 15:37 
Гость
хм, а если zbkpf и zbseg в class definition описаны, то такое не пойдёт? у меня именно так. причём, что в private, что в public - результат один.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 22 2005, 16:04 
Гость
да, помогло вынесение таблиц из определения класса (хм, только как-то некрасиво, ну да ладно) и TYPE STANDARD TABLE, всем спасибо!


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

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


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

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


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

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