Текущее время: Чт, апр 18 2024, 19:14

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Код для выборки из внутренних таблиц  Тема решена
СообщениеДобавлено: Ср, июл 27 2022, 11:16 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, июл 01 2022, 13:42
Сообщения: 62
Добрый день, при запуске программа ругается на то, что таблица maravtable не задекларирована. Хотя написано что maravtable TYPE TABLE OF marastr.
Подскажите, пожалуйста, что не так ? Как сделать этот простой селект.

Спасибо
Code:
TYPES:  BEGIN OF marastr,
mandt(3)      TYPE I,
mantr(10)     TYPE I,
mtart(30)     TYPE C,
END OF marastr.

TYPES: BEGIN OF marainstr,
mandt_i(5)  TYPE I,
mantr_i     TYPE I,
mtart_char  TYPE C,
END OF   marainstr.

TYPES: BEGIN OF ztabl,
  id TYPE I,
  text TYPE C,
  num  TYPE P,
END OF ztabl.

DATA: marav TYPE marastr,
      maravtable TYPE TABLE OF marastr,
      maravtable1 TYPE TABLE OF marainstr,
      ztable TYPE TABLE OF ztabl.

marav-mandt = 500.
marav-mantr = 123456789.
marav-mtart(30) = 'ROHRMATERIALLE'.

write : marav-mandt , marav-mantr , marav-mtart, 'Присвоили значения'.
INSERT marav INTO TABLE maravtable.
SELECT * FROM maravtable ORDER BY mandt.
ENDSELECT.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка в простом коде
СообщениеДобавлено: Ср, июл 27 2022, 11:25 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1246
Вы объявили внутр. таблицу maravtable . Внутр.таблица это почти как массив. Т.е. этот объект не в БД, а вашей программе существует. Выбирать с помощью SELECT из нее нельзя (в новых версиях можно, но лучше пока вам считать, что нельзя)

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка в простом коде
СообщениеДобавлено: Ср, июл 27 2022, 11:40 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, июл 01 2022, 13:42
Сообщения: 62
Спасибо за быстрый ответ. Я учусь. Подскажите, пожалуйста, я правильно понимаю, что с внутренними таблицами нужно работать через READ INTO и т.д., а SQL для таблиц из БД?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Код для выборки из внутренних таблиц
СообщениеДобавлено: Ср, июл 27 2022, 15:00 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1246
Для чтения данных из внут. таблиц используются
read table - чтение одной записи по ключу или индексу
loop at - перебор строк внут.таблы в цикле, при этом в Where можно задать условие, которое ограничит перебираемые записи
INTO в обоих случаях можно использовать, но лучше не надо, т.к. в этом случае нужна переменная и время на перекладывание строки из внут. таблы в эту переменную. Лучше использовать ASSIGNING (в field-symbol) или REFERENCE INTO (привязка строки таблы к переменной типа ссылка).

Все информацию по оператору можно посмотреть во встроенном хелпе. Что бы его посмотреть, надо встать на интересующую конструкцию и нажать F1. Обычно в статье будет и ссылка на пример использования конструкции

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

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Код для выборки из внутренних таблиц
СообщениеДобавлено: Ср, июл 27 2022, 15:46 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, июл 01 2022, 13:42
Сообщения: 62
Спасибо большое за ответ


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

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


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

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


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

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