Текущее время: Чт, мар 28 2024, 21:25

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


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

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


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

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