Zeile in Matrix löschen
Jacqueline Wutke
Hallo,ich habe bereits eine Funktion welche im Kundenauftrag alle Zeilen durchläuft und bei den Zeilen, wo die Menge Auf Lager kleiner 100 ist den Wert 5 in die Spalte Menge schreibt.
Das funktioniert soweit auch super.
Hier der Code:
Matrix m = Matrix.GetFromUID(pVal.Form, "38");
for (int i = 0; i < m.Rows.Count-1; i++)
{
string w = m.GetValue("33", i);
double d = 0;
w = w.Replace(".", ",");
d = double.Parse(w);
if ( d < 100 )
{
m.SetValue("11",i,"5");
}
}
Nun möchte ich jedoch, dass nicht mehr der Wert 5 in die Spalte Menge geschrieben wird, sondern die Zeile gelöscht wird.
Dazu habe ich die Zeile
m.SetValue("11",i,"5");
gegen folgende getauscht:
m.Rows.Delete(i);
Nun wird jedoch einfach die erste Zeile gelöscht anstatt der Zeile auf die die Bedingung zutrifft.
Was mache ich hier falsch?
Danke und Gruß
Jacqueline
Michael Egloff
Hallo Jaqueline,bitte poste doch gleiche Beiträge in den gleichen Thread, damit wir alle Informationen zum gleichen Thema am selben Ort haben.
Hier eine Lösung zum löschen von Zeilen mit der Menge '-1' (ich konnte bei mir keine Zeilen mit Menge '0' anlegen)
try
{
// GET LIST
Matrix m = Matrix.GetFromUID(pVal.Form, "38");
// STEP TROUGH LIST
for(int i=0; i{
// GET QUANTITY
string quantityString = m.GetValue("11",i);
double quantity = double.Parse(quantityString);
// CHECK QUANTITY
if(quantity == -1)
{
// CLICK IN CURRENT ROW
m.Columns["1"].Cells.Click( MatrixColumn.ClickTypes.Regular, MatrixColumn.Modifier.None);
// DELETE CURRENT ROW
MenuItem.GetFromUID("1293").Activate();
// SET CURSOR BACK WHEN ROW IS DELETED
i--;
}
}
}
catch(System.Exception ex)
{
MessageBox.Show("Feeehler: " + ex.Message, "OK");
}
Habe es zuerst auch mit
m.Rows.Delete(i);
versucht, klappt aber nicht (gibt Fehlermeldung, dass Tabelle schon von jemand anderem bearbeitet wurde...).
Viel Erfolg!
0
Please sign in to leave a comment.
Comments
0 comments