AX4.0 SP2本地化的问题---汇兑损益报表打印
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的方法判断零那段代码修改为如下代码:
{
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本地化的问题---汇兑损益报表打印相关推荐
- vfp报表纸张设置_VFP 9.0中实现多种自定义纸张格式的报表打印
VFP 9.0 中实现多种自定义纸张格式的报表打印 徐小栋 [期刊名称] <福建电脑> [年 ( 卷 ), 期] 2009(025)001 [摘要] 该文叙述了在 VFP 9.0 开发的应 ...
- java调用帆软cpt文件_报表中心FineReport中java如何直接调用报表打印
完整代码: package com.fr.io; import java.io.File; import java.util.HashMap; import com.fr.base.FRContext ...
- .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 ...
- 一加桌面3.0 android8,一加手机XRemix6.0安卓8.1.0Beta2.0定制本地化增强适配归属农历等...
制作者:moonlight-roms 基于版本:remix最新安卓8.1.0代码 适合机型:一加手机X双网版/全网通版/E1001/E1003等/onyx 注意事项: 1.开机后语言设置:Settin ...
- 在AX4.0中使用C#脚本的实现
在AX4.0中使用C#脚本的实现 1,虽然ms收购了ax,但是在ax低版本(ver<=4.0)中,还没有办法直接使用ms现在主推的.net技术. 通常的做法是现在AX中天津.net的引用,然后才 ...
- 使用FastReport 3.0及以上版本创建动态报表的几个技巧(转)
使用FastReport 3.0及以上版本创建动态报表的几个技巧 2007年07月03日 星期二 09:18 2007年03月13日 星期二 16:20 1.已经生成的报表保存到流中,再从流中取出 ...
- WSUS 3.0 SP2服务器配置
WSUS 是Windows Server Update Services的简称,它在以前Windows Update Services的基础上有了很大的改善.目前的版本可以更新更多的Windows补丁 ...
- 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 ...
- Vue + EChart4.0 从0到1打造商业级数据报表项目
Vue + EChart4.0 从0到1打造商业级数据报表项目 环境搭建 相关配置 安装脚手架 创建项目 项目初始化 安装element插件 安装echarts 组件 创建组件 嵌套组件到Home组件 ...
最新文章
- mybatis mysql usegeneratedkeys_mybatis中useGeneratedKeys用法--插入数据库后获取主键值
- 嵌入式C语言的7个硬核知识
- AUTOSAR从入门到精通100讲(四十九)-AUTOSAR 通信服务Dcm篇-Dcm概念及DSL详解与实战案例
- HDFS体系架构介绍
- 139_Power BI之某制造企业HR相关数据年度复盘
- linux虚拟机lvm扩容,LVM扩容-----给虚拟机添加空间
- 客运售票员_汽车客运站售票员售票操作规范
- php android 图片上传,android上传图片到PHP的过程详解
- C#技术分享【PDF转换成图片——10种方案】(2013-07-25重新整理)
- 一个Node程序猿上海的一周
- ActiveMQ反序列化漏洞CVE-2015-5254复现
- 创可贴的 ROS PX4 自主飞行无人机 学习笔记(1)
- JSON在线编辑器V2.0
- 终端安全管理之殇:安全管控能力与用户体验
- 【数据库学习笔记】Day03 - SQL语言基础及数据库定义功能
- 学习笔记-《python程序员面试宝典》-基础知识-数据结构-编程思维(一)
- windows 查看端口号
- 直播网站是怎么实现的
- 在MATLAB上运行Python示例
- Ubuntu18.04屏幕分辨率问题
热门文章
- 解决ROS系统 rosdep update超时问题的新方法
- 985大学计算机专业起薪,985名校毕业生有多值钱?看完这份大学毕业生薪酬榜你就知道了...
- 基于Opencv和STM32物理鼠标的目标跟踪器
- Dapp 众筹项目1 合约代码编写
- VMware虚拟机安装macos Big Sur 11.1.0 (20C69)镜像CDR/ISO下载
- CH340驱动安装失败 win10
- android自定义大括弧
- [渝粤教育] 西南科技大学 建筑CAD 在线考试复习资料
- 传递给数据库 'master' 中的日志扫描操作的日志扫描号无效
- Kali Linux虚拟机安装