今天,Reinhard 在VS中制作SSRS报表,预览的时候发现显示不出数据. 仔细检查了数据处理环节和临时表里的数据,都发现没有问题. 用同事的账号登陆同样的开发环境,发现他的账号可以在VS中预览到数据. 很诡异欸,Reinhard 就觉得是权限问题,难道他是付费玩家,权限比我高么? Reinhard 试着将报表部署到AX中,报表在AX中可以显示数据. Reinhard 突然想到,会不会是Reinhard 在AX中设置的默认账套的问题呢?因为这个报表其实是分账套的,在Reinhard 的默认账…
今天Reinhard在使用报表的过程中,发现以下错误: The default Report Server Configuration ID could not be found in the SRSServers table.     根据错误提示信息,Reinhard推断这是由于AX的报表服务器配置不正确,所导致的.当发生下面几种情况之一时,我们需要调整或添加报表服务器配置: 安装了一个新的AOS:当你安装新AOS后,需要告诉该AOS,它应该使用哪个报表服务器. 将报表服务器移动到了另一个物…
    AX中有对条码操作的封装,用其生成BarCodeString类型的值,再配合barcode128字体,即可在显示出条码.     废话不说,上代码. BarcodeCode128 barCode; BarCodeString barCodeString; barCode= BarcodeCode128::construct(); barCode.string(true,'balabalabala'); barCode.encode(); barCodeString=barCode.bar…
Reinhard在AIF中使用DateTime作为服务契约的参数,与DotNet程序进行交互时,总是因为时区的问题,导致DotNet提交的System.DateTime与AIF中接收的DateTime 不一致. 这个问题着实困扰了Reinhard 许久.为了解决这个问题,Reinhard这次专门写一篇博文,通过一系列的实验,找到通过AIF服务契约,对DateTime进行存储.获取.比较的最佳方式. 1.DateTime存储实验 在AX中,Reinhard写了三个存储DateTime方法,分别测试…
今天Reinhard在VS中部署SSRS报表时,接到以下错误: 部署因错误而被取消.在报表服务器上,验证:-SQL Server Reporting Services 服务是否正在运行. 接着,Reinhard进入到AX中,检查系统的报表服务器配置是否正确.不知道怎么配置的同学可以查看Reinhard之前的博文 Dynamics AX 2012 R2 配置报表服务器  .检查发现,报表服务器中的配置也正确.Reinhard点击了一下 验证设置 按钮,收到以下错误: 无法连接到位于MSDynAX的…
当处理的数据量较多,逻辑比较复杂时,报表可能会超时.为了解决这个问题,Reinhard一直使用SrsReportDataProviderPreProcess来做预处理报表.它会在调用SSRS前,在AX会话中处理数据.预处理过的数据存储在常规表中,该表是所有用户会话共享的,通过会话id标识.这样的方法在多用户并发时,会有瓶颈. 在Dynamics AX 2012 R2中,其实还有一个类,SrsReportDataProviderPreProcessTempDB,他可以使用临时表,来持有跨会话(从数…
Dynamics AX 2012 R2 电子邮件广播错误 0x80040213 今天Reinhard在新环境做邮件广播测试时,发现无法发送邮件,并报以下错误: 类"CDO.Message"的 COM 对象中的方法"send"返回了错误代码 0x80040213 (),此错误代码表示: 与服务器的传输连接失败.. Reinhard检查了电子邮件参数里的配置,与老环境中的配置一致,并没有问题.电子邮件参数和邮件模板配置方法可以参考Reinhard之前的博文 Dynami…
众所周知,AX系统分为三层:Client,Application Server,Database Server. 我们添加额外的Application Server主要是出于以下两个原因: 使用多台服务器,分担不同的角色(如批处理任务,报表,服务). 增加基础架构的弹性. AX中的集群服务器,并不依托于Windows服务器,而是通过自己的技术实现的.它可以提高性能,但没有提高可用性.当一台服务器挂了,客户端会失去连接,任何正在处理的任务都会被回滚.重启客户端后,会连接到集群中的另一台服务器. 下…
当我们在使用RDP报表时,AX会根据Data Contract,自动生成报表参数对话框上的字段控件.一般情况下,该对话框能够满足我们的需求,但是如果有较为复杂或特殊的需求,就要我们对该对话框进行客制化.     Reinhard这里就有一张报表,需要使用员工编号作为参数.但是AX系统中默认的员工编号EDT,没有提供lookup方法.Reinhard将该员工编号EDT放在报表参数窗体上后,只能手工录入员工编号,不能通过下拉框进行选择. 默认效果是这样: 但是 Reinhard想要的效果是这样: R…
平时,我们制作SSRS Report的方法主要有两种:使用Query或RDP.如果需要为报表传递参数,就要在代码中为报表参数赋值,然后在代码中调用报表.下面我总结下这两种报表在代码中传参和调用的方式: 1.使用Query作为报表数据源 1.1.Dynamic Filters属性 在VS中,需要注意Report DataSource的Dynamic Filters属性. 1.1.1.如果Dynamic Filters属性为True的话,会在Report Parameter中生成一个叫做DS_Dyn…