System.Type oType = System.Type.GetTypeFromProgID("Mvedit.MVoucherEdit");
object o = System.Activator.CreateInstance(oType);
//调用凭证新增界面
oType.InvokeMember("LoadVoucher", System.Reflection.BindingFlags.InvokeMethod, null, o, new object[] { 0, null, null, null, null });
//创建凭证 并添加凭证数据 请问 创建凭证 代码转化处理 VB 代码如下:
'建立界面显示凭证数据
Private Function CreateVoucher() As Object
Dim Voucher As Object '凭证对象
Dim VoucherEntrys As Object '凭证分录对象
Set Voucher = CreateObject("EBCGL.Voucher")
Voucher.Construct Nothing, Nothing '建立凭证数据对象
Set VoucherEntrys = Voucher.Entries '设置凭证分录对象
Voucher.InternalInd = "Super" '机制凭证信息(可选)
'设置凭证默认日期(可选)
' Voucher.TransDate = Format(Now, "yyyy-mm-dd") '业务日期
' Voucher.VoucherDate = Format(Now, "yyyy-mm-dd") '凭证日期
Voucher.GroupID = CboGroup.ItemData(CboGroup.ListIndex) '凭证字
Voucher.Number = Val(TxtNumber.Text) '凭证号
'下面输入凭证分录数据
'借方分录数据
Dim Acct1 As Long, Acct2 As Long
GetRndAccountID Acct1, Acct2
If Acct1 * Acct2 = 0 Then Exit Function
VoucherEntrys.Add
With Voucher.Entries(Voucher.Entries.Count)
.Explanation = "凭证录入检测-分录1"
.AccountID = Acct1
.Amount = 100
.AmountFor = 100
.ExchangeRate = 1
.CurrencyID = 1
.DC = 1 '借方
End With
'贷方分录数据
VoucherEntrys.Add
With Voucher.Entries(Voucher.Entries.Count)
.Explanation = "凭证录入检测-分录1"
.AccountID = Acct2
.Amount = 100 '本位币
.AmountFor = 100 '原币
.ExchangeRate = 1 '汇率
.CurrencyID = 1 '币别
.DC = 0 '贷方
End With
Set CreateVoucher = Voucher
End Function
//另外请问 如果科目又核算项目 怎么添加核算项目 ^_^ 分不多,还请大侠 不吝赐教
6 个解决方案
#1
主要是 凭证分录 和 科目核算项目的处理 谢谢!
#2
以上问题已经解决 但是在建立凭着挂你输入对象时 通不过:
object objVoucher = CreateVoucher();
System.Type oTypeRel = System.Type.GetTypeFromProgID("KDVBF.Relevancy");
object objRel = System.Activator.CreateInstance(oTypeRel);
oTypeRel.InvokeMember("MultiEdit", System.Reflection.BindingFlags.SetProperty, null, objRel, new object[] { false });
//下面一行代码无法通过 请高手指点 虽然 曾经试过 直接引用 KDVBF
/*
KDVBF.RelevancyClass objRel = new KDVBF.RelevancyClass();
objRel.EditObject = objVoucher;//设置凭证数据对象到Rel参数
objRel.MultiEdit = false;//是否允许多张凭证编辑
*/ 但有时 会提示错误 lock 类的错误
oTypeRel.InvokeMember("EditObject", System.Reflection.BindingFlags.SetProperty, null, objRel, new object[] { objVoucher });
object objVoucher = CreateVoucher();
System.Type oTypeRel = System.Type.GetTypeFromProgID("KDVBF.Relevancy");
object objRel = System.Activator.CreateInstance(oTypeRel);
oTypeRel.InvokeMember("MultiEdit", System.Reflection.BindingFlags.SetProperty, null, objRel, new object[] { false });
//下面一行代码无法通过 请高手指点 虽然 曾经试过 直接引用 KDVBF
/*
KDVBF.RelevancyClass objRel = new KDVBF.RelevancyClass();
objRel.EditObject = objVoucher;//设置凭证数据对象到Rel参数
objRel.MultiEdit = false;//是否允许多张凭证编辑
*/ 但有时 会提示错误 lock 类的错误
oTypeRel.InvokeMember("EditObject", System.Reflection.BindingFlags.SetProperty, null, objRel, new object[] { objVoucher });
#3
运行时错误 91 未设置对象变量 或者with block 变量
#4
你EditObject是什么?怎么有未设置对象变量?
#5
楼上兄弟 我加你为好友 本贴 只有你一个人支持我 ^_^ 谢谢 !
#6
因为这年头,懂vb的甚是少见。
#1
主要是 凭证分录 和 科目核算项目的处理 谢谢!
#2
以上问题已经解决 但是在建立凭着挂你输入对象时 通不过:
object objVoucher = CreateVoucher();
System.Type oTypeRel = System.Type.GetTypeFromProgID("KDVBF.Relevancy");
object objRel = System.Activator.CreateInstance(oTypeRel);
oTypeRel.InvokeMember("MultiEdit", System.Reflection.BindingFlags.SetProperty, null, objRel, new object[] { false });
//下面一行代码无法通过 请高手指点 虽然 曾经试过 直接引用 KDVBF
/*
KDVBF.RelevancyClass objRel = new KDVBF.RelevancyClass();
objRel.EditObject = objVoucher;//设置凭证数据对象到Rel参数
objRel.MultiEdit = false;//是否允许多张凭证编辑
*/ 但有时 会提示错误 lock 类的错误
oTypeRel.InvokeMember("EditObject", System.Reflection.BindingFlags.SetProperty, null, objRel, new object[] { objVoucher });
object objVoucher = CreateVoucher();
System.Type oTypeRel = System.Type.GetTypeFromProgID("KDVBF.Relevancy");
object objRel = System.Activator.CreateInstance(oTypeRel);
oTypeRel.InvokeMember("MultiEdit", System.Reflection.BindingFlags.SetProperty, null, objRel, new object[] { false });
//下面一行代码无法通过 请高手指点 虽然 曾经试过 直接引用 KDVBF
/*
KDVBF.RelevancyClass objRel = new KDVBF.RelevancyClass();
objRel.EditObject = objVoucher;//设置凭证数据对象到Rel参数
objRel.MultiEdit = false;//是否允许多张凭证编辑
*/ 但有时 会提示错误 lock 类的错误
oTypeRel.InvokeMember("EditObject", System.Reflection.BindingFlags.SetProperty, null, objRel, new object[] { objVoucher });
#3
运行时错误 91 未设置对象变量 或者with block 变量
#4
你EditObject是什么?怎么有未设置对象变量?
#5
楼上兄弟 我加你为好友 本贴 只有你一个人支持我 ^_^ 谢谢 !
#6
因为这年头,懂vb的甚是少见。