1

SAP の 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 に答える