问题描述:
1.总帐->查询->凭证交易记录,输入一张 汇兑损益 产生的凭证的凭证号,点击打印->凭证
也可以通过如下路径:总帐->会计科目表(找到在汇率处设定的 汇兑损益科目)->交易记录->凭证->打印
出现如下错误:

修复如上bug(问题原因和修复方法在本文下面描述),重新打印凭证
2.打印出的报表没有金额,如下图所示:

问题原因
1.SP1有个bug,汇率的计算用了  (外币发生额/当前交易币种发生额)*100,也就是除反了,SP2修复了这个bug,采用了(本币发生额/当前交易币种发生额)*100,但没有改变零的判断条件,依然判断了本币发生额是否为零,而没有改成判断当前交易币种发生额,于是就出错了。
具体代码为:类LedgerReport_Voucher_CN的initFromLedgerTrans方法.
2.取不出数是因为AX在处理LedgerPostingType为汇兑收益(ExchRateGain),汇兑损失(ExchRateLoss)等(当然也可能还有其他的过账类型,具体还有哪些类型我没测试过,可能要微软给出相应文档了)过账类型的时候跟其他过账类型处理方式不同,这些过账类型在LedgerTrans的当前交易币种的金额字段AmountCur并没有记录金额(可能本来就是汇兑损益产生的金额,所以就没有记录该金额吧?),而是只在本位币发生额字段AmoutMST处记录了金额,而这张报表在取数的时候是通过LedgerReport_Voucher_CN的initFromLedgerTrans实现的,这个方法只取了LedgerTrans的字段AmountCur的值,报表中的本位币金额是使用AmountCur通过汇率计算出来的,由于汇兑损益类型的过账在LedgerTrans只记录了本位币发生额,并没有记录当前交易币种的发生额AmountCur,于是就取不到数了。
解决方法
1.将LedgerReport_Voucher_CN的initFromLedgerTrans的方法判断零那段代码修改为如下代码:

if (_ledgerTrans.AmountCur != 0)
    {
        tmpVoucher.ExchRate         = (_ledgerTrans.AmountMST / _ledgerTrans.AmountCur) * 100;
    }

2.由于在这种情况下只有本位币金额没有当前交易币种发生额的金额,也就没办法计算汇率了,就不能绕个弯通过汇率计算本位币金额的方式了。
可以考虑给表TmpVoucher_CN增加两个字段AmountMSTDebit和AmountMSTCredit,分别用于记录LedgerTrans的本位币贷方和借方发生额。然后修改报表LedgerVoucher_CN的fetch和printerLedgerTrans方法以及类LedgerReport_Voucher_CN的initFromLedgerTrans方法,改变Design的字段AmountMSTCredit和AmountMSTDebit字段的取数逻辑,改为直接从表TmpVoucher_CN的相应字段取数。
当然仁者见仁,智者见智,每个人都有自己的修改方法,另外俺也没有仔细分析这个报表的代码,没搞清楚AX在实现的时候为什么要绕个弯,先通过本位币金额计算出汇率,再用汇率计算出本位币,而不是直接取LederTrans的本位币发生额AmountMST,可能有些地方俺没考虑周全,.所以这里只给出一个俺的思路供参考,每个人可以根据自己的理解去改,只要改对了就OK了,期待微软尽快给出统一的解决方案,我们就不用都自己改一个版本了,呵呵。

转载于:https://www.cnblogs.com/Farseer1215/archive/2007/09/04/880880.html

AX4.0 SP2本地化的问题---汇兑损益报表打印相关推荐

  1. vfp报表纸张设置_VFP 9.0中实现多种自定义纸张格式的报表打印

    VFP 9.0 中实现多种自定义纸张格式的报表打印 徐小栋 [期刊名称] <福建电脑> [年 ( 卷 ), 期] 2009(025)001 [摘要] 该文叙述了在 VFP 9.0 开发的应 ...

  2. java调用帆软cpt文件_报表中心FineReport中java如何直接调用报表打印

    完整代码: package com.fr.io; import java.io.File; import java.util.HashMap; import com.fr.base.FRContext ...

  3. .NET Compact Framework 2.0 SP2 for Platform Builder (4.2, 5.0, 6.0)

    .NET Compact Framework 2.0 SP2 前段时间已经发布了,详情看我之前写的 .NET Compact Framework 2.0 SP2 悄悄来临.在2007年3月份的 Win ...

  4. 一加桌面3.0 android8,一加手机XRemix6.0安卓8.1.0Beta2.0定制本地化增强适配归属农历等...

    制作者:moonlight-roms 基于版本:remix最新安卓8.1.0代码 适合机型:一加手机X双网版/全网通版/E1001/E1003等/onyx 注意事项: 1.开机后语言设置:Settin ...

  5. 在AX4.0中使用C#脚本的实现

    在AX4.0中使用C#脚本的实现 1,虽然ms收购了ax,但是在ax低版本(ver<=4.0)中,还没有办法直接使用ms现在主推的.net技术. 通常的做法是现在AX中天津.net的引用,然后才 ...

  6. 使用FastReport 3.0及以上版本创建动态报表的几个技巧(转)

    使用FastReport 3.0及以上版本创建动态报表的几个技巧 2007年07月03日 星期二 09:18 2007年03月13日 星期二 16:20 1.已经生成的报表保存到流中,再从流中取出   ...

  7. WSUS 3.0 SP2服务器配置

    WSUS 是Windows Server Update Services的简称,它在以前Windows Update Services的基础上有了很大的改善.目前的版本可以更新更多的Windows补丁 ...

  8. Atmel Studio 6.0 SP2 2.4 Gb.txt

    3DQuickPress5.2.1三维连续冲模设计.txt Atir Strap 2011 build 100 with Beamd 2010 .txt Atmel AVR Studio 6.0.17 ...

  9. Vue + EChart4.0 从0到1打造商业级数据报表项目

    Vue + EChart4.0 从0到1打造商业级数据报表项目 环境搭建 相关配置 安装脚手架 创建项目 项目初始化 安装element插件 安装echarts 组件 创建组件 嵌套组件到Home组件 ...

最新文章

  1. mybatis mysql usegeneratedkeys_mybatis中useGeneratedKeys用法--插入数据库后获取主键值
  2. 嵌入式C语言的7个硬核知识
  3. AUTOSAR从入门到精通100讲(四十九)-AUTOSAR 通信服务Dcm篇-Dcm概念及DSL详解与实战案例
  4. HDFS体系架构介绍
  5. 139_Power BI之某制造企业HR相关数据年度复盘
  6. linux虚拟机lvm扩容,LVM扩容-----给虚拟机添加空间
  7. 客运售票员_汽车客运站售票员售票操作规范
  8. php android 图片上传,android上传图片到PHP的过程详解
  9. C#技术分享【PDF转换成图片——10种方案】(2013-07-25重新整理)
  10. 一个Node程序猿上海的一周
  11. ActiveMQ反序列化漏洞CVE-2015-5254复现
  12. 创可贴的 ROS PX4 自主飞行无人机 学习笔记(1)
  13. JSON在线编辑器V2.0
  14. 终端安全管理之殇:安全管控能力与用户体验
  15. 【数据库学习笔记】Day03 - SQL语言基础及数据库定义功能
  16. 学习笔记-《python程序员面试宝典》-基础知识-数据结构-编程思维(一)
  17. windows 查看端口号
  18. 直播网站是怎么实现的
  19. 在MATLAB上运行Python示例
  20. Ubuntu18.04屏幕分辨率问题

热门文章

  1. 解决ROS系统 rosdep update超时问题的新方法
  2. 985大学计算机专业起薪,985名校毕业生有多值钱?看完这份大学毕业生薪酬榜你就知道了...
  3. 基于Opencv和STM32物理鼠标的目标跟踪器
  4. Dapp 众筹项目1 合约代码编写
  5. VMware虚拟机安装macos Big Sur 11.1.0 (20C69)镜像CDR/ISO下载
  6. CH340驱动安装失败 win10
  7. android自定义大括弧
  8. [渝粤教育] 西南科技大学 建筑CAD 在线考试复习资料
  9. 传递给数据库 'master' 中的日志扫描操作的日志扫描号无效
  10. Kali Linux虚拟机安装