0

I am trying to set values in a matrix combobox but I cannot be able to set the first value of date to that combobox. It shows blank and when I select a date, it does not fill the field anyway.

enter image description here

The values I get from the DB are as follows:

enter image description here

Here is my code below including binding the combobox field to a userdatasource:

_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");

The below code runs when there is a lost focus change event to the item selection field:

#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

What could be wrong. Is there a better way to achieve what I need in SAP B1?

Kinyanjui Kamau
  • 1,890
  • 10
  • 55
  • 95

1 Answers1

1

as a test try a different data type for your:

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

test it with: SAPbouiCOM.BoDataType.dt_LONG_TEXT

you can also try just selecting the value on the combo, instead of setting uds as well.

Praxiom
  • 578
  • 1
  • 8
  • 21