67,515
社区成员
发帖
与我相关
我的任务
分享
3.4、转入开票数据
说明:根据博思票据预设的需求格式,转入博思开票界面,并可进行打印票据信息。
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
开票不成功,返回值为不成功的错误信息
package com.synjones.bosi;
import com.sun.jna.Library;
import com.sun.jna.Native;
public interface BosiAPI extends Library{
BosiAPI insanceDll = Native.loadLibrary("KpJk.dll", BosiAPI.class);
int PConnect();//连接博思开票系统(方式一)
int PLoginSuccess();//判断是否登陆成功
int PZrPj(String ZrTxt,int IsPrn,String PjLx,String Bz,String Res);//转入开票数据
}
package com.synjones.bosi;
import com.sun.jna.ptr.PointerByReference;
public class bositest {
public static void main(String[] args) {
// TODO Auto-generated method stub
int j = BosiAPI.insanceDll.PConnect();
System.out.println(j);
int i = BosiAPI.insanceDll.PLoginSuccess();
System.out.println(i);
kptest();
}
public static void kptest() {
System.out.println("开票测试");
String ZrTxt = "<&票据><&票据头>姓名=赵惠卿\t就诊号=12314\t保险编号=\t性别=女\t就诊科室=\t人员类别= \t医保类别=省医保\t付款方式=现金\t缴费流水号=2\t医保收据号=\t医疗费用总额= \t公务员补助支付=\t统筹金支付= \t个人现金支付= \t个人帐户支付= 大额补助支付= 上次账户余额= 个人账户余额=</&票据头><&收费项目>收费项目=R01 计费数量=3 收费标准=100 金额=300</&收费项目></&票据>";
PointerByReference pref = new PointerByReference();
String res = "";
int i = BosiAPI.insanceDll.PZrPj(ZrTxt, 1, "14004003", "这是备注", res);
System.out.println(i);
// Pointer p = pref.getValue();
// System.out.println(p);
// byte [] buffer = p.getByteArray(0,i);
// System.out.println(buffer);
System.out.println(res);
System.out.println("-------------------");
}
}