未能封送类型,因为嵌入数组实例的长度与布局中声明的长度不匹配
深圳市奥格立电子有限公司 税控器接口调用打印发票时出的问题,使用了他们提供的OCX
未能封送类型,因为嵌入数组实例的长度与布局中声明的长度不匹配
FiscalOcx.T_wNormalInvInfo mWTNII = new FiscalOcx.T_wNormalInvInfo(); //OCX中的结构体
FiscalOcx.T_rNormalInvInfo mRINII = new FiscalOcx.T_rNormalInvInfo(); //OCX中的结构体
mWTNII.sPayer = this.txtPayer.Text; //付款单位名称(最多60字节ASC)
mWTNII.nItemCount = (byte)1; //总经营项目个数 1B(即cInvItems中有效下标个数)
mWTNII.cInvItems = new FiscalOcx.T_InvItem[1];
mWTNII.cInvItems[0] = new FiscalOcx.T_InvItem();
mWTNII.cInvItems[0].sTaxindex = "1"; //税种税目索引
mWTNII.cInvItems[0].fsum = 1000; //销售金额
int mReturnValue = this.axTFiscal1.MakeInvoice(ref mWTNII, ref mRINII); //调用这里的时候出错
说明文档中提供的信息
Function MakeInvoice(cwNormalInvInfo As T_wNormalInvInfo, crNormalInvInfo As T_rNormalInvInfo) As Long
Type T_wNormalInvInfo
sPayer As String '付款单位名称(最多60字节ASC)
nItemCount As Long '总经营项目个数 1B(即cInvItems中有效下标个数)
cInvItems(5) As T_InvItem '经营项目内容
End Type
Type T_InvItem
sTaxindex As String '税种税目索引 1B
fsum As Double '销售金额 4B
End Type
Type T_rNormalInvInfo
sReceiverno As String '机器编号8B
sPayee As String '纳税人名称 40B
sAntiForgeryCode As String '税控防伪码 20B
sDate As String '开票日期4B
sTime As String '开票时间2B
sPrintno As String '机打票号 4 hex
sInvCode As String '发票代码 4 bcd
End Type
他们提供了VB的范例代码
Dim wInv As T_wNormalInvInfo, rInv As T_rNormalInvInfo, iret%
wInv.sPayer = "一二三四五六七八九十一二三四五六七八九十"
wInv.nItemCount = 1
wInv.cInvItems(0).sTaxindex = "01"
wInv.cInvItems(0).fsum = 1000
iret = TFiscal1.MakeInvoice(wInv, rInv)
项目都是使用C#开发的,不能因此提供出一个VB的外挂程序