Fehler beim Speichern nach Zeilenlöschung

Thomas Faust

Hallo Zusammen,


ich habe ein Problem beim Speichern eines Kundenauftrages nachdem ich die Zeilen durch eine Optimizer Regel modifiziert habe:


 


In Abhängigkeit von der eingegebenen Menge soll bei unterschreiten einer Mindestverkaufsmenge eine Zeile mit einem Mindermengenzuschlag


eingefügt werden. Das funktioniert auch einwandfrei.


Wenn im Verlauf der Auftragsbearbeitung die Menge erhöht wird, und die Mindestverkaufsmenge erreicht wird, dann soll die Zeile mit dem MMZ natürlich auch wieder verschwinden.


Auch das funktioniert in der Matrix auf der Form.


 


Soll der Datensatz in diesem Fall gespeichert werden, kommt es zu dem untenstehenden Fehler:


 



 


Daten wurden durch einen anderen Benutzer oder eine andere Operation modifiziert ... 



 


Der Datensatz wird dann nicht gespeichert.


 


Hier ist de Quelltext der Regel:



StatusBar.WriteWarning("DEBUG - Rule: " + pVal.RuleInfo.RuleName + " was triggered.");
Matrix KA_Zeile = Matrix.GetFromUID(pVal.Form, "38");
string ItemCode = KA_Zeile.GetValue("1", pVal.Row - 1);
double Menge = Convert.ToDouble(KA_Zeile.GetValue("11", pVal.Row - 1).Replace('.',','));
double MinSalQty = Convert.ToDouble(LayoutHelper.LD.QueryData(string.Format("Select U_MinSalesQty from OITM Where ItemCode='{0}'", ItemCode)).Replace('.', ','));
pVal.Form.Freeze(true);
if (Menge < MinSalQty)
{
//KA_Zeile.Rows.Add(pVal.Row, 1);
KA_Zeile.Columns["1"].Cells[pVal.Row].Click(SwissAddonFramework.UI.Components.MatrixColumn.ClickTypes.Regular,SwissAddonFramework.UI.Components.MatrixColumn.Modifier.None);
string MMZ = (LayoutHelper.LD.QueryData(string.Format("Select U_MMZ from OITM Where ItemCode='{0}'", ItemCode)));
KA_Zeile.Rows.Add(pVal.Row,1);
KA_Zeile.SetValue("1", pVal.Row, MMZ);
KA_Zeile.SetValue("U_RefItem", pVal.Row, ItemCode);

}
else
{
if (KA_Zeile.GetValue("1", pVal.Row).Substring(0, 3) == "MMZ")
{
KA_Zeile.Rows.Delete(pVal.Row+1);
pVal.Form.Update();
}
}
pVal.Form.Freeze(false);



Der Fehler tritt nur dann auf, wenn die Zeile mit dem MMZ durch die Regel gelöscht wurde.


 


Wenn ich die Vorgänge manuell durchführe (Rechte Maustaste Zeile löschen etc.) dann funktioniert es einwandfrei.


 


Hat jemand eine Idee, woran es liegen könnte?


 


Ich bin für jede Hilfe dankbar.


Viele Grüße


Thomas 



 


Thomas Faust

Ich denke, dass es mit dem Löschen in der Form zusammenhängt.Es wird auch die Zeilennummer nicht korrekt neu gesetzt.


Ich denke, dass ich den Datensatz in der DBDATASOURCE löschen muss und nicht in der Matrix direkt.

Thomas Faust

Ich konnte das Problem lösen.


Im Ablauf rufe ich das Deletemenu auf und alles passt  :rolleyes:

0

Comments

0 comments

Please sign in to leave a comment.

Didn't find what you were looking for?

New post