以下是.C# 調用MD_STOCK_REQUIREMENTS_LIST_API的例子(可以到我的資源下載)。
測試環境: VS2008,XP
//設置登錄連接的類
DataSet dset = new DataSet();
SAPLogonCtrl.SAPLogonControlClass logon = new SAPLogonCtrl.SAPLogonControlClass();
//連接參數設置
logon.ApplicationServer = "139.169.6.180";
logon.Client = "800";
logon.Language = "ZH";
logon.User = "yincm";
logon.Password = "8262879";
logon.SystemNumber = 0;
//實例化連接對象
SAPLogonCtrl.Connection Conn;
Conn = (SAPLogonCtrl.Connection)logon.NewConnection();
//Conn.CodePage = "8400";
//調用登錄方法
if (Conn.Logon(0, true))
{
label1.Text = "登錄成功!";
}
else
{
label1.Text = "登錄失敗!";
}
if (label1.Text == "登錄成功!")
{
//實例SAPFunction對象
SAPFunctionsOCX.SAPFunctionsClass func = new SAPFunctionsClass();
//設置連接
func.Connection = Conn;
SAPFunctionsOCX.IFunction ifunc = (SAPFunctionsOCX.IFunction)func.Add("MD_STOCK_REQUIREMENTS_LIST_API");
//設置輸入參數
SAPFunctionsOCX.IParameter PLSCN = (SAPFunctionsOCX.IParameter)ifunc.get_Exports("PLSCN");
PLSCN.Value = "000";
SAPFunctionsOCX.IParameter MATNR = (SAPFunctionsOCX.IParameter)ifunc.get_Exports("MATNR");
MATNR.Value = textBox2.Text.Trim();
SAPFunctionsOCX.IParameter WERKS = (SAPFunctionsOCX.IParameter)ifunc.get_Exports("WERKS");
WERKS.Value = "2110";
//調用RFC方法
ifunc.Call();
SAPTableFactoryCtrl.Tables ENQs = (SAPTableFactoryCtrl.Tables)ifunc.Tables;
//SAPTableFactoryCtrl.Table ENQ = (SAPTableFactoryCtrl.Table)ENQs.get_Item("IT_MARA");
SAPTableFactoryCtrl.Table ENQ = (SAPTableFactoryCtrl.Table)ENQs.get_Item("MDEZX");
//int j = ENQ.RowCount;
DataTable dt = new DataTable();
for (int i = 1; i <= ENQ.RowCount; i++)
{
DataRow dr = dt.NewRow();
if (i == 1)
{
dt.Columns.Add("INDEX");
dt.Columns.Add("MNG02");
dt.Columns.Add("DAT00");
}
dr["INDEX"] = i.ToString();
dr["MNG02"] = ENQ.get_Cell(i, "MNG02").ToString();
dr["DAT00"] = ENQ.get_Cell(i, "DAT00").ToString();
dt.Rows.Add(dr);
}
dataGridView1.DataSource = dt.DefaultView;
Conn.Logoff();
}