Текущее время: Пн, июл 28 2025, 11: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 часа


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

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


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

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