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

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




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: DAQ как пользоваться условиями?
СообщениеДобавлено: Пт, дек 10 2010, 14:48 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 11 2008, 11:54
Сообщения: 359
Откуда: Воронеж
Пол: Мужской
Добрый день. Работаю с 4ФСС. Есть поле с некоторой суммой. Нужно добиться того, что если сумма положительная, то ее выводить, если отрицательная то скрывать. Подскажите можно ли это реализовать и если да, то как это сделать.

Спасибо.

_________________
Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DAQ как пользоваться условиями?
СообщениеДобавлено: Пт, дек 10 2010, 14:58 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, июн 01 2005, 09:40
Сообщения: 536
Откуда: Belgorod
Пол: Мужской
В настройке формуляра есть флажек "Без негативных сумм"

_________________
Новый этап на проекте - устранение доработок :).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DAQ как пользоваться условиями?
СообщениеДобавлено: Пт, дек 10 2010, 15:09 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 11 2008, 11:54
Сообщения: 359
Откуда: Воронеж
Пол: Мужской
Поле заполняется с помощью "Группы полей формуляр". Т.е. является разностью других полей. При установке галочки "Без отрицательных сумм" в нужное поле они все равно выводятся :(. Возможно эта галочка не действует на поля, которые вычисляются суммой других. Вопрос остается открытым. :(

_________________
Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DAQ как пользоваться условиями?
СообщениеДобавлено: Пт, дек 10 2010, 17:48 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, июн 01 2005, 09:40
Сообщения: 536
Откуда: Belgorod
Пол: Мужской
XXX_:) написал:
Поле заполняется с помощью "Группы полей формуляр". Т.е. является разностью других полей. При установке галочки "Без отрицательных сумм" в нужное поле они все равно выводятся :(. Возможно эта галочка не действует на поля, которые вычисляются суммой других. Вопрос остается открытым. :(


Да для группы эта ситуация не отрабатывает. :cry:
Мы писали свой ФМ, для обработки групп.

_________________
Новый этап на проекте - устранение доработок :).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DAQ как пользоваться условиями?
СообщениеДобавлено: Пт, дек 10 2010, 18:04 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 11 2008, 11:54
Сообщения: 359
Откуда: Воронеж
Пол: Мужской
А что за ФМ вы писали и куда его вставляли. Если просто к полю ФМ привязать, то во время его вызова еще суммируемые поля не имеют значений, поэтому тут вроде бы тупик. Отказаться же от всех сумм и все делать через ФМ-ы утомительно. Пока в поиске, ничего более менее приличного не придумал.

_________________
Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DAQ как пользоваться условиями?
СообщениеДобавлено: Вт, дек 14 2010, 11:36 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 11 2008, 11:54
Сообщения: 359
Откуда: Воронеж
Пол: Мужской
Большое спасибо, Брат Мигель, за подсказку. С ее помощью сконструировал некоторое решение, внутри ФМ-а вызывается стандартное суммирование. И на каждом шаге запоминаются слагаемые. На последнем шаге слагаемые суммируются и вычисляется знак суммы, если сумма отрицательная, то добавляется слагаемое = сумме, только с обратным знаком, чтобы на экран попало нулевое значение.

Code:
  DATA:  lt_fodat   TYPE  p99sd_tab_fodat
        ,returncode TYPE sy-subrc
        ,wa_fidat   TYPE p99sd_fidat
        ,ls_sum     type p99sd_fidat
        ,ls_value   type p99sd_value
        ,lsum_amtfo type p99sd_amtfo
        .

  CHECK NOT im_wafor-fidaq-sougr IS INITIAL.

  lt_fodat[] = im_tab_fodat[].

  wa_fidat-field = im_wafor-field.

  PERFORM daq_sougr IN PROGRAM saplhr99s00_daq IF FOUND
                      USING    im_daq
                               im_tab_pay
                               im_tab_time
                               im_tab_prelp
                               im_tab_user
                               im_form
                               im_wafor
                      CHANGING lt_fodat
                               wa_fidat-value
                               returncode
                               ch_tab_error.

*          Take into consideration that the field may need the
*          amount cumulated over all time registers
  IF returncode IS INITIAL AND NOT wa_fidat-value IS INITIAL.

    PERFORM consistency_fidat IN PROGRAM saplhr99s00_daq IF FOUND
                              USING    im_form im_wafor
                              CHANGING wa_fidat-value.

    PERFORM cum_time IN PROGRAM saplhr99s00_daq IF FOUND
                     USING    im_form im_wafor
                     CHANGING wa_fidat-value.

    ex_tab_value = wa_fidat-value.
*Сохраняем значения для подсчета знака
    APPEND wa_fidat TO gt_sum.

  ENDIF.


  IF returncode IS NOT INITIAL.
    ex_returncode = returncode.
  ENDIF.
*Проверка на положительность
  IF im_daq-pernr IS INITIAL.

    LOOP AT gt_sum into ls_sum WHERE field = im_wafor-field.

        LOOP AT ls_sum-value INTO ls_value.
          lsum_amtfo = lsum_amtfo + ls_value-amtfo.
        ENDLOOP.

    ENDLOOP.

    IF lsum_amtfo < 0.

*Нужно обнулить это поле.
        ls_value-begda = ls_value-begda + 1.
        ls_value-endda = ls_value-endda + 1.
        ls_value-amtfo = - lsum_amtfo.
        APPEND ls_value TO ex_tab_value.
    ENDIF.

    DELETE gt_sum WHERE field = im_wafor-field.

  ENDIF.

_________________
Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем


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

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


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

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


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

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