原创

[FineReport]卡片分栏

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://david.blog.csdn.net/article/details/53580752
在企业中通常会打印些标牌,比如固定资产标牌。如何用FR去实现呢?

一、数据准备:

SELECT CASE WHEN [公司]='ZE' THEN '电子有限公司' 
       WHEN [公司]='ZM' THEN '磁电有限公司' else '继电器有限公司' END as 公司名称 ,
       [设备编号] AS 卡片编号  ,[资产编号]  ,[设备名称] as 资产名称,[型号] as 规格型号,[使用部门] ,[保管人] ,[验收日期] as 启用日期,[备注]
FROM [OA].[dbo].[固定资产]
where 公司 in ${cblCompany}

二、模板设计
如下图所示设置模板,其中小标题列的第一个单元格A3和大标题单元格A1的父格设置为雇员ID所在单元格B3,并添加一个空白行和一个空白列,其中空白行的首个单元格A7和空白列的首个单元格D1的父格均设置为A3:
这里写图片描述
三、未分栏预览
保存模板,点击分页预览,可看到如下效果,每个员工的信息形成一个完整卡片,也就是每条记录都有一个大标题和小标题:
三、分栏设置
上述模板预览效果可以看出该模板时纵向扩展,故分栏选择行分栏。
上述模板设计中可以看出,每个固定资产信息占了7行4列(为了使每个固定资产信息有一定的空白间隔,我们使用了空白行与空白列),第一二行是大标题行,第一列是小标题所在单元格,但由于每条记录都带有大标题和小标题,故可以将大小标题看成是数据的一部分,所以是11行3列,而不是11行3列;
若我们希望每栏显示3每个固定资产(11行*3=33行),超过的到下一栏(卡片是纵向扩展,故下一栏是指下一列)显示,以此类推。
就可以在菜单栏中,选择模板>报表分栏,设置为行分栏,超过33行时进行分栏,参与分栏的数据从左上角的A1(大标题开始的单元格)到右下角的C11,故在分栏数据中填写A1:C11,因为大小标题行已经作为分栏数据,所以重复行序列为空,如下图:
这里写图片描述
类似于上两节中的行分栏和列分栏,卡片分栏的超过行分栏数字也有公式,如下:
超过行/列分栏的数字=(分栏数据中结束分栏行/列序号-开始分栏行/列序号+1)*倍数
如上示例,结束分栏行序号为11,开始分栏行序号为1,要求每个栏位显示3为固定资产新消息,故倍数为3,所以
超过行分栏的数字=(11-1+1)*3=33
四、保存与预览
这里写图片描述

文章最后发布于: 2016-12-12 11:21:34
展开阅读全文
0 个人打赏
私信求帮助

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 鲸 设计师: meimeiellie

分享到微信朋友圈

×

扫一扫,手机浏览