SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Как сравнить в программе старое значение и новое?



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
vad-anatolij
Специалист
Специалист



Joined: 17 Dec 2007
Posts: 51

PostPosted: Fri Aug 22, 2008 10:46 pm    Post subject: Как сравнить в программе старое значение и новое? Reply with quote

Доброй день.
При работе пакетника, данные построчно беруться из какого либо файла и вводяться в необходимую транзакцию.
Мне необходимо сравнивать данные полей одного столбца (предыдущее и последующее) и уже в зависимости от этого программа должна отработать, т.е.
например есть файл с данными

1 2 3 4

1 LKJ 23 KIJJ
2 KJH 33 ;LKJ
3 LKJ 65 IUYO

Мне необходимо, перед тем как вносить данные, сравнивать предыдущие и последующие значения в стобце 2 (например значения 1 и 2 строки столца 2). Как это сделать?

Понимаю что должно быть сравнение переменных:
В начале цикла присваиваем Х1 значение LKJ 1 строки
В конце цикла присваиваем это значение уже Х2, а в Х1 заносим KJH и сравниваем Х1 с Х2. Но как это записать в ABAP/4? Уважаемые подскажите.
Спасибо.
Back to top
View user's profile Send private message Blog
vga
Мастер
Мастер


Age: 60
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Fri Aug 22, 2008 11:55 pm    Post subject: Reply with quote

Очень просто, присвоение предыдущего значения выносим в самый конец цикла.

Code:
DATA: lt_anlb TYPE TABLE OF anlb,
      ls_anlb TYPE anlb,
      l_anln1_prev TYPE anlb-anln1.

SELECT * FROM anlb INTO TABLE lt_anlb.
LOOP AT lt_anlb INTO ls_anlb.

  IF ls_anlb-anln1 NE l_anln1_prev AND sy-tabix NE 1.
* не равно, делаем что-то
  ENDIF.
  l_anln1_prev = ls_anlb-anln1.
ENDLOOP.
Back to top
View user's profile Send private message Blog Visit poster's website
vad-anatolij
Специалист
Специалист



Joined: 17 Dec 2007
Posts: 51

PostPosted: Wed Sep 03, 2008 9:54 am    Post subject: Reply with quote

Создал внутреннюю таблицу

Code:
data: begin of ztab occurs 0,
          class like RMCLM-class,       "Класс
          atwrt like CAWN-atwrt,        "ЗнчПризнака
      end of ztab.

Объявил переменную
Code:
data:classNov like class.



Но при присвоении значения class переменной classNov
Code:
ztab-class=classPosle.

Ругается на ошибку в синтаксисе. Я не могу использовать данные напрямую из таблицы? Или неправильно присваиваю значения?
Back to top
View user's profile Send private message Blog
vga
Мастер
Мастер


Age: 60
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Wed Sep 03, 2008 10:32 am    Post subject: Reply with quote

Нужен пробел между = и название второй переменной неправильно.
ztab-class = classNov.
Back to top
View user's profile Send private message Blog Visit poster's website
vad-anatolij
Специалист
Специалист



Joined: 17 Dec 2007
Posts: 51

PostPosted: Wed Sep 03, 2008 1:17 pm    Post subject: Reply with quote

Embarassed с названием переменной...вот это ступил..приношу свои извинения.
Back to top
View user's profile Send private message Blog
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.