Dynamics CRM 报表开发

【报表开发工具】

1、Reporting Services 需要下载 SQL Server Business Intelligence Development Studio 新建一个报表服务器项目类型的项目

2、Report Builder

 两个工具的使用基本相同

【报表开发实例一:显示序号列,并且控制每页显示的行数,标题下页重复显示】

1、获取行号:=Rownumber(Nothing)
2、添加分组:父组。分组表达式:=Ceiling(Rownumber(Nothing) / 5)
3、打开列祖高级模式,设置行组的两个静态设置属性:确保 KeepTogether和RepeatOnNewPage属性设置为True,KeepWithGroup属性设置为After。第二行的 (静态) 也做同样的设置。

 【报表开发实例二:直接通过实体运行报表,通过HTML地址传递报表参数】

第一步:制作带参数的报表并上传
数据集:select name from FilteredAccount where accountid=@RecordId
将@RecordId参数隐藏
第二步:获取报表的URl
<http://192.168.1.58/QDSAIWEICRM/crmreports/viewer/viewer.aspx?id=%7b63EB8AE6-3753-E811-80CB-000C299912B1%7d>
       第三步:新建WEB资源(HTML)第二步的红色字体代替下面的红色字体(报表的ID)

<html>
<head>
<title>报表</title>
<script type="text/javascript">
OnLoad = function () {
var parentEntity = window.parent.Xrm.Page.data.entity;
var reporturl = window.parent.Xrm.Page.context.getClientUrl() + "/crmreports/viewer/viewer.aspx?action=run&helpID=AcctReport.rdl&id=%7bD9FF2901-B35B-E311-89D8-00155D016703%7d&p:RecordId="
+ parentEntity.getId();
var reportFrame = document.getElementById("reportContainer");
reportFrame.src = reporturl;
};
</script>
</head>
<body onload="OnLoad();">
<div id="container">
<iframe id="reportContainer" src="about:blank" width="100%" height="120%" style="position:absolute;left:0;top:-95px;"></iframe>
</div>
</body>
</html>

第四步:在客户窗体导航中加入导航连接选择第三步的WEB资源上传


第五步:测试

【报表开发实例三:使用CRM预置参数】

参数名称
描述
CRM_FilterText
包含用户运行报表时报表用户在报表查看器中交互创建的过滤器文本的值。该参数位于报告标题中的过滤器摘要文本框中。初始值设置为默认过滤器。
CRM_URL
设置为Microsoft Dynamics CRM Web应用程序的URL。钻取Microsoft Dynamics CRM时使用此参数。
CRM_FilteredEntity
用于查询表达式以启用数据预过滤(通过高级查找)。
CRM_FullName
报表正在运行的用户的全名。
CRM_UserTimeZone
用户的时区名称,例如太平洋标准时间。
CRM_UILanguageId
用户的当前区域设置(LCID)。
CRM_YearStartWeekCode
Microsoft Dynamics CRM 2011中使用的一年中的第一周。
CRM_WeekStartDayCode
Microsoft Dynamics CRM 2011中使用的第一天的第一天。
CRM_FiscalCalendarStart
Microsoft Dynamics CRM 2011中使用的会计年度的开始日期。
CRM_FiscalPeriodType
指定会计年度的划分方式,季度,每月,每年等。
CRM_FiscalYearDisplayCode
指定会计年度名称是根据会计年度何时开始或何时结束显示的。
CRM_FiscalYearPeriodConnect
指定一起显示时如何连接会计年度和会计期间。
CRM_FiscalYearFormat
指定如何显示会计年度的名称。
CRM_FiscalPeriodFormat
指定如何显示会计期间。
CRM_FiscalYearPrefixFormat
指定是否在显示会计年度时附加前缀。
CRM_FiscalYearSuffixFormat
指定是否在显示会计年度时附加后缀。
CRM_CurrencyDecimalPrecision
货币小数精度。
CRM_CurrencySymbol
该组织的货币符号。
CRM_CurrencyPositivePattern
正货币值的格式模式。
CRM_CurrencyNegativePattern
负值货币值的格式模式。
CRM_NumberDecimalDigits
数字值中使用的小数位数。
CRM_NumberDecimalSeperator
数字值中用作小数点分隔符的字符串。
CRM_NumberNegativePattern
负数值的格式模式。
CRM_NumberGroupSizes
数字值中小数点左边各组中的位数。
CRM_NumberGroupSeperator
以数字值分隔小数点左边的数字组的字符串。
CRM_DateSeperator
用于分隔日期组件的字符串,如年,月和日。
CRM_TimeSeperator
分隔时间组件的字符串,例如小时,分钟和秒。
CRM_AMDesignator
分隔时间组件的字符串,例如小时,分钟和秒
CRM_PMDesignator
几个小时的指定者是“post meridiem”(PM)。
CRM_ShortDatePattern
用于与“d”格式模式关联的短日期值的格式模式。
CRM_LongDatePattern
与“D”格式模式关联的长日期值的格式模式。
CRM_ShortTimePattern
与“t”格式模式关联的短时间值的格式模式。
CRM_MonthDayPattern
与“m”和“M”格式模式关联的月份和日期值的格式模式。

要使用这些参数很简单,在报表的报表数据中的参数文件夹右击,选择 增加参数, 名称输入上面的名称,记得将 选择参数可见性 的值设置为 隐藏。

然后在CRM的报表中就可以使用了,比如我这里是将报表的一个文本框的 表达式 设置为刚才这个参数的值。

 运行结果:

【报表开发实例四:发布外用报表】

发布外用报表:可以通过浏览器直接访问报表。可用于传参及转换为PDF附件使用

第一步:打开Reporting Service 配置管理器>报表管理器URL


第二步:进入CRM 销售>报表>发布为外用报表就能在上步文件夹中展示出来

第三步:可以管理报表

第四步;这个发布为外用报表以后我们就可以通过url直接访问了。你看我输入网址:http://win-2b9f088ifvq/Reports/Pages/Report.aspx?ItemPath=%2fQDSAIWEICRM_MSCRM%2f111
就可以在浏览器中打开这个报表。

 如果你在这个URL的后面加上&rc:NoHeader=false&rc:Toolbar=false ,就会隐藏Header和Toolbar,如下所示:
http://win-2b9f088ifvq/Reports/Pages/Report.aspx?ItemPath=%2fQDSAIWEICRM_MSCRM%2f111&rc:NoHeader=false&rc:Toolbar=false


如果你换成这个网址 http://crm2013/ReportServer/Pages/ReportViewer.aspx?%2fDemo_MSCRM%2fAcctReport&rs:Command=Render&rs:format=PDF ,就会将报表以PDF的形式传递给你。


如果不能通过URL为外用报表传递参数值,那就用途十分有限,所以当然是可以的。看官请看,这个报表有个隐藏参数叫RecordId,我可以通过URL传递参数值过去,客户的名称和前面的截图不一样了。这个截图使用的网址是:
http://crm2013/ReportServer?%2fDemo_MSCRM%2fAcctReport&rs:Command=Render&rc:NoHeader=false&rc:Toolbar=false&RecordId=09E0A455-8132-E311-A4EC-00155D016703

注意上面URL的写法哦,这是属于SSRS的范围了,我也仅仅了解一些,欢迎大家补充。
上面的生成PDF给是给我们有什么用?最有用的可能就是用插件或者工作流执行.NET 中的HttpWebRequest类访问这个网址,拿到这个PDF,作为附件放到记录中,作为发票,历史记录,自动生成报表啊,等等。

猜你喜欢

转载自www.cnblogs.com/cuig/p/9020805.html