<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_SAPer</title><subtitle type="text">SAP顾问进行时</subtitle><id>http://feed.cnblogs.com/blog/u/44834/rss</id><updated>2012-02-09T14:21:39Z</updated><author><name>梦心</name><uri>http://www.cnblogs.com/mengxin523/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengxin523/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/44834/rss"/><entry><id>http://www.cnblogs.com/mengxin523/archive/2012/02/09/2344577.html</id><title type="text">.NET连接SAP系统专题：C#调用RFC中文乱码解决办法（十二）</title><summary type="text">上周TW总公司的IT按照董事长的指示，但凡杂项请购单里面内部订单号如果没有开立开发执行单的需做卡控，限制开单。于是TW IT就在系统画面ME51N里面做了用户出口开发，如果系统检测到内部订单没有开发执行单，则提示并不继续往下。因为TW那边的卡控文字说明是繁体的，所以OA调用了RFC申请开立请购单之后就会返回这个错误信息，而且是乱码，如下图： 看到这个乱码我还以为是出了什么异常，因为系统抛出异常类是：RfcCommunicationException，到处找原因，搞得满头包。后面只好到正式环境试着用OA的数据开立请购单试试，结果系统提示开发执行单不存在，这才知道原因所在，因此对这...</summary><published>2012-02-09T14:16:00Z</published><updated>2012-02-09T14:16:00Z</updated><author><name>梦心</name><uri>http://www.cnblogs.com/mengxin523/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mengxin523/archive/2012/02/09/2344577.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengxin523/archive/2012/02/09/2344577.html"/><content type="html">&lt;p&gt;上周TW总公司的IT按照董事长的指示，但凡杂项请购单里面内部订单号如果没有开立开发执行单的需做卡控，限制开单。于是TW IT就在系统画面ME51N里面做了用户出口开发，如果系统检测到内部订单没有开发执行单，则提示并不继续往下。因为TW那边的卡控文字说明是繁体的，所以OA调用了RFC申请开立请购单之后就会返回这个错误信息，而且是乱码，如下图：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/41253/2012020922105656.jpg" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;看到这个乱码我还以为是出了什么异常，因为系统抛出异常类是：RfcCommunicationException，到处找原因，搞得满头包。后面只好到正式环境试着用OA的数据开立请购单试试，结果系统提示开发执行单不存在，这才知道原因所在，因此对这个乱码感到很费劲，于是解决之。&lt;/p&gt;&#xD;
&lt;p&gt;我们在调用RFC前的配置信息里面可以规定编码，如下红字所示：&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;public class MyBackendConfig : IDestinationConfiguration&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;public RfcConfigParameters GetParameters(String destinationName)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;if ("PRD_000".Equals(destinationName))&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;RfcConfigParameters parms = new RfcConfigParameters();&lt;/p&gt;&#xD;
&lt;p&gt;parms.Add(RfcConfigParameters.AppServerHost, "192.168.1.3");&lt;/p&gt;&#xD;
&lt;p&gt;parms.Add(RfcConfigParameters.SystemNumber, "00");&lt;/p&gt;&#xD;
&lt;p&gt;parms.Add(RfcConfigParameters.User, "MENGXIN");&lt;/p&gt;&#xD;
&lt;p&gt;parms.Add(RfcConfigParameters.Password, "&amp;times;&amp;times;&amp;times;");&lt;/p&gt;&#xD;
&lt;p&gt;parms.Add(RfcConfigParameters.Client, "888");&lt;/p&gt;&#xD;
&lt;p&gt;parms.Add(RfcConfigParameters.Language, "ZH");&lt;/p&gt;&#xD;
&lt;p&gt;parms.Add(RfcConfigParameters.PoolSize, "5");&lt;/p&gt;&#xD;
&lt;p&gt;parms.Add(RfcConfigParameters.MaxPoolSize, "10");&lt;/p&gt;&#xD;
&lt;p&gt;parms.Add(RfcConfigParameters.IdleTimeout, "60");&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;parms.Add(RfcConfigParameters.Codepage, "8300");&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;return parms;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;else return null;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;public bool ChangeEventsSupported()&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;return false;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;public event RfcDestinationManager.ConfigurationChangeHandler ConfigurationChanged;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;这样规定了这个编码为8300（繁体），于是系统正确提示了信息：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/41253/2012020922111358.jpg" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;关于这个Codepage的代码含义，如下表：&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/41253/2012020922152887.jpg" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;至此，乱码问题完全解决~&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;PS：.NET连接SAP系统专题 就到此结束了。欢迎各位朋友一起交流指正...&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mengxin523/aggbug/2344577.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mengxin523/archive/2012/02/09/2344577.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mengxin523/archive/2012/02/03/2337623.html</id><title type="text">抉择之苦</title><summary type="text">今天临下班之前意外接到一个电话，来自深圳华为的招聘电话，HR人员问我是否有意向去深圳发展，主要做流程应用管理，做Oracle实施，以后可能还会外派去国外。华为在我眼中一直有两个代名词：工作之辛苦和待遇之丰厚。所以说这个是非常好的工作机会，但着眼于目前，发现自己有一些东西难以舍弃。一者是自己做了很久的SAP工作，也深深喜欢上SAP开发，同时本身自己也对Oracle不太了解，就这样转过去会不太适应。二者是自己离不开厦门，离不开她。如今爱情尚未结果，如何能离开的了？当然，能不能聘上是另外一回事了... 其实自己已经挺不太喜欢现在的TTE了，不仅严重不公平，而且流程巨长，很多权限和开发流程都...</summary><published>2012-02-03T15:29:00Z</published><updated>2012-02-03T15:29:00Z</updated><author><name>梦心</name><uri>http://www.cnblogs.com/mengxin523/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mengxin523/archive/2012/02/03/2337623.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengxin523/archive/2012/02/03/2337623.html"/><content type="html">&lt;p&gt;今天临下班之前意外接到一个电话，来自深圳华为的招聘电话，HR人员问我是否有意向去深圳发展，主要做流程应用管理，做Oracle实施，以后可能还会外派去国外。华为在我眼中一直有两个代名词：工作之辛苦和待遇之丰厚。所以说这个是非常好的工作机会，但着眼于目前，发现自己有一些东西难以舍弃。一者是自己做了很久的SAP工作，也深深喜欢上SAP开发，同时本身自己也对Oracle不太了解，就这样转过去会不太适应。二者是自己离不开厦门，离不开她。如今爱情尚未结果，如何能离开的了？当然，能不能聘上是另外一回事了...&lt;/p&gt;&#xD;
&lt;p&gt;其实自己已经挺不太喜欢现在的TTE了，不仅严重不公平，而且流程巨长，很多权限和开发流程都牢牢被掌握在总公司，很多东西得不到很好的决定和规划。哎，其实挺感恩这里的，但如果太多不爽的因素，自己也会被逼得&amp;ldquo;反&amp;rdquo;。已经有很多人在思量下一步计划了...&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/41253/2012020323202790.jpg" alt="" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mengxin523/aggbug/2337623.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mengxin523/archive/2012/02/03/2337623.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mengxin523/archive/2012/01/30/2331526.html</id><title type="text">2012年最新一篇</title><summary type="text">看上时间，明天就是要上班了。回想这一过年，过的匆忙，也很压抑。到处充斥着女朋友和结婚的话题，搞得好像我人生就剩这两个主题一样。我知道我在回避很多问题，但也不可救药的带来了很多的问题。我觉得：1、明年工作的重心将从CODING改为前端操作和img设置上来。有点厌烦TTE了，我看透了很多不公平的东西。所以自己得多多努力学习一下，总不能什么都不懂。希望来年更加把劲去学习！2、博客园会继续更新下去，也许这里是我汇集学习成果的地方。我不能荒废我这里的一片成果。3、爱情会结晶成果吗？我不知道，不敢想，唯有自己去做到最好。至于后面结果如何，我自是希望会有收获。但这不是我能决定的。暂时就想到这里，洗洗睡吧。</summary><published>2012-01-29T16:35:00Z</published><updated>2012-01-29T16:35:00Z</updated><author><name>梦心</name><uri>http://www.cnblogs.com/mengxin523/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mengxin523/archive/2012/01/30/2331526.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengxin523/archive/2012/01/30/2331526.html"/><content type="html">&lt;p&gt;看上时间，明天就是要上班了。&lt;/p&gt;&#xD;
&lt;p&gt;回想这一过年，过的匆忙，也很压抑。到处充斥着女朋友和结婚的话题，搞得好像我人生就剩这两个主题一样。&lt;/p&gt;&#xD;
&lt;p&gt;我知道我在回避很多问题，但也不可救药的带来了很多的问题。&lt;/p&gt;&#xD;
&lt;p&gt;我觉得：&lt;/p&gt;&#xD;
&lt;p&gt;1、明年工作的重心将从CODING改为前端操作和img设置上来。有点厌烦TTE了，我看透了很多不公平的东西。所以自己得多多努力学习一下，总不能什么都不懂。希望来年更加把劲去学习！&lt;/p&gt;&#xD;
&lt;p&gt;2、博客园会继续更新下去，也许这里是我汇集学习成果的地方。我不能荒废我这里的一片成果。&lt;/p&gt;&#xD;
&lt;p&gt;3、爱情会结晶成果吗？我不知道，不敢想，唯有自己去做到最好。至于后面结果如何，我自是希望会有收获。但这不是我能决定的。&lt;/p&gt;&#xD;
&lt;p&gt;暂时就想到这里，洗洗睡吧。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mengxin523/aggbug/2331526.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mengxin523/archive/2012/01/30/2331526.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mengxin523/archive/2011/12/11/2334616.html</id><title type="text">SAP屏幕设计器专题：树控件的使用（九）</title><summary type="text">在SAP的标准画面中，树控件都是随处可见，在一些特殊的应用中更有用处， 显得专业。在SE51设计界面里，并没有直观的树控件，只是一个容器，要实现树功能还得在程序中用面向对象的方法实现。本文就简要介绍一下应用。定义部分：*内表部分DATA:IT_TREELIKESTANDARDTABLEOFZOA_REGWITHHEADERLINE. DATAIT_TREE1LIKEIT_TREE. FIELD-SYMBOLS&amp;lt;FS1&amp;gt;LIKELINEOFIT_TREE. *-----&amp;gt;TREECLASSLCL_APPLICATIONDEFINITIONDEFERRED. CLASSCL_GU</summary><published>2011-12-11T07:09:00Z</published><updated>2011-12-11T07:09:00Z</updated><author><name>梦心</name><uri>http://www.cnblogs.com/mengxin523/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mengxin523/archive/2011/12/11/2334616.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengxin523/archive/2011/12/11/2334616.html"/><content type="html">&lt;p&gt;在SAP的标准画面中，树控件都是随处可见，在一些特殊的应用中更有用处， 显得专业。&lt;/p&gt;&#xD;
&lt;p&gt;在SE51设计界面里，并没有直观的树控件，只是一个容器，要实现树功能还得在程序中用面向对象的方法实现。&lt;/p&gt;&#xD;
&lt;p&gt;本文就简要介绍一下应用。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span &gt;定义部分：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span &gt;*内表部分&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span &gt;DATA&lt;/span&gt;&lt;span &gt;:&lt;/span&gt;IT_TREE&amp;nbsp;&lt;span &gt;LIKE&amp;nbsp;&lt;/span&gt;&lt;span &gt;STANDARD&amp;nbsp;&lt;/span&gt;&lt;span &gt;TABLE&amp;nbsp;&lt;/span&gt;&lt;span &gt;OF&amp;nbsp;&lt;/span&gt;ZOA_REG&amp;nbsp;&lt;span &gt;WITH&amp;nbsp;&lt;/span&gt;&lt;span &gt;HEADER&amp;nbsp;&lt;/span&gt;&lt;span &gt;LINE&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;DATA&amp;nbsp;&lt;/span&gt;IT_TREE1&amp;nbsp;&lt;span &gt;LIKE&amp;nbsp;&lt;/span&gt;IT_TREE&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;span &gt;FIELD-SYMBOLS&amp;nbsp;&lt;/span&gt;&amp;lt;FS1&amp;gt;&amp;nbsp;&amp;nbsp;&lt;span &gt;LIKE&amp;nbsp;&lt;/span&gt;&lt;span &gt;LINE&amp;nbsp;&lt;/span&gt;&lt;span &gt;OF&amp;nbsp;&lt;/span&gt;IT_TREE&lt;span &gt;.&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;-----&amp;gt;TREE&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span &gt;CLASS&amp;nbsp;&lt;/span&gt;LCL_APPLICATION&amp;nbsp;&lt;span &gt;DEFINITION&amp;nbsp;&lt;/span&gt;DEFERRED&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;span &gt;CLASS&amp;nbsp;&lt;/span&gt;CL_GUI_CFW&amp;nbsp;&lt;span &gt;DEFINITION&amp;nbsp;&lt;/span&gt;&lt;span &gt;LOAD&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;span &gt;TYPES&lt;/span&gt;&lt;span &gt;:&amp;nbsp;&lt;/span&gt;NODE_TABLE_TYPE&amp;nbsp;&lt;span &gt;LIKE&amp;nbsp;&lt;/span&gt;&lt;span &gt;STANDARD&amp;nbsp;&lt;/span&gt;&lt;span &gt;TABLE&amp;nbsp;&lt;/span&gt;&lt;span &gt;OF&amp;nbsp;&lt;/span&gt;MTREESNODE&lt;br /&gt; &lt;span &gt;WITH&amp;nbsp;&lt;/span&gt;&lt;span &gt;DEFAULT&amp;nbsp;&lt;/span&gt;&lt;span &gt;KEY&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;span &gt;DATA&lt;/span&gt;&lt;span &gt;:&lt;/span&gt;NODE_TABLE&amp;nbsp;&lt;span &gt;TYPE&amp;nbsp;&lt;/span&gt;NODE_TABLE_TYPE&amp;nbsp;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;CAUTION:&amp;nbsp;MTREESNODE&amp;nbsp;IS&amp;nbsp;THE&amp;nbsp;NAME&amp;nbsp;OF&amp;nbsp;THE&amp;nbsp;NODE&amp;nbsp;STRUCTURE&amp;nbsp;WHICH&amp;nbsp;MUST&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;BE&amp;nbsp;DEFINED&amp;nbsp;BY&amp;nbsp;THE&amp;nbsp;PROGRAMMER.&amp;nbsp;DO&amp;nbsp;NOT&amp;nbsp;USE&amp;nbsp;MTREESNODE!&lt;/span&gt;&lt;br /&gt; &lt;span &gt;DATA&lt;/span&gt;&lt;span &gt;:&amp;nbsp;&lt;/span&gt;G_APPLICATION&amp;nbsp;&lt;span &gt;TYPE&amp;nbsp;&lt;/span&gt;&lt;span &gt;REF&amp;nbsp;&lt;/span&gt;&lt;span &gt;TO&amp;nbsp;&lt;/span&gt;LCL_APPLICATION&lt;span &gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;G_CUSTOM_CONTAINER&amp;nbsp;&lt;span &gt;TYPE&amp;nbsp;&lt;/span&gt;&lt;span &gt;REF&amp;nbsp;&lt;/span&gt;&lt;span &gt;TO&amp;nbsp;&lt;/span&gt;CL_GUI_CUSTOM_CONTAINER&lt;span &gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;G_TREE&amp;nbsp;&lt;span &gt;TYPE&amp;nbsp;&lt;/span&gt;&lt;span &gt;REF&amp;nbsp;&lt;/span&gt;&lt;span &gt;TO&amp;nbsp;&lt;/span&gt;CL_GUI_SIMPLE_TREE&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;span &gt;DATA&lt;/span&gt;&lt;span &gt;:&amp;nbsp;&lt;/span&gt;G_EVENT&lt;span &gt;(&lt;/span&gt;&lt;span &gt;30&lt;/span&gt;&lt;span &gt;)&lt;/span&gt;&lt;span &gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;G_NODE_KEY&amp;nbsp;&lt;span &gt;TYPE&amp;nbsp;&lt;/span&gt;TV_NODEKEY&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; *文本控件&lt;br /&gt; &lt;span &gt;DATA&lt;/span&gt;&lt;span &gt;:&lt;/span&gt;USERNO&lt;span &gt;(&lt;/span&gt;&lt;span &gt;20&lt;/span&gt;&lt;span &gt;)&lt;/span&gt;&lt;span &gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;USERNAME&lt;span &gt;(&lt;/span&gt;&lt;span &gt;20&lt;/span&gt;&lt;span &gt;)&lt;/span&gt;&lt;span &gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PASSWORD&lt;span &gt;(&lt;/span&gt;&lt;span &gt;20&lt;/span&gt;&lt;span &gt;)&lt;/span&gt;&lt;span &gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BRANCH&lt;span &gt;(&lt;/span&gt;&lt;span &gt;20&lt;/span&gt;&lt;span &gt;)&lt;/span&gt;&lt;span &gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;UNIT&lt;/span&gt;&lt;span &gt;(&lt;/span&gt;&lt;span &gt;20&lt;/span&gt;&lt;span &gt;)&lt;/span&gt;&lt;span &gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MAIL&lt;span &gt;(&lt;/span&gt;&lt;span &gt;20&lt;/span&gt;&lt;span &gt;)&lt;/span&gt;&lt;span &gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TDATE&lt;span &gt;(&lt;/span&gt;&lt;span &gt;20&lt;/span&gt;&lt;span &gt;)&lt;/span&gt;&lt;span &gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SEX&lt;span &gt;(&lt;/span&gt;&lt;span &gt;20&lt;/span&gt;&lt;span &gt;)&lt;/span&gt;&lt;span &gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NOQUIT&lt;span &gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;QUIT&lt;span &gt;.&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;2、状态及功能&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span &gt;*&amp;amp;---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;amp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MODULE&amp;nbsp;&amp;nbsp;STATUS_0100&amp;nbsp;&amp;nbsp;OUTPUT&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;amp;---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TEXT&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*----------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;MODULE&amp;nbsp;&lt;/span&gt;STATUS_0100&amp;nbsp;&lt;span &gt;OUTPUT&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;SET&amp;nbsp;&lt;/span&gt;&lt;span &gt;PF-STATUS&amp;nbsp;&lt;/span&gt;&lt;span &gt;'PFSTATUS'&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;SET&amp;nbsp;&lt;/span&gt;&lt;span &gt;TITLEBAR&amp;nbsp;&lt;/span&gt;&lt;span &gt;'TITLE'&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span &gt;ENDMODULE&lt;/span&gt;&lt;span &gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span &gt;"&amp;nbsp;STATUS_0100&amp;nbsp;&amp;nbsp;OUTPUT&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;amp;---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;amp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MODULE&amp;nbsp;&amp;nbsp;USER_COMMAND_0100&amp;nbsp;&amp;nbsp;INPUT&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;amp;---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TEXT&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*----------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;MODULE&amp;nbsp;&lt;/span&gt;USER_COMMAND_0100&amp;nbsp;&lt;span &gt;INPUT&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;CASE&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;UCOMM&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;WHEN&amp;nbsp;&lt;/span&gt;&lt;span &gt;'BACK'&amp;nbsp;&lt;/span&gt;&lt;span &gt;OR&amp;nbsp;&lt;/span&gt;&lt;span &gt;'EXIT'&amp;nbsp;&lt;/span&gt;&lt;span &gt;OR&amp;nbsp;&lt;/span&gt;&lt;span &gt;'CANCEL'&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;LEAVE&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;ENDCASE&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;span &gt;ENDMODULE&lt;/span&gt;&lt;span &gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span &gt;"&amp;nbsp;USER_COMMAND_0100&amp;nbsp;&amp;nbsp;INPUT&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;3、定义双击事件的定义和方法体：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt; &lt;span &gt;*----------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CLASS&amp;nbsp;LCL_APPLICATION&amp;nbsp;DEFINITION&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*----------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*----------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;CLASS&amp;nbsp;&lt;/span&gt;LCL_APPLICATION&amp;nbsp;&lt;span &gt;DEFINITION&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;PUBLIC&amp;nbsp;&lt;/span&gt;&lt;span &gt;SECTION&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;METHODS&lt;/span&gt;&lt;span &gt;:&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HANDLE_NODE_DOUBLE_CLICK&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;FOR&amp;nbsp;&lt;/span&gt;&lt;span &gt;EVENT&amp;nbsp;&lt;/span&gt;NODE_DOUBLE_CLICK&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;OF&amp;nbsp;&lt;/span&gt;CL_GUI_SIMPLE_TREE&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;IMPORTING&amp;nbsp;&lt;/span&gt;NODE_KEY&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span &gt;ENDCLASS&lt;/span&gt;&lt;span &gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span &gt;"LCL_APPLICATION&amp;nbsp;DEFINITION&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span &gt;*----------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CLASS&amp;nbsp;LCL_APPLICATION&amp;nbsp;IMPLEMENTATION&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*----------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*----------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;CLASS&amp;nbsp;&lt;/span&gt;LCL_APPLICATION&amp;nbsp;&lt;span &gt;IMPLEMENTATION&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;METHOD&amp;nbsp;&amp;nbsp;&lt;/span&gt;HANDLE_NODE_DOUBLE_CLICK&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;FIELD-SYMBOLS&amp;nbsp;&lt;/span&gt;&lt;span &gt;:&amp;nbsp;&lt;/span&gt;&amp;lt;NODE&amp;gt;&amp;nbsp;&lt;span &gt;TYPE&amp;nbsp;&lt;/span&gt;mtreesnode&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;"&amp;nbsp;THIS&amp;nbsp;METHOD&amp;nbsp;HANDLES&amp;nbsp;THE&amp;nbsp;NODE&amp;nbsp;DOUBLE&amp;nbsp;CLICK&amp;nbsp;EVENT&amp;nbsp;OF&amp;nbsp;THE&amp;nbsp;TREE&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;"&amp;nbsp;CONTROL&amp;nbsp;INSTANCE&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;READ&amp;nbsp;&lt;/span&gt;&lt;span &gt;TABLE&amp;nbsp;&lt;/span&gt;NODE_TABLE&amp;nbsp;&lt;span &gt;ASSIGNING&amp;nbsp;&lt;/span&gt;&amp;lt;NODE&amp;gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;WITH&amp;nbsp;&lt;/span&gt;&lt;span &gt;KEY&amp;nbsp;&lt;/span&gt;NODE_KEY&amp;nbsp;&lt;span &gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;NODE_KEY&amp;nbsp;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;IF&amp;nbsp;&lt;/span&gt;NODE_KEY&amp;nbsp;&amp;nbsp;&lt;span &gt;CS&amp;nbsp;&lt;/span&gt;&lt;span &gt;'ZOA_REG'&lt;/span&gt;&lt;span &gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span &gt;"點擊父節點不做處理&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;MESSAGE&amp;nbsp;&lt;/span&gt;&amp;lt;NODE&amp;gt;&lt;span &gt;-&lt;/span&gt;&lt;span &gt;TEXT&amp;nbsp;&lt;/span&gt;&lt;span &gt;TYPE&amp;nbsp;&lt;/span&gt;&lt;span &gt;'I'&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;ENDIF&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;READ&amp;nbsp;&lt;/span&gt;&lt;span &gt;TABLE&amp;nbsp;&lt;/span&gt;IT_TREE&amp;nbsp;&lt;span &gt;INTO&amp;nbsp;&lt;/span&gt;IT_TREE1&amp;nbsp;&lt;span &gt;WITH&amp;nbsp;&lt;/span&gt;&lt;span &gt;KEY&amp;nbsp;&lt;/span&gt;USERNO&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&amp;lt;NODE&amp;gt;&lt;span &gt;-&lt;/span&gt;&lt;span &gt;TEXT&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;IF&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;SUBRC&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;0&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;USERNO&amp;nbsp;&lt;span &gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;IT_TREE1&lt;span &gt;-&lt;/span&gt;USERNO&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;"USERNAME&amp;nbsp;=&amp;nbsp;&amp;nbsp;IT_TREE1-NAME.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PASSWORD&amp;nbsp;&lt;span &gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;IT_TREE1&lt;span &gt;-&lt;/span&gt;PASS&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BRANCH&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;IT_TREE1&lt;span &gt;-&lt;/span&gt;BRANCH&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;UNIT&amp;nbsp;&lt;/span&gt;&lt;span &gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;IT_TREE1&lt;span &gt;-&lt;/span&gt;&lt;span &gt;UNIT&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MAIL&amp;nbsp;&lt;span &gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;IT_TREE1&lt;span &gt;-&lt;/span&gt;MAIL&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TDATE&amp;nbsp;&lt;span &gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;IT_TREE1&lt;span &gt;-&lt;/span&gt;TDATE&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SEX&amp;nbsp;&lt;span &gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;IT_TREE1&lt;span &gt;-&lt;/span&gt;SEX&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;IF&amp;nbsp;&lt;/span&gt;IT_TREE1&lt;span &gt;-&lt;/span&gt;STATE&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;'在职'&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NOQUIT&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;'X'&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;QUIT&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;''&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;ELSE&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NOQUIT&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;''&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;QUIT&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;'X'&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;ENDIF&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;ELSE&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;MESSAGE&amp;nbsp;&lt;/span&gt;NODE_KEY&amp;nbsp;&lt;span &gt;TYPE&amp;nbsp;&lt;/span&gt;&lt;span &gt;'I'&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;ENDIF&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp;&lt;span &gt;ENDMETHOD&lt;/span&gt;&lt;span &gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span &gt;"HANDLE_NODE_DOUBLE_CLICK&lt;/span&gt;&lt;br /&gt; &lt;span &gt;ENDCLASS&lt;/span&gt;&lt;span &gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span &gt;"LCL_APPLICATION&amp;nbsp;IMPLEMENTATION&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;4、定义填充TREE控件的节点&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt; &lt;span &gt;*&amp;amp;---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;amp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FORM&amp;nbsp;&amp;nbsp;GET_PRO_ITEM&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;amp;---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TEXT&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*----------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;--&amp;gt;&amp;nbsp;&amp;nbsp;P1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TEXT&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;&amp;lt;--&amp;nbsp;&amp;nbsp;P2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TEXT&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*----------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;FORM&amp;nbsp;&lt;/span&gt;GET_PRO_ITEM&amp;nbsp;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;PERFORM&amp;nbsp;&lt;/span&gt;GET_DATA&amp;nbsp;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;IF&amp;nbsp;&lt;/span&gt;G_TREE&amp;nbsp;&lt;span &gt;IS&amp;nbsp;&lt;/span&gt;&lt;span &gt;INITIAL&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;PERFORM&amp;nbsp;&lt;/span&gt;CREATE_AND_INIT_TREE&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;ENDIF&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;span &gt;ENDFORM&lt;/span&gt;&lt;span &gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span &gt;"&amp;nbsp;GET_PRO_ITEM&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span &gt;*&amp;amp;---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;amp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FORM&amp;nbsp;&amp;nbsp;CREATE_AND_INIT_TREE&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;amp;---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;初始化树&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*----------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;--&amp;gt;&amp;nbsp;&amp;nbsp;P1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TEXT&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;&amp;lt;--&amp;nbsp;&amp;nbsp;P2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TEXT&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*----------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;FORM&amp;nbsp;&lt;/span&gt;CREATE_AND_INIT_TREE&amp;nbsp;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;DATA&lt;/span&gt;&lt;span &gt;:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span &gt;EVENTS&amp;nbsp;&lt;/span&gt;&lt;span &gt;TYPE&amp;nbsp;&lt;/span&gt;CNTL_SIMPLE_EVENTS&lt;span &gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;EVENT&amp;nbsp;&lt;/span&gt;&lt;span &gt;TYPE&amp;nbsp;&lt;/span&gt;CNTL_SIMPLE_EVENT&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span &gt;*&amp;nbsp;CREATE&amp;nbsp;A&amp;nbsp;CONTAINER&amp;nbsp;FOR&amp;nbsp;THE&amp;nbsp;TREE&amp;nbsp;CONTROL&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;CREATE&amp;nbsp;&lt;/span&gt;OBJECT&amp;nbsp;G_CUSTOM_CONTAINER&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;EXPORTING&amp;nbsp;&lt;/span&gt;&lt;span &gt;"&amp;nbsp;THE&amp;nbsp;CONTAINER&amp;nbsp;IS&amp;nbsp;LINKED&amp;nbsp;TO&amp;nbsp;THE&amp;nbsp;CUSTOM&amp;nbsp;CONTROL&amp;nbsp;WITH&amp;nbsp;THE&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;"&amp;nbsp;NAME&amp;nbsp;'TREE_CONTAINER'&amp;nbsp;ON&amp;nbsp;THE&amp;nbsp;DYNPRO&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CONTAINER_NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;'THE_TREE' &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;"填充到画面上的容器里&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;EXCEPTIONS&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CNTL_ERROR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;1&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CNTL_SYSTEM_ERROR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;2&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CREATE_ERROR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;3&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LIFETIME_ERROR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;4&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LIFETIME_DYNPRO_DYNPRO_LINK&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;5&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;IF&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;SUBRC&amp;nbsp;&amp;lt;&amp;gt;&amp;nbsp;&lt;span &gt;0&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;MESSAGE&amp;nbsp;&lt;/span&gt;&lt;span &gt;ID&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;MSGID&amp;nbsp;&lt;span &gt;TYPE&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;MSGTY&amp;nbsp;&lt;span &gt;NUMBER&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;MSGNO&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;WITH&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;MSGV1&amp;nbsp;SY&lt;span &gt;-&lt;/span&gt;MSGV2&amp;nbsp;SY&lt;span &gt;-&lt;/span&gt;MSGV3&amp;nbsp;SY&lt;span &gt;-&lt;/span&gt;MSGV4&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;ENDIF&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span &gt;*&amp;nbsp;CREATE&amp;nbsp;A&amp;nbsp;TREE&amp;nbsp;CONTROL&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;CREATE&amp;nbsp;&lt;/span&gt;OBJECT&amp;nbsp;G_TREE&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;EXPORTING&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PARENT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;G_CUSTOM_CONTAINER&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NODE_SELECTION_MODE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;CL_GUI_SIMPLE_TREE&lt;span &gt;=&amp;gt;&lt;/span&gt;NODE_SEL_MODE_SINGLE &amp;nbsp; "单选模式&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;EXCEPTIONS&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LIFETIME_ERROR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;1&lt;/span&gt;&lt;span &gt;"&amp;nbsp;SINGLE&amp;nbsp;NODE&amp;nbsp;SELECTIONIS&amp;nbsp;USED&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CNTL_SYSTEM_ERROR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;2&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CREATE_ERROR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;3&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FAILED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;4&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ILLEGAL_NODE_SELECTION_MODE&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;5&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;IF&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;SUBRC&amp;nbsp;&amp;lt;&amp;gt;&amp;nbsp;&lt;span &gt;0&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;MESSAGE&amp;nbsp;&lt;/span&gt;&lt;span &gt;ID&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;MSGID&amp;nbsp;&lt;span &gt;TYPE&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;MSGTY&amp;nbsp;&lt;span &gt;NUMBER&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;MSGNO&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;WITH&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;MSGV1&amp;nbsp;SY&lt;span &gt;-&lt;/span&gt;MSGV2&amp;nbsp;SY&lt;span &gt;-&lt;/span&gt;MSGV3&amp;nbsp;SY&lt;span &gt;-&lt;/span&gt;MSGV4&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;ENDIF&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span &gt;*&amp;nbsp;DEFINE&amp;nbsp;THE&amp;nbsp;EVENTS&amp;nbsp;WHICH&amp;nbsp;WILL&amp;nbsp;BE&amp;nbsp;PASSED&amp;nbsp;TO&amp;nbsp;THE&amp;nbsp;BACKEND&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;"&amp;nbsp;NODE&amp;nbsp;DOUBLE&amp;nbsp;CLICK&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;EVENT&lt;/span&gt;&lt;span &gt;-&lt;/span&gt;EVENTID&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;CL_GUI_SIMPLE_TREE&lt;span &gt;=&amp;gt;&lt;/span&gt;EVENTID_NODE_DOUBLE_CLICK&lt;span &gt;. &amp;nbsp;"定义双击事件&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;EVENT&lt;/span&gt;&lt;span &gt;-&lt;/span&gt;APPL_EVENT&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;'X'&lt;/span&gt;&lt;span &gt;.&amp;nbsp;&lt;/span&gt;&lt;span &gt;"&amp;nbsp;PROCESS&amp;nbsp;PAI&amp;nbsp;IF&amp;nbsp;EVENT&amp;nbsp;OCCURS&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;APPEND&amp;nbsp;&lt;/span&gt;&lt;span &gt;EVENT&amp;nbsp;&lt;/span&gt;&lt;span &gt;TO&amp;nbsp;&lt;/span&gt;&lt;span &gt;EVENTS&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;CALL&amp;nbsp;&lt;/span&gt;&lt;span &gt;METHOD&amp;nbsp;&lt;/span&gt;G_TREE&lt;span &gt;-&amp;gt;&lt;/span&gt;SET_REGISTERED_EVENTS&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;EXPORTING&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;EVENTS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;EVENTS&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;EXCEPTIONS&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CNTL_ERROR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;1&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CNTL_SYSTEM_ERROR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;2&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ILLEGAL_EVENT_COMBINATION&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;3&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;IF&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;SUBRC&amp;nbsp;&amp;lt;&amp;gt;&amp;nbsp;&lt;span &gt;0&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;MESSAGE&amp;nbsp;&lt;/span&gt;&lt;span &gt;ID&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;MSGID&amp;nbsp;&lt;span &gt;TYPE&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;MSGTY&amp;nbsp;&lt;span &gt;NUMBER&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;MSGNO&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;WITH&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;MSGV1&amp;nbsp;SY&lt;span &gt;-&lt;/span&gt;MSGV2&amp;nbsp;SY&lt;span &gt;-&lt;/span&gt;MSGV3&amp;nbsp;SY&lt;span &gt;-&lt;/span&gt;MSGV4&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;ENDIF&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span &gt;*&amp;nbsp;ASSIGN&amp;nbsp;EVENT&amp;nbsp;HANDLERS&amp;nbsp;IN&amp;nbsp;THE&amp;nbsp;APPLICATION&amp;nbsp;CLASS&amp;nbsp;TO&amp;nbsp;EACH&amp;nbsp;DESIRED&amp;nbsp;EVENT&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;CREATE&amp;nbsp;&lt;/span&gt;OBJECT&amp;nbsp;G_APPLICATION&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;SET&amp;nbsp;&lt;/span&gt;&lt;span &gt;HANDLER&amp;nbsp;&lt;/span&gt;G_APPLICATION&lt;span &gt;-&amp;gt;&lt;/span&gt;HANDLE_NODE_DOUBLE_CLICK&amp;nbsp;&lt;span &gt;FOR&amp;nbsp;&lt;/span&gt;G_TREE&lt;span &gt;. &amp;nbsp; "实现双击&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp;&lt;span &gt;PERFORM&amp;nbsp;&lt;/span&gt;BUILD_NODE_TABLE&amp;nbsp;&lt;span &gt;USING&amp;nbsp;&lt;/span&gt;NODE_TABLE&lt;span &gt;. &amp;nbsp; &amp;nbsp;"填充树的节点&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp;&lt;span &gt;CALL&amp;nbsp;&lt;/span&gt;&lt;span &gt;METHOD&amp;nbsp;&lt;/span&gt;G_TREE&lt;span &gt;-&amp;gt;&lt;/span&gt;ADD_NODES&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;EXPORTING&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TABLE_STRUCTURE_NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;'MTREESNODE'&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NODE_TABLE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;NODE_TABLE&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;EXCEPTIONS&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FAILED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;1&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ERROR_IN_NODE_TABLE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;2&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DP_ERROR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;3&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TABLE_STRUCTURE_NAME_NOT_FOUND&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;4&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;OTHERS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;5&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;IF&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;SUBRC&amp;nbsp;&amp;lt;&amp;gt;&amp;nbsp;&lt;span &gt;0&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;MESSAGE&amp;nbsp;&lt;/span&gt;&lt;span &gt;ID&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;MSGID&amp;nbsp;&lt;span &gt;TYPE&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;MSGTY&amp;nbsp;&lt;span &gt;NUMBER&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;MSGNO&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;WITH&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;MSGV1&amp;nbsp;SY&lt;span &gt;-&lt;/span&gt;MSGV2&amp;nbsp;SY&lt;span &gt;-&lt;/span&gt;MSGV3&amp;nbsp;SY&lt;span &gt;-&lt;/span&gt;MSGV4&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;ENDIF&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span &gt;*設置TREE&amp;nbsp;CONTROL中的節點默認為展開狀態&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;CALL&amp;nbsp;&lt;/span&gt;&lt;span &gt;METHOD&amp;nbsp;&lt;/span&gt;G_TREE&lt;span &gt;-&amp;gt;&lt;/span&gt;EXPAND_NODE&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;EXPORTING&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NODE_KEY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;G_NODE_KEY&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LEVEL_COUNT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EXPAND_SUBTREE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;EXCEPTIONS&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FAILED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;1&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ILLEGAL_LEVEL_COUNT&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;2&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CNTL_SYSTEM_ERROR&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;3&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NODE_NOT_FOUND&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;4&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CANNOT_EXPAND_LEAF&amp;nbsp;&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;5&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;OTHERS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;6&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;IF&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;SUBRC&amp;nbsp;&amp;lt;&amp;gt;&amp;nbsp;&lt;span &gt;0&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;span &gt;"...&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;MESSAGE&amp;nbsp;&lt;/span&gt;&lt;span &gt;ID&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;MSGID&amp;nbsp;&lt;span &gt;TYPE&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;MSGTY&amp;nbsp;&lt;span &gt;NUMBER&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;MSGNO&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;WITH&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;MSGV1&amp;nbsp;SY&lt;span &gt;-&lt;/span&gt;MSGV2&amp;nbsp;SY&lt;span &gt;-&lt;/span&gt;MSGV3&amp;nbsp;SY&lt;span &gt;-&lt;/span&gt;MSGV4&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;ENDIF&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span &gt;ENDFORM&lt;/span&gt;&lt;span &gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span &gt;"&amp;nbsp;CREATE_AND_INIT_TREE&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;amp;---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;amp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FORM&amp;nbsp;&amp;nbsp;BUILD_NODE_TABLE&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;amp;---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TEXT&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*----------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;--&amp;gt;P_NODE_TABLE&amp;nbsp;&amp;nbsp;TEXT&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*----------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;FORM&amp;nbsp;&lt;/span&gt;BUILD_NODE_TABLE&amp;nbsp;&amp;nbsp;&lt;span &gt;USING&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;NODE_TABLE&amp;nbsp;&lt;span &gt;TYPE&amp;nbsp;&lt;/span&gt;NODE_TABLE_TYPE&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;DATA&lt;/span&gt;&lt;span &gt;:&lt;/span&gt;NODE&amp;nbsp;&lt;span &gt;TYPE&amp;nbsp;&lt;/span&gt;MTREESNODE&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;DATA&lt;/span&gt;&lt;span &gt;:&amp;nbsp;&lt;/span&gt;L_INDEX&amp;nbsp;&lt;span &gt;LIKE&amp;nbsp;&lt;/span&gt;SY&lt;span &gt;-&lt;/span&gt;TABIX&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span &gt;**設置父節點屬性&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;NODE&lt;span &gt;-&lt;/span&gt;NODE_KEY&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;'ZOA_REG'&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;G_NODE_KEY&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;NODE&lt;span &gt;-&lt;/span&gt;NODE_KEY&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;CLEAR&amp;nbsp;&lt;/span&gt;NODE&lt;span &gt;-&lt;/span&gt;RELATKEY&lt;span &gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span &gt;"&amp;nbsp;SPECIAL&amp;nbsp;CASE:&amp;nbsp;A&amp;nbsp;ROOT&amp;nbsp;NODE&amp;nbsp;HAS&amp;nbsp;NO&amp;nbsp;PARENT&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;CLEAR&amp;nbsp;&lt;/span&gt;NODE&lt;span &gt;-&lt;/span&gt;RELATSHIP&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;NODE&lt;span &gt;-&lt;/span&gt;HIDDEN&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;''&lt;/span&gt;&lt;span &gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span &gt;"&amp;nbsp;THE&amp;nbsp;NODE&amp;nbsp;IS&amp;nbsp;VISIBLE,&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;NODE&lt;span &gt;-&lt;/span&gt;DISABLED&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;''&lt;/span&gt;&lt;span &gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span &gt;"&amp;nbsp;SELECTABLE,&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;NODE&lt;span &gt;-&lt;/span&gt;ISFOLDER&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;'X'&lt;/span&gt;&lt;span &gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span &gt;"&amp;nbsp;A&amp;nbsp;FOLDER.&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;NODE-N_IMAGE&amp;nbsp;=&amp;nbsp;'X'.&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;NODE-EXP_IMAGE&amp;nbsp;=&amp;nbsp;'X'.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;NODE&lt;span &gt;-&lt;/span&gt;STYLE&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;CL_GUI_SIMPLE_TREE&lt;span &gt;=&amp;gt;&lt;/span&gt;STYLE_DEFAULT&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;NODE-NO_BRANCH&amp;nbsp;=&amp;nbsp;'X'.&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;NODE-EXPANDER&amp;nbsp;=&amp;nbsp;'X'.&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;NODE-DRAGDROPID&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;NODE&lt;span &gt;-&lt;/span&gt;&lt;span &gt;TEXT&amp;nbsp;&lt;/span&gt;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;'员工工号如下'&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;APPEND&amp;nbsp;&lt;/span&gt;NODE&amp;nbsp;&lt;span &gt;TO&amp;nbsp;&lt;/span&gt;NODE_TABLE&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;span &gt;**設置子節點屬性&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;SORT&amp;nbsp;&lt;/span&gt;IT_TREE&amp;nbsp;&lt;span &gt;BY&amp;nbsp;&lt;/span&gt;USERNO&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;L_INDEX&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;0&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;LOOP&amp;nbsp;&lt;/span&gt;&lt;span &gt;AT&amp;nbsp;&lt;/span&gt;IT_TREE&amp;nbsp;&lt;span &gt;ASSIGNING&amp;nbsp;&lt;/span&gt;&amp;lt;FS1&amp;gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;CLEAR&lt;/span&gt;&lt;span &gt;:&amp;nbsp;&lt;/span&gt;NODE&lt;span &gt;-&lt;/span&gt;N_IMAGE&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;L_INDEX&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;L_INDEX&amp;nbsp;+&amp;nbsp;&lt;span &gt;1&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NODE&lt;span &gt;-&lt;/span&gt;NODE_KEY&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;L_INDEX&amp;nbsp;&amp;nbsp;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NODE&lt;span &gt;-&lt;/span&gt;RELATKEY&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;'ZOA_REG'&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NODE&lt;span &gt;-&lt;/span&gt;RELATSHIP&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;CL_GUI_SIMPLE_TREE&lt;span &gt;=&amp;gt;&lt;/span&gt;RELAT_LAST_CHILD&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NODE&lt;span &gt;-&lt;/span&gt;HIDDEN&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;''&lt;/span&gt;&lt;span &gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span &gt;"&amp;nbsp;THE&amp;nbsp;NODE&amp;nbsp;IS&amp;nbsp;VISIBLE,&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NODE&lt;span &gt;-&lt;/span&gt;DISABLED&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;''&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NODE&lt;span &gt;-&lt;/span&gt;ISFOLDER&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;'&amp;nbsp;'&lt;/span&gt;&lt;span &gt;.&amp;nbsp;&lt;/span&gt;&lt;span &gt;"&amp;nbsp;'X'&amp;nbsp;表示可折叠；'':表示不可折叠&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NODE&lt;span &gt;-&lt;/span&gt;&lt;span &gt;TEXT&amp;nbsp;&lt;/span&gt;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&amp;lt;FS1&amp;gt;&lt;span &gt;-&lt;/span&gt;USERNO&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;APPEND&amp;nbsp;&lt;/span&gt;NODE&amp;nbsp;&lt;span &gt;TO&amp;nbsp;&lt;/span&gt;NODE_TABLE&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;ENDLOOP&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;span &gt;ENDFORM&lt;/span&gt;&lt;span &gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span &gt;"&amp;nbsp;BUILD_NODE_TABLE&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;span &gt;*&amp;amp;---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;amp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FORM&amp;nbsp;&amp;nbsp;GET_DATA&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;amp;---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TEXT&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*----------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;--&amp;gt;P_R_DATE&amp;nbsp;&amp;nbsp;TEXT&lt;/span&gt;&lt;br /&gt; &lt;span &gt;*----------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt; &lt;span &gt;FORM&amp;nbsp;&lt;/span&gt;GET_DATA&amp;nbsp;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp;&lt;span &gt;CLEAR&amp;nbsp;&lt;/span&gt;&lt;span &gt;:&amp;nbsp;&lt;/span&gt;IT_TREE[]&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;SELECT&amp;nbsp;&lt;/span&gt;*&amp;nbsp;&lt;span &gt;FROM&amp;nbsp;&lt;/span&gt;ZOA_REG&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;INTO&amp;nbsp;&lt;/span&gt;CORRESPONDING&amp;nbsp;&lt;span &gt;FIELDS&amp;nbsp;&lt;/span&gt;&lt;span &gt;OF&amp;nbsp;&lt;/span&gt;&lt;span &gt;TABLE&amp;nbsp;&lt;/span&gt;IT_TREE&amp;nbsp;&lt;span &gt;WHERE&amp;nbsp;&lt;/span&gt;WERKS&amp;nbsp;&lt;span &gt;=&amp;nbsp;&lt;/span&gt;&lt;span &gt;'1201'&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp;&lt;span &gt;IF&amp;nbsp;&amp;nbsp;&lt;/span&gt;IT_TREE[]&amp;nbsp;&lt;span &gt;IS&amp;nbsp;&lt;/span&gt;&lt;span &gt;NOT&amp;nbsp;&lt;/span&gt;&lt;span &gt;INITIAL&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp;&lt;span &gt;ELSE&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;MESSAGE&amp;nbsp;&lt;/span&gt;&lt;span &gt;'ERROR'&amp;nbsp;&lt;/span&gt;&lt;span &gt;TYPE&amp;nbsp;&lt;/span&gt;&lt;span &gt;'E'&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&lt;span &gt;ENDIF&lt;/span&gt;&lt;span &gt;.&lt;/span&gt;&lt;br /&gt; &lt;span &gt;ENDFORM&lt;/span&gt;&lt;span &gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span &gt;"&amp;nbsp;GET_DATA&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;5、画面SE51中设置如下图：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/41253/2012020323332791.jpg" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;6、数据表如下：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/41253/2012020323363860.jpg" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;7、运行结果：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/41253/2012020323365810.jpg" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/41253/2012020323371677.jpg" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/41253/2012020323373476.jpg" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;至此，树控件设置结束。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mengxin523/aggbug/2334616.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mengxin523/archive/2011/12/11/2334616.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mengxin523/archive/2011/11/12/2246098.html</id><title type="text">.NET连接SAP系统专题：C#如何导入内文至SAP（十一）</title><summary type="text">内文这个东西就像长篇大论的描述，跟在WORD里面一样可以输入无数个字。如果在sap中输入事务码进去可以维护多少个字都可以，但是如果是用.NET调用BAPI传进去内文的话，会将内文超过132个字符的内容全部截掉。要怎么样才能全部导入所有内文呢？ 以下以导入请购单的程序来描述： //表头内文 转换多笔实现超长文本插入...... PRHEADERTEXT.Insert(); // 这个是BAPI里面导入内文的参数 if (txtQG07.Text.Trim().Length &amp;gt; 120) //txtQG07.Text的内容就是所有内文，这里用120个字符判...</summary><published>2011-11-11T17:12:00Z</published><updated>2011-11-11T17:12:00Z</updated><author><name>梦心</name><uri>http://www.cnblogs.com/mengxin523/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mengxin523/archive/2011/11/12/2246098.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengxin523/archive/2011/11/12/2246098.html"/><content type="html">&lt;p&gt;内文这个东西就像长篇大论的描述，跟在WORD里面一样可以输入无数个字。如果在sap中输入事务码进去可以维护多少个字都可以，但是如果是用.NET调用BAPI传进去内文的话，会将内文超过132个字符的内容全部截掉。要怎么样才能全部导入所有内文呢？&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/41253/2011111201103555.jpg" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;以下以导入请购单的程序来描述：&amp;nbsp; &amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//表头内文 转换多笔实现超长文本插入&lt;/p&gt;&#xD;
&lt;p&gt;......&lt;br /&gt; PRHEADERTEXT.Insert(); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 这个是BAPI里面导入内文的参数&lt;br /&gt; if (txtQG07.Text.Trim().Length &amp;gt; 120) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//&amp;nbsp;txtQG07.Text的内容就是所有内文，这里用120个字符判断&lt;br /&gt; {&lt;br /&gt; int len = txtQG07.Text.Trim().Length / 120; &amp;nbsp;// 这里len取整数&lt;br /&gt; len = len + 1; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 可能有结余，故加一&lt;br /&gt; for (int q = 0; q &amp;lt; len; q++)&lt;br /&gt; {&lt;br /&gt; if (q + 1 == len) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 如果到了最后一行，则去最后一行之后的所有内文&lt;br /&gt; PRHEADERTEXT.CurrentRow.SetValue("TEXT_LINE", txtQG07.Text.Trim().Substring(q * 120));&lt;br /&gt; else&lt;br /&gt; PRHEADERTEXT.CurrentRow.SetValue("TEXT_LINE", txtQG07.Text.Trim().Substring(q * 120, 120));&lt;br /&gt; PRHEADERTEXT.Append(); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 将截取的每一段内容都附加到内文后面。如果不加这一句，则文本会倒置&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; else&lt;br /&gt; {&lt;br /&gt; PRHEADERTEXT.CurrentRow.SetValue("TEXT_LINE", txtQG07.Text.Trim());&lt;br /&gt; }&lt;/p&gt;&#xD;
&lt;p&gt;......&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/41253/2011111201090448.jpg" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如此则可以将内文全部导入。但如果是项目中的内文呢？因为会涉及到传入项目序号，所以需要稍作处理：&lt;/p&gt;&#xD;
&lt;p&gt;//项目内文&lt;br /&gt; PRITEMTEXT.Insert();&lt;br /&gt; if (ds.Tables[0].Rows[i]["QGA11"].ToString().Trim().Length &amp;gt; 120)&lt;br /&gt; {&lt;br /&gt; int len = ds.Tables[0].Rows[i]["QGA11"].ToString().Trim().Length / 120;&lt;br /&gt; len = len + 1;&lt;br /&gt; for (int q = 0; q &amp;lt; len; q++)&lt;br /&gt; {&lt;br /&gt; PRITEMTEXT.CurrentRow.SetValue("PREQ_ITEM", j.ToString()); &amp;nbsp; &amp;nbsp;// 将额外需要的参数都添加到这里，每循环一次都要SetValue一次&lt;br /&gt; if (q + 1 == len)&lt;br /&gt; PRITEMTEXT.CurrentRow.SetValue("TEXT_LINE", ds.Tables[0].Rows[i]["QGA11"].ToString().Trim().Substring(q * 120));&lt;br /&gt; else&lt;br /&gt; PRITEMTEXT.CurrentRow.SetValue("TEXT_LINE", ds.Tables[0].Rows[i]["QGA11"].ToString().Trim().Substring(q * 120, 120));&lt;br /&gt; PRITEMTEXT.Append();&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; else &lt;br /&gt; {&lt;br /&gt; PRITEMTEXT.CurrentRow.SetValue("PREQ_ITEM", j.ToString());&lt;br /&gt; PRITEMTEXT.CurrentRow.SetValue("TEXT_LINE", ds.Tables[0].Rows[i]["QGA11"].ToString());&lt;br /&gt; }&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/41253/2011111201092466.jpg" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mengxin523/aggbug/2246098.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mengxin523/archive/2011/11/12/2246098.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mengxin523/archive/2011/11/08/2241868.html</id><title type="text">又开始要忙了</title><summary type="text">本周开始，昆山分公司要开始实施SAP了，计划实施周期还是6个月，不再由顾问主导，而是让厦门分公司及台湾总部来规划实施。前期先让两边IT的ERP维护人员把流程整理出来，然后规划出一个方案，按日期整理出来步骤，职责分明。 今天老大就在跟昆山分公司的IT头头通电话，把主导SAP的权力给拿过来，估计以后她有的忙了。不过忙也有忙的好处，可以学到更多，不至于出去什么都不懂。而小苗和小莫则开始了长期的“打杂”，又要跟年初一样干一些“杂活”，貌似她们挺有怨言。一切都要按照老大的安排来，不得松懈。估计要不了多久老大就要去昆山出差了，而ERP维护人员也是紧随其后出差。现在沟通挺重要的，特别是SAP实施阶段，...</summary><published>2011-11-08T15:56:00Z</published><updated>2011-11-08T15:56:00Z</updated><author><name>梦心</name><uri>http://www.cnblogs.com/mengxin523/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mengxin523/archive/2011/11/08/2241868.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengxin523/archive/2011/11/08/2241868.html"/><content type="html">&lt;p&gt;本周开始，昆山分公司要开始实施SAP了，计划实施周期还是6个月，不再由顾问主导，而是让厦门分公司及台湾总部来规划实施。前期先让两边IT的ERP维护人员把流程整理出来，然后规划出一个方案，按日期整理出来步骤，职责分明。&lt;/p&gt;&#xD;
&lt;p&gt;今天老大就在跟昆山分公司的IT头头通电话，把主导SAP的权力给拿过来，估计以后她有的忙了。不过忙也有忙的好处，可以学到更多，不至于出去什么都不懂。而小苗和小莫则开始了长期的&amp;ldquo;打杂&amp;rdquo;，又要跟年初一样干一些&amp;ldquo;杂活&amp;rdquo;，貌似她们挺有怨言。一切都要按照老大的安排来，不得松懈。估计要不了多久老大就要去昆山出差了，而ERP维护人员也是紧随其后出差。现在沟通挺重要的，特别是SAP实施阶段，我想，总是有一些不服管训，总是要有一个头头过来压住所有人。&lt;/p&gt;&#xD;
&lt;p&gt;我想大概到实施后期我也要出差了，昆山，江苏地界。大概以后过去就是给那边的IT培训如何做二次开发吧。还记得去年六月一号去深圳出差，主导那边分公司ERP上线的情况，挺有意思的，还是第一次做飞机。听说公司出差补贴一天40，好少，貌似也比灿坤好一点点。&lt;/p&gt;&#xD;
&lt;p&gt;总之，又要开始忙了，忙好，忙了说明有学习的地方~&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mengxin523/aggbug/2241868.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mengxin523/archive/2011/11/08/2241868.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mengxin523/archive/2011/11/01/2232325.html</id><title type="text">.NET连接SAP系统专题：BAPI_TRANSACTION_COMMIT的使用方法（十）</title><summary type="text">为什么.net调用SAP的BAPI接口需要调用BAPI_TRANSACTION_COMMIT呢？首先得明白BAPI_TRANSACTION_COMMIT这个BAPI的作用。它功劳很大，在SAP里面很多的BAPI直接调用是不会有结果的，因为需要COMMIT一下才能生效，比如生成资产编号的BAPI：BAPI_FIXEDASSET_CREATE1，如果对他直接在SE37中调用运行或者使用SE38调用它，虽然可以得到一个资产编号，但是在AS03里面查询，系统会很白痴得提示你：该资产编号不存在于XX公司。更搞的是当你在AS01中新建资产编号时，新建的资产编号会跳过之前用BAPI生成“失败”的号码。 ..</summary><published>2011-11-01T15:46:00Z</published><updated>2011-11-01T15:46:00Z</updated><author><name>梦心</name><uri>http://www.cnblogs.com/mengxin523/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mengxin523/archive/2011/11/01/2232325.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengxin523/archive/2011/11/01/2232325.html"/><content type="html">&lt;p&gt;为什么.net调用SAP的BAPI接口需要调用BAPI_TRANSACTION_COMMIT呢？首先得明白BAPI_TRANSACTION_COMMIT这个BAPI的作用。它功劳很大，在SAP里面很多的BAPI直接调用是不会有结果的，因为需要COMMIT一下才能生效，比如生成资产编号的BAPI：BAPI_FIXEDASSET_CREATE1，如果对他直接在SE37中调用运行或者使用SE38调用它，虽然可以得到一个资产编号，但是在AS03里面查询，系统会很白痴得提示你：该资产编号不存在于XX公司。更搞的是当你在AS01中新建资产编号时，新建的资产编号会跳过之前用BAPI生成&amp;ldquo;失败&amp;rdquo;的号码。&lt;/p&gt;&#xD;
&lt;p&gt;那么，这就需要COMMIT一下，在调用这个BAPI之后再紧接调用BAPI_TRANSACTION_COMMIT这个。但是，在SE38中是可以这样做，而在.net中就没那么简单了，直接在调用完BAPI_FIXEDASSET_CREATE1之后再紧接调用BAPI_TRANSACTION_COMMIT是不可以的，虽然还是生成了资产编号，但仍旧是个废号。跟在SE37中调用无异。&lt;/p&gt;&#xD;
&lt;p&gt;怎么在.net中解决这个问题呢，这就需要用到RfcSessionManager.BeginContext和RfcSessionManager.EndContext这两个方法了。只有在这两个方法之间调用BAPI才能方保万无一失！&lt;/p&gt;&#xD;
&lt;p&gt;代码如下：&lt;/p&gt;&#xD;
&lt;p&gt;1、首先引用：using SAP.Middleware.Connector;&lt;/p&gt;&#xD;
&lt;p&gt;2、调用代码：&lt;/p&gt;&#xD;
&lt;p&gt;public void nco(DataSet ds)&lt;br /&gt; {&lt;br /&gt; IDestinationConfiguration ID = new RfcConfig();&lt;br /&gt; RfcDestinationManager.RegisterDestinationConfiguration(ID);&lt;br /&gt; RfcDestination prd = RfcDestinationManager.GetDestination("PRD_000");&lt;br /&gt; RfcDestinationManager.UnregisterDestinationConfiguration(ID);&lt;br /&gt; nco(prd, ds);&lt;br /&gt; }&lt;br /&gt; public void nco(RfcDestination prd, DataSet ds)&lt;br /&gt; {&lt;br /&gt; bool asset = false;&lt;br /&gt; //选择要调用的BAPI的名称&lt;br /&gt; RfcFunctionMetadata BAPI_COMPANYCODE_GETDETAIL_MD = prd.Repository.GetFunctionMetadata("BAPI_REQUISITION_CREATE");&lt;br /&gt; //新建调用该BAPI的一个&amp;ldquo;实例&amp;rdquo;&lt;br /&gt; IRfcFunction function = null;&lt;br /&gt; function = BAPI_COMPANYCODE_GETDETAIL_MD.CreateFunction();&lt;br /&gt; IRfcTable ITEMS = function.GetTable("REQUISITION_ITEMS");&lt;br /&gt; IRfcTable ACCOUNT = function.GetTable("REQUISITION_ACCOUNT_ASSIGNMENT");&lt;br /&gt; IRfcTable RETURN = function.GetTable("RETURN");&lt;br /&gt; int j = 0;&lt;br /&gt; &lt;span style="color: #ff0000;"&gt;RfcSessionManager.BeginContext(prd); &amp;nbsp;//因期间需要同一个时间调用BAPI，而且各个BAPI之间有顺序关联，所以最好用这个包围起来&lt;/span&gt;&lt;br /&gt; for (int i = 0; i &amp;lt; ds.Tables[0].Rows.Count; i++)&lt;br /&gt; {&lt;br /&gt; ITEMS.Insert();&lt;br /&gt; j = j + 1;&lt;br /&gt; j = j * 10;&lt;br /&gt; ITEMS.CurrentRow.SetValue("PREQ_ITEM", j.ToString());&lt;br /&gt; ITEMS.CurrentRow.SetValue("PREQ_NAME", ds.Tables[0].Rows[i]["QGA27"].ToString());&lt;br /&gt; ITEMS.CurrentRow.SetValue("CREATED_BY", ds.Tables[0].Rows[i]["QGA27"].ToString());&lt;br /&gt; ITEMS.CurrentRow.SetValue("PREQ_DATE", Convert.ToDateTime(ds.Tables[0].Rows[i]["QGA15"].ToString()).Date);&lt;br /&gt; ITEMS.CurrentRow.SetValue("MATERIAL", ds.Tables[0].Rows[i]["QGA04"].ToString());&lt;br /&gt; ITEMS.CurrentRow.SetValue("SHORT_TEXT", ds.Tables[0].Rows[i]["QGA05"].ToString());&lt;br /&gt; ITEMS.CurrentRow.SetValue("PLANT", "1201");&lt;br /&gt; ITEMS.CurrentRow.SetValue("QUANTITY", Convert.ToDecimal(ds.Tables[0].Rows[i]["QGA07"].ToString()));&lt;br /&gt; ITEMS.CurrentRow.SetValue("DELIV_DATE", Convert.ToDateTime(ds.Tables[0].Rows[i]["QGA09"].ToString()).Date);&lt;br /&gt; ITEMS.CurrentRow.SetValue("C_AMT_BAPI", Convert.ToDecimal(ds.Tables[0].Rows[i]["QGA14"].ToString()));&lt;br /&gt; ITEMS.CurrentRow.SetValue("ACCTASSCAT", ds.Tables[0].Rows[i]["QGA12"].ToString());&lt;br /&gt; ITEMS.CurrentRow.SetValue("DOC_TYPE", ds.Tables[0].Rows[i]["QGA28"].ToString());&lt;br /&gt; ITEMS.CurrentRow.SetValue("UNIT", ds.Tables[0].Rows[i]["QGA06"].ToString());&lt;/p&gt;&#xD;
&lt;p&gt;ACCOUNT.Insert();&lt;br /&gt; ACCOUNT.CurrentRow.SetValue("PREQ_ITEM", j.ToString());&lt;br /&gt; ACCOUNT.CurrentRow.SetValue("COST_CTR", ds.Tables[0].Rows[i]["QGA31"].ToString());&lt;br /&gt; ACCOUNT.CurrentRow.SetValue("ORDER_NO", ds.Tables[0].Rows[i]["QGA10"].ToString());&lt;/p&gt;&#xD;
&lt;p&gt;if (ds.Tables[0].Rows[i]["QGA12"].ToString().Trim() == "A") &amp;nbsp;//如果类别是A，即资产，则需要资产编号&lt;br /&gt; {&lt;br /&gt; ACCOUNT.CurrentRow.SetValue("ASSET_NO", GetASSET(prd, i, ds)); &amp;nbsp;//设置新建的资产编号&lt;br /&gt; ACCOUNT.CurrentRow.SetValue("CO_AREA", "1000");&lt;br /&gt; ACCOUNT.CurrentRow.SetValue("SUB_NUMBER", "0000");&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; function.SetValue("REQUISITION_ITEMS", ITEMS);&lt;br /&gt; function.SetValue("REQUISITION_ACCOUNT_ASSIGNMENT", ACCOUNT);&lt;br /&gt; function.Invoke(prd);//提交调用BAPI &lt;br /&gt; &lt;span style="color: #ff0000;"&gt;RfcSessionManager.EndContext(prd);&lt;/span&gt;&lt;br /&gt; if (RETURN.GetString("TYPE").ToString().Trim() == "I")&lt;br /&gt; {&lt;br /&gt; Suess.Text = RETURN.GetString("MESSAGE").ToString();&lt;br /&gt; BANFN.Text = "返回的请购单号：" + function.GetString("NUMBER").Trim();&lt;br /&gt; }&lt;br /&gt; else if (RETURN.GetString("TYPE").ToString().Trim() == "E")&lt;br /&gt; {&lt;br /&gt; Error.Text = RETURN.GetString("MESSAGE").ToString();&lt;br /&gt; }&lt;br /&gt; prd = null;&lt;br /&gt; }&lt;br /&gt; /// &amp;lt;summary&amp;gt;&lt;br /&gt; /// 取得资产编号&lt;br /&gt; /// &amp;lt;/summary&amp;gt;&lt;br /&gt; /// &amp;lt;param name="prd"&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt; /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br /&gt; public string GetASSET(RfcDestination prd, int i, DataSet ds)&lt;br /&gt; {&lt;br /&gt; RfcFunctionMetadata BAPI_COMPANYCODE_GETDETAIL_MD = prd.Repository.GetFunctionMetadata("BAPI_FIXEDASSET_CREATE1");&lt;br /&gt; IRfcFunction function = null;&lt;br /&gt; function = BAPI_COMPANYCODE_GETDETAIL_MD.CreateFunction();&lt;br /&gt; IRfcStructure KEY = function.GetStructure("KEY");&lt;br /&gt; KEY.SetValue("COMPANYCODE", "2012");&lt;br /&gt; IRfcStructure GENERALDATA = function.GetStructure("GENERALDATA");&lt;br /&gt; GENERALDATA.SetValue("ASSETCLASS", "00005990");&lt;br /&gt; GENERALDATA.SetValue("DESCRIPT", ds.Tables[0].Rows[i]["QGA05"].ToString());&lt;br /&gt; IRfcStructure GENERALDATAX = function.GetStructure("GENERALDATAX");&lt;br /&gt; GENERALDATAX.SetValue("ASSETCLASS", "X");&lt;br /&gt; GENERALDATAX.SetValue("DESCRIPT", "X");&lt;br /&gt; function.SetValue("KEY", KEY);&lt;br /&gt; function.SetValue("GENERALDATA", GENERALDATA);&lt;br /&gt; function.SetValue("GENERALDATAX", GENERALDATAX);&lt;br /&gt; &lt;br /&gt; prd.Repository.ClearFunctionMetadata(); &amp;nbsp;//貌似这句可以省略...&lt;br /&gt; RfcFunctionMetadata BAPI_COMPANYCODE_GETDETAIL_MD1 = prd.Repository.GetFunctionMetadata("BAPI_TRANSACTION_COMMIT");&lt;br /&gt; IRfcFunction function1 = null;&lt;br /&gt; function1 = BAPI_COMPANYCODE_GETDETAIL_MD1.CreateFunction();&lt;br /&gt; function1.SetValue("WAIT", "X");&lt;br /&gt; &lt;span style="color: #ff0000;"&gt;RfcSessionManager.BeginContext(prd);&lt;/span&gt;&lt;br /&gt; function.Invoke(prd); &amp;nbsp; &amp;nbsp; //提交调用BAPI_FIXEDASSET_CREATE1 &amp;nbsp;生成资产编号&lt;br /&gt; function1.Invoke(prd); &amp;nbsp; //提交调用BAPI_TRANSACTION_COMMIT 进行COMMIT一下&lt;br /&gt; &lt;span style="color: #ff0000;"&gt;RfcSessionManager.EndContext(prd);&lt;/span&gt;&lt;br /&gt; twMsgbox.AjaxAlert(function.GetValue("ASSET").ToString().Trim()); &lt;br /&gt; return function.GetValue("ASSET").ToString().Trim();&lt;br /&gt; }&lt;/p&gt;&#xD;
&lt;p&gt;新建立之后的请购单一切OK，同时，建立的资产编号在AS03已经可以认出来了！！&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mengxin523/aggbug/2232325.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mengxin523/archive/2011/11/01/2232325.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mengxin523/archive/2011/10/24/2223222.html</id><title type="text">.NET连接SAP系统专题：sapnco.dll在ASP.NET中载入失败的解决方法（九）</title><summary type="text">当所有一切代码准备就绪之后，如果是ASP.NET那就是要发布网站到服务器了。如果服务器上的系统是WIN2003，那很不幸，系统会提示这样的“红脸”过来：意思是说sapnco_utils.dll和sapnco.dll这两个文件不能载入。Could not load file or assembly &amp;quot;sapnco_utils,Version=3.0.0.42,...网上查找了方法也不尽然，各说纷纭。但是在WIN2008下的IIS7跟WinXP下的IIS5.1都可以完全正常，但是这个WIN2003就不行。后来在对这两个DLL进行分析的时候发现它们是用VC++2005开发的，想到WIN20</summary><published>2011-10-24T15:22:00Z</published><updated>2011-10-24T15:22:00Z</updated><author><name>梦心</name><uri>http://www.cnblogs.com/mengxin523/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mengxin523/archive/2011/10/24/2223222.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengxin523/archive/2011/10/24/2223222.html"/><content type="html">&lt;p&gt;当所有一切代码准备就绪之后，如果是ASP.NET那就是要发布网站到服务器了。如果服务器上的系统是WIN2003，那很不幸，系统会提示这样的&amp;ldquo;红脸&amp;rdquo;过来：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/41253/2011102423283877.jpg" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;意思是说sapnco_utils.dll和sapnco.dll这两个文件不能载入。&lt;/p&gt;&#xD;
&lt;p&gt;Could not load file or assembly "sapnco_utils,Version=3.0.0.42,...&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;网上查找了方法也不尽然，各说纷纭。但是在WIN2008下的IIS7跟WinXP下的IIS5.1都可以完全正常，但是这个WIN2003就不行。&lt;/p&gt;&#xD;
&lt;p&gt;后来在对这两个DLL进行分析的时候发现它们是用VC++2005开发的，想到WIN2003系统可能没有必要的运行库。于是在工作站测试的时候安装了VC++2005 32bit版，然后刷新一切就正常了！&lt;/p&gt;&#xD;
&lt;p&gt;解决方法：安装相应vc++2005运行库即可！（实践证明：VC++2008不行！）&lt;/p&gt;&#xD;
&lt;p&gt;附VC++2005 32位运行库下载地址：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://files.cnblogs.com/mengxin523/vcredist2005sp1_x86_XiaZaiBa.zip" target="_blank"&gt;http://files.cnblogs.com/mengxin523/vcredist2005sp1_x86_XiaZaiBa.zip&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mengxin523/aggbug/2223222.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mengxin523/archive/2011/10/24/2223222.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mengxin523/archive/2011/09/19/2218345.html</id><title type="text">ABAP编辑器的妙处</title><summary type="text">前几天上网无意中看到一条消息说SAP GUI代码编写器跟VS.NET比跟上古时代没啥差别。很多人是从.NET或者JAVA转过来做SAP的，一接触到SAP GUI的代码编写器总觉得非常不满意，但其实实用的多了会发现它在某些方面要比VS.NET优秀的多了。且不说那个双击浏览，单单那个“模式”自动载入函数的功能就让人兴奋不已。省去了很多的麻烦，同时在设置短点方面很人性化，而且Debug的时候还能看到内表的内容出来，真的很方便。 双击一个方法可以自动调出这个方法的主体，如果是INClude，则可以跳入这个程序里面对应的方法体，看完之后则点击“返回”按钮则可以回到上一步操作的地方。貌似这个功能在V...</summary><published>2011-09-19T15:36:00Z</published><updated>2011-09-19T15:36:00Z</updated><author><name>梦心</name><uri>http://www.cnblogs.com/mengxin523/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mengxin523/archive/2011/09/19/2218345.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengxin523/archive/2011/09/19/2218345.html"/><content type="html">&lt;p&gt;前几天上网无意中看到一条消息说SAP GUI代码编写器跟VS.NET比跟上古时代没啥差别。很多人是从.NET或者JAVA转过来做SAP的，一接触到SAP GUI的代码编写器总觉得非常不满意，但其实实用的多了会发现它在某些方面要比VS.NET优秀的多了。且不说那个双击浏览，单单那个&amp;ldquo;模式&amp;rdquo;自动载入函数的功能就让人兴奋不已。省去了很多的麻烦，同时在设置短点方面很人性化，而且Debug的时候还能看到内表的内容出来，真的很方便。&lt;/p&gt;&#xD;
&lt;p&gt;双击一个方法可以自动调出这个方法的主体，如果是INClude，则可以跳入这个程序里面对应的方法体，看完之后则点击&amp;ldquo;返回&amp;rdquo;按钮则可以回到上一步操作的地方。貌似这个功能在VS.NET里面应该是没有的，选择了方法，按F12之后想要回来就不容易了（不知道是我不懂还是真没这个功能）。&lt;/p&gt;&#xD;
&lt;p&gt;当然，SAP GUI编辑器也仅仅是用作ERP特定的环境来做的，VS.NET作为比较大众和权威的.NET开发语言，其便利性和强大无庸置疑。以前在刚接触SAP的时候我也在感叹ABAP编辑器如果能向VS看齐就好了，如今看来各有各的优点了。&lt;/p&gt;&#xD;
&lt;p&gt;我很欣赏VS里面只能代码下拉框的提示，这点在ABAP编辑器里面就是没有！因为ABAP语法的单纯，所以本身没有那么多的类型转换，这同时又是语法之间的差别了。如今只能说越来越喜欢ABAP，有点反感C#等一大堆的东西杂一起。可能是心境不一样了吧~&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mengxin523/aggbug/2218345.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mengxin523/archive/2011/09/19/2218345.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mengxin523/archive/2011/08/28/2155906.html</id><title type="text">.NET连接SAP系统专题：C#调用BAPI给账户赋予权限（八）</title><summary type="text">接上篇博文。 上篇博文讲到C#调用BAPIBAPI_USER_CREATE来生成SAP账户，但是新建的账户一点权限也没有，现在我们就再次利用BAPI给账户授予权限。 首先，我们在BAPI画面里查找出相关的BAPI出来，利用角色去给用户添加权限： 双击此BAPI，进入到BAPI预览画面： Table属性页： 第一个ACTIVITYGROUPS是指我们要传进去的表格内容，不再是一个栏位和结构内容了。第二个的RETURN则是返回调用结果。 双击BAPIAGR的结构，进入结构详情画面： 以上AGR_NAME是角色名，应该是必须要的。 那么，接下去就是在C#中编写相应...</summary><published>2011-08-27T17:09:00Z</published><updated>2011-08-27T17:09:00Z</updated><author><name>梦心</name><uri>http://www.cnblogs.com/mengxin523/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mengxin523/archive/2011/08/28/2155906.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengxin523/archive/2011/08/28/2155906.html"/><content type="html">&lt;p&gt;接上篇博文。&lt;/p&gt;&#xD;
&lt;p&gt;上篇博文讲到C#调用BAPI&amp;nbsp;&lt;span style="font-family: verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; font-size: 12px; line-height: 18px; text-align: left; background-color: #f5fafe;"&gt;BAPI_USER_CREATE&amp;nbsp;&lt;/span&gt;来生成SAP账户，但是新建的账户一点权限也没有，现在我们就再次利用BAPI给账户授予权限。&lt;/p&gt;&#xD;
&lt;p&gt;首先，我们在BAPI画面里查找出相关的BAPI出来，利用角色去给用户添加权限：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/41253/2011082800464526.jpg" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;双击此BAPI，进入到BAPI预览画面：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/41253/2011082800472962.jpg" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Table属性页：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/41253/2011082800480577.jpg" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;第一个ACTIVITYGROUPS是指我们要传进去的表格内容，不再是一个栏位和结构内容了。第二个的RETURN则是返回调用结果。&lt;/p&gt;&#xD;
&lt;p&gt;双击BAPIAGR的结构，进入结构详情画面：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/41253/2011082800514040.jpg" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;以上AGR_NAME是角色名，应该是必须要的。&lt;/p&gt;&#xD;
&lt;p&gt;那么，接下去就是在C#中编写相应的代码来调用它了。&lt;/p&gt;&#xD;
&lt;p&gt;1、首先引用dll，然后在程序开头：using SAP.Middleware.Connector;&lt;/p&gt;&#xD;
&lt;p&gt;2、接下去就是设置登陆参数了，以前相关博文都有说明：&lt;/p&gt;&#xD;
&lt;p&gt;public class MyBackendConfig : IDestinationConfiguration&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;public RfcConfigParameters GetParameters(String destinationName)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;if ("PRD_000".Equals(destinationName))&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;RfcConfigParameters parms = new RfcConfigParameters();&lt;/p&gt;&#xD;
&lt;p&gt;parms.Add(RfcConfigParameters.AppServerHost, "192.168.1.3");&lt;/p&gt;&#xD;
&lt;p&gt;parms.Add(RfcConfigParameters.SystemNumber, "00");&lt;/p&gt;&#xD;
&lt;p&gt;parms.Add(RfcConfigParameters.User, "MENGXIN");&lt;/p&gt;&#xD;
&lt;p&gt;parms.Add(RfcConfigParameters.Password, "5239898");&lt;/p&gt;&#xD;
&lt;p&gt;parms.Add(RfcConfigParameters.Client, "888");&lt;/p&gt;&#xD;
&lt;p&gt;parms.Add(RfcConfigParameters.Language, "ZH");&lt;/p&gt;&#xD;
&lt;p&gt;parms.Add(RfcConfigParameters.PoolSize, "5");&lt;/p&gt;&#xD;
&lt;p&gt;parms.Add(RfcConfigParameters.MaxPoolSize, "10");&lt;/p&gt;&#xD;
&lt;p&gt;parms.Add(RfcConfigParameters.IdleTimeout, "60");&lt;/p&gt;&#xD;
&lt;p&gt;return parms;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;else return null;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;public bool ChangeEventsSupported()&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;return false;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;public event RfcDestinationManager.ConfigurationChangeHandler ConfigurationChanged;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;3、设置一个方法，引用这个登陆参数的类：&lt;/p&gt;&#xD;
&lt;p&gt;public void nco()&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;IDestinationConfiguration ID = new MyBackendConfig();&lt;/p&gt;&#xD;
&lt;p&gt;RfcDestinationManager.RegisterDestinationConfiguration(ID);&lt;/p&gt;&#xD;
&lt;p&gt;RfcDestination prd = RfcDestinationManager.GetDestination("PRD_000");&lt;/p&gt;&#xD;
&lt;p&gt;RfcDestinationManager.UnregisterDestinationConfiguration(ID);&lt;/p&gt;&#xD;
&lt;p&gt;nco(prd);&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;4、然后就是开始了调用代码，以下代码全部放出，然后一行一行说明：&lt;/p&gt;&#xD;
&lt;p&gt;public void nco(RfcDestination prd)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;//调用BAPI&lt;/p&gt;&#xD;
&lt;p&gt;RfcFunctionMetadata BAPI_COMPANYCODE_GETDETAIL_MD = prd.Repository.GetFunctionMetadata("BAPI_USER_ACTGROUPS_ASSIGN");&lt;/p&gt;&#xD;
&lt;p&gt;IRfcFunction function = null;&lt;/p&gt;&#xD;
&lt;p&gt;function = BAPI_COMPANYCODE_GETDETAIL_MD.CreateFunction();&lt;/p&gt;&#xD;
&lt;p&gt;//传入我们要赋予权限的用户名&lt;/p&gt;&#xD;
&lt;p&gt;function.SetValue("USERNAME", USERID.Text.Trim());&lt;/p&gt;&#xD;
&lt;p&gt;//接下去就是传入角色名。由于ACTIVITYGROUPS 是在Table属性页，所以我们是用Table 而不是Import和Export属性页里面用的Structure&lt;/p&gt;&#xD;
&lt;p&gt;IRfcTable ROFTable = function.GetTable("ACTIVITYGROUPS");&lt;/p&gt;&#xD;
&lt;p&gt;//上面语句产生的ROFTable&amp;nbsp;其实是一张空表，里面除了有那几个栏位之外是没有任何记录的，所以在对表格赋值之前需要先进性新增一行&lt;/p&gt;&#xD;
&lt;p&gt;ROFTable&amp;nbsp;.Insert();&lt;/p&gt;&#xD;
&lt;p&gt;//接下去就是对表格当前行的相关栏位赋值。如下的角色名&amp;ldquo;MIS&amp;rdquo;是预选在SAP中建立好的&lt;/p&gt;&#xD;
&lt;p&gt;ROFTable&amp;nbsp;.CurrentRow.SetValue("AGR_NAME", "MIS");&lt;/p&gt;&#xD;
&lt;p&gt;ROFTable&amp;nbsp;.CurrentRow.SetValue("FROM_DAT", "20110825");&lt;/p&gt;&#xD;
&lt;p&gt;ROFTable&amp;nbsp;.CurrentRow.SetValue("TO_DAT", "99991231");&lt;/p&gt;&#xD;
&lt;p&gt;//传入该赋值后的表格&lt;/p&gt;&#xD;
&lt;p&gt;function.SetValue("ACTIVITYGROUPS",&amp;nbsp;ROFTable);&lt;/p&gt;&#xD;
&lt;p&gt;//引用回传结果&lt;/p&gt;&#xD;
&lt;p&gt;IRfcTable RETURNStructure = function.GetTable("RETURN");&lt;/p&gt;&#xD;
&lt;p&gt;//提交调用 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;function.Invoke(prd);&lt;/p&gt;&#xD;
&lt;p&gt;//显示调用结果&lt;/p&gt;&#xD;
&lt;p&gt;MessageBox.Show(RETURNStructure.GetString("MESSAGE").ToString());&lt;/p&gt;&#xD;
&lt;p&gt;prd = null;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;5、调用结果如下：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/41253/2011082801020463.jpg" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/41253/2011082801023774.jpg" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/41253/2011082801035798.jpg" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如此则此用户已经赋予相应的权限了，运行所有T-CODE，没问题！&lt;/p&gt;&#xD;
&lt;p&gt;对了，如果要赋予多个角色的话，那么就是多做ROFTable.Insert();然后再做相应赋值即可。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mengxin523/aggbug/2155906.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mengxin523/archive/2011/08/28/2155906.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
