Текущее время: Сб, авг 02 2025, 19:46

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


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

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


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

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