Matrixfeld Quantity aktualisieren
Andreas Eugster
Hallo zusammenIch möchte im Wareneingang in der Matrix vom UserFeld die Zahl nehmen diese mit dem Inhalt des QuantityFelds addieren und dann in's QuantityFeld schreiben.
Ich habe dazu folgenden Code:
Matrix m = Matrix.GetFromUID(pVal.Form, "38");
int MatrixRow = pVal.Row;
int int_SMenge = 0;
int_SMenge = Convert.ToInt32(m.GetValue("U_XXSMenge",MatrixRow));
double Temp = Convert.ToDouble(m.GetValue("11",MatrixRow));
string Result = Convert.ToString(Temp+int_SMenge);
m.SetValue("11",MatrixRow,Result);
return true;
Wenn ich das aber ausführe bekomm ich folgenden Fehler:
Input string was not in a correct format.
Was ist falsch?
Gruss
Andreas Eugster
Michael Egloff
Hallo,bei den Matrizen musst du vorsichtig sein. Der Wert pVal.Row gibt dir die aktuelle Zeile zurück (wie die Nummerierung vorne), jedoch zählt SAP intern die Zeilen von Null beginnend. Das heisst, dass du beim schreiben und lesen von Zellen bei den Zeilen eins abzählen musst.
Etwa so:
int MatrixRow = pVal.Row - 1;
Deshalb gibts wohl ein Konvertierungsfehler (weil auf der aktuellen Zeile gar nichts steht).
Hoffe, das hilft weiter!
Andreas Eugster
Das hab ich bereits versucht. Leider bekomm ich die selbe Fehlermeldung.Code jetzt:
Matrix m = Matrix.GetFromUID(pVal.Form, "38");
int MatrixRow = pVal.Row-1;
int int_SMenge = 0;
int_SMenge = Convert.ToInt32(m.GetValue("U_XXSMenge",MatrixRow));
double Temp = Convert.ToDouble(m.GetValue("11",MatrixRow));
string Result = Convert.ToString(Temp+int_SMenge);
m.SetValue("11",MatrixRow,Result);
return true;
Hätten Sie sonst noch eine Idee was falsch ist? Könnte es sein, dass es ein ReadOnly - Feld ist?
Uwe Hartung
Hallo,bisher habe ich noch recht wenig (bis keine Erfahrung) mit dem Field Optimizer gemacht.
Bei Verwendung von FS und SQL musste ich bei Verarbeitung von Mengenfeldern öffters eine Konvertierung von Komma zu Punkt (und später umgekehrt) vornehmen, z.B.:
Cast(Replace(Cast(SMenge As Char(20), ',', '.')) As Numeric(19,6))
Vielleicht hilft das ja weiter.
Andreas Eugster
mein code ist in C#. und warum soll ich eine Konvertierung von Komma in Punkt machen? es sind alles Zahlenwerte und so können nur Punke vorkommen.Andreas Eugster
Fehler gefunden. Ich rechne double - intwenn ich int_SMenge in double ändere funktionierts.
Gruss
Andreas Eugster
0
Please sign in to leave a comment.
Comments
0 comments