Matrix的SAP Business One自动行编号

时间:2012-09-14 06:56:22

标签: c# matrix sap sapb1

我正在为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;

1 个答案:

答案 0 :(得分:1)

为了获得“V_-1”栏中的数字,只需

  1. 我们可以将矩阵绑定到表格并将行ID列链接到“V_-1”列
  2. 我们可以使用DBDataSource将矩阵绑定到表并将“V_-1”链接到矩阵列
  3. 但是,如果我们需要在删除行后仍然需要维护序列号,我们需要在动作事件后的表单加载中将数据加载到矩阵中后编写单独的代码。

    示例伪代码:

    for i as integer = 1 to matrix.rowcount
        matrix.columns.itm(V_-1).item().cells(i)=i
    next