Текущее время: Чт, май 15 2025, 23:43

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Как можно использовать dataset в методе объекта?
СообщениеДобавлено: Ср, окт 12 2005, 16:23 
Гость
Я хочу создать объект и в нем метод, который будет по нескольким параметрам выдавать набор данных (SELECT INTO TABLE). Но в параметрах метода не могу указать таблицу, только структуру.

Как правильно будет реализовать такое?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 12 2005, 17:39 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Думаю, правильно будет в словаре определить тип "Тип таблицы", где в в качестве строки указать Вашу структуру. Или определить тип таблицы в группе типов и указать её в свойствах класса.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 12 2005, 18:13 
Гость
Я указываю ссылочным типом прозрачную таблицу, данные из которой потом и собираюсь брать. Т.е. указываю я таблицу, но получаю только структуру с соответственной невозможностью записать туда dataset.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 12 2005, 20:06 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Robocop написал(а):
Я указываю ссылочным типом прозрачную таблицу, данные из которой потом и собираюсь брать. Т.е. указываю я таблицу, но получаю только структуру с соответственной невозможностью записать туда dataset.


Следует изучить справку по ABAPу на предмет выяснения разницы между прозрачными таблицами и внутренними таблицами.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 13 2005, 00:50 
Гость
Я знаю, что есть прозрачная, а что есть внутренняя таблица.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 13 2005, 09:02 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Robocop написал(а):
Я знаю, что есть прозрачная, а что есть внутренняя таблица.


Тогда вы должны знать что в SELECT ... INTO TABLE itab ...
itab - внутренняя таблица и см. ответ EGF


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 13 2005, 09:23 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Robocop написал(а):
Я указываю ссылочным типом прозрачную таблицу, данные из которой потом и собираюсь брать. Т.е. указываю я таблицу, но получаю только структуру с соответственной невозможностью записать туда dataset.

Указав в качестве типа параметра прозрачную таблицу, Вы и в самом деле указываете структуру. Вы легко можете в этом убедиться, перейдя к описанию класса:
Code:
  methods TEST1
    importing
      !ES_MARA type MARA .

Если Вам не нравится определять тип в словаре или в группе типов, то самое простое, что можно придумать, выглядит примерно так:
Code:
CLASS lc_test DEFINITION DEFERRED.

DATA:
  gs_mara  TYPE mara,
  gt_mara  TYPE STANDARD TABLE OF mara,
  glc_test TYPE REF TO lc_test
.
*---------------------------------------------------------------------*
*       CLASS lc_test DEFINITION
*---------------------------------------------------------------------*
CLASS lc_test DEFINITION.
  PUBLIC SECTION.
    METHODS get_data
      EXPORTING et_data TYPE STANDARD TABLE.
  PRIVATE SECTION.
    TYPES:
      tt_mara TYPE STANDARD TABLE OF mara
    .
ENDCLASS.                    "lc_test DEFINITION

*---------------------------------------------------------------------*
*       CLASS lc_test IMPLEMENTATION
*---------------------------------------------------------------------*
CLASS lc_test IMPLEMENTATION.
  METHOD get_data.
*      EXPORTING et_data TYPE STANDARD TABLE.
    DATA:
      ls_mara TYPE mara
    .
    ls_mara-matnr = '1'.
    APPEND ls_mara TO et_data.
    ls_mara-matnr = '2'.
    APPEND ls_mara TO et_data.
  ENDMETHOD.                    "get_data
ENDCLASS.                    "lc_test IMPLEMENTATION

START-OF-SELECTION.
  CREATE OBJECT glc_test.
  CALL METHOD glc_test->get_data
    IMPORTING
      et_data = gt_mara.
  LOOP AT gt_mara INTO gs_mara.
    WRITE / gs_mara-matnr.
  ENDLOOP.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 13 2005, 10:45 
Гость
Всем спасибо! :)
Сделал через группу типов и все заработало!


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

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


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

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


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

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