Mal wieder UDF - Werte einlesen
Thomas Faust
Hallo Zusammen,
wie schon viele vor mir (auch ich selber ^_^ ) in diesem Forum habe ich wieder einmal das Problem, dass ich einen Wert nicht aus einem UDF (ComboBox oder TextEdit ist egal)
ausgelesen bekomme.
Ich versuche mit folgenden Zeilen einen Wert aus dem UDF mit der ItemUID 'U_FK' auf der UDFForm des BusinessPartners auszulesen und in einer MessageBox wiederzugeben:
try
{
string Incoterm = ComboBox.GetFromUID(pVal.Form.UDFForm, "U_FK").Selected.Value.ToString();
MessageBox.Show(Incoterm, "OK");
return true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "ok");
return false;
}
Diese Regel crasht mit der Fehlermeldung, dass dieser Item auf der Form 'F_16' nicht verfügbar sei, was auch richtig ist, denn die Form ist ja '-134'.
Folgende Fehlermeldung kommt hoch:
Item - Invalid item [66000-3]. Form Unique Id: 'F_16', Item Unique Id: 'U_FK'
Jetzt meine Frage:
Wie kommt es zu dieser Form?
Der Event, auf den diese Regel reagiert ist 'ValueChanged' auf Form '-134'
Da die Regel ausgeführt wird scheint die grundsätzliche Annahme es handele sich um die UDFForm des BusinessPartners (-134) richtig zu sein.
Kann mir jemand helfen und mir sagen,was ich mit diesen blöden UDF's falsch mache?
Herzlichen Dank und viele Grüße
Thomas
alpha
Hallo,
Business One verwendet anscheinend andere UIDs als coresuite.
Bei mir hat jedenfalls folgendes funktioniert (coresuite 3.50):
try
{
// UID des Fensters ermitteln
string corFormUID = SwissAddonFramework.B1Connector.GetB1Connector().Application.Forms.ActiveForm.UniqueID;
// ... oder, wenn der Event auf den GP-Stammdaten (Form 134) definiert ist:
//string corFormUID = SwissAddonFramework.B1Connector.GetB1Connector().Application.Forms.ActiveForm.UDFFormUID;
// Entsprechendes Formular festlegen
SwissAddonFramework.UI.Components.Form corForm = SwissAddonFramework.UI.Components.Form.GetFormFromUID(corFormUID);
// Textfeld in dem Formular
SwissAddonFramework.UI.Components.TextEdit UDF = SwissAddonFramework.UI.Components.TextEdit.GetFromUID(corForm, "U_FK");
// Wert anzeigen
MessageBox.Show(UDF.Value, "OK");
return true;
}
catch (Exception e)
{
MessageBox.Show(e.Message, "OK");
return false;
}
Vielleicht gibt es aber auch noch eine einfachere Lösung...
Thomas Faust
Hallo alpha,
Sorry, dass ich erst jetzt antworte, ich war hier eine Zeit nicht unterwegs.
Der Vorschlag funktioniert super!
Herzlichen Dank für diesen Workaround.
Viele Grüße
Thomas
Please sign in to leave a comment.
Comments
0 comments