FastReport学习
官方手册
用网店管家发现里面的报表都是用fastreport做的。看起来是个很强大的工具。
1、主要数据都是从右侧的“数据”中拖过来的。下面有三个复选框,建议选择“建立字段”和“建立标题”,这样拖过来会自动生成标题和字段。
2、左侧一竖排图标跟画图工具类似,可以建立大段的文字或图片。
3、排版似乎要遵从一定顺序,点左侧工具栏“插入Band”按钮。顺序是
Band分类
- PageXxxx, 每一页都会放的Band
- ReportXxxx, 每个报告一份的Band
- xxxxxData,需要与数据连接的Band
- Header/Footer,不具体指的时候,是数据Band的头和尾;具体些Page或者Report的时候,是Page或者Report的头和尾;
具体Band
- 页首,PageHeader,放公司LOGO和标题
- 主数据, MasterData,放抬头的一些共用数据,比如公司名称、电话、供应商名称之类,放数据的时候会让你选数据库,最后一行放置明细数据的表头;
- 明细数据, DetailedData,放表格内的数据,跟上面主数据的表头对齐。需要注意的是有的字段长度不一定,可能很长,这时需要跳着这个字段的属性(左下角),设置StretchMode为MaxHeight,WordWrap为True;
- 报表合计,ReportSummary,放合计数据;
- 页脚,PageFooter,可以放入页码等;
Text Band,可以使用一些Html标签,b, i, sub, sup等。使用[]
创建表达式。
Band属性
- allow Split 允许Band切分到不同的页面
- Columns,列数,可以Z字型排列Band。
- 文件->页面设置->其他选项->分栏->栏数,可以N字型排列Band。
- MasterData/DetailData是用于两级数据的时候。Master显示数据表A,Detail显示数据表B,两者通过一个主键联系。举例A为客户表,B为订单表,一个客户有多个订单;这样,可以显示为
一行客户甲+多行客户甲的订单
再加一行客户乙+多行客户乙的订单
。MasterData相当于1级数据,DetailData相当于2级数据,因此DetailData必须在MasterData后面,否则打印会报错。
多层数据头尾的方法
Header1
MasterData
Footer1
Header2
DetailData
Footer2
Text属性
- StretchMode, 拉伸类型,大段文字需要设置成smMaxHeight,这样会自动撑高Band和Text。
- Word Wrap,自动换行,大段文字设置为True。
- FlowTo, 指定文字溢出到哪儿。当前Text放不下的时候,指定溢出的文字到哪个新的Text。可以用于文字环绕图片等。
页面Page属性
- PrintOnPreviousPage 如果是True将从上一个页面的空白处继续打印。
Data段属性
- StartNewPage,设置为True将为每一行新数据开启一页