0

我正在尝试在矩阵组合框中设置值,但我无法将日期的第一个值设置为该组合框。它显示为空白,当我选择一个日期时,它无论如何都不会填写该字段。

在此处输入图像描述

我从数据库中得到的值如下:

在此处输入图像描述

下面是我的代码,包括将组合框字段绑定到用户数据源:

_expDate = _form.DataSources.UserDataSources.Add("iV_15", SAPbouiCOM.BoDataType.dt_DATE, 100);
oIColumns = oIMatrix.Columns;
_colExpDate = oIColumns.Item("iV_15");
_colExpDate.DataBind.SetBound(true, "", "iV_15");

当项目选择字段丢失焦点更改事件时,将运行以下代码:

#region Item Change Event Expiry dates
_cmbExpDate = (SAPbouiCOM.ComboBox)oIMatrix.Columns.Item("iV_15").Cells.Item(pVal.Row).Specific;

int count = _cmbExpDate.ValidValues.Count;

if (count > 0)
{
    _expDate.ValueEx = "";
    for (int j = 0; j <= count - 1; j++)
        _cmbExpDate.ValidValues.Remove(0, SAPbouiCOM.BoSearchKey.psk_Index);
}

var expDates = (from oi in _db.OITMs
                join ob in _db.OBTNs
                on oi.ItemCode equals ob.ItemCode
                where ob.ItemCode == _itemNo.ValueEx && oi.OnHand > 0
                orderby ob.ExpDate
                select new
                {
                    ExpDate = ob.ExpDate
                }).Distinct().ToList();

if (expDates.Count > 0)
{
    foreach (var item in expDates)
        _cmbExpDate.ValidValues.Add(item.ExpDate?.ToString(), item.ExpDate?.ToString());
                               
    _cmbExpDate.Select(0, SAPbouiCOM.BoSearchKey.psk_Index);
    _expDate.ValueEx = _cmbExpDate.Value;
}
#endregion

有什么问题。有没有更好的方法来实现我在 SAP B1 中的需要?

4

1 回答 1

0

作为测试,为您尝试不同的数据类型:

_expDate = _form.DataSources.UserDataSources.Add("iV_15", SAPbouiCOM.BoDataType.dt_DATE, 100);

测试它:SAPbouiCOM.BoDataType.dt_LONG_TEXT

您也可以尝试仅选择组合上的值,而不是设置 uds。

于 2022-02-24T08:18:21.993 回答