将值传递给UDF字段

2020-08-13 19:03发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我是SAP SDK的初学者,我似乎找不到在Goods Issue中将值传递给UDF的方法。

UDF字段:U_CardCode'OIGE'

任何帮助将不胜感激。

如果(pVal.EventType == SAPbouiCOM.BoEventTypes.et_CHOOSE_FROM_LIST)
                 {
                     IChooseFromListEvent oCFLEvento = null;
                     oCFLEvento =(((IChooseFromListEvent)(pVal));
                     字符串sCFL_ID = null;
                     sCFL_ID = oCFLEvento.ChooseFromListUID;
                     形式oForm = null;
                     oForm = SAPbouiCOM.Framework.Application.SBO_Application.Forms.Item(FormUID);
                     SAPbouiCOM.ChooseFromList oCFL = null;
                     oCFL = oForm.ChooseFromLists.Item(sCFL_ID);
                     如果(oCFLEvento.BeforeAction == false)
                     {
                         SAPbouiCOM.DataTable oDataTable = null;
                         oDataTable = oCFLEvento.SelectedObjects;
                         字符串val = null;
                         字符串val1 = null;
                         尝试
                         {
                             val = Convert.ToString(oDataTable.GetValue(0,0));
                             val1 = Convert.ToString(oDataTable.GetValue(1,0));
                         }
                         抓住(例外)
                         {


                         }
                         如果((pVal.ItemUID ==" BPCode"))
                         {
                             oForm.DataSources.UserDataSources.Item(" UD_BPCode")。Value = val;
                             oForm.DataSources.UserDataSources.Item(" UD_BPName")。Value = val1; 在这里,我希望使用VAL设置字段。
                         }
                     }
                 }

 

(14.1 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我是SAP SDK的初学者,我似乎找不到在Goods Issue中将值传递给UDF的方法。

UDF字段:U_CardCode'OIGE'

任何帮助将不胜感激。

如果(pVal.EventType == SAPbouiCOM.BoEventTypes.et_CHOOSE_FROM_LIST)
                 {
                     IChooseFromListEvent oCFLEvento = null;
                     oCFLEvento =(((IChooseFromListEvent)(pVal));
                     字符串sCFL_ID = null;
                     sCFL_ID = oCFLEvento.ChooseFromListUID;
                     形式oForm = null;
                     oForm = SAPbouiCOM.Framework.Application.SBO_Application.Forms.Item(FormUID);
                     SAPbouiCOM.ChooseFromList oCFL = null;
                     oCFL = oForm.ChooseFromLists.Item(sCFL_ID);
                     如果(oCFLEvento.BeforeAction == false)
                     {
                         SAPbouiCOM.DataTable oDataTable = null;
                         oDataTable = oCFLEvento.SelectedObjects;
                         字符串val = null;
                         字符串val1 = null;
                         尝试
                         {
                             val = Convert.ToString(oDataTable.GetValue(0,0));
                             val1 = Convert.ToString(oDataTable.GetValue(1,0));
                         }
                         抓住(例外)
                         {


                         }
                         如果((pVal.ItemUID ==" BPCode"))
                         {
                             oForm.DataSources.UserDataSources.Item(" UD_BPCode")。Value = val;
                             oForm.DataSources.UserDataSources.Item(" UD_BPName")。Value = val1; 在这里,我希望使用VAL设置字段。
                         }
                     }
                 }

 

(14.1 kB)
付费偷看设置
发送
4条回答
南山jay
1楼 · 2020-08-13 19:27.采纳回答

通过增加一行来解决:

尝试
                             {
                                 oEdit.Value = val;
                             }
                             抓住(例外)
                             {
                                 oEdit.Value = val;

                             } 
绿领巾童鞋
2楼-- · 2020-08-13 19:40

嗨,Gombo,

谢谢 您访问SAP社区以获得问题的答案。 我在这里 帮助您充分利用它。

首先,我建议您 熟悉 https://community.sap.com/resources/questions-and-answers (如果 您还没有这样做),因为 它提供了准备问题的技巧,这些问题会引起我们的回应 成员。

请 还请确保您使用的是所有适当的标签,以便正确的专家可以找到 你的问题。 总体而言,您提供的详细信息越多,可能性就越大 成员将能够为您提供帮助。 如果您愿意,可以修改您的 选择操作,然后选择修改(尽管有人回答了您的问题 问题,您将失去编辑问题的能力-但是,如果发生这种情况, 您可以在评论中留下更多详细信息。)

最后,如果您希望与 读者,请考虑在您的个人资料中添加图片。 这是你的做法 它: https://www.youtube.com/watch?v=F5JdUbyjfMA&list=PLpQebylHrdh5s3gwyDh6 >。 通过使用 的照片,鼓励读者做出回应。

最好,
Lena(SAP社区主持人)

哎,真难
3楼-- · 2020-08-13 19:27

您好 Gombo Khorloo

< p> UDF表单的表单ID为 -720 。 如果只想通过UI API进行操作,则可以按以下步骤进行操作:

 SAPbouiCOM.Form oForm =(SAPbouiCOM.Form)SBO_Application.Forms.GetForm(-720,1);
 SAPbouiCOM.EditText oEdit =(SAPbouiCOM.EditText)oForm.Items.Item(" CustomerCode")。Specific;
 oEdit.Value =" Test"; 

在此情况下,请务必记住应始终打开UDF表单。 否则,该代码将失败,因为如果关闭UDF表单,将无法获得 -720 表单。

如果它不符合您的要求,请解释

亲切的问候,

ANKIT CHAUHAN

SAP商业一号 支持

callcenter油条
4楼-- · 2020-08-13 19:45

你好 Ankit Chauhan

我按照您的指南对代码做了一些更改。

现在,当触发BP代码中的CFL事件时,我面临一般故障错误。

这是错误:

 Customer.exe在ZigZag发货中发生类型'System.Runtime.InteropServices.COMException'的异常,但未在用户代码中处理


 附加信息:常规故障

 

这是我的代码,添加几行之后:

 private void SBO_Application_ItemEvent(字符串FormUID,ref ItemEvent pVal,输出bool BubbleEvent)
         {
             BubbleEvent = true;
             Debug.WriteLine(" FormUID:" + pVal.FormTypeEx);
             如果(pVal.FormTypeEx ==" 720")
             {
                 如果(pVal.EventType == SAPbouiCOM.BoEventTypes.et_CHOOSE_FROM_LIST)
                 {
                    
                     IChooseFromListEvent oCFLEvento = null;
                     oCFLEvento =(((IChooseFromListEvent)(pVal));
                     字符串sCFL_ID = null;
                     sCFL_ID = oCFLEvento.ChooseFromListUID;
                     形式oForm = null;
                     oForm = SAPbouiCOM.Framework.Application.SBO_Application.Forms.Item(FormUID);
                     形式oForm1 = null;
                     oForm1 = SAPbouiCOM.Framework.Application.SBO_Application.Forms.GetForm("-720",1);
                     this.oEdit =(SAPbouiCOM.EditText)oForm1.Items.Item(" U_CardCode")。Specific;
                     SAPbouiCOM.ChooseFromList oCFL = null;
                     oCFL = oForm.ChooseFromLists.Item(sCFL_ID);
                     如果(oCFLEvento.BeforeAction == false)
                     {
                         SAPbouiCOM.DataTable oDataTable = null;
                         oDataTable = oCFLEvento.SelectedObjects;
                         字符串val = null;
                         字符串val1 = null;
                         尝试
                         {
                             val = Convert.ToString(oDataTable.GetValue(0,0));
                             val1 = Convert.ToString(oDataTable.GetValue(1,0));
                         }
                         抓住(例外)
                         {


                         }
                         如果((pVal.ItemUID ==" BPCode"))
                         {
                             oForm.DataSources.UserDataSources.Item(" UD_BPCode")。Value = val;
                             oForm.DataSources.UserDataSources.Item(" UD_BPName")。Value = val1;
                             oEdit.Value =" TEST";
                         }
                     }
                 }
             }
         }
 

感谢您的关注。

解决此问题后,我将花点时间保持UDF表单打开。

更新:

还尝试添加catch异常,例如仍然没有将任何值传递给UDF。

尝试
                             {
                                 oEdit.Value = val;
                                 Debug.WriteLine(" TEXT:" + oEdit.Value);
                             }
                             抓住(例外)
                             {


                             }
 

一周热门 更多>