Je développe un module de paie pour l'activité SAP 1. Je reçois toujours une erreur: "NullReferenceException was unhandled by user code :Object reference not set to an instance of an object."
Lorsque j'essaie de sélectionner un élément de liste déroulante incorporé dans une cellule de colonne SAP SAP .C# Erreur: NullReferenceException n'a pas été gérée par le code utilisateur
Mon 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
L'erreur se produit sur l'élément événement changé
#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
C'est là que j'attache une source de données d'utilisateur à la colonne 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
}
Quelqu'un peut-il m'aider à résoudre ce problème?
Soit '_cmbEDDescription' est' null', soit '_cmbEDDescription.Selected' est. Parcourez le code pour savoir lequel et pourquoi. –
Mis à part le problème que vous rencontrez, il semble * que vous ne soyez pas sûr de ce que veut dire 'ref', étant donné que vous ne l'utilisez pas vraiment * dans votre première méthode. S'il vous plaît lire http://pobox.com/~skeet/csharp/parameters.html –
Merci Jon Skeet, comme toujours, vous êtes utile. Excellent article. –