0

SAP B1 8.82 のアドオンを作成しています。マトリックスの列「#」、つまり UID「V_-1」の自動行番号付けが必要です。これを行うのに役立つ 8.82 の機能はありますか?

マトリックスに UserDataSource を使用しています。行を追加/削除したときに自動的に更新される行番号を取得するにはどうすればよいですか?

行番号を手動で追加するためにメニュー イベント 1292 に以下を追加しましたが、行の削除では機能しません - メニュー イベント 1293。 (C# を使用)

case "1292"://Add Matrix Row
                    _form.Freeze(true);
                    _form.DataSources.UserDataSources.Item("itemNo").Value = "";
                    _form.DataSources.UserDataSources.Item("itemDesc").Value = "";
                    _form.DataSources.UserDataSources.Item("quantity").Value = "";
                    _form.DataSources.UserDataSources.Item("warehouse").Value = "";
                    _form.DataSources.UserDataSources.Item("distrRule").Value = "";
                    _form.DataSources.UserDataSources.Item("project").Value = "";
                    oMatrixItem.AddRow();

                    // row numbering   
                    int i = 1;
                    int j = 0;
                    j = oMatrixItem.RowCount;

                    while (j >= i)
                    {
                        oMatrixItem.Columns.Item("V_-1").Cells.Item(i).Specific.Value = i.ToString();
                        i = i + 1;
                    }

                    _form.Freeze(false);
                    break;
4

1 に答える 1

1

「V_-1」列の数字を単純に取得するには

  1. マトリックスをテーブルにバインドし、行 ID 列を「V_-1」列にリンクできます
  2. DBDataSource を使用してマトリックスをテーブルにバインドし、「V_-1」をマトリックス列にリンクできます

ただし、行を削除した後でもシリアル番号を維持する必要がある場合は、アクション イベント後のフォーム ロードでデータをマトリックスにロードした後に別のコードを記述する必要があります。

サンプル擬似コード:

for i as integer = 1 to matrix.rowcount
    matrix.columns.itm(V_-1).item().cells(i)=i
next
于 2013-05-25T11:13:30.007 に答える