RDL/RDLC批量单据打印 [转]
RDL/RDLC批量单据打印
使用RDL或RDLC进行单据打印时,单张单据打印比较直观简单,无需说明。下面我们来谈一下批量单据打印的实现方法。以下以RDL的ReportBuilder设计环境为例进行讲解,RDLC、VS设计环境同理。实现效果如下。
一、 基本思路
数据集:将单据表头、表体合并为一个数据集。例如将以下两个表合并为一个DataSet查询:单据号码、客户代码、部门、货品代码、货品名称、仓库、数量、单价、金额等。
- 表头字段:单据号码、客户代码、部门等;
- 表体字段:项次、货品代码、货品名称、仓库、数量、单价、金额等字段;
控件:列表、矩形、文本框、表。使用“列表”控件作为单据的边界,并在列表中设置一个“单号”分组,实现分页,在“列表”中设计单据表头及明细表体。
二、 详细步骤
1. 建立列表
在主体中插入一个列表,并指定其数据源。
选择列表,在行组中用鼠标右键选择详细信息,选择 组属性 ,设置“单据号码”分组,为了明了,修改组名称为 “单据号码”。排序选项根据需要设定。
在分页符选项卡上设置分页,这样可以实现一张单据分页的效果。
此时得到了一个单据容器,用以容纳我们即将要设计的单据。
2. 单据明细信息:列表与矩形
细心一点你会发现,在我们刚才插入的“列表”控件中,还有嵌套了一个“矩形”(Rectangle)控件,这是布局所需要的。如果没有矩形的话,我们拖进列表中的字段,将会成为列表本身的值。所以不管是列表、表或矩阵,如果想在Tablix表格之中再进行布局,则先铺一个矩形是非常必要的。
因为有矩形的存在,所以我们可以像普通报表一样,在列表中布置表头文本框,和表体详细数据。需要注意的是一些设计细节,比如表头居中,表体数量型字段需要居右,其他字段居左,小数位数的取舍等等。
表头的设计推荐两种方式:
1)表头信息可以使用下图中的“文本框”控件,设计空间比较自由。
2)也可以在详细数据表第一行之上再添加一个数据行,合并整行后插入个矩形控件,再插入一个无边框的数据表用来作为表头,这样比较整齐
3. 页眉页脚
将每页都有重复显示的东西放在页眉和页脚。当然还有表格的表头也要设置为在每页中重复。方法是先选中“表”,进入高级模式,在行组中选择作为表头的“静态”行,在属性中将RepeatOnNewPage设置为True。
如果有些信息需要在每页中都要显示,但因为针式打印中存在换页切纸问题,所以把一些重要信息设置在表中,也可以通过设置RepeatOnNewPage属性,在每页中显示。
4. 单据分页
在第一步中已经设置了单据分页,需要注意的是,这个列表空间与“页脚”之间不能存在空隙,否则单据最后一页就总会有一个空白页。
其实实现单据分页有很多种方法,不拘泥于这一种。大家自行摸索。
三、 其他细节
1. 大写金额
在报表空白处右击鼠标,选择报表属性,将下面的通过网络搜集的代码粘贴进去,在表中表达式中引用此函数即可。
=code.CNMoney(Sum(Fields!金额.Value))
1 '############################################################################# 2 3 '货币转换为中文汉字表述 4 5 '函数名称:CNMoney 6 7 '参数:ls 8 9 '返回值:转换后的字符串 10 11 '整理人:阿泰 12 13 '版本历史 14 15 '本文函数来源于 feng442624978,原帖地址: 16 17 'http://topic.csdn.net/u/20100303/15/0f0ceca7-d29d-4269-b0f5-17ea09d0f139.html 18 19 '############################################################################# 20 21 Shared Function CNMoney(ls As Double) As String 22 23 Dim dx_sz As String 24 25 Dim dx_dw As String 26 27 Dim str_int As String 28 29 Dim str_dec As String 30 31 Dim dx_str As String 32 33 Dim fu As String 34 35 Dim a As String 36 37 Dim b As String 38 39 Dim c As String 40 41 Dim d As String 42 43 Dim b2 As String 44 45 Dim num_int As Long 46 47 Dim num_dec As Long 48 49 Dim len_int As Long 50 51 Dim i As Long 52 53 Dim a_int As Long 54 55 Dim pp As Long 56 57 dx_sz = "零壹贰叁肆伍陆柒捌玖" 58 59 dx_dw = "万仟佰拾亿仟佰拾万仟佰拾圆" 60 61 If ls = 0 Then 62 63 CNMoney = "零圆整" 64 65 Exit Function 66 67 End If 68 69 If ls < 0 Then 70 71 ls = Abs(ls) 72 73 fu = "负" 74 75 Else 76 77 fu = "" 78 79 End If 80 81 dx_str = CStr(ls) 82 83 dx_str = Replace(dx_str, "¥", "") 84 85 dx_str = Replace(dx_str, ",", "") 86 87 If (ls >= 0) And (ls < 1) Then dx_str = "0" + dx_str 88 89 pp = InStr(dx_str, ".") 90 91 If pp > 0 Then 92 93 str_int = Mid(dx_str, 1, InStr(dx_str, ".") - 1) 94 95 Else 96 97 str_int = dx_str 98 99
转载于:https://www.cnblogs.com/bluedy1229/p/7266046.html
RDL/RDLC批量单据打印 [转]相关推荐
- 【C#】最全单据打印(打印模板、条形码二维码、字体样式、项目源码)
系列文章 [C#]编号生成器(定义单号规则.固定字符.流水号.业务单号) 本文链接:https://blog.csdn.net/youcheng_ge/article/details/12912978 ...
- ccform 表单的单据打印
为什么80%的码农都做不了架构师?>>> 9.0 特别注意事项 1, 模板里面不要有西文字符. 2, 尽量不要用word来编辑尤其是高版本的word,要用写字板来编辑. 1, ...
- 单据打印_Excel多功能进销存套表,自动库存单据,查询打印一键操作
Hello大家好,我是帮帮.今天跟大家分享一张Excel多功能进销存管理套表,自动库存,单据打印,查询统算一键操作. 为了让大家能更稳定的下载模板,我们又开通了全新下载方式(见文章末尾),以便大家可以 ...
- 文件怎么批量全部打印出来,网上打印文件怎么操作
在批量打印文件时,大家经常想要找一些资料打印价格比较便宜,且操作比较简单的打印平台,以此来节省打印的时间及费用,如果需要打印的文件比较多怎么批量全部打印出来呢? 通常我们在打印店打印资料时,会将文件资 ...
- vue 实现打印与批量分页打印功能
安装 npm install print-js --save main.js 引入 import Print from 'vue-print-nb'Vue.use(Print) // 注册 3.打印效 ...
- 单据打印处理,自动缩小字体,自动换行
一般ERP系统中单据打印,涉及文字较多的内容,比如品名规格.备注,会需要自动缩小字体,而且要自动换行,这样才能尽量把文字显示的清楚一些.很多报表工具,有直接这样的功能可以使用,但是如果不是用第三方报表 ...
- 批量横向打印Excel
使用VBA脚本写的,具体使用如下:在批量需要打印的Excel文档下面,新建一个文档,将代码粘贴VBA工程里,然后运行即可. 具体代码如下: Attribute VB_Name = "模块1& ...
- 明宇报表连接mysql_五种主流web报表对比:批量报表打印
阅读提示: 文章中与FineReport软件使用的相关内容,基于软件的V7.0旧版本编写,不代表软件最新的使用方式. FineReport最新版免费试用:https://www.finereport. ...
- 东软医疗打印设置java,关于单据打印的调试方法常见问题与使用技巧
3.3.4.6.1什么是单据打印? 流程运转到特定的节点,需要把流程数据打印出来,这种根据流程数据生成特定格式文件的过程叫做单据打印. 单据打印首先需要根据用户的对打印的要求制作一个单据模板. 1, ...
最新文章
- 除了密钥,公有云还有哪些安全保护方式
- jQuery 追加元素的方法如append、prepend、before
- centos 6.5安装VMware tools
- 渗透测试中的一波三折
- 霍夫曼树(最优二叉树)的实现
- 一代杰出科学家--钱学森去世了
- centos6.8安装docker
- FileUpload之单个文件上传
- Python学习笔记:利用sorted()函数对序列排序
- 理解Android的手势识别
- linux 光纤网卡 软路由,请教关于配置双网卡软路由的问题
- 从俄罗斯方块,迈向强化学习大门
- 汉字转拼音开源工具包Jpinyin介绍
- php英文商城,童装英文外贸网站系统
- 四阶魔方用三阶魔方公式时,两个特殊情况处理方式(顶面十字、最后一步)
- PostgreSQL下载地址
- 注意力机制在视觉中的实战
- 数据库练习题(比较基础)
- 微信小程序之获取用户地址
- 虚拟机网络与物理机网络互通
热门文章
- 多文件编程 【多文件编程】(26)
- CentOS7安装wdCP面板,快速搭建web运行环境(图文详解)
- java xml 验证工具_验证xml格式
- mac mysql ip访问不了_解决mysql中只能通过localhost访问不能通过ip访问的问题
- 【科普】STP生成树协议
- 告别Kafka Stream,让轻量级流处理更加简单
- 进击的云原生,为开发者提供更多可能性
- oracle常用的监控,oracle常用性能监控及优化语句
- 查看go 安装了哪些包_如何灵活地进行 Go 版本管理
- 6 不更新无法使用_win10更新后无线网络无法使用