接口函数说明.doc_第1页
接口函数说明.doc_第2页
接口函数说明.doc_第3页
接口函数说明.doc_第4页
接口函数说明.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

票据接口函数说明一、接口概述 a.概述 为了执行黑龙江省财政厅发布的“财政票据电子化”即自动导入票据,电脑开票,自动核销票据,资金解缴等的方针,由各单位现有软件提供票据相关信息通过博思转入开票接口来进行自动开票。 b.原理简述 单位端现有软件生成票据相关信息转成文本格式,再通过调用dll文件的相关函数把信息转入博思开票软件中,而后自动进行开票 二、接口实现 a.操作过程1.启动单位端现有软件与博思开票端软件 2.单位端现有软件提供票据相关信息3.单位端现有软件进行开票b.软件实现过程 1.业务软件凋用Dll(Pconnect或PAdvConnect)函数联接开票软件; 2. 业务软件生成票面信息(需按接口规范格式);3. 业务软件凋用Dll(PZrPjXX)函数转入票据信息,票据软件接收票据信息,并返回生成票据号、数据指纹等信息; 4. 转入成功时,业务软件打印出票据。 c、Dll函数说明 1、Function PConnect:integer;StdCall; 联接博思开票软件,必须先调用此联接才能执行转入开票的操作 返回值int:成功 1 不成功 0 注:只用于联接一般开票软件2.Function PConnectSoft(aSys:PChar):integer;StdCall; 联接博思开票软件,必须先调用此联接才能执行转入开票的操作,有针对系统而言 参数:aSys:系统名 高速开票系统:GS 大型网络开票系统:NK返回值int: 成功 1 不成功 03.Function PAdvConnectSoft(aUser,aMm,aTzh,aSys:PChar):integer;Stdcall;联接博思开票软件并且能自动登录, 有针对系统而言参数:aUser:登录用户号 aMm:登录密码 aTzh:登录套帐号(为空时取默认套帐) aSys:系统名返回值 int :成功 1 不成功 04.Function PAdvConnect(aUser,aMm,aTzh:PChar):intger;StdCall; 联接博思开票软件并且能自动登录参数:aUser:登录用户号 aMm:登录密码 aTzh:登录套帐号(为空时取默认套帐)注:只用于联接一般开票软件5、Function PDisConnect:integer;StdCall; 断开博思开票软件的联接 返回值int:成功 1 不成功 06. Function PZrPj(ZrTxt:PChar;IsPrn:integer; PjLx,Bz,Res:PChar):integer;StdCall; 执行转入开票动作 参数: ZrTxt : 票据数据 (格式详见:数据格式说明.txt 文件) IsPrn : 0 表示显示转入票据信息后再进行开票 1 表示直接开票并打印 2 表示直接开票但不打印 PjLx : 票据类型 (传空表示取默认当前的票据类型开票, 不为空则指定类型) Bz : 单据的备注 (可选的参数,可不传则转入无备注) Res: 只作为存储返回字符 成功:票据类型号,票据号,金额,注册号(以,分格) 错误:(错误信息) 返回值: 参数Res的长度 示例1:var vRes:pChar; SetLength(vRes,500); /vRes变量宽度,请定义足够大以返回完整错误信息 PZrPj(SomeString,1,001001,vRes) 返回值:25 vRes返回值:成功:001001,085256,1200.3,闽财2004票 表示:传入开票内容为SomeString,票据类型为001001, 备注为空 返回值长度为25 开票成功,返回值为 票据类型为001001 票据号为085256 金额为1200.3元 注册号 闽财2004票 示例2:var vRes:pChar; PZrPj(SomeString,1,张三,vRes) 返回值:31 vRes返回值:错误:请先上报核销后才能开票据。 表示:传入开票内容为SomeString,票据类型为默认值, 备注为张三 返回值长度为31 开票不成功,返回值为 不成功的错误信息 7. Function PDelPj(Flag:PChar;Res:PChar):integer;StdCall;作废一张票据 参数: Flag 接口以该要素去定位该欲作废的票据,可选传入如票 据类型、票据号、唯一号、流水号、受理号等,根据 传入的内容查找定位票据,再作废该票据。如果找到 的票据不唯一,报错,不能作废 参数应以=分格,如果有须多个参数定位一张票据,参 数间以|分格各参数,如票据类型=001001|票据 号=085256参数等号左边为定位依据,右边为因子 其中“票据类型”“票据号”为关键字,其余可以为开 票设置里的自定义项内容 Res: 只作为存储返回字符 成功:票据类型号,票据号 (以,分格) 错误:(错误信息) 返回值:参数Res的长度 示例1:var vRes:pChar; SetLength(vRes,500); /vRes变量宽度,请定义足够大以返回完整错误信息 PDelPj(票据类型=001001|票据号=085256,vRes) 返回值:18 vRes返回值:成功:001001,085256 表示:作废票据类型为001001 票据号为085256的一张票据 返回值长度为18 作废票据成功,返回值为 票据类型为001001 票据号为085256 示例2:var vRes:pChar; PDelPj(流水号=300124567,vRes) 返回值:25 vRes返回值: 错误:找不到符合条件的票据 表示:作废流水号为 300124567的一张票据 (以假设流水号是唯一标志去定位一张票据) 返回值长度为25 作废票据不成功,返回值为错误信息,没有定位到该票据8. Function PGetPjMc(Res:PChar):integer;StdCall; 取所有票据类型 参数: Res 只作为存储返回编号和名称 格式为: 票据编码1 票据名称1|票据编码2 票据名称2|. 其中|表示Tab字符 .表示省略 返回值:参数Res的长度9. Function PGetCurPj(Pj: PChar;Res:PChar):integer;StdCall;取当前开票的票据类型 参数: Pj 票据类型 Res 只作为存储返回编号和名称 返回值:参数Res的长度10、Function PGetCardh(Res:PChar):integer;StdCall; 取当前开票卡卡号 参数: Res 只作为存储系统返回开票软件第一个本地开票卡的卡号 返回值: 参数Res的长度11、Function PGetCurPh(Pj:PChar;Res:PChar):integer;StdCall; 取当前开票卡可用的第一张票据号 参数:Pj 票据类型 表示取默认票据类型的当前开票卡可用的第一张票据号 不为空表示取指定票据类型的第一张票据号 Res 只作为存储取当前开票卡可用的第一张票据号返回值: 参数Res的长度12、Function PGetKpr(Res:PChar):integer;StdCall; 取得当前开票软件的开票人名称 参数: Res 只作为存储取得当前开票软件的开票人名称 返回值: 参数Res的长度13、Function PGetTzh(Res:PChar):integer;StdCall;取得开票系统的当前帐套号 参数: Res 只作为存储取得当前帐套号 返回值: 参数Res的长度14、Function PSetTzh(aTzh:PChar;Res:PChar):integer;StdCall;设置开票系统的当前帐套号 参数: aTzh 须要改变的帐套号 成功则PgetTzh取得的帐套号变为aTzh15、Function PLoginSuccess:integer;StdCall; 判断是否已完全登录博思软件 返回值int:成功 1 不成功 016. Function PZrPjXX(ZrTxt:PChar;sPrn:integer; PjLx,Bz,Res:PChar):integer;StdCall; 执行转入开票信息(与PZrPj区别,多返回数字指纹) 参数: ZrTxt : 票据数据 (格式详见:数据格式说明.txt 文件) IsPrn : 0 表示显示转入票据信息后再进行开票 1 表示直接开票并打印 2 表示直接开票但不打印 PjLx : 票据类型 (传空表示取默认当前的票据类型开票, 不为空则指定类型) Bz : 单据的备注 (可选的参数,可不传则转入无备注) Res: 只作为存储返回字符 成功:票据类型号,票据号,金额,注册号,数字指纹(以,分格) 错误:(错误信息) 返回值: 参数Res的长度 示例1:var vRes:pChar; SetLength(vRes,500); /vRes变量宽度,请定义足够大以返回完整错误信息 PZrPj(SomeString,1,001001,vRes) 返回值:25 vRes返回值:成功:001001,085256,1200.3,闽财2004票, 00ABCDEFG012456789 表示:传入开票内容为SomeString,票据类型为001001, 备注为空 返回值长度为34 开票成功,返回值为 票据类型为001001 票据号为085256 金额为1200.3元 注册号 闽财2004票 数字指纹:00ABCDEFG012456789 示例2:var vRes:pChar; PZrPj(SomeString,1,张三,vRes) 返回值:31 vRes返回值:错误:请先上报核销后才能开票据。 表示:传入开票内容为SomeString,票据类型为默认值, 备注为张三 返回值长度为31 开票不成功,返回值为 不成功的错误信息17. Function PZrfzf (Flag:PChar;Res:PChar):integer;StdCall;反作废一张票据 参数: Flag 接口以该要素去定位该欲作废的票据,可选传入如票 据类型、票据号、唯一号、流水号、受理号等,根据 传入的内容查找定位票据,再作废该票据。如果找到 的票据不唯一,报错,不能作废 参数应以=分格,如果有须多个参数定位一张票据,参 数间以|分格各参数,如票据类型=001001|票据 号=085256参数等号左边为定位依据,右边为因子 其中“票据类型”“票据号”为关键字,其余可以为开 票设置里的自定义项内容 Res: 只作为存储返回字符 成功:票据类型号,票据号 (以,分格) 错误:(错误信息) 返回值:参数Res的长度 示例1:var vRes:pChar; SetLength(vRes,500); /vRes变量宽度,请定义足够大以返回完整错误信息 PZrFzf(票据类型=001001|票据号=085256,vRes) 返回值:18 vRes返回值:成功:001001,085256 表示:作废票据类型为001001 票据号为085256的一张票据 返回值长度为18 作废票据成功,返回值为 票据类型为001001 票据号为085256 示例2:var vRes:pChar; PDelPj(流水号=300124567,vRes) 返回值:25 vRes返回值: 错误:找不到符合条件的票据 表示:作废流水号为 300124567的一张票据 (以假设流水号是唯一标志去定位一张票据) 返回值长度为25 作废票据不成功,返回值为错误信息,没有定位到该票据18、 Function PZrHandPj(ZrTxt: PChar;PjLx,Qsh,Zzh,Res:PChar):integer;StdCall; 执行手工开票动作 参数: ZrTxt : 票据数据 (格式详见:数据格式说明.txt 文件) PjLx : 票据类型 (传空表示取默认当前的票据类型开票, 不为空则指定类型) Qsh : 起始号 Zzh: 终止号 Res: 只作为存储返回字符 成功:票据类型号,票据号,金额,注册号(以,分格) 错误:(错误信息) 返回值: 参数Res的长度 示例1:var vRes:pChar; SetLength(vRes,500); /vRes变量宽度,请定义足够大以返回完整错误信息 PZrPj(SomeString,001007,001001,001002,vRes) 返回值:25 vRes返回值:成功:001001,085256,1200.3,闽财2004票 表示:传入开票内容为SomeString,票据类型为001001, 备注为空 返回值长度为25 开票成功,返回值为 票据类型为001001 票据号为085256 金额为1200.3元 注册号 闽财2004票 示例2:var vRes:pChar; PZrPj(SomeString,001007,001001,001002,vRes) 返回值:31 vRes返回值:错误:请先上报核销后才能开票据。 表示:传入开票内容为SomeString,票据类型为默认值, 备注为张三 返回值长度为31 开票不成功,返回值为 不成功的错误信息19、 Function PGetKyPjd(aPj:PChar;aNum:integer;Res:PChar):integer;StdCall; 根据票据以及所需票据号个数来取可用票据段 参数: aPj 票据编码 aNum 票据号个数 Res 只是做为返回的票据段 20、Function PGetKyPj(aPj:PChar;Res:PChar):integer;StdCall; 根据票据来取可用票据段 参数: aPj 票据编码 Res 只是做为返回的票据段 注: 1、在接口软件的适当位置,如生成票据并打印票据时接入本接口函数。 2、(Pconnect或AdvPconnect)、PDisConnect 与 (PZrPj或PZrPjXX) 函数为必须调用的函数。在转入前先用(Pconnect或PAdvPconnect)联接票据软件,组织要开票的数据形成字符串ZrTxt参数由(PZrPj或 PZrPjXX) 函数转入开一张票据,可连续调用本函数,所有开票完毕可 PDisConnect 断开与开票软件的联接。 3、开票卡、电脑票据的领用与票据号控制、开票人的权限等诸因素,由 开票软件可设置控制 4、其它的函数为非必须的辅助函数,可适当调用,起如提示作用等。三、编程语言调用方法一、Delphi调用Dll接口Dephil 调用 DLL 函数 定义方法/联接博思开票软件 返回值int:成功 1 不成功 0Function ConnectKp:integer;StdCall;external KpJk.dll name PConnect;/断开博思开票软件 返回值int:成功 1 不成功 0Function DisConnectKp:integer;StdCall;external KpJk.dll name PDisConnect;/取当前开票卡卡号 系统返回开票软件第一个本地开票卡的卡号Function PGetCardh(Res:PChar):integer;StdCall;external KpJk.dll;/取当前开票人名称Function PGetKpr(Res:PChar):integer;StdCall;external KpJk.dll;/取所有票据类型,返回编号和名称Function PGetPjMc(Res:PChar):integer;StdCall;external KpJk.dll/取当前开票的票据类型,返回编号和名称Function PGetCurPj(Pj,Res:PChar):integer;StdCall;external KpJk.dll;/取当前开票卡可用的第一张票据号Function PGetCurPh(Pj,Res:PChar):integer;StdCall;external KpJk.dll;/执行转入开票动作Function PZrPj(ZrTxt:PChar;IsPrn:integer;PjLx,Bz:PChar;Res:PChar):integer;StdCall;external KpJk.dll;/执行转入开票信息Function PZrPjXX(ZrTxt:PChar;IsPrn:integer;PjLx,Bz:PChar;Res:PChar):integer;StdCall;external KpJk.dll;/作废一张票据Function PDelPj(Flag,Res:PChar):integer;StdCall;external KpJk.dll;/取得开票系统的当前帐套号Function PGetTzh(Res:PChar):integer;StdCall;external KpJk.dll;/设置开票系统的当前帐套号Function PSetTzh(aTzh:PChar;Res:PChar):integer;StdCall;external KpJk.dll;调用时特别声明:必须为Res参数开辟空间且取Res结果要根据字符长度截取例:取卡号 var vStr:string; vLen:integer;begin /取当前开票卡卡号 系统返回开票软件第一个本地开票卡的卡号 SetLength(vStr,500); /必须为Res参数开辟足够空间 vLen:=PGetCardh(PChar(vStr); BTxtf_Kh.text:=Copy(vStr,1,vLen); /取Res结果要根据字符长度截取end; 附二:1、Dephil 调用接口单元应引用 ComObj 2、调用程序(如Project1.exe)应与dll在同一目录,如:Project1.exe 应与 KpJk.dll 在同一目录 3、开票程序 Bskp.exe 与 KpServer.exe 应与 Project1.exe 在同一系统运行二、PowerBuilder 调用Dll接口 PowerBuilder调用 DLL 函数 定义方法/在声明(DeClare)中定义为全局外部函数(Global ExterNal Function)/联接博思开票软件 返回值int:成功 1 不成功 0Function int ConnectKp() LIBRARY KpJk.dll ALIAS FOR PConnect/断开博思开票软件 返回值int:成功 1 不成功 0Function int DisConnectKp() LIBRARY KpJk.dll ALIAS FOR PDisConnect/自动登录Function int AdvConnectKp(String User,String Mm,String Tzh) LIBRARY KpJk.dll ALIAS FOR PAdvConnect/执行转入开票动作Function int PZrPj(string ZrTxt,int IsPrn,string PjLx,string Bz,Ref string Res ) LIBRARY KpJk.dll Function int PZrPjXX(string ZrTxt,int IsPrn,string PjLx,string Bz,Ref string Res ) LIBRARY KpJk.dll/取当前开票卡卡号 系统返回开票软件第一个本地开票卡的卡号Function int PGetCardh(Ref String Res) LIBRARY KpJk.dll /取当前开票卡可用的第一张票据号Function int PGetCurPh(string Pj,Ref String Res) LIBRARY KpJk.dll /取当前开票的票据类型,返回编号和名称Function int PGetCurPj(string Pj,Ref string Res) LIBRARY KpJk.dll/取当前开票人名称Function int PGetKpr(Ref string Res) LIBRARY KpJk.dll/取所有票据类型,返回编号和名称Function int PGetPjMc(Ref string Res) LIBRARY KpJk.dll/作废一张票据Function int PDelPj(string Flag,Ref string Res) LIBRARY KpJk.dll/判断是否已完全登录Function int LoginSuccess() LIBRARY KpJk.dll ALIAS FOR PLoginSuccess调用时特别声明:必须为Res参数开辟空间且取Res结果要根据字符长度截取例:取卡号 String vStr int vLenvStr=space(50) /必须为Res参数开辟空间vLen=PGetCardh(vStr) St_1.text=Left(vStr,vLen) /取Res结果要根据字符长度截取三、Visual FoxPro 调用Dll接口FoxPro调用Dll函数定义方法/联接博思开票软件 返回值int:成功 1 不成功 0DECLARE integer PConnect in KpJk.dll as Co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论