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

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


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

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


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

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