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

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


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

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


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

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