【Dynamics365】创建报表
创建报表有三种数据源可以选择,这里主要讲最常用的数据供应器(Report Data Provider)
创建一张临时表:Add>New Item>Table
- 命名规范:尾部加Tmp
- 查看属性,设置 TableType 为 TempDB
- 添加报表中需要用到的数据字段:Fields>New
创建Query查询:Add>New Item>Query
- 命名规范:尾部加Query
- 添加数据源:Data Sources>New Data Source,查看属性,在Table填入实体表的名字,设置Dynamic Fields为Yes
- 如果需要子表,在已添加的数据源中再次Data Sources>New Data Source,在子数据源中Relations>New Relation添加与父表的关系,在AOT中查找关系,打开Relation属性,Join Data Source填入父表名,Field填入父表连接字段,Related Field填入当前表字段
创建一个参数类,用于处理对话框,包括参数及交互:Add>New Item>Class
- 命名规范:尾部加Contract
- 编写代码
//字符串DataContractAttribute指示此类是数据协定,[]表示它是一个属性 [DataContractAttribute] class UNI_StockReportDetailsContract {//声明需要的参数成员TransDate transDate;str packedQuery;//DataMemberAttribute传过来的 RecId ,使用SysOperationLabelAttribute属性指定标签[DataMemberAttribute,SysOperationLabelAttribute(literalStr("@SYS11284"))]public TransDate parmTransDate(TransDate _transDate = transDate){transDate = _transDate;return transDate;}//使用AifQueryTypeAttribute指定查询,查询KlForCustomers只是AOT中的一个查询,其中CustTable作为数据源[DataMemberAttribute,AifQueryTypeAttribute('_packedQuery', querystr(KlForCustomers))]public str parmQuery(str _packedQuery = packedQuery){packedQuery = _packedQuery;return packedQuery;}//To get the query:public Query getQuery(){return new Query(SysOperationHelper::base64Decode(packedQuery));}//To set the query:public void setQuery(Query _query){packedQuery = SysOperationHelper::base64Encode(_query.pack());}
创建一个启动类:Add>New Item>Class
- 命名规范:尾部加Controller
- 编写代码
public class UNI_StockReportDetailsController extends SrsReportRunController {public static void main(Args _args){UNI_StockReportDetailsController controller = new UNI_StockReportDetailsController();//ssrsReportStr 两个参数(报表名称,报表中的deign)controller.parmReportName(ssrsReportStr(UNI_StockReportDetails,StockReportDetails));controller.parmArgs(_args);controller.startOperation();} }
创建一个DP类,用于处理业务逻辑以及填充临时表:Add>New Item>Class
- 命名规范:尾部加DP
- 编写代码
[ //参数类 SRSReportParameterAttribute(classStr(UNI_StockReportDetailsContract)), //Query 数据 SRSReportQueryAttribute(queryStr(UNI_StockReportDetailsQuery)) ] class UNI_StockReportDetailsDP extends SRSReportDataProviderBase {//临时数据表UNI_StockReportDetailsTmp TempDB;//表 InventTransInventTrans InventTrans;//参数str RecId;/// <summary>/// 获取临时表/// </summary>/// <returns> UNI_StockReportDetailsTmp </returns>[SrsReportDataSetAttribute(tablestr(UNI_StockReportDetailsTmp))]public UNI_StockReportDetailsTmp getStockReportDetailsTmp(){select TempDB;return TempDB;}public void insertStockReportDetailsTmp(){QueryRun queryRun= new QueryRun(this.parmQuery());while(queryRun.next()){InventTrans=queryRun.get(tableNum(InventTrans));TempDB.clear();TempDB.RmCode=InventTrans.ItemId;TempDB.Issue=InventTrans.StatusIssue;TempDB.Receipt=InventTrans.StatusReceipt;TempDB.insert();}}/// <summary>/// 处理报表业务逻辑/// </summary>[SysEntryPointAttribute]public void processReport(){//传递参数UNI_StockReportDetailsContract Contract=this.parmDataContract();RecId =Contract.parmRecId();this.insertStockReportDetailsTmp();} }
创建一个报表:Add>New Item>Report
- 命名规范:尾部加Report
- 创建一个数据集:Datasets>New DataSet,在数据集的属性中指定数据源类型(Data Source Type)为报表数据供应器(Report Data Provider),在属性查询(Query)中点击…标记的浏览按钮,在弹出的对话框中选择新建的DP类,点击下一步(Next)并选择所需要显示的字段,然后点击确定(OK)按钮完成设置。
**注意如果对DP类的参数等进行过改动,建议删除DataSet,重新创建。同时需要手动删除报表中Parameters里面的多余参数,Parameters参数来自Controller。
创建一个输出菜单项:Add>New Item>Output Menu Item
- 命名规范:尾部加OutputMenuItem
- 查看属性,Label是在菜单中显示的名称,Object是要显示的报表,Object Type是报表类型,一般都为SSRSReport,Report Design是显示的设计
创建一个菜单(Menu)的扩展,并将输出菜单项放到菜单扩展的适当位置
生成项目并部署报表后,即可在外部网页中查看效果
【Dynamics365】创建报表相关推荐
- 使用Navicat定时备份mysql数据库和创建报表并邮件自动发送
数据库备份在现代计算机高速发展的今日变得日益重要,程序员往往因为不重视而忽略备份数据,导致数据丢失,造成非常严重的后果.定时备份无疑是解决备份的最好的途径,本文主要使用Navicat来自动备份数据库和 ...
- 图解微软ReportBuilder3连接Sql Server 2008数据库表创建报表
ReportBuilder3下载: http://pan.baidu.com/s/1skFeGVj 这东西还是一个好东东: 下面演示使用ReportBuilder3连接sql server 数据库表生 ...
- 报表建oracle表,建立Oracle report报表基本步骤及创建报表技巧
1.确定报表需要展示的字段以及需要的参数,编写相应的查询语句: 2.使用报表向导建立报表(在向导域--显示域时,可选中显示域中的一项,再从可用域选择一项移到显示域,这样改项就能跟在选中的显示域那项后面 ...
- ssrs报表服务器数据库配置文件,创建报表服务器数据库(SSRS 配置管理器)
创建报表服务器数据库(SSRS 配置管理器) 08/10/2017 本文内容 Reporting Services本机模式使用两个 SQL Server 关系数据库来存储 Report Server ...
- 使用ReportStudio打开cube模型创建报表出现两个最细粒度名称
本人也是第一次遇到这样的问题,此问题甚是简单,也许很简短的一句话就可以解决这个问题了,看官请留神哦 cube做好发布到cognos之后使用Analysis Studio打开结构正常 于是想到要用此数据 ...
- tfs 未能在以下位置创建报表文件夹 /TfsReports: 授予的权限不足,无法执行此操作
在tfs2015中添加新的Collection时,报一下错误: TF252015: 未能在以下位置创建报表文件夹: /TfsReports/XXXCollection.服务器返回了以下错误: 为用户& ...
- visual报表服务器项目,为 Visual Studio ALM 创建报表服务器项目
为 Visual Studio ALM 创建报表服务器项目 06/09/2015 本文内容 通过使用 SQL Server 报表设计器来创建报表可以跟踪团队的进度. 在可以使这些报表基于 Visual ...
- 在Winform开发中使用FastReport创建报表
FastReport.Net是一款适用于Windows Forms, ASP.NET和MVC框架的功能齐全的报表分析解决方案.可用在Microsoft Visual Studio 2005到2015, ...
- 【Stimulsoft Reports Server教程】创建报表快照
2019独角兽企业重金招聘Python工程师标准>>> 下载Stimulsoft Reports Flex最新版本 此示例项目显示如何创建报表shapshot项目.为此,您可以使用r ...
- mysql navicat报表_使用Navicat定时备份mysql数据库和创建报表并邮件自动发送
数据库备份在现代计算机高速发展的今日变得日益重要,程序员往往因为不重视而忽略备份数据,导致数据丢失,造成非常严重的后果.定时备份无疑是解决备份的最好的途径,本文主要使用Navicat来自动备份数据库和 ...
最新文章
- GPUImageMovieWriter实现暂停录制,重新录制
- win10 安装cuda黑屏解决
- GoogleAppEngine是什么?
- 参数校验放在controller还是service_@Validated校验的实践
- 服务器上的Linux中Tomcat有时会挂掉的问题及方法
- String与Integer相互转换
- mysql 编译 bsion_mysql编译安装
- 苹果从来不飙配置,也从不关注配置,即使一般的配置也能卖好价钱,为啥没人喷?
- mysql字符类型总结及常用字符函数
- MySQL 这三道必问面试题,你都会吗?
- mysql 如何抓慢查询_如何进行 MySQL慢查询 操作
- C++_编写动态链接库
- 【UV打印机】RYPC打印软件教程(一)-软件简介
- 虚拟机使用本地服务器配置,虚拟机搭建本地云服务器配置
- 大数据可视化分析的步骤有哪些
- python解超越方程_初试在Python中使用PARI/GP
- 223611-42-5,S-acetyl-PEG4-alcohol含有硫乙酰基的PEG连接剂
- C盘爆满的解决方案?很可能是因为这个Group2文件夹
- 小说项目怎么玩才能赚钱?
- K-均值聚类算法(Python,机器学习 ,绘图)
热门文章
- 第1章第26节:如何通过幻灯片母版统一管理相同类型的幻灯片2 [PowerPoint精美幻灯片实战教程]
- JUnit学习笔记6---用stub进行粗粒度测试
- 《电脑音乐制作实战指南:伴奏、录歌、MTV全攻略》——2.2 能知旋律但不知歌名,使用哼唱搜索来找歌...
- 使用wireshark抓包获取湖北电信校园网飞Young宽带客户端加密后的账号密码
- 苹果雪豹操作系统正式版_大家一起来聊聊电脑操作系统那些事
- 电路原理 第一章 电路模型和电路定律(一)
- web浏览器和web服务器的协议是,浏览器是如何与Web服务器进行通信的
- MM 库存盘点全总结
- 深度学习英语-迭代法(01)故事法,一个新的尝试
- mac adb安装和使用