Текущее время: Вс, авг 03 2025, 09:18

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: DO 6 TIMES
СообщениеДобавлено: Пн, июн 21 2010, 11:38 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, июл 19 2007, 07:04
Сообщения: 1072
Пол: Мужской
Коллеги, в программе HRULT3 существует инклюд HRUIT3F. В нем описана подпрограммка, которая читает инфо-тип 1015. Ну и на основе того что там начитала, потом из t77kl вытаскивает суммы. Поиск сумм описан в конструкции ниже.
Итоговые значения пишутся в it_forma_t_3-s_sum* (где * = 1, 2, 3). Мне нужно вытащить еще и 4-е поле. Описываю его так же как предыдущие (через IF... ENDIF), но на выходе получаю 0. Хотя запись в it1015 есть.

Что делает цикл DO 6 TIMES, можно только по русски. Доки на англ. почитал, не очень понятно.

Code:
IF sy-subrc = 0.
    LOOP AT it1015 WHERE begda  <= pc-endda AND endda >= pc-begda.
      DO 6 TIMES
        VARYING vartype-ctype FROM it1015-ctype NEXT it1015-ctype001
        VARYING vartype-waers FROM it1015-waers NEXT it1015-waers001
        VARYING vartype-budgt FROM it1015-budgt NEXT it1015-budgt001
        VARYING vartype-abart FROM it1015-abart NEXT it1015-abart001
        VARYING vartype-dirct FROM it1015-dirct NEXT it1015-dirct001.
*  Extra pay 1
        IF vartype-ctype = c_ctype1.
          PERFORM select_t77kl USING it1015-dirct
                            CHANGING it_forma_t_3-s_sum1.
          PERFORM convert_amount USING it_forma_t_3-s_sum1
                                       vartype-waers.
* For hourly rate extra pay 1
          IF vartype-abart = 1.
            PERFORM handle_worktime
              USING obj_id obj_type p_pchsvect l_subrc 8
              CHANGING it_forma_t_3-s_koef1.
          ENDIF.
        ENDIF.
*  Extra pay 2
        IF vartype-ctype = c_ctype2.
          PERFORM select_t77kl USING it1015-dirct
                            CHANGING it_forma_t_3-s_sum2.
          PERFORM convert_amount USING it_forma_t_3-s_sum2
                                       vartype-waers.
* For hourly rate extra pay 2
          IF vartype-abart = 1.
            PERFORM handle_worktime
              USING obj_id obj_type p_pchsvect l_subrc 8
              CHANGING it_forma_t_3-s_koef2.
          ENDIF.
        ENDIF.
*  Extra pay 3
        IF vartype-ctype = c_ctype3.
          PERFORM select_t77kl USING it1015-dirct
                            CHANGING it_forma_t_3-s_sum3.
          PERFORM convert_amount USING it_forma_t_3-s_sum3
                                       vartype-waers.
* For hourly rate extra pay 3
          IF vartype-abart = 1.
            PERFORM handle_worktime
              USING obj_id obj_type p_pchsvect l_subrc 8
              CHANGING it_forma_t_3-s_koef3.
          ENDIF.
        ENDIF.
*******************************************
*  Extra pay 4
        IF vartype-ctype = c_ctype4.
          PERFORM select_t77kl USING it1015-dirct
                            CHANGING it_forma_t_3-s_sum4.
          PERFORM convert_amount USING it_forma_t_3-s_sum4
                                       vartype-waers.
* For hourly rate extra pay 4
          IF vartype-abart = 1.
            PERFORM handle_worktime
              USING obj_id obj_type p_pchsvect l_subrc 8
              CHANGING it_forma_t_3-s_koef4.
          ENDIF.
        ENDIF.
*******************************************
      ENDDO.
    ENDLOOP.
  ENDIF.


Заранее спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DO 6 TIMES
СообщениеДобавлено: Пн, июн 21 2010, 11:57 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Maksimus написал:
Коллеги, в программе HRULT3 существует инклюд HRUIT3F. В нем описана подпрограммка, которая читает инфо-тип 1015. Ну и на основе того что там начитала, потом из t77kl вытаскивает суммы. Поиск сумм описан в конструкции ниже.
Итоговые значения пишутся в it_forma_t_3-s_sum* (где * = 1, 2, 3). Мне нужно вытащить еще и 4-е поле. Описываю его так же как предыдущие (через IF... ENDIF), но на выходе получаю 0. Хотя запись в it1015 есть.

Что делает цикл DO 6 TIMES, можно только по русски. Доки на англ. почитал, не очень понятно.

...

А какой приз данной викторины???
Что значит "Хотя запись в it1015 есть.". А в записи it1015 есть поле с ctype = c_ctype4???
Что именно Вам не ясно в столь тривиальном фрагменте кода?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DO 6 TIMES
СообщениеДобавлено: Пн, июн 21 2010, 12:12 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, июл 19 2007, 07:04
Сообщения: 1072
Пол: Мужской
А вообще что значит сам вызов DO 6 TIMES в данном случае?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DO 6 TIMES
СообщениеДобавлено: Пн, июн 21 2010, 12:16 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Maksimus написал:
А вообще что значит сам вызов DO 6 TIMES в данном случае?

В смысле в данном случае? В любом случае DO 6 TIMES это цикл в шесть проходов. Из F1
Цитата:
Repeats the processing enclosed by the DO and ENDDO statements n times. If n changes within the loop, this has no effect on loop passes.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DO 6 TIMES
СообщениеДобавлено: Пн, июн 21 2010, 13:05 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, июл 19 2007, 07:04
Сообщения: 1072
Пол: Мужской
Спасибо.
Разобрался.


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

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


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

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


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

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