Resultat von ChooseFromList abfragen

Sebastian Wieland

Hallo zusammen
Ich möchte ein Feld überwachen, in welches über ein ChooseFromList einen Wert erhält. Leider haben bisher alle meine Versuche fehlgeschlagen:
- Mit Button.GetFromUID(form, "1").AddHandler_ItemPressed(ModeComponent.FormModes.FIND bekomme ich bereits den Wert vor dem Chooser (z.B. 10780* anstelle der Auswahl 10780 2A)
- Folgender Code hat auch nicht funktioniert:
SwissAddonFramework.UI.Dialogs.ChooseFromList chooseOp = new SwissAddonFramework.UI.Dialogs.ChooseFromList(new SwissAddonFramework.UI.Dialogs.ChooseFromList.DefaultSQLQuery(OP.ChooseNewOP_Query()), "OP", true, true, TextEdit.GetFromUID(form,"31"));
chooseOp.ChooseFromListEvent += new SwissAddonFramework.UI.Dialogs.ChooseFromList.ChooseFromListHandler(chooseOp_ChooseFromListEvent);

Beim zweiten Beispiel habe ich nie einen Event bekommen. Hat jemand einen Tipp, wie ich das Resultat des Choosers abfangen kann? Leider ist es nicht mein eigener Code, sondern eine Entwicklung von Coresystems. Daher bin ich auch nicht besonders sattelfest darin und habe eventuell etwas übersehen.
Besten Dank für eure Hinweise.
Gruss.
Sebastian

Marco Schweighauser

Eigentlich sollte

chooseOp.ChooseFromListEvent += new SwissAddonFramework.UI.Dialogs.ChooseFromList.ChooseFromListHandler(chooseOp_ChooseFromListEvent);


schon richtig sein. Dieser Event wird aufgerufen sobald die CFL wieder geschlossen wurde.

Was möchstest du den genau wo wie abfangen?


Gruss

Marco

Sebastian Wieland

Sali Marco
Es geht um das Projekt "Operationsplan". Pro Artikelnummer sind in einer Tabelle einzelne Operationsschritte abgelegt, welche dann den Operationsplan ergeben.
Im Grid gibt es einen Header mit den Angaben zu diesem Artikel und eine Tabelle mit den einzelnen Operationsschritten. Das Problem ist, dass das Abfüllen der Tabelle nur beim moven (mit Pfeil rechts/links) korrekt funktioniert. Im Suchmodus wird bei der ersten Suche die Artikelnummer nicht richtig gelesen, so dass die Operationsschritte nicht in die Tabelle abgefüllt werden können.
Daher wollte ich jetzt das Resultat der CFL bei der Eingabe des Artikels abfangen, damit die Operationsschritte immer korrekt abgefüllt werden.
Bis anhin wurde das Feld mit der Artikelnummer mit der Funktion ItemChangedListener überwacht. Dabei gibt es aber wie oben bereits erwähnt ein Problem, bei der Suche mit der CFL. Wie die CFL genau realisiert wurde, habe ich bis anhin noch nicht nachvollzogen, ich werde aber diesen Teil des Codes mal genauer anschauen.
Gruss.
Sebastian

Marco Schweighauser

Hallo Sebastian

wenn ich das jetzt richtig verstehe, handelt es sich dabei aber um eine System CFL. Diese System CFL werden vom Framework nicht direkt unterstützt. Die CFL im Namespace ...Dialogs.ChooseFromList.* ist von uns programmiert und hat mit der SAP B1 System CFL nichts gemeinsam.

Die System CFL sind leider sehr mühsam. Auf dem Item welches du kontrollieren möchtest, sollte es eigentlich eine Event-Methode mit dem Namen ChooseFromList drin geben.

Folgender Code zeigt wie du den System CFL Event auf einem Textfeld abfangen kannst:

SwissAddonFramework.UI.Components.TextEdit txt = ...
txt.AddHandler_ChooseFromList(...);


Dieser Event wird aufgerufen sobald die System CFL etwas ausgewählt hat.

Gruss

Marco

Sebastian Wieland

Sali Marco
Das hatte ich auch schon versucht. Ich kann den Event allerdings nicht abfangen???
Gruss.
Sebastian

Marco Schweighauser

Hallo Sebastian

was meinst du mit nicht abfangen? Existiert die Methode nicht oder wird sie nie aufgerufen?

Gruss

Marco

Sebastian Wieland

Sali Marco
Sorry für die Ungenauigkeit. Ich konnte die Methode implementieren, allerdings wurde sie nach dem Schliessen des Choosers nicht aufgerufen.
Gruss.
Sebastian

Marco Schweighauser

Hallo Sebastian,

vielleicht habe ich etwas übersehen aber ist es nicht möglich einen Validate Event anzumelden?


txt.Addhandler_Validate(ModeComponent.FormModes.Search, null, ValidateText);

protected void ValidateText(Validate e)
{
// Text auslesen der von der CFL in die Textbox geschrieben wurde.
}

Sebastian Wieland

Sali Marco
So etwas in der Art habe ich auch schon probiert. Das Problem dabei ist, dass ich dann die Sucheingabe erhalte, also z.B. "10780*" anstelle der ausgewählten Nummer (z.B. "10790 2A"). Auch mit der von dir vorgeschlagenen Lösung bekomme ich nur auf die Suchanfrage einen Event.
Gruss.
Sebastian

Marco Schweighauser

Hmm, anscheinend ist der Validate-Event zu früh :(. Versuch doch den LostFocus (gibt da nur den After-Event) abzufangen.

Gruss

Marco

Sebastian Wieland

Sali Marco
So, nun hatte ich wieder mal Zeit für mein Problem mit dem Abfangen des Events. Leider hatte ich wieder denselben Effekt wie bei den vorherrigen Lösungen. Ich kann den Event abfangen, allerdings lese ich dann nicht das Resultat des Choosers aus dem Textfeld sondern meine Eingabe. Also ich lese zum Beispiel "1780*" anstelle des ausgewählten Strings "170 2A".
Hast du noch andere Ideen oder Hinweise?
Gruss.
Sebastian
0

Comments

0 comments

Please sign in to leave a comment.

Didn't find what you were looking for?

New post