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:
Please sign in to leave a comment.
Comments
0 comments