打印控件使用说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
打印控件使用说明
一.导入项目NC_PRINT
所有的包组织: nc.bs.pub.print
nc.pub.print.example
nc.ui.pub.print
nc.ui.pub.print.action
nc.ui.pub.print.datastruct
nc.ui.pub.print.graghic
nc.vo.pub.print
二.初始化数据库
模板信息建库:pub_print_template //模板信息
//单元格信息
pub_print_cell
//区域画线信息
pub_print_line
pub_print_datasource //单元格内数据源信息
//自定义变量信息
pub_print_variable
模板管理建库:pub_print_templetmanage //所有打印模块
//每个模块对应的所有打印数据项
pub_print_dataitem
参见相应的建库文件
进行模板管理需要初始化数据,包括所有要进行打印的模块以及针对某模块要进行打印的数据项,数据项包括变量名与变量表达式,变量表达式为变量名的英文名称(可包括数字与下划线,主要用于公式解析,具体命名参见公式解析),变量名为要打印的数据项,例如单据的表头、表体数据项(部门、业务员、存货编码等)。
要注意:变量名与变量表达式必须与程序中提供的数据源接口返回的数据项名称数组以及数据项表达式数组命名一致(见下述)。
参见给出的例子
三.提供数据源(程序员)
数据源实现接口nc.ui.pub.print.IdataSource
接口实现六个方法:
1.String[] getAllDataItemExpress() 得到所有的数据项表达式数组,实为数据项的英
文命名(英文字符开始,后可接数字、下划线),要求每个数据项的表达式唯一。
2.String[] getAllDataItemNames() 得到所有的数据项名称数组,与上述数组一一对应
3.String[] getDependentItemExpressByExpress(String itemExpress) 根据某数据项得到
其依赖项的名称数组该数组可为空或其长度只能为 1 或者 2
空代表没有依赖项,长度为 1 代表单项依赖,长度为2代表双向依赖4. String[] getItemValuesByExpress(String itemExpress) 根据某数据项得到其对应的内容(数组表示)
5.boolean isNumber(String itemExpress) 该数据项名称是否为数字项
6. String getModuleName() 返回打印模块名称
Example:见nc.pub.print.example
四. 模板打印入口(程序员用)
nc.ui.pub.print.PrintEntry
该入口提供模板编辑、打印预览、直接打印功能
Example:
实现数据源
nc.ui.pub.print.IDataSource dataSource = new IDSDemo2x(10, 10); //见nc.pub.print.example
实例化打印入口
nc.ui.pub.print.PrintEntry print = new nc.ui.pub.print.PrintEntry(null,null);
必须首先设置数据源
print.setDataSource(dataSource);
入口1:选择该数据源对应的打印模板,选定模板后再选择预览或打印
print.printSelect();
入口2:指定模板名称后,进入模板编辑
print.setTemplateName("print004");
print.editTemplate();
入口3:打印预览
print.preview();
入口4:直接打印
print.print(true);
运行打印控件需要部属QueryServiceBO
PrintBO
五. 直接打印入口(程序员用)
对于简单表格的打印,不需通过编辑模板来打印,只需设置标题、列名、数据、表头表尾信息即可。
例:打印如下表格
打印测试标题
表头信息:
发货信息
表头数据项
单价金额供应商部门业务员含税不含税含税不含税
表尾信息:
程序调用如下:
String[][] colname = new String[][] {
{ "表头数据项", null, null, "发货信息", null, null, null },
{null, null, null, "单价", null, "金额", null },
{"供应商", "部门", "业务员", "含税", "不含税", "含税", "不含税" } };
O bject[][] data = new Object[][] {
{ "11", "12", "13", "14", "15", "16", "17" },
{"21", "22", "23", "24", "25", "26", "27" },
{"31", "32", "33", "34", "35", "36", "37" },
{"41", "42", "43", "44", "45", "46", "47" },
{"51", "52", "53", "54", "55", "56", "57" }
};
C ellRange[] combineCellRange = new CellRange[] {
new CellRange(0, 0, 1, 2),
new CellRange(0, 3, 0, 6),
new CellRange(1, 3, 1, 4),
new CellRange(1, 5, 1, 6)
};
i nt[] colwidth = new int[] { 50, 50, 50, 80, 80,80,80 };
i nt[] alignflag = new int[] { 0, 0, 0, 2, 2,2,2 };
S tring title = "打印标题测试";