21 августа, понедельник 15:11
Bankir.Ru

Объявление

Свернуть

Технические работы на почтовом сервере

С 23.00 21 августа до 7.00 22 августа на почтовом сервере будут проводиться технические работы. Почтовый сервис в это время будет не доступен.
Показать больше
Показать меньше

Помогите с курсами валют

Свернуть
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Помогите с курсами валют

    При сложной проводке использую функцию Rsl CurrRate(Код валюты)
    По долларам все нормально по Евро (978) курс не всегда провильный
    номер сборки 5.00.048.7
    Может быть .... дело не в CurrRate .... но курсы стоят и за те же даты что и доллар

  • #2
    Код:
    /*================================================
         crnc_CurrRate
          возвpащает текущий куpс ЦБ
    
          Аргументы:
                     Code_Currency - код валюты
    ================================================*/
    
    macro crnc_CurrRate(Code_Currency)
    file db_cur("currency.dbt");
    var fResult=0.0;
    
        if (Code_Currency==0)
           close(db_cur);
           return 1.0;
        end;
        /* Возведение десяти в степень ---------------------------------- */
        macro powf (n,k)
        var ret1=n;
        var i=1;
            while (ik)
                  ret1=ret1*n;
                  i=i+1;
            end;
        return ret1;
        end;
    
        db_cur.Code_Currency = Code_Currency;
        if (not geteq(db_cur))
           close(db_cur);
           RunError("Ошибка поиска куpса валюты!");
        end;
    
        fResult=double(db_cur.Cur_Rate / db_cur.ScaleOfc / powf(10,db_cur.PointOfc));
    
    
        close(db_cur);
    
    return fResult;
    end;
    
    /*================================================
          crnc_CurrRate4Date
          возвpащает курс ЦБ за произвольную дату
    
          Аргументы:
                     Code_Currency - код валюты
                     dDate         - дата курса
                     dCDate        - текущая дата
    ================================================ */
    
    macro crnc_CurrRate4Date(Code_Currency,dDate,dCDate)
    file db_cur("crncdate.dbt");
    var fResult=0.0;
    
        if (Code_Currency==0)
           close(db_cur);
           return 1.0;
        end;
    
        if(dDate==dCDate)
         return(crnc_CurrRate(Code_Currency));
        end;
    
        /* Возведение десяти в степень ---------------------------------- */
        macro powf (n,k)
        var ret1=n;
        var i=1;
            while (ik)
                  ret1=ret1*n;
                  i=i+1;
            end;
        return ret1;
        end;
    
        db_cur.Code_Currency = Code_Currency;
        db_cur.Date_Rate = dDate;
    
        if ((not getle(db_cur)) or (db_cur.Code_Currency!=Code_Currency))
           RunError("Ошибка поиска куpса валюты!");
        end;
    
        fResult=double(db_cur.Rate / db_cur.Scale / powf(10,db_cur.Point));
    
        close(db_cur);
    
        return fResult;
    end;

    Комментарий


    • #3
      Спасибо!
      Хочешь сделать что-то хорошо, сделай это сам ... а не полагайся на встроенные функции

      Комментарий


      • #4
        2 Genmichael:
        При сложной проводке использую функцию Rsl CurrRate(Код валюты)
        По долларам все нормально по Евро (978) курс не всегда провильный
        номер сборки 5.00.048.7

        Хочешь сделать что-то хорошо, сделай это сам ... а не полагайся на встроенные функции

        Нравится мне подход... Примерно как:
        "У меня телевизор не работает. Иногда картинка пропадает."
        И Вы хотите, чтобы мастер Вам по телефону рассказал по какой причине это происходит?

        Может быть лучше привести конкретный пример (можно на мой E-Mail) и разобраться в чем дело?

        Комментарий

        Пользователи, просматривающие эту тему

        Свернуть

        Присутствует 1. Участников: 0, гостей: 1.

        Обработка...
        X