Benutzerdefiniertes Feld auslesen
Spaxa
Hallo zusammen,ich bin neu hier im Forum und auch neu was das Thema CoreSuite Customize angeht.
Nachdem ich mittlerweile für unsere Firma ein entsprechendes Formular für die Belege erstellt habe, habe ich mich diesmal mit dem Thema benutzerdefiniere Felder auseinandergesetzt.
Im ersten Schritt habe ich unter Extras --> Benutzerdefiniete Felder neue Felder mit entsprechenden Titeln für den Artikelstamm angelegt.
Als nächstes wollte ich den Wert über eine Optimizer-CSCODE Funktion auslesen (anzeigen) und evtl. auch ändern lassen. Leider bekomme ich das nicht wirklich hin.
Ich denke es müsste entweder etwas mit der Form-Type-Id oder die ITEM-UID zu tun haben.
Die Form-Id wird als "-150" angegeben (=Benutzderdefiniere Felder vom Artikelstamm???)
Die Item-UID wird mit unten als U_Zeichnungsnummer angegeben
Code:
1.Strig Test="TEST"
2. Test = TextEdit.GetFromUID(pVal.Form, "U_Zeichnungsnummer").Value;
3. MessageBox.Show(Test, "OK");
Sobald ich die 2. einfüge, wird die MessageBox gleich komplett übersprungen.
Hat jemand einen Tip für mich wo der Fehler liegen könnte ???
Danke schon mal
Spaxa
Sebastian Schweer
Hallo Spaxa,die MessageBox wird dir nicht angezeigt, wenn der Wert der MessageBox leer ist.
Versuch mal folgendes:
MessageBox.Show("Test: " + Test, "ok");
Dann siehst du die MessageBox auf jeden Fall und auch ob und welcher Wert dahinter steht
Viele Grüße,
Sebastian
Spaxa
Hallo Sebastian,danke schon mal für die Antwort.
Ich habe mich am Wochenende weiterhin etwas damit beschäftigt und unter anderem auch festgestellt, dass ich mich in meiner Frage noch etwas ungenau ausgedrückt habe :-)
Das mit der MessageBox habe ich dann hinbekommen...
Mein Problem ist, dass ich den während des Anlegen eines neuen Artikels eingegebenen Wert aus dem benutzerdefiniertem Feld nicht ausgelesen bekomme.
Ich versuche den Wert des Eingabefelds mit "TextEdit.GetFromUID(pVal.Form, "U_Zeichnungsnummer").Value" auszulesen.
(In der Zeile Systeminformationen steht folgendes: Form=-150 Item=U_Zeichungsnummer Pane=0-2 Variable=1 OITM,U_Zeichnungsnummer
Gibts dazu evtl. noch einen Tipp ???
Grüße
Spaxa
Sebastian Schweer
Hallo Spaxa,was versuchst du denn genau? Versuchst du ein Item/Artikel per Code anzulegen?
Oder möchtest du, dass wenn du ein Item/Artikel anlegst, ein UDF von ganz woanders, z.B. von den Business Partnern ausgelesen wird?
Du hast übrigens prinzipiell auch immer noch die Möglichkeit, die Wert die du brauchst über eine Datenbankabfrage zu ermitteln ;)
Viele Grüße,
Sebastian
Spaxa
Hallo Sebastian,also im Detail versuche ich die Zeichnungsnummer automatisiert zu vergeben wenn der neue Artikel angelegt wird.
Ich habe bereits eine Abfrage welche mir die aktuell höchste Zeichnungsnummer per SQL-Abfrage aus der Datenbank ausließt.
Nun möchte ich, dass sobald der Benutzer auf "Hinzufügen" klickt die neue Zeichnungsnummer in das Textfeld schreiben und ggf. einen fälschlicherweise eingegeben Wert ersetzen.
Grüße
Spaxa
Sebastian Schweer
Ah, ok. Jetzt verstehe ich was du willst.Ich meine mich auch zu erinnern, dass die UDFs auf der Form immer ein Minus davor haben, und so nicht direkt zugegriffen werden können.
Du könntest jedoch per Optimizer Regel ein Textfeld auf der Form anbringen und dieses mit dem UDF Verknüpfen. Dann kannst du es auch auslesen und Werte rein schreiben. Das Textfeld selbst, kannst du auch unsichtbar machen.
// Textfeld definieren
TextEdit TextEditDescription = TextEdit.CreateNew("TextEditXY"); // Textfield Description // String Name darf höchsten 10 Zeichen sein
// Binding Textfeldes Description
TextEditDescription.DataBind = DataBind.CreateNew("TextEditD1");
TextEditDescription.DataBind.TableName = "OITM";
TextEditDescription.DataBind.Alias = "U_Zeichnungsnummer";
TextEditDescription.DataBind.DataBound = true;
// Adjust Textbox Description // Da das Feld unsichtbar ist, sind alle Wert auf 0. Hiermit steuerst du die Anzeige des Feldes und wo es hin soll.
TextEditDescription.Top =0;
TextEditDescription.TabOrder = 0;
TextEditDescription.Left = 0;
TextEditDescription.Width = 0;
TextEditDescription.Height = 0;
TextEditDescription.FromPane = 0;
TextEditDescription.ToPane = 0;
TextEditDescription.Visible = false;
pVal.Form.AddItem(TextEditDescription);
pVal.Form.Update();
// und dann, nach dem Update den Code für das Feld ausführen den du haben willst. z.B.:
TextEditDescription.Value = "123" // oder irgend einen anderen Wert
Und das ganze dann als Customize Regel definieren, die sich bei einem Add ausführt.
Dazu must du in der Customize-Regel-Übersicht im Grünen Bereich bei FormType die Form angeben, für die die Regel gelten soll.
z.B. 150 für die Stammdaten/ Item Master Data
Dann bei Item UID eine 1, das ist der Add Button.
column solltest du leer lassen und als Event Typ müsstest du Item Pressed nehmen. Ansonsten ausprobieren mit z.B. Click.
Before Event = False
Und Form Mode = Add oder Modify, ganz wie du willst. Modifiy ist Add undUpdate zusammen.
Hoffe ich konnte dir helfen,
viele Grüße,
Sebastian
0
Please sign in to leave a comment.
Comments
0 comments