创建报表有三种数据源可以选择,这里主要讲最常用的数据供应器(Report Data Provider)

创建一张临时表:Add>New Item>Table

  1. 命名规范:尾部加Tmp
  2. 查看属性,设置 TableType 为 TempDB
  3. 添加报表中需要用到的数据字段:Fields>New

创建Query查询:Add>New Item>Query

  1. 命名规范:尾部加Query
  2. 添加数据源:Data Sources>New Data Source,查看属性,在Table填入实体表的名字,设置Dynamic Fields为Yes
  3. 如果需要子表,在已添加的数据源中再次Data Sources>New Data Source,在子数据源中Relations>New Relation添加与父表的关系,在AOT中查找关系,打开Relation属性,Join Data Source填入父表名,Field填入父表连接字段,Related Field填入当前表字段

创建一个参数类,用于处理对话框,包括参数及交互:Add>New Item>Class

  1. 命名规范:尾部加Contract
  2. 编写代码
    //字符串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

  1. 命名规范:尾部加Controller
  2. 编写代码
    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

  1. 命名规范:尾部加DP
  2. 编写代码
    [
    //参数类
    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

  1. 命名规范:尾部加Report
  2. 创建一个数据集:Datasets>New DataSet,在数据集的属性中指定数据源类型(Data Source Type)为报表数据供应器(Report Data Provider),在属性查询(Query)中点击…标记的浏览按钮,在弹出的对话框中选择新建的DP类,点击下一步(Next)并选择所需要显示的字段,然后点击确定(OK)按钮完成设置。
    **注意如果对DP类的参数等进行过改动,建议删除DataSet,重新创建。同时需要手动删除报表中Parameters里面的多余参数,Parameters参数来自Controller。

创建一个输出菜单项:Add>New Item>Output Menu Item

  1. 命名规范:尾部加OutputMenuItem
  2. 查看属性,Label是在菜单中显示的名称,Object是要显示的报表,Object Type是报表类型,一般都为SSRSReport,Report Design是显示的设计

创建一个菜单(Menu)的扩展,并将输出菜单项放到菜单扩展的适当位置

生成项目并部署报表后,即可在外部网页中查看效果

【Dynamics365】创建报表相关推荐

  1. 使用Navicat定时备份mysql数据库和创建报表并邮件自动发送

    数据库备份在现代计算机高速发展的今日变得日益重要,程序员往往因为不重视而忽略备份数据,导致数据丢失,造成非常严重的后果.定时备份无疑是解决备份的最好的途径,本文主要使用Navicat来自动备份数据库和 ...

  2. 图解微软ReportBuilder3连接Sql Server 2008数据库表创建报表

    ReportBuilder3下载: http://pan.baidu.com/s/1skFeGVj 这东西还是一个好东东: 下面演示使用ReportBuilder3连接sql server 数据库表生 ...

  3. 报表建oracle表,建立Oracle report报表基本步骤及创建报表技巧

    1.确定报表需要展示的字段以及需要的参数,编写相应的查询语句: 2.使用报表向导建立报表(在向导域--显示域时,可选中显示域中的一项,再从可用域选择一项移到显示域,这样改项就能跟在选中的显示域那项后面 ...

  4. ssrs报表服务器数据库配置文件,创建报表服务器数据库(SSRS 配置管理器)

    创建报表服务器数据库(SSRS 配置管理器) 08/10/2017 本文内容 Reporting Services本机模式使用两个 SQL Server 关系数据库来存储 Report Server ...

  5. 使用ReportStudio打开cube模型创建报表出现两个最细粒度名称

    本人也是第一次遇到这样的问题,此问题甚是简单,也许很简短的一句话就可以解决这个问题了,看官请留神哦 cube做好发布到cognos之后使用Analysis Studio打开结构正常 于是想到要用此数据 ...

  6. tfs 未能在以下位置创建报表文件夹 /TfsReports: 授予的权限不足,无法执行此操作

    在tfs2015中添加新的Collection时,报一下错误: TF252015: 未能在以下位置创建报表文件夹: /TfsReports/XXXCollection.服务器返回了以下错误: 为用户& ...

  7. visual报表服务器项目,为 Visual Studio ALM 创建报表服务器项目

    为 Visual Studio ALM 创建报表服务器项目 06/09/2015 本文内容 通过使用 SQL Server 报表设计器来创建报表可以跟踪团队的进度. 在可以使这些报表基于 Visual ...

  8. 在Winform开发中使用FastReport创建报表

    FastReport.Net是一款适用于Windows Forms, ASP.NET和MVC框架的功能齐全的报表分析解决方案.可用在Microsoft Visual Studio 2005到2015, ...

  9. 【Stimulsoft Reports Server教程】创建报表快照

    2019独角兽企业重金招聘Python工程师标准>>> 下载Stimulsoft Reports Flex最新版本 此示例项目显示如何创建报表shapshot项目.为此,您可以使用r ...

  10. mysql navicat报表_使用Navicat定时备份mysql数据库和创建报表并邮件自动发送

    数据库备份在现代计算机高速发展的今日变得日益重要,程序员往往因为不重视而忽略备份数据,导致数据丢失,造成非常严重的后果.定时备份无疑是解决备份的最好的途径,本文主要使用Navicat来自动备份数据库和 ...

最新文章

  1. GPUImageMovieWriter实现暂停录制,重新录制
  2. win10 安装cuda黑屏解决
  3. GoogleAppEngine是什么?
  4. 参数校验放在controller还是service_@Validated校验的实践
  5. 服务器上的Linux中Tomcat有时会挂掉的问题及方法
  6. String与Integer相互转换
  7. mysql 编译 bsion_mysql编译安装
  8. 苹果从来不飙配置,也从不关注配置,即使一般的配置也能卖好价钱,为啥没人喷?
  9. mysql字符类型总结及常用字符函数
  10. MySQL 这三道必问面试题,你都会吗?
  11. mysql 如何抓慢查询_如何进行 MySQL慢查询 操作
  12. C++_编写动态链接库
  13. 【UV打印机】RYPC打印软件教程(一)-软件简介
  14. 虚拟机使用本地服务器配置,虚拟机搭建本地云服务器配置
  15. 大数据可视化分析的步骤有哪些
  16. python解超越方程_初试在Python中使用PARI/GP
  17. 223611-42-5,S-acetyl-PEG4-alcohol含有硫乙酰基的PEG连接剂
  18. C盘爆满的解决方案?很可能是因为这个Group2文件夹
  19. 小说项目怎么玩才能赚钱?
  20. K-均值聚类算法(Python,机器学习 ,绘图)

热门文章

  1. 第1章第26节:如何通过幻灯片母版统一管理相同类型的幻灯片2 [PowerPoint精美幻灯片实战教程]
  2. JUnit学习笔记6---用stub进行粗粒度测试
  3. 《电脑音乐制作实战指南:伴奏、录歌、MTV全攻略》——2.2 能知旋律但不知歌名,使用哼唱搜索来找歌...
  4. 使用wireshark抓包获取湖北电信校园网飞Young宽带客户端加密后的账号密码
  5. 苹果雪豹操作系统正式版_大家一起来聊聊电脑操作系统那些事
  6. 电路原理 第一章 电路模型和电路定律(一)
  7. web浏览器和web服务器的协议是,浏览器是如何与Web服务器进行通信的
  8. MM 库存盘点全总结
  9. 深度学习英语-迭代法(01)故事法,一个新的尝试
  10. mac adb安装和使用