99网
您的当前位置:首页UAP报表——【用友 专题培训】

UAP报表——【用友 专题培训】

来源:99网
旗开得胜 如何建立UAP报表

1. 新建报表,登陆uap后,打开客户化之后,在项目资源管理器下,选择对应的模块,右键—新建—报表。或者点中报表右键点新建报表。

2. 进入到数据引擎向导界面,如果是新建业务对象的,业务对象类别选择报表业务对象,也可以根据已有的业务对象。业务对象类型:根据自身需要选择(实体关系查询,SQL脚本查询,自定义查询)

1

读万卷书 行万里路

旗开得胜

2.1首先以业务对象类型是实体关系查询设置,本例中以采购入库单数据为实例进行说明。

2

读万卷书 行万里路

旗开得胜 2.2点添加实体

2.3将采购入库单表头实体和采购入库单表体实体添加上,然后选择表头实体.注意选择实体的时候,务必将需要显示的项目选择上,否则后续定义关联属性的时候关联不上

2.4定义实体关联,选择关联的实体将鼠标拖动到另一实体上,然后弹出设置关联的

3

读万卷书 行万里路

旗开得胜 界面。下方选择上关联对应字段双击,然后确定。

2.5上述操作后,点下一步,弹出配置实体关系查询信息界面。此界面也可以再增加需要实体中显示的字段信息。然后点完成即可

4

读万卷书 行万里路

旗开得胜

2.6设置视图属性相关信息,根据需要设置对应的报表名称,视图名称,视图类型可以选择表格视图,自由视图,交叉视图。

然后确定

5

读万卷书 行万里路

旗开得胜

2.7设置查询条件,在左边窗口报表定义中选择对应的视图右键属性,选择查询条件-标准条件(自定义条件不要选择一般自定义都是二次开发或者系统内置的查询条件)

2.8继续在查询条件设计器中新增具体的条件,

6

读万卷书 行万里路

旗开得胜

2.9保存报表,关闭对应的视图界面,点工具菜单下的发布或者按钮栏中的发布。选择上对应的报表点发布即可。注意,后续修改报表相关信息的时候不用再次发布,直接修改保存即可.

7

读万卷书 行万里路

旗开得胜

2.10发布之后的报表在门户中报表中心在自定义报表菜单下对应的模块中,输入对应的条件查询即可

8

读万卷书 行万里路

旗开得胜 3. 以业务对象类型是SQL脚本查询设置为例,还是以采购入库单数据为例说明

3.1设置具体的sql语句信息(类型分为sql脚本和存储过程),先以sql脚本为例说明。存储过程后续再说明

具体的sql脚本如下:

select

rdrecord01.dDate ,rdrecord01.cCode,rdrecord01.crdcode,Rd_Style .cRdName , rdrecord01.cVenCode ,

Vendor.cVenName ,rdrecord01.cDepCode ,Department .cDepName ,

rdrecord01.cwhcode,warehouse.cwhname,rdrecords01.cInvCode ,inventory.cInvName,

9

读万卷书 行万里路

旗开得胜 inventory.cInvStd,rdrecords01.iQuantity,rdrecords01.iUnitCost,rdrecords01.iPri

from rdrecord01 join rdrecords01 on RdRecord01.ID=rdrecords01.ID

left join Vendor on Vendor.cVenCode =RdRecord01.cVenCode

left join Department on Department.cDepCode =RdRecord01.cDepCode

left join Warehouse on Warehouse.cWhCode =RdRecord01.cWhCode

left join Rd_Style on Rd_Style.cRdCode=RdRecord01.cRdCode

left join inventory on rdrecords01.cInvCode=inventory.cInvCode

读万卷书 行万里路

10

ce旗开得胜 3.2 上述界面点查询列页签定义具体的显示名称信息,如果前面修改了语句信息内容查询列表可以点刷新重新更新下信息,然后点完成。

3.3后续操作设置同实体关系查询的操作一样。需要注意一点的是设置查询条件的数据源和之前的实体关系查询的数据源定义就不太一样,需要自己手工输入,必须sql语句中from后面对应的表中存在的字段。例如上述日期数据源定义rdreocrd01.ddate

11

读万卷书 行万里路

旗开得胜

4. 以业务对象类型是SQL脚本查询(存储过程)设置为例,还是以采购入库单数据为例说明

12

读万卷书 行万里路

旗开得胜 4.1设置具体的sql语句信息,类型选择存储过程

存储过程脚本如下:

create procedure huch01 (filterstring nvarchar(4000) )

as

declare strsql nvarchar(4000)

set strsql='select

rdrecord01.dDate ,rdrecord01.cCode,rdrecord01.crdcode,Rd_Style .cRdName , rdrecord01.cVenCode ,

Vendor.cVenName ,rdrecord01.cDepCode ,Department .cDepName ,

rdrecord01.cwhcode,warehouse.cwhname,rdrecords01.cInvCode ,inventory.cInvName,

inventory.cInvStd,rdrecords01.iQuantity,rdrecords01.iUnitCost,rdrecords01.iPrice

from rdrecord01 join rdrecords01 on RdRecord01.ID=rdrecords01.ID

left join Vendor on Vendor.cVenCode =RdRecord01.cVenCode

13

读万卷书 行万里路

旗开得胜 left join Department on Department.cDepCode =RdRecord01.cDepCode

left join Warehouse on Warehouse.cWhCode =RdRecord01.cWhCode

left join Rd_Style on Rd_Style.cRdCode=RdRecord01.cRdCode

left join inventory on rdrecords01.cInvCode=inventory.cInvCode

where 1=1 '

if ISNULL(filterstring,'')<>''

set strsql=strsql+' and '+filterstring

exec (strsql)

读万卷书 行万里路

14

此时类型就选择存储过程,存储过程名称是定义的存储过程的名称。

4.2点击查询参数设置,一般默认带过来,检查是否有问题

读万卷书 行万里路

旗开得胜 15

旗开得胜 4.3点击查询结果列会弹出查询参数值界面输入对应的参数值,参数值输入存储过程定义的filterstring对应的参数值,点确定,结果列就会全部显示出来.描述信息手工输入即可

4.4后续点完成和之前3一样,需要注意的是定义数据源需要存储过程中能查询出来。此实例是定义存储过程报表,过滤条件统一处理,需要定义filterstring参数处理。

如果需要单独定义参数,参考后续的5

5.以业务对象类型是SQL脚本查询(存储过程)设置为例,还是以采购入库单数据为例说明

16

读万卷书 行万里路

旗开得胜

5.1设置具体的sql语句信息,类型选择存储过程

存储过程脚本如下:

create procedure huch02(startdate datetime,enddate datetime)

as

declare strsql nvarchar(4000)

set strsql='select

rdrecord01.dDate ,rdrecord01.cCode,rdrecord01.crdcode,Rd_Style .cRdName , rdrecord01.cVenCode ,

17

读万卷书 行万里路

旗开得胜 Vendor.cVenName ,rdrecord01.cDepCode ,Department .cDepName ,

rdrecord01.cwhcode,warehouse.cwhname,rdrecords01.cInvCode ,inventory.cInvName,

inventory.cInvStd,rdrecords01.iQuantity,rdrecords01.iUnitCost,rdrecords01.iPrice

from rdrecord01 join rdrecords01 on RdRecord01.ID=rdrecords01.ID

left join Vendor on Vendor.cVenCode =RdRecord01.cVenCode

left join Department on Department.cDepCode =RdRecord01.cDepCode left join Warehouse on Warehouse.cWhCode =RdRecord01.cWhCode

left join Rd_Style on Rd_Style.cRdCode=RdRecord01.cRdCode

left join inventory on rdrecords01.cInvCode=inventory.cInvCode

where 1=1 '

if ISNULL(convert(char(10),startdate,20),'')<>''

set strsql=strsql+' rdrecord01.ddate>='''+convert(char(10),startdate,20)+''''

读万卷书 行万里路

and 18

if ISNULL(convert(char(10),enddate,20),'')<>''

SET strsql=strsql+' rdrecord01.ddate<='''+convert(char(10),enddate,20)+''''

PRINT strsql

exec (strsql)

5.2点击查询参数设置,一般默认带过来,检查是否有问题

读万卷书 行万里路

旗开得胜 and

19

旗开得胜

5.3点击查询结果列会弹出查询参数值界面输入对应的参数值,参数值输入存储过程定义的startdate和enddate对应的具体的值确定之后具体的列信息就会显示出来。

20

读万卷书 行万里路

旗开得胜 5.4点过滤条件设置一般默认会带过来

5.5后续点完成和之前步骤一样,需要注意的时候定义查询条件的时候,数据源直接选择原数据条件直接选择就可以。不需要手工输入。查询的时候定义的条件必须输入才能查询出来结果,否则会报错。

21

读万卷书 行万里路

6.UAP报表视图类型的区别

读万卷书 行万里路

旗开得胜 22

旗开得胜 6.1表格视图:以最传统的表格方式展现报表,具有动态分组、展示形式多样、多级排序、动态设置栏目等特征。

可以进行报表设计根据自身需要,添加列、设置列属性、设计分组、使用报表向导、设计级次展开、显示样式。

6.2自由视图:表格样式较表格报表灵活,用户可以根据需要设计各式各样的报表,比如卡片式报表。自由报表还支持动态图片功能。

6.2.1卡片样式一

23

读万卷书 行万里路

6.2.2卡片样式二

6.2.3 自由报表定义图表

设计一张有分组的自由报表

在\"报表组件\"中将\"图表\"拖入\"报表汇总区\"

读万卷书 行万里路

旗开得胜 24

旗开得胜 在\"图表\"的属性栏中通过 图表方案 属性设计图表,如下图。向导设置参见报表运行时图表设计。

6.2.4可以进行多级分组,并且显示也是多级分组

6.2.5可以自由折行显示,自由定义显示界面

6.3交叉视图:报表提供了交叉计算功能,可以自动根据报表数据形成交叉列

6.3.1选择添加视图或者新建报表的时候,视图选择成交叉视图

读万卷书 行万里路

25

6.3.2进行报表向导设置的时候,选择对应的行标题和列标题

6.3.3报表向导设置选择交叉点行,可以选择多列

读万卷书 行万里路

旗开得胜 26

6.3.4后续点完成即可

7.交叉方案

7.1 直接报表界面点分组/交叉—定义交叉

读万卷书 行万里路

旗开得胜 27

7.2新增交叉方案,设置和交叉视图类似

注意日期型的可以点日期进行时间维度设置,参考下图:

读万卷书 行万里路

旗开得胜 28

8 级次展开

8.1报表设计的时候,增加级次展开

读万卷书 行万里路

旗开得胜 29

旗开得胜

8.2报表运行时可以添加级次展开方案。如设置按部门展开的方案。选择更多设置下的层次类型展开。

30

读万卷书 行万里路

8.3 效果如下图

读万卷书 行万里路

旗开得胜 31

旗开得胜

9.维度扩展

维度扩展是对于报表查询、分析的一个补充,同时也是为满足客户对系统更多报表查询要求的一个预留接口。因为每个客户、每类客户对于报表数据的要求、侧重都不一样,系统不可能提前预知用户的要求,有了报表维度扩展就可以针对客户的一些特殊需求进行补充

9.1可以在报表设计界面也可以在报表运行界面设置

32

读万卷书 行万里路

读万卷书 行万里路

旗开得胜 33

9.2右边全部实体中双击需要显示的实体

读万卷书 行万里路

旗开得胜 34

旗开得胜 9.3选择上新增显示的实体,选择上需要显示的字段

9.4建立报表实体和新增的实体的关联关系,选择一个实体中心点 鼠标变成十字号状态 拖动到另一个实体上。

9.5 然后保存退出,就有扩展出来的字段显示了

10.报表组件以及计算公式

35

读万卷书 行万里路

10.1常用公式

GetUserName():取得操作员名 GetCopritionName():取得公司名 Date():日期 Month():月份 Year():年 Day():日

AccountMonth():会计月份 AccountYear():会计年份 Time():时间 Page():页号 Pages():页数

读万卷书 行万里路旗开得胜 36

10.2 过滤公式

GetValue1()过滤区间条件的开始值的编码

GetValue2()过滤区间条件的结束值的编码

GetName1()过滤区间条件的开始值的名称

GetName2()过滤区间条件的结束值的名称

10.3打印公式

应用在报表的"页标题区(仅打印)"和"页汇总区(仅打印)"区域。GroupGage():分组页号

GroupPages():分组页数

GroupSum(\"Key\"):分组合计

PageSum(\"Key\"):页合计

GoupAccSum(\"Key\"):分组累计

PageAccSum(\"Key\"):页累计

读万卷书 行万里路

旗开得胜 37

旗开得胜 GroupPageAccSum(\"Key\"):分组页累计

GetData(\"Key\"):取分组列值;该表达式仅在报表\"页标题区(仅打印)\"区域起作用

10.3报表组件

10.3.1简单计算列(数值型):对列中的数值型数据源进行简单计算。必须设置属性中的〖表达式〗项,在表达式设计器左侧,系统自动列出了可供选择的数据源和列间表达式,用户可根据需要对数值型数据源进行简单设计,作为此简单计算列的数据源。属性中的〖是否计算汇总列〗控制是否增加汇总列,若设置为TRUE,则可以继续设置〖计算类型〗,系统提供了SUM,AVG,MAX,MIN四种类型供选择,用户可根据需要选择此汇总列的计算方式。属性中系统还提供了一些设置,用户可自行设置。

SUM –累计值 AVG---平均值 MAX— 最大值 MIN—最小值

BalanceSUM---取最后一行值 ExpressionSUM—加权平均

38

读万卷书 行万里路

旗开得胜 AccumulateSUM—累计汇总

10.3.2简单计算列(其他):一般用于非数值型的字段,对列中的数据源进行简单设计。必须设置属性中的〖表达式〗项。

10.3.3占比列(数值型):对列中的数值型数据源进行百分比计算。

10.3.4复杂计算列(数值型):对列中的数值型数据源进行复杂计算。必须设置属性中的〖计算逻辑〗项,在逻辑设计器左侧,系统自动列出了可供选择的数据源,需用户在右侧编辑的脚本是类C++的语法,可根据需要自己设计。

10.3.5复杂计算列(其他):对列中的数据源进行复杂计算。必须设置属性中的〖计算逻辑〗项,在逻辑设计器左侧,系统自动列出了可供选择的数据源,需用户在右侧编辑的脚本是类C++的语法,可根据需要自己设计。

10.3.6动态图片:可以与数据源中Image类型的数据项绑定,用来显示图片,如:员工档案中的照片。

10.3.7静态图片:用来显示静态的图片,如:企业徽标。

10.3.8图表:用来把对比分析结果可视化,方便用户对数据进行分析统计。

10.3.9普通汇总(数值型):用来对数值型数据源进行简单的汇总。必须设置属性中的〖表达式〗项。

39

读万卷书 行万里路

旗开得胜 10.3.10复杂汇总(数值型):用来对数值型数据源进行复杂的汇总。必须设置属性中的〖计算逻辑〗项,需要用户在逻辑设计器中编辑脚本来实现汇总。

10.3.11普通分组:与数据源中分组的数据项绑定,一般放在分组标题区。

10.3.12计算列分组:可以对分组的数据项进行简单的设计,在表达式设计器中参照系统提供的列间表达式对数据源进行简 单设计,设计的结果返回值作为分组的依据。一般放在分组标题区。

10.3.13普通列标题:只在交叉报表中使用,可以与某个数据项绑定,把此数据项作为列标题。

10.3.14计算列标题:只在交叉报表中使用,用户可以在逻辑设计器中自定义脚本对数据源进行设计,设计的结果返回值作为列标题

11.报表相关属性

40

读万卷书 行万里路

因篇幅问题不能全部显示,请点此查看更多更全内容