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

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


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

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


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

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