手动为按钮创建事件

2020-09-18 02:54发布

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

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


我正在创建一个插件,为此,我已经成功连接了di和ui api。 我正在通过代码手动创建所有内容(表单,按钮,文本框等)以进行学习,因为这是我的第一个。 当我调试时,我可以看到我创建的所有字段的表单。 这是表单创建的代码。

 SAPbouiCOM.FormCreationParams oCreationParams = null;
       oCreationParams =(((SAPbouiCOM.FormCreationParams(SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_FormCreationParams))));;
       oCreationParams.BorderStyle = SAPbouiCOM.BoFormBorderStyle.fbs_Fixed;
       oCreationParams.UniqueID =" Form2";
       oForm = SBO_Application.Forms.AddEx(oCreationParams);
       oForm.Title ="简单表单";
       oForm.Left = 417;
       oForm.Top = 520;
       oForm.ClientHeight = 610;
       oForm.ClientWidth = 770;
 这是我创建按钮的方式
      SAPbouiCOM.Button oButton = null;
      oItem = oForm.Items.Add(" Button1",SAPbouiCOM.BoFormItemTypes.it_BUTTON);
      oItem.Left = 6;
      oItem.Width = 65;
      oItem.Top = 51;
      oItem.Height = 19;
      oItem.Enabled = true;
      oButton =(((SAPbouiCOM.Button)(oItem.Specific));
      oButton.Caption ="添加"; 

问题是当我尝试在按钮单击事件中添加数据库中文本框的值时,我无法生成按钮单击事件。

据我所知,当我们从工具箱创建按钮并使用系统形式时,它会自动将按钮初始化为InitializeComponent()函数,并还会创建一个指向按钮单击事件的委托。

我可以知道如何通过代码实现所有这些目标。 我尝试通过我的手动代码初始化按钮,还创建了指向按钮单击功能的委托,但我无法实现结果。

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

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


我正在创建一个插件,为此,我已经成功连接了di和ui api。 我正在通过代码手动创建所有内容(表单,按钮,文本框等)以进行学习,因为这是我的第一个。 当我调试时,我可以看到我创建的所有字段的表单。 这是表单创建的代码。

 SAPbouiCOM.FormCreationParams oCreationParams = null;
       oCreationParams =(((SAPbouiCOM.FormCreationParams(SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_FormCreationParams))));;
       oCreationParams.BorderStyle = SAPbouiCOM.BoFormBorderStyle.fbs_Fixed;
       oCreationParams.UniqueID =" Form2";
       oForm = SBO_Application.Forms.AddEx(oCreationParams);
       oForm.Title ="简单表单";
       oForm.Left = 417;
       oForm.Top = 520;
       oForm.ClientHeight = 610;
       oForm.ClientWidth = 770;
 这是我创建按钮的方式
      SAPbouiCOM.Button oButton = null;
      oItem = oForm.Items.Add(" Button1",SAPbouiCOM.BoFormItemTypes.it_BUTTON);
      oItem.Left = 6;
      oItem.Width = 65;
      oItem.Top = 51;
      oItem.Height = 19;
      oItem.Enabled = true;
      oButton =(((SAPbouiCOM.Button)(oItem.Specific));
      oButton.Caption ="添加"; 

问题是当我尝试在按钮单击事件中添加数据库中文本框的值时,我无法生成按钮单击事件。

据我所知,当我们从工具箱创建按钮并使用系统形式时,它会自动将按钮初始化为InitializeComponent()函数,并还会创建一个指向按钮单击事件的委托。

我可以知道如何通过代码实现所有这些目标。 我尝试通过我的手动代码初始化按钮,还创建了指向按钮单击功能的委托,但我无法实现结果。

付费偷看设置
发送
4条回答
灬番茄
1楼 · 2020-09-18 03:37.采纳回答

嗨,拉努·维杰,

要处理用户定义表单的点击事件,需要在表单中创建" SBO_Application_ItemEvent"事件。

找到以下示例代码:

//用户定义的表单按钮单击事件(SBO_Application_ItemEvent)

 public void SBO_Application_ItemEvent(字符串FormUID,参考SAPbouiCOM.ItemEvent pVal,bool BubbleEvent)
   {
     BubbleEvent = true;
     如果((((pVal.ItemUID ==" Button1")&(pVal.EventType == SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED)&(pVal.Before_Action == false)))
       {
      SBO_Application.MessageBox("单击按钮...!",1,"确定","","");
       AddFormDetails(); //在这里您可以编写业务逻辑
       }
    } 

并且在program.cs页面中需要添加以下行

 var SimpleForm = new SimpleForm();
 Application.SBO_Application.ItemEvent + =新的SAPbouiCOM._IApplicationEvents_ItemEventEventHandler(SimpleForm.SBO_Application_ItemEvent); 

希望上面的代码对您有所帮助。

谢谢

Chenna。

宇峰科技
2楼-- · 2020-09-18 03:46

不客气,拉努·维杰(Ranu Vijay)

此致

Chenna

nice_wp
3楼-- · 2020-09-18 03:32

您好 Ranu Vijay

创建表格很好。 您可以共享用于处理事件的代码吗?

还要确认事件 et_Item_Pressed 是否正在执行?

问候,

ANKIT CHAUHAN

SAP Business One支持

梦想连接
4楼-- · 2020-09-18 03:41

Hi Ankit

作为一个学习者,我感到困惑。在很多方面,我也尝试过Chenna先生的讲解方式,但不知何故我错过了一些东西。 如果您能再解决我的问题

 SAPbobsCOM.BusinessPartners oBp = null;
 oBp = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oBusinessPartners);
 oBp.CardCode = 

现在,这里CardCode应该是我在上面的示例中手动创建的TextBox值。

您能指导一下吗?

谢谢

Ranu Vijay

一周热门 更多>