用友U9-UBF自定义报表-打印模板开发学习笔记

自定义报表、打印模板开发学习笔记

一、基础了解

1、UBF开发工具的了解

Ideconfig.xml配置

True:打印、报表设计模式

False:单据设计模式

2、开发环境试用

BE:实体项目

BF:操作项目

SV:服务项目

分析项目:打印模板

报表应用项目:报表

二、简单设计报表

1、登录连接

(1)、登录UBF后,连接报表元数据库。

1个报表容器下只能存放1张报表。每新建1张报表,需新建1个报表容器。

(2)、增加数据源

选择“BusinessEntity”表示采用实体建立报表;

选择“StoredProcedure”表示采用存储过程建立报表;

选择“Text”表示采用SQL语句建立报表。

2、实体建立报表:

(1)、新建报表容器、报表

(2)、连接数据源

技巧:server name这个里面输入数据库服务器IP地址比点倒进行三角选择,速度快得多噢!

(3)、增加数据查询

(4)、选择实体(可以选择,也可以选择查找实体,使用查询实体会更快一点

(5)、选择需要的字段

点击保存后字段即可出现在左边的“字段”栏目中。

将上面在BE中查询的字段选择显示到列表后,可以点击UBF自动的查询功能来预览数据,可以用UBF自带的工具翻译成SQL语句到MSSQL查询里面去查询。(OQL语句支持SQL语句的格式,可根据SQL语句格式自动编辑)如下图:

(6)、字段扩展属性

a、字段扩展属性说明

备选栏目:发布后在报表查询方案的栏目字段中显示在“待选项”列表中;

固定栏目:显示显示在“已选项”列表中;

默认栏目:系统默认显示在“已选项”列表中;

选择了“备选栏目”后,选择了“固定栏目”则此字段用户无法从“已选项”中移去(此字段为必选项);

选择了“备选栏目”后,选择了“默认栏目”,则此字段会默认显示在“已选项”中,但用户可以自行移去此字段。

如果三个栏目都选择了,则与选择了“备选栏目”和“固定栏目”的效果相同。

b、行分组

(7)、建立查询条件

a、选择菜单上的“报表参数”建立查询条件。

在弹出的报表参数设置窗口中左边点击右击“添加条件项”,在基本属性页签中点击fx,选择条件表达式。点击参照页签,选择该条件的相应字段。

允许为空:选择后,此查询条件可以不输入,不选择则为必输项。

是否可见:不出现此字段。

是否固定条件:此条件字段不可删除(一定要使用此字段),用户可以设置成无需输入,但根据实际情况这样无意思,设置成固定字段肯定是必输项。

选择绑定的字段!

b、参照

参照标签可以设置多种参照方法(根据相应的英文字母可知意思);

nothing:表示无

reference:可以调协参照值。

实际ID:选择参照的实体;

参照ID:选择一个类型样子的参照即可。(可理解为当作模型使用)

c、建立完查询条件后,到报表主页上“数据”页签中,修改数据查询。在查询参数页签上,点击“添加默认”按钮,确认退出。如不操作,查询条件将不起作用。

报表查询设置的结束如下图所示。

(8)、报表页面布局

根据用户想要实现的模样、拖动报表控制到右边的布局窗口,同样将字段根据用户想要的模样、顺序依次进行拖到表格中。用户可以利用右边的报表属性进行调整报表的样式。

(9)、技巧:BE实例查询可当数据字典使用

上述用BE实体建立报表,在平时做报表时这个功能用的非常少,现在我多半用这个功能来当数据字典来用。原因:

A、U9数据库更新频繁,但数据字典不能及时更新,有时会出现在数据字典中找不到字段的情况。

B、个人觉得BE实体查字段速度及效果比较直观。

C、只有需要知道字段意义的时候方需要翻翻数据字典,但是这个方法也可以省略。技巧:

IE打开的U9单据页面,用IE自带的开发功能(F12)就能捕捉到对应的字段名称,而且前台字段名称与后台字段名称是相同的,这样很方便。如下图:

3、sql语句建立报表

(1)、建立数据源、数据查询

建立数据源方法与上述建立实体查询一样,数据查询时,因为是sql语句建立报表,固选择“Text”。

(2)、根据需求编写SQL语句

a、根据需求可以先编写OQL语句,再翻译成SQL语句,将编译成功后的SQL语句,复制到窗口中。

b、点击预览查询结果,下面的窗口中可查询结果,左边的“字段”窗口中会显示出SQL查询语句中选择的字段。

(3)、同样可以根据需求设置已选字段的扩展属性(此步方法同实体建立报表时的字段扩展属性)

(4)、查询方案(报表参数设置)

报表参数设置方法也同实体报表中的报表参数设置方法。

(5)、报表页面布局方法也与上述实体报表项目时页面布局方法相同。

(6)、分析实际需求编码OQL语句,编写OQL语句可以参照辅助资料,数据字典、实体查询工作(classview)等;有时这些工具更新的比较慢,建议大家可以建立一个实体查询的报表,利用实体查询报表中的查询实体来查询实体名称。这样比较准确。

用户可以使用UBF自带的OQL翻译工具(报表菜单中)来翻译编写的OQL语句,经本人测试,UBF自带的OQL翻译工具比classview带的翻译功能执行速度快的多。

4、存储过程建立报表

三、复杂报表

(1)、DataCommand代码生成向导

(2)、选择服务品名称,生成路径。

(3)、往下根据向导进行选择字段。

(4)、VS打开生成的DataCommand,点击生成。

(5)、UBF中导入Data Command(在导入之前需要新建报表容器)

(6)、发布应用。

(7)、找到生成发布在Portal下的dll文件,用U9管理控制台工具上传到SQL报表服务器目录中。

ClientSystemManage目录下:UFIDA.U9.MO.Report.DataCommand.dll

UBFV21目录下:UFIDA.U9.UserDefine.MO.Report.DataCommand

(也可以将生成的DataCommand\Bin\Debug中的这两个文件用来上传即可)

修改Buildup.xml中的地址,可以使用UBF发布工具。

四、查询二开

1、BE查询

2、列表查询

3、DTO查询

(1)、将:D:\UFIDA\UBFV21\U9.VOB.Product.Component\Unconfiged\Component中的

复制到:D:\UFIDA\U9V21\Portal\ApplicationServer\Libs

(2)、将:D:\UFIDA\UBFV21\U9.VOB.Product.Component\Unconfiged\Component中的

复制到:

D:\UFIDA\U9V21\Portal\ApplicationLib

(3)、布置UI,将D:\UFIDA\UBFV21\U9.VOB.Product.WebPart中的

复制到:D:\UFIDA\U9V21\Portal\UILib

(4)、执行源数据。地址在:D:\UFIDA\UBFV21\U9.VOB.Product.Other中的两个文件中的SQL脚本都要执行。执行时先执行Metadata,再执行Resource。

五、开发实例

单据打印分组

UBF中打印单据分组有两种方法,一种是用菜单上“报表”-分组,一种是表行是右击添加分组,两种方法各有优异。以出货单按品名分组汇总出货数量为例子!

1、菜单上的分组功能

(1)、选择菜单“报表——分组”,找开分组设置局面。

(2)、选择依据字段,这里面是“品名”,选择结束拆页,即可在一个品种结束时,下一个品种显示在下一页。

(3)、确定返回到主设置界面,设置合计字段,这里面是出货数量。本页合计函数是:PageSum,本单合计函数是:Acc PageSum。

(4)、格式调整调整,正常保存、发布即可使用了!

说明:菜单中的分组功能有两点不足:

(1)、在最后打印的单据时的效果有不足之处,比如当一个料品在第一页显示时表头上会留有空行,如果这个品种行数多了显示到第二页去,则在第二页时表头就没有空行了,这样显示的效果欠佳。

(2)、报表分组后,每遇到一个新的品种就会分页显示,如果一些品种行数少,一页上打印了几个就换下一个品种下一页了,那么就会造成纸张的浪费。(当然了这需要根据客户要求,如果客户一定要一个品种一份,那也没办法)。此功能上有“结束处是否拆页”,如果设置成不分页,就会出现分断显示了。

针对上述不足,使用地“表行”中的分组功能可以一一得到解决。

2、表行分组

(1)、在表行上右击选择“增加(组)”打开增加组窗口。

(2)、选择分组表达式(分组依据),记下分组名称“Table_Group_1”,分组结束后拆页,根据实际情况选择,如果需要一种品种结束分页,就选择上,如果不需要一个品种结束时拆页就不选择。如果未选择,则就会在同一张单据上打印,共用表头也不会留空白,能解决上面方法一中浪费纸张的问题。

(3)、确定后会默认出来两行分组行,根据需求,是将分组数放在上面还是下面,删除其中一行,这里面要求将分组数据放在下面,则我们删除第一行。

(4)、这里面的函数选择group sum,格式如下。

(5)、调整好格式,正常保存发布即可。

注意:行分组函数是groupsum,数据源为此报表中的table序号,有的时候我们同时打开多张报表模板,table的序号会自动连续编写下去,我们一定要以当前报表中的table序号为准,否则就会报错。这里面一张报表中只有一个table,在分组时就会显示table_group_1

如果用户不想在行中显示以品种合并的数量,也可以右击把合计行删除了,删除合计行并没有将分组依据删除,依据仍然还在,如果真正想删除分组依据,需要右击选择“删除所有分组”。

 

需要技术支持:飞翔信息技术科技有限公司 - 公司介绍

  • 16
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 用友U9二开UBF并没有启用报表开发平台,即在UBF框架中没有涉及到与报表开发相关的功能和工具。 UBF用友公司推出的统一业务框架,用于快速开发企业级信息化系统。UBF框架提供了一系列的功能和组件,包括数据访问层、服务层、应用层等,用于构建企业级应用。 然而,UBF框架本身并不包含报表开发平台。报表开发一般需要使用专门的工具和技术,例如用友提供的报表开发工具——用友报表设计器。 用友报表设计器是一款基于可视化设计的报表开发工具,它提供了丰富的报表设计和数据处理能力,可以生成各种格式的报表,如Excel、PDF等。它与UBF框架可以进行集成,通过UBF框架的业务数据作为报表的数据源,从而实现企业的报表需求。 因此,如果需要在用友U9二开UBF中进行报表开发,需要额外启用用友报表设计器或其他报表开发工具,进行报表的设计和开发。这样可以根据企业的需求,生成所需要的各种报表,以支持企业的业务分析和决策。 ### 回答2: 用友U9二开UBF没有启用报表开发平台,意味着无法使用UBF来进行报表开发工作。UBF(Ufsoft Business Framework)是用友公司开发的一种针对企业级应用开发的框架,它提供了一系列的功能和工具来简化和加快企业级应用的开发过程。 报表开发平台是针对企业报表设计和生成的工具,它通常提供了丰富的报表设计功能和数据展示方式,方便用户根据需要自定义报表样式和布局,并将数据源与报表进行关联。通过报表开发平台,用户可以快速生成符合需求的报表,提高报表的灵活性和可读性。 没有启用报表开发平台的话,用户无法使用相关的工具和功能来进行报表设计和生成,可能需要通过其他方式来满足报表的需求。这可能会导致开发过程更加复杂,效率低下,并且无法充分发挥UBF的优势。 因此,如果需要进行报表开发工作,建议启用报表开发平台,以便更好地利用UBF框架提供的功能和工具来进行报表设计和生成,提高开发效率和报表质量。 ### 回答3: 用友U9用友软件公司推出的一款企业管理软件,UBF用友软件平台的基础框架,可以进行U9二次开发。而报表开发平台是用友U9提供的一个功能模块,可以帮助用户进行报表的定制和开发。 如果没有启用报表开发平台,意味着不能直接在U9系统中进行报表的定制和开发。但这并不意味着无法做报表相关的工作,只是需要通过其他方式来实现。 一种方式是可以使用数据库查询工具,如SQL语句,通过数据库操作来查询需要的数据,并进行报表的数据统计和分析。然后再使用Excel等工具进行数据的可视化和报表的制作。 另一种方式是可以使用第三方报表开发工具,如Crystal Reports、SSRS等,可以根据U9系统中的数据源,连接数据库,进行报表的设计和开发。 当然,以上的方式只是其中的两种常见方式,具体的实施方法还需要根据具体的需求和技术条件来确定。总之,没有启用报表开发平台并不代表无法进行报表开发和定制,只是需要采用其他的方式来实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值