Доброго дня! Эксперты, помогите !сделал последовательность ,которая считает курсовую разницу и складывает на конец пред. месяца. CDAY выводит текущую обрабатываемый день, CDAY4 последнйи день пред. месяца ( так как данные со статьи ВВ лежат на 1ом числе каждого месяца , но выводит например CDAY=31.02.2011 ,а CDAY4=30.02.2011 ? Словно if item='bb' не существует
DATA ITEM TYPE 0CMMT_ITEM. DATA CALDAY TYPE 0CALDAY. DATA CALDAY4 TYPE 0CALDAY. DATA CALDAY5 TYPE 0CALDAY. DATA CALDAY2 TYPE STRING. DATA CALDAY3 TYPE STRING. DATA FISCPER TYPE 0FISCPER. DATA FISCPER2 TYPE 0FISCPER. DATA FISCPERE TYPE 0FISCPER. DATA A TYPE F. DATA B TYPE F. DATA C TYPE F. DATA X TYPE F. DATA CURR TYPE 0CURRENCY. DATA FPS TYPE STRING.
CURR = OBJV().
FISCPERE=VARI('ZV_BP_FISCPER002', VARC('ZV_BP_FISCPER002')). FOREACH FISCPER IN SELECTION. FPS=SUBSTR( FISCPER, 5, 2 ). IF FPS > '00' AND FPS < '13' . B=0. C=0. FISCPER2=TMVL(FISCPER,1). FOREACH CALDAY. MESSAGE I001 (CDAY) WITH CALDAY. FOREACH ITEM. IF FISCPER2 <= FISCPERE . A={0AMOUNT, CALDAY, ITEM, FISCPER}.
IF ITEM = 'BB'. CALDAY4=TMVL(CALDAY,-1). C=C+CURC( A ,CALDAY4 ,'CBR', CURR,'USD'). X=X+1. MESSAGE I001 (CDAY4) WITH CALDAY4 X. ELSE. C=C+CURC( A ,CALDAY ,'CBR', CURR,'USD'). ENDIF.
CALDAY3=SUBSTR( FISCPER2 , 0 , 4 ). CALDAY2=SUBSTR( FISCPER2 , 5 , 2). CALDAY2=CONCAT ( CALDAY2, '01'). CALDAY2=CONCAT (CALDAY3,CALDAY2). CALDAY5= CALDAY2. CALDAY5=TMVL(CALDAY5,-1). B=B+ CURC( A ,CALDAY5 ,'CBR', CURR,'USD'). ENDIF. ENDFOR. ENDFOR. ENDIF.
{0AMOUNT, CALDAY5, 'EXCH', FISCPER}=C-B. MESSAGE I001 (CDAY5) WITH CALDAY5. ENDFOR.
Последний раз редактировалось Rolo Чт, авг 11 2011, 14:16, всего редактировалось 1 раз.
|