准备工作:
1.nco3.0插件;
2.vs2010
3.sap函数(远程类)
操作步骤:
vs2010-c#-建立项目-windows窗体应用程序,form建立文本框及标签
form后台代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SAP.Middleware.Connector;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
RfcConfigParameters rfcPar = new RfcConfigParameters();
rfcPar.Add(RfcConfigParameters.Name, "DEV");
rfcPar.Add(RfcConfigParameters.AppServerHost, "1xx.xx.xx.xx");
rfcPar.Add(RfcConfigParameters.Client, "900");
rfcPar.Add(RfcConfigParameters.User, "mm405");
rfcPar.Add(RfcConfigParameters.Password, "123456");
rfcPar.Add(RfcConfigParameters.SystemNumber, "00");
rfcPar.Add(RfcConfigParameters.Language, "EN");
RfcDestination dest = RfcDestinationManager.GetDestination(rfcPar);
RfcRepository rfcrep = dest.Repository;
IRfcFunction myfun = null;
myfun = rfcrep.CreateFunction("ZTEST_SIMPLE");
myfun.SetValue("CARRID", "AA");//SAP里面的传入参数
myfun.SetValue("CURRENCY", "USD");//SAP里面的传入参数
myfun.Invoke(dest);
string ERMSG = myfun.GetValue("PRICE").ToString();
this.label1.Text = ERMSG;
dest = null;
rfcrep = null;
IRfcTable IrfTable = myfun.GetTable("AIRDATA");
//提前实例化一个空的表结构出来
DataTable dt = new DataTable();
dt.Columns.Add("CARRID");
dt.Columns.Add("CONNID");
dt.Columns.Add("FLDATE");
for (int i = 0; i < IrfTable.Count; i++)
{
IrfTable.CurrentIndex = i;
DataRow dr = dt.NewRow();
dr["CARRID"] = IrfTable.GetString("CARRID");
dr["CONNID"] = IrfTable.GetString("CONNID");
dr["FLDATE"] = IrfTable.GetString("FLDATE");
textBox1.AppendText(IrfTable.GetString("CARRID")+IrfTable.GetString("CONNID")+IrfTable.GetString("FLDATE")+'\n');
dt.Rows.Add(dr);
}
}
}
}
注意:项目属性的目标框架调整到.NET framework 3.5 否则无法识别 RfcConfigParameters rfcPar = new RfcConfigParameters();