public static DataTable SetTable(string functionName, Hashtable inputParame,string tableName)
if (functionName == "" || functionName == null)
{
dt = null;
}
else
{
RfcDestination dest = GetRfcDestination();
RfcRepository rfcrep = dest.Repository;
IRfcFunction myfun = null;
myfun = rfcrep.CreateFunction(functionName);
myfun.Invoke(dest);
myfun = rfcrep.CreateFunction(functionName);
if (inputParame.Count > 0)
{
foreach (DictionaryEntry de in inputParame)
{
if (de.Key.ToString().Trim() != "IT_BANK")
{
if (de.Value != null)
{
IRfcTable t_items = myfun.GetTable(de.Key.ToString().Trim());
t_items.Insert();
Hashtable htValue = (Hashtable)de.Value;
foreach (DictionaryEntry de_item in htValue)
{
t_items.CurrentRow.SetValue(de_item.Key.ToString().Trim(), de_item.Value.ToString().Trim());
}
myfun.SetValue(de.Key.ToString().Trim(), t_items);
}
}
else
{
if (de.Value != null)
{
IRfcTable t_items = myfun.GetTable(de.Key.ToString().Trim());
ArrayList list = (ArrayList)de.Value;
for (int i = 0; i < list.Count; i++)
{
t_items.Insert();
IT_Bank it = (IT_Bank)list[i];
t_items.CurrentRow.SetValue("BANKS", it.BANKS);
t_items.CurrentRow.SetValue("BANKL", it.BANKL);
t_items.CurrentRow.SetValue("BANKN", it.BANKN);
t_items.CurrentRow.SetValue("KOINH", it.KOINH);
t_items.CurrentRow.SetValue("BKREF", it.BKREF);
t_items.CurrentRow.SetValue("BKONT", it.BKONT);
}
myfun.SetValue(de.Key.ToString().Trim(), t_items);
}
}
}
}
myfun.Invoke(dest);
IRfcTable myrfcTable = null;
if (tableName != "" || tableName != null)
{
myrfcTable = myfun.GetTable(tableName);//rfc server function 返回值table结构名称
}
if (myrfcTable != null)
{
dt = new DataTable();
int liElement = 0;
for (liElement = 0; liElement < myrfcTable.ElementCount; liElement++)
{
RfcElementMetadata metadata = myrfcTable.GetElementMetadata(liElement);
dt.Columns.Add(metadata.Name);//循环创建列
}
foreach (IRfcStructure dr in myrfcTable)//循环table结构表
{
DataRow row = dt.NewRow();//创建新行
for (liElement = 0; liElement < myrfcTable.ElementCount; liElement++)
{
RfcElementMetadata metadata = myrfcTable.GetElementMetadata(liElement);
row[metadata.Name] = dr.GetString(metadata.Name).Trim();
}
dt.Rows.Add(row);
}
}
}
return dt;
{
DataTable dt = null;if (functionName == "" || functionName == null)
{
dt = null;
}
else
{
RfcDestination dest = GetRfcDestination();
RfcRepository rfcrep = dest.Repository;
IRfcFunction myfun = null;
myfun = rfcrep.CreateFunction(functionName);
myfun.Invoke(dest);
myfun = rfcrep.CreateFunction(functionName);
if (inputParame.Count > 0)
{
foreach (DictionaryEntry de in inputParame)
{
if (de.Key.ToString().Trim() != "IT_BANK")
{
if (de.Value != null)
{
IRfcTable t_items = myfun.GetTable(de.Key.ToString().Trim());
t_items.Insert();
Hashtable htValue = (Hashtable)de.Value;
foreach (DictionaryEntry de_item in htValue)
{
t_items.CurrentRow.SetValue(de_item.Key.ToString().Trim(), de_item.Value.ToString().Trim());
}
myfun.SetValue(de.Key.ToString().Trim(), t_items);
}
}
else
{
if (de.Value != null)
{
IRfcTable t_items = myfun.GetTable(de.Key.ToString().Trim());
ArrayList list = (ArrayList)de.Value;
for (int i = 0; i < list.Count; i++)
{
t_items.Insert();
IT_Bank it = (IT_Bank)list[i];
t_items.CurrentRow.SetValue("BANKS", it.BANKS);
t_items.CurrentRow.SetValue("BANKL", it.BANKL);
t_items.CurrentRow.SetValue("BANKN", it.BANKN);
t_items.CurrentRow.SetValue("KOINH", it.KOINH);
t_items.CurrentRow.SetValue("BKREF", it.BKREF);
t_items.CurrentRow.SetValue("BKONT", it.BKONT);
}
myfun.SetValue(de.Key.ToString().Trim(), t_items);
}
}
}
}
myfun.Invoke(dest);
IRfcTable myrfcTable = null;
if (tableName != "" || tableName != null)
{
myrfcTable = myfun.GetTable(tableName);//rfc server function 返回值table结构名称
}
if (myrfcTable != null)
{
dt = new DataTable();
int liElement = 0;
for (liElement = 0; liElement < myrfcTable.ElementCount; liElement++)
{
RfcElementMetadata metadata = myrfcTable.GetElementMetadata(liElement);
dt.Columns.Add(metadata.Name);//循环创建列
}
foreach (IRfcStructure dr in myrfcTable)//循环table结构表
{
DataRow row = dt.NewRow();//创建新行
for (liElement = 0; liElement < myrfcTable.ElementCount; liElement++)
{
RfcElementMetadata metadata = myrfcTable.GetElementMetadata(liElement);
row[metadata.Name] = dr.GetString(metadata.Name).Trim();
}
dt.Rows.Add(row);
}
}
}
return dt;
}
inputParame传入的参数包含需要传入SAP的表名及表的数据
本文详细介绍了如何在ASP.NET中将一个Table对象作为参数传递到SAP函数中,涵盖了输入参数的准备及调用过程。

被折叠的 条评论
为什么被折叠?



