不是很会VB,喜欢用C#开发一些接口,最近碰到调用系统参照的问题,经过两天的查找终于可以实现了。
主要是用C#的方法建立u8login弄了很久,之前看别人的例子都是直接调VoucherProxy对象的ReceiptObject.VBLoginObject
后来看了API开发的C#例子发现可以创建一个登陆对象,希望大家有更简单的方法。
引用:
//创建登陆对象开始
U8Login.clsLogin u8Login = new U8Login.clsLogin();
String sSubId = "DP";
String sAccID = clsAll.LoginInfo.AccID;
String sYear = clsAll.LoginInfo.iYear;
String sUserID = clsAll.LoginInfo.UserId;
String sPassword = clsAll.LoginInfo.Password;
String sDate = clsAll.LoginInfo.operDate;
String sServer = clsAll.LoginInfo.AppServer;
String sSerial = "";
if (!u8Login.Login(ref sSubId, ref sAccID, ref sYear, ref sUserID, ref sPassword, ref sDate, ref sServer, ref sSerial))
{
Console.WriteLine("无法使用参照,请手动输入。登陆原因:" + u8Login.ShareString);
//Marshal.FinalReleaseComObject(u8Login);
return;
}
//创建登陆对象结束
U8RefService.IService refService = new U8RefService.IService();
refService.RefType = U8RefService.RefTypes.RefArchive;
refService.RefID = "Customer_AA";
Recordset rds1 = null;
Recordset rds2 = null;
object obj = u8Login;
string errStr = "";
string sMetaXML = ""; //XMLConfigHandle.getNodeInnerXml(GlobalPara.appConfigDoc, "RefXmlData");
refService.MetaXML = sMetaXML;
refService.ShowRefSecond(ref obj, ref rds1, ref rds2, ref errStr);
//
if (rds2 != null && rds2.EOF == false)
{
MessageBox.Show(rds2.Fields["ccusabbname"].Value.ToString());//客户编号
}