楼主: allen0118

[笔记] 查询SAP里面MARA的前100条数据

[复制链接]
论坛徽章:
2
11#
发表于 2012-5-23 14:10 | 只看该作者
allen0118 发表于 2012-5-23 10:51
初学者不都是这样过来的,关键在于个人的学习方法,有的人面对陌生的东西看一遍别人的Demo之后就很容易融 ...

其实楼主自己尝试下,写段东西上来,再结合着问问题,比这么直接问答案,这样带给上面几位前辈们的感觉要来得好很多哈~
逛过LINUX论坛都知道哈ASS~~~

使用道具 举报

回复
求职 : SAP实施
论坛徽章:
261
土豪章
日期:2018-07-10 16:19:05ITPUB18周年纪念章
日期:2018-09-17 10:09:49ITPUB18周年纪念章
日期:2018-09-17 10:12:57妮可·罗宾
日期:2018-10-28 13:07:10ITPUB18周年纪念章
日期:2018-11-13 15:31:24ITPUB18周年纪念章
日期:2018-11-13 15:40:4519周年集字徽章-庆
日期:2019-09-06 18:30:1219周年集字徽章-19
日期:2021-02-03 16:43:4820周年集字徽章-年	
日期:2023-07-21 18:25:26
12#
发表于 2012-5-23 14:29 | 只看该作者
楼主自己去摸索一下,印象比较深刻

使用道具 举报

回复
论坛徽章:
0
13#
 楼主| 发表于 2012-5-23 16:55 | 只看该作者
houbao408 发表于 2012-5-23 14:29
楼主自己去摸索一下,印象比较深刻

各位说的有道理,这几天我一直在摸索之中,很高兴认识各位。

使用道具 举报

回复
论坛徽章:
52
IT宝贝
日期:2010-11-04 16:48:222013年新春福章
日期:2013-02-25 14:51:24版主4段
日期:2013-03-09 02:21:03Jeep
日期:2013-12-04 15:37:392014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14
14#
发表于 2012-5-23 22:19 | 只看该作者
allen0118 发表于 2012-5-23 10:51
初学者不都是这样过来的,关键在于个人的学习方法,有的人面对陌生的东西看一遍别人的Demo之后就很容易融 ...

那就听LS建议好好看看ABAPDOCU吧
你这个问题牵涉的东西太多了,又是SAP,又是ABAP,又是SQL,又是接口,很难和你说清楚。
你懂ABAP的基本语法吗?
写过哪类ABAP程序?
你会用SAP的函数编辑器吗?
知道怎么定义和外部系统的接口吗?
你懂SQL的基本语法吗?
有没有在.NET或者其他语言环境下使用SQL访问过数据库?
知不知道其他编程语言访问SAP接口函数的基本方法?

你这个一个问题中需要具备的知识就在上面列着,一条一条的去学习。如果你想在开发上继续走下去的话。
虽然,可能你觉得你这个要求是非常非常简单的,但是要满足这个要求需要很多很多的知识点。
如果你会ABAP,会SQL,会用函数编辑器,会.NET,那么估计用几个小时能和你说明白。

使用道具 举报

回复
论坛徽章:
0
15#
 楼主| 发表于 2012-5-25 12:29 | 只看该作者
  大家好,数据我已经取到了,但是有一点小问题:

  1. private void btnExecRFC_Click(object sender, EventArgs e)
  2.         {
  3.             //用线程来绑定数据集
  4.             Thread thread = new Thread(new ThreadStart(GetSAPData));
  5.             thread.SetApartmentState(ApartmentState.STA);
  6.             thread.Start();
  7.             thread.Join();
  8.             this.dgv.DataSource = dt;               
  9.         }

  10.         public void GetSAPData()
  11.         {
  12.             //实例化一个SAPControl类的实例。
  13.             SAPLogonCtrl.SAPLogonControlClass Login = new SAPLogonCtrl.SAPLogonControlClass();
  14.             //指定连接SAP的各项参数。
  15.             Login.User = this.txtUser.Text.Trim();
  16.             Login.Password = this.txtUserPwd.Text.Trim();
  17.             Login.Client = this.txtClient.Text.Trim();
  18.             Login.Language = this.txtLanguage.Text.Trim().ToUpper();
  19.             Login.ApplicationServer = this.txtIP.Text.Trim();
  20.             Login.SystemNumber = Convert.ToInt32(this.txtSystemNumber.Text.Trim());

  21.             //New一个连接对象去连接SAP
  22.             SAPLogonCtrl.Connection Conn = (SAPLogonCtrl.Connection)Login.NewConnection();

  23.             //执行Logon方法检测是否能够登录到SAP,返回类型为Bool
  24.             if (Conn.Logon(null, true))
  25.             {
  26.                 //New一个SAPFunctionsClass的实例。
  27.                 SAPFunctionsOCX.SAPFunctionsClass rfc = new SAPFunctionsOCX.SAPFunctionsClass();


  28.                 [color=Red]rfc.Connection = Conn;//这里的时候就出现“Bad variant type”错误了,如果我不写这一句话那么程序运行的时候会弹出一个框让我输入密码,我输入密码之后可以正常取到SAP
  29.                         //的数据,但是每次让用户来输入密码显然不可取,不知道这里该怎么写呢?[/color]
  30.                 //通过Function接口指定需要调用的函数名称。
  31.                 SAPFunctionsOCX.IFunction ifc = (SAPFunctionsOCX.IFunction)rfc.Add("Z_GET_DATA");
  32.             

  33.                 //调用Function接口的Call方法检测是否可以Call到SAP的函数,返回Bool类型的结果。
  34.                 if (ifc.Call())
  35.                 {
  36.                     SAPTableFactoryCtrl.Tables tables = (SAPTableFactoryCtrl.Tables)ifc.Tables;

  37.                     //指定SAP函数里面定义的内表名称。
  38.                     SAPTableFactoryCtrl.Table table = (SAPTableFactoryCtrl.Table)tables.get_Item("IT_MARA");

  39.                     //循环的次数就是已经得到的数据的总行数,也就是一起有多少条数据。
  40.                     for (int i = 1; i < table.RowCount; i++)
  41.                     {
  42.                         DataRow dr = dt.NewRow();
  43.                         if (i == 1)
  44.                         {
  45.                             dt.Columns.Add("MANDT");
  46.                             dt.Columns.Add("MATRN");
  47.                             dt.Columns.Add("ERSDA");
  48.                             dt.Columns.Add("ERNAM");
  49.                             dt.Columns.Add("VPSTA");
  50.                             dt.Columns.Add("BISMT");
  51.                         }
  52.                         dr["MANDT"] = (String)table.get_Value(i, "MANDT");
  53.                         dr["MATRN"] = (String)table.get_Value(i, "MATNR");
  54.                         dr["ERSDA"] = (DateTime)table.get_Value(i, "ERSDA");
  55.                         dr["ERNAM"] = (String)table.get_Value(i, "ERNAM");
  56.                         dr["VPSTA"] = (String)table.get_Value(i, "VPSTA");
  57.                         dr["BISMT"] = (String)table.get_Value(i, "BISMT");

  58.                         dt.Rows.Add(dr);
  59.                     }
  60.                 }         
  61.             }
  62.         }
复制代码

使用道具 举报

回复
论坛徽章:
0
16#
 楼主| 发表于 2012-5-25 12:30 | 只看该作者
  大家好,数据我已经取到了,但是有一点小问题.
rfc.Connection = Conn;//这里的时候就出现“Bad variant type”错误了,如果我不写这一句话那么程序运行的时候会弹出一个框让我输入密码,我输入密码之后可以正常取到SAP的数据,但是每次让用户来输入密码显然不可取,不知道这里该怎么写呢?

使用道具 举报

回复
论坛徽章:
0
17#
发表于 2012-5-25 16:36 | 只看该作者
没写过。不懂。不过我猜是不是要强制类型转换啊
rfc.Connection = (SAPFunctionsOCX.SAPFunctionsClass.啥啥啥)   Conn

使用道具 举报

回复
论坛徽章:
26
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44茶鸡蛋
日期:2013-02-07 15:31:392013年新春福章
日期:2013-02-25 14:51:24兰博基尼
日期:2013-11-28 10:03:102014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上加薪
日期:2014-05-06 19:16:15技术图书徽章
日期:2014-05-13 10:13:15祖国65周年纪念徽章
日期:2014-10-10 18:09:52沸羊羊
日期:2015-03-04 14:43:43
18#
发表于 2012-5-25 23:26 | 只看该作者
擦,难道不是用SE16直接去看吗?

使用道具 举报

回复
论坛徽章:
5
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442009新春纪念徽章
日期:2009-01-04 14:52:28开发板块每日发贴之星
日期:2009-06-13 01:01:032011新春纪念徽章
日期:2011-02-18 11:42:49ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15
19#
发表于 2012-5-26 11:09 | 只看该作者
.net不懂,java和delphi写过,没这种问题。

使用道具 举报

回复
论坛徽章:
0
20#
发表于 2012-5-27 23:07 | 只看该作者
NCO

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表