Текущее время: Пн, июл 28 2025, 01:21

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Программа с циклом.
СообщениеДобавлено: Вт, июл 03 2007, 15:01 
Ассистент
Ассистент

Зарегистрирован:
Пн, июл 04 2005, 14:50
Сообщения: 47
Добрый день. Дали программу, которая работает в PL/SQL и попросили перевести её на ABAP. Часть уже перевела (до слова Begin), а дальше не совсем понятен синтаксис, а соответсвенно и как писать сам ABAP. Если есть возможность - помогите. :oops:

TABLES: ZDEPARTMENTS, ZDEPHIER.

DATA: c2 TYPE cursor.

OPEN CURSOR c2 FOR SELECT NATIVE_CODE ID DATE_TO DATE_FROM FROM ZDEPARTMENTS WHERE LEVEL_ID < 3.

DATA A1 TYPE i.

A1 = 0.



BEGIN
SELECT MAX (ID) + 2 INTO A1 FROM ZDEPARTMENTS.
FOR acct IN c2 LOOP

INSERT INTO ZDEPHIER (ID, INFOOBJECT, NODENAME, PARENT_ID, LINK_ID,
DATETO, DATEFROM, LANGUAGE_ID,
SHORT_NAME, MIDDLE_NAME,
LONG_NAME)
values (A1, '3', acct.nativecode, acct.id, '', acct.date_to, acct.date_from,'R', '2', '2', '2');

A1 := A1 + 1;

END LOOP;

END;


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июл 03 2007, 15:16 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Из таблицы ZDEPARTMENTS выбирается макс. значение поля ID.
К нему прибавляется два. Результат пишется в переменную А1.
Дальше идет луп по таблице ZDEPARTMENTS где LEVEL_ID < 3.
В каждом шаге лупа в таблицу ZDEPHIER вставляются значения (A1, '3', acct.nativecode, acct.id, '', acct.date_to, acct.date_from,'R', '2', '2', '2'); (поля с префиксом acct берутся из текущей строки ZDEPARTMENTS)
А1 увеличивается на 1.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июл 03 2007, 15:25 
Ассистент
Ассистент

Зарегистрирован:
Пн, июл 04 2005, 14:50
Сообщения: 47
Понятно.
Просто меня смутило BEGIN - это начало блока (как объяснили так отделяются логичекие части программы), вот и думаю чем его заменить в самом ABAP. То есть теоретически понятно только момент реализации на ABAPe не совсем.


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

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


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

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


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

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