UDF-Feldwert beim Speichern setzen / überschreiben
Tobias Wissen
Hallo,ich steh gerade etwas derbe auf dem Schlauch....
Ich möchte gerne, dass ein UDF-Feld beim Speichern einen bestimmten Wert (festen Wert) gespeichert wird. Aber nur beim erzeugen nicht beim aktualisieren.
Wie bekomme ich das am besten hin?
Danke
Manuel Marhold
Hi Tobias,welches Event fänst du ab?
In welchem Fenster bist du?
Tobias Wissen
Also es soll hauptsächlich bei Rechnungen (Form 133) sein, aber auch noch bei anderen Verkaufsbelegen.Als Event habe ich 33 - FormAddData genommen.
Manuel Marhold
Hi Tobias,das FormDataAdd wird nur beim hinzufügen, nicht bei Aktualisierungen aufgerufen.
Dann kannst du über
Dim oInvoice As SAPBobsCom.Documents = oCompany.GetBusinessObject(oInvoices)
oInvoice.GetByKey(_DocEntry_)
oInvoice.UserFields.Item(_FieldName_).ValueEx=...
If oInvoice.Update()<>0 Then
MsgBox(oCompany.GetLastErrorDescription)
End If
dein Feld speichern.
_DocEntry_ und _FieldName_ ersetzen
_DocEntry_ bekomsmt du aus BusinessObject.ObjectKey, dazu habe ich hier im Forum auch was geschrieben
Michael Egloff
Hallo Tobias,genau, du kannst den FormDataAdd Event nehmen, wenn du nur beim Hinzufügen reagieren willst (ich glaube, Manuel hat dich da falsch verstanden, oder?).
Wenn du den Haken bei "BevorEvent" anklickst, kannst du deinen Fixwert einfach ins Feld hineinschreiben
TextEdit.GetFromUID(pVal.Form.UDFForm, "DeinUDF").Value = "DeinFixerWert";
Gruss,
Michael
Manuel Marhold
Hi Michael,[quote]"syncmasta"][...]Aber nur beim erzeugen nicht beim aktualisieren.[...][/quote]
daraus verstehe ich, dass es nur beim Hinzufügen sein soll...
Und dein Weg ist nat. besser..
Tobias Wissen
okay. Jetzt geb ich irgendwie echt auf.Hat jemand nen BestPractise, nen komplett fertigen SourceCode oder eine detaillierte Anleitung für dieses Problem für mich?
Wäre super.
Danke für die Hilfe.
Sascha Balke
Hallo Tobias,kleines Beispiel:
try
{
string GPCode= TextEdit.GetFromUID(pVal.Form, "4").Value;
// Wenn du via New Item das UDF auf die Hauptform geholt hast
TextEdit.GetFromUID(pVal.Form, "").Value = GPCode;
//Ansonsten hat Michael schon geschrieben was du machen musst.
}
catch(System.Exception exe)
{
MessageBox.Show("Unexpected error while setting the udf : " + exe.Message, "OK");
return false;
}
return true;
Damit wird der GP-Code in dein UDF geschrieben.
Typ: CSCODE
Aktion: Change_Values
FormTyp: (Deine Form)
Event Typ: FormDataAdd
Bevor Event: Yes
Probiere es mal damit und bei Fragen melde dich einfach wieder.
hth
Tobias Wissen
Moin Sascha,danke für deine Hilfe. Soweit hab ich es auch hinbekommen.
Hab aber nur noch ein Problem. Bei dem UDF Feld handelt es sich um ein Drop-Down auswahlfeld und kein Textfeld.
Sorry, hätte ich auch eher schreiben können.
Wie bildet man das ab?!
Sascha Balke
Hallo Tobias,die Suche hilft Anregungen / Beispiele zu finden ;)
Kleiner Auszug:
http://www.coresystems.ch/forum.html?&L=ibnrmunsrywembv&tx_mmforum_pi1[action]=list_post&tx_mmforum_pi1[tid]=4091&tx_mmforum_pi1[page]=1&tx_mmforum_pi1[sword]=combobox#pid14928
http://www.coresystems.ch/forum.html?&L=ibnrmunsrywembv&tx_mmforum_pi1[action]=list_post&tx_mmforum_pi1[tid]=3679&tx_mmforum_pi1[page]=1&tx_mmforum_pi1[sword]=combobox#pid13262
http://www.coresystems.ch/forum.html?&L=ibnrmunsrywembv&tx_mmforum_pi1[action]=list_post&tx_mmforum_pi1[tid]=2999&tx_mmforum_pi1[page]=1&tx_mmforum_pi1[sword]=combobox#pid10751
hth
Tobias Wissen
Danke für die Hilfe. Problem gelöst.
0
Please sign in to leave a comment.
Comments
0 comments