说明:查询当前日期之前最新的汇率。
根据原币和汇率时,取凭证日期之前最近的汇率,SQL查询时不能直接使用凭证日期,应该先转换为系统日期,然后才能进行查询。
以下代码实现:
根据交货单上的交货日期,查询交货日期上个月月末的汇率,如果不存在则继续往前查找,直至最新。如交货日期2010-12-15,则查找上个月月末2010-11-30维护的汇率,否则找10月末的,依次递推。
分成4步:
1)'FIMA_DATE_CREATE' 求得上月最后一天;
2)将最后一天转换为系统内部日期;
3)查询汇率有效起始日期,比较关系(大于小于)与外部日期正好相反;
4)将汇率有效起始日期(转为外部日期)代入汇率函数:'READ_EXCHANGE_RATE'。
即: 最后一天 —— 转为系统内部日期 —— 汇率有效起始日期 —— 汇率函数取汇率。
DATA : l_YFKD LIKE MKPF-BLDAT, " 预付款日 中间变量
l_gdatu LIKE TCURR-gdatu, " 日期
l_ukurs LIKE TCURR-ukurs. " 汇率
DATA : l_last_day TYPE DVALUT.
DATA: l_foreign_factor LIKE tcurr-ffact, "汇率转换因子
l_local_factor LIKE tcurr-tfact.