Ошибка C #: NullReferenceException не было обработано кодом пользователя - PullRequest
0 голосов
/ 24 ноября 2011

Я разрабатываю надбавку к заработной плате для бизнеса SAP 1. У меня появляется ошибка: "NullReferenceException was unhandled by user code :Object reference not set to an instance of an object." Когда я пытаюсь выбрать элемент комбинированного списка, который встроен в ячейку столбца матрицы SAP.

Мой код:

<code>
public void HandleMenuEvent(ref SAPbouiCOM.MenuEvent pVal)
{
   // Handle Add Menu
   if (pVal.MenuUID == "1282")
   {
       _form.Freeze(true);
       oMatrix.AddRow();
       _edCode.ValueEx = string.Empty;
       _cmbEDDescription = oMatrix.Columns.Item("EDDesc").Cells.Item(oMatrix.RowCount).Specific;

       var earnDeductDescription = Program.Kernel.Get().GetAllEarnDeductMasters().Distinct();

       if (_cmbEDDescription.ValidValues.Count > 0)
       {
           // Do nothing
       }
       else
       {
           foreach (var item in earnDeductDescription)
           {
               _cmbEDDescription.ValidValues.Add(item.U_PD_description, string.Empty);
           }
       }

       _cmbEDDescription.Select(0, SAPbouiCOM.BoSearchKey.psk_Index);

       var edDescValue = string.Empty;

       edDescValue = _cmbEDDescription.Value;

       var edCode = earnDeductDescription.Where(x => x.U_PD_description.Trim() == edDescValue.Trim()).Select(y => y.U_PD_code).SingleOrDefault();

       for (int i = 1; i 

Произошла ошибка при изменении элемента события

#region ItemChanged
if (pVal.ItemChanged && pVal.ColUID == "EDDesc" && pVal.Before_Action == false)
{
    var earnDeductDescription = Program.Kernel.Get().GetAllEarnDeductMasters().Distinct();

    var edDescValue = string.Empty;

    edDescValue = _cmbEDDescription.Selected.Value;    x.U_PD_description.Trim() == edDescValue.Trim()).Select(y => y.U_PD_code).SingleOrDefault();

    for (int i = 1; i 

Здесь я присоединяю источник данных пользователя к столбцу SAP

private void BindMatrixToUserDataSource()
{
    // Get main matrix
    oItem = _form.Items.Item("JournalMat");
    oMatrix = oItem.Specific;

    _edDescription = _form.DataSources.UserDataSources.Add("EDDesc", SAPbouiCOM.BoDataType.dt_SHORT_TEXT, 30);
    oColumns = oMatrix.Columns;
    _coledDescription = oColumns.Item("EDDesc");
    _coledDescription.DataBind.SetBound(true, "", "EDDesc");

    ...some code
}
</code>

Может кто-нибудь помочь мне решить эту проблему?

1 Ответ

1 голос
/ 24 ноября 2011

Мое предложение состоит в том, что _cmbEDDescription.Selected является нулевым в этот момент, потому что ни один элемент не выбран в ComboBox.Вы можете изменить свой код так:

var edDescValue = _cmbEDDescription.Selected == null ? string.Empty : _cmbEDDescription.Selected.Value; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...