1

我们使用他们的 SDK 为 SAP 开发应用程序。SAP 提供了一个 SDK,用于更改和处理用户界面中发生的事件。

例如,使用此 SDK,我们可以捕获按钮的点击并在点击时执行某些操作。这种编程可以用 VB 或 C# 完成。

这也可用于在预先存在的表单上创建新字段。我们开发了一个特定的应用程序,它允许用户将新字段所需的定义存储在数据库表中,并且这些字段是在运行时创建的。

到目前为止,这很好。我们现在需要的是用户应该能够将字段的验证码存储在数据库中,并且应该在运行时执行相同的操作。

以下是此类事件的示例:

Private Sub SBO_Application_ItemEvent(ByVal FormUID As String, ByRef pVal As SAPbouiCOM.ItemEvent, ByRef BubbleEvent As Boolean) Handles SBO_Application.ItemEvent
    Dim oForm As SAPbouiCOM.Form
    If pVal.FormTypeEx = "ACC_QPLAN" Then
        If pVal.EventType = SAPbouiCOM.BoEventTypes.et_LOST_FOCUS And pVal.BeforeAction = False Then
            oProdRec.ItemPressEvent(pVal)
        End If
    End If
End Sub

Public Sub ItemPressEvent(ByRef pVal As SAPbouiCOM.ItemEvent)
    Dim oForm As SAPbouiCOM.Form

    oForm = oSuyash.SBO_Application.Forms.GetForm(pVal.FormTypeEx, pVal.FormTypeCount)
    If pVal.EventType = SAPbouiCOM.BoEventTypes.et_LOST_FOCUS And pVal.BeforeAction = False Then
        If pVal.ItemUID = "AC_TXT5" Then
            Dim CardCode, ItemCode As String

            ItemCode = oForm.Items.Item("AC_TXT2").Specific.Value
            CardCode = oForm.Items.Item("AC_TXT0").Specific.Value

            UpdateQty(oForm, CardCode, ItemCode)
        End If
    End If
End Sub

因此,在这种情况下,我们需要将 ItemPressEvent 中给出的代码存储在数据库中,并在运行时执行。

我知道这不是直截了当的事情。但我认为必须有一些方法可以完成这些事情。

SDK 由 COM 组件组成。

谢谢和问候, 拉胡尔耆那教

4

3 回答 3

0

我自己没有这样做,但我认为您将不得不实际使用这些Systems.Runtime.CompilerServices函数来动态编译程序集,然后将其链接。如果您使用 SQL Server,另一个解决方案可能是利用以下事实:您可以在存储过程中编写 C# 或 VB.NET 代码。这可能是一种方式。

于 2011-02-07T06:02:29.220 回答
0
Dim sqlstring1 As String = "Blah Blah Blah SQL here"
Dim Rs SAPbobsCOM.Recordset
Rs = GetDIConnection.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
rs.doquery(SqlString1)
于 2014-04-10T15:35:07.313 回答
-1

您可以动态创建代码并编译它..

有一些简单的接口来调用验证代码,并在所有动态代码中实现接口。这样,您可以动态加载程序集并将类作为接口并直接使用该接口。

于 2011-12-05T04:14:20.430 回答