Matrixfeld Quantity aktualisieren

Andreas Eugster

Hallo zusammen

Ich 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 - int
wenn ich int_SMenge in double ändere funktionierts.

Gruss
Andreas Eugster
0

Comments

0 comments

Please sign in to leave a comment.

Didn't find what you were looking for?

New post