打印COM组件—XBillPrn
版本:1.0
作者:徐海峰
联系方式:EMail [email protected],[email protected] QQ 19501238 Mobile 13951851144
时间:2003年11月20日完成
1、使用前应先注册DLL。
2、用配套程序建立数据表(表结构详见附录一)
3、在tbPrnBillName表中增加票据
4、在tbCellViscera表中增加单元打印内容。注意:序号必须从1开始;精度为-1时表示没有精度即文字,精度为大于等于0时表示为数字可以设定精度。
如下例:
序号 单元名称 精度 单据名称
1 年 -1 即票据名,如入库单等
2 月 -1
3 日 -1
4 单据号 -1
5 开票点编码 -1
6 开票点名称 -1
7 客户编码 -1
8 客户名称 -1
9 制单人编码 -1
10 制单人名称 -1
等等......
5、在tbTabulaViscera表中增表格列内容。注意:同上
如下例:
序号 表格列名称 精度 票据名称
1 商品编码 -1 即票据名,如销售单等
2 商品条码 -1
3 商品名称 -1
4 计量单位 -1
5 单价 3 精度保留小数3位 如12.000
6 数量 2
7 金额 2
等等......
6、运行程序,设计票据
7、XBillPrn.DLL中组件TclsXBillPrn中的相关属性及函数如下:
clsXBillPrn.BillConnection:ADO的CONNECTION连接
clsXBillPrn.BillName:需打印的票据名称 字符串类型
clsXBillPrn.CellCols:单元的列数 整型
clsXBillPrn.CellRows:单元数量 整型
clsXBillPrn.CellString:单元字符串 以“|”分隔 长字符串类型 BSTR
clsXBillPrn.TabulaCols:表格列数 整型
clsXBillPrn.TabulaRows:表格行数 整型
clsXBillPrn.TabulaString:表格字符串 以“|”分隔
clsXBillPrn.BillPreview:预览
clsXBillPrn.BillPrint:打印
clsXBillPrn.BillSetup:票据设计
8、使用方法(Delphi)
clsXBillPrn.BillConnection:=ADOdb_tlb._connection(ADOConnection1.ConnectionObject);
clsXBillPrn.BillName:='销售单' ;
clsXBillPrn.CellCols:=1;
clsXBillPrn.CellRows:=12;
clsXBillPrn.CellString:=ToWideString(sgdCell);//将STRINGGRID转换为长字符串
clsXBillPrn.TabulaCols:=10;
clsXBillPrn.TabulaRows:=8;
clsXBillPrn.TabulaString:=ToWideString(sgdTabula);
clsXBillPrn.BillPreview;
ToWideString函数:一行一行的读取
function ToWideString(Grid:TStringGrid):WideString;
var
i,j:integer;
ss:widestring;
begin
Result:='';
for i:=0 to Grid.RowCount-1 do
for j:=0 to Grid.ColCount-1 do
ss:=ss+Grid.Cells[j,i]+'|';
Result:=ss;
end;
*************************************************************
*************************************************************
打印COM组件—XReportPrint
版本:1.0
作者:徐海峰
联系方式:EMail [email protected],[email protected] QQ 19501238 Mobile 13951851144
时间:2003年12月22日完成
1、使用前应先注册XReportPrint.dll
2、XReportPrint.dll中相关的属性及函数如下
XReport.DBConnection:ADO的CONNECTION连接
XReport.AppHWND:调用此控件的工程的句柄
XReport.TableNames(const AXProName, AXHead, AXFoot, AXCols: WideString):传递表名
参数含义依次为方案表、页头表、页脚表、列属性表。如果没有表,则自动创建。
表格详见附录三
XReport.ReportName:需打印的报表名称
XReport.FixedRows:固定列数及标题列数。
XReport.SetDataSource(XSize, XCols, XRows: Integer; XArray: OleVariant):传递表数据
参数含义依次为数组大小、列数、行数、字符串数组(一行一行的读取)
XReport.SetColWidth(XSize: Integer; XArray: OleVariant):传递表列的宽度
参数含义依次为数组大小、浮点数组
XReport.AddPageHead(XSheath, XVisible, XAlign: Smallint; XLeft, XRight,
XTop: Double; const XFont, XText: WideString):传递表头数据
参数含义依次为套打时是否打印、是否可见、对齐方式、距左边界距离、距右边界距离、
距顶部距离、字体、内容。
其中字体参数格式为:'宋体,20,clBlack,fsBold'。
XReport.AddPageFoot(XSheath, XVisible, XAlign: Smallint; XLeft, XRight,
XBottom: Double; const XFont, XText: WideString)
参数含义依次为套打时是否打印、是否可见、对齐方式、距左边界距离、距右边界距离、
距表格底部距离、字体、内容。
XReport.Coalition(XCol1, XRow1, XCol2, XRow2: Integer):标题列的合并
参数含义依次为:合并的开始的列、行;合并的终止的列、行。
列:如需合并从第2列第1行至第3列第2行,则表示为(1,0,2,1)。行列计数从0开始
XReport.XPreview:预览
XReport.XPrint:打印
**************
**附录(一)**
**************
打印项目数据结构
表名:tbPrnBillName //票据名称表
BillName varchar(50) Not Null //票据名称
Constraint pkPrnBillName Primary key (BillName)
//**********
表名:tbPrnBillProName //票据打印方案名称表
ProID int Not Null //方案编号
ProName varchar(50) Not Null //方案名称
BillName varchar(50) Not Null //票据名称
Constraint pkPrnBillProName Primary key (ProID)
//**********
表名:tbPrnProData //方案具体打印相关数据表
ProID int Not Null //方案编号
PaperNames varchar(255) Not Null //纸张名称
PageWidth float Not Null //页宽
PageHeight float Not Null //页高
TopSide float Not Null //上边距
LeftSide float Not Null //左边距
Sheath int Not Null //是否套打 0 否 1 是
CurDefault int Not Null //是否默认方案 0 否 1 是
Constraint pkPrnProData Primary key (ProID)
//**********
表名:tbCellViscera //单元内容表
BillName varchar(50) Not Null //票据名称
CellID int Not Null //序号
CellName varchar(50) Not Null //单元名称
NumPrecision int Not Null Default -1 //数字精度 -1为没有精度
Constraint pkCellViscera Primary key (BillName,CellID)
//***********
表名:tbTabulaViscera //表格内容表
BillName varchar(50) Not Null //票据名称
TabulaID int Not Null //序号
TabulaName varchar(50) Not Null //表格列名称
NumPrecision int Not Null Default -1 //数字精度 -1为没有精度
Constraint pkTabulaViscera Primary key (BillName,TabulaID)
//**********
表名:tbCellPrnData //单元具体打印数据
ProID int Not Null //方案编号
CellID int Not Null //单元编号
DataID int Not Null //序号
LocaLTX float Not Null //左上角X位置
LocaLTY float Not Null //左上角Y位置
LocaRBX float Not Null //右上角X位置
LocaRBY float Not Null //右下角Y位置
Align int Not Null //对齐方式
Font varchar(100) Not Null //字体
Constraint pkCellPrnData Primary key (ProID,CellID,DataID)
//***********
表名:tbTabulaPrnData //表格具体打印数据
ProID int Not Null //方案编号
TabulaID int Not Null //表格列编号
DataID int Not Null //序号
LocaLTX float Not Null //左上角X位置
LocaLTY float Not Null //左上角Y位置
LocaRBX float Not Null //右上角X位置
LocaRBY float Not Null //右下角Y位置
Rows int Not Null //表格行数
LeftSpace float Not Null //距离表格左边大小
Align int Not Null //对齐方式
Font varchar(100) Not Null //字体
Constraint pkCellPrnData Primary key (ProID,TabulaID,DataID)
//***********
表名:tbSummationData //小计数据表
ProID int Not Null //方案编号
SumID int Not Null //序号
TabulaID int Not Null //表格列号
LocaLTX float Not Null //左上角X位置
LocaLTY float Not Null //左上角Y位置
LocaRBX float Not Null //右上角X位置
LocaRBY float Not Null //右�
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
2003122415281716781.rar (5个子文件)
xhfprint
Project1.exe 273KB
Readme.txt 15KB
XReportPrint.dll 863KB
XHFPrint.mdb 440KB
XBillPrn.dll 899KB
共 5 条
- 1
资源评论
- pantherp2015-07-14解决了我的问题, 感谢
- 邱瓜2013-06-05适合打印报表,可惜没有源码
普通网友
- 粉丝: 882
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功