Dropdown-Liste einschränken - Suchmaske - RegExp

SFP..SAPscript (Transaktion SE71)..Smartforms (TA Smartforms).. Interactive Forms..Transaktion EFRM)..SIFBA..IAF..AIF..SIFBA - SAP_Interactive_Forms_based_on_Adobe // LÖSUNGSANSÄTZE aber AUCH FÜR "NORMALE" PDFs VERWENDBAR ;-)
Antworten
anform
Beiträge: 23
Registriert: 26.10.2010, 20:33

Dropdown-Liste einschränken - Suchmaske - RegExp

Beitrag von anform » 08.01.2011, 23:27

[font=verdana][fontsize=2]Hallo Zusammen,
[/fontsize][/font][font=Arial]seit Weihnachten bastle ich an meine DD-Listen rum. [/font]

[font=Arial]Mehrere DD werden per Datenbindung gefüllt. Im Hintergrund liegt eine Adressdatei mit ca. 900 Einträgen. Der Anwender soll über mehrere DD-Listen (Name Ort..) die Suche einschränken können. Und dann über ein Such-DD den richtigen Eintrag auswählen können. Zumindest ist dies meine derzeitige Idee (gut wäre auch ein JS-Eingabe-Suchfenster - dazu bin ich noch nicht in der Lage, hab' hier zwar eine geniale Musterlösung dazu gesehen, kanns aber noch nicht umsetzen).[/font]

[font=Arial]was schon geht:[/font]
[font=Arial]DD-Listen sortieren, Leere und doppelte Einträge entfernen[/font]
[font=Arial]Eingabe (casesensitiv) mit ersten Treffer der DD vervollständigen (aus "mei" - wird dann "Meier Kneipe", allerding würde die Eingabe von "Kneipe" leider nix bringen.)[/font]

[font=Arial]was noch fehlt:[/font]
[font=Arial]Teilstringeingabe und diese auch noch casesensitiv[/font]

[font=Arial]was auch noch schön wäre:[/font]

[font=Arial]Gibt es eine Möglichkeit das Aussehen der DD-Box noch mehr zu beeinflussen (Können die Pfeile bspw. breiter sein?). Kann man die xfo noch mit einem anderen Tool bearbeiten? (Was verbirgt sich hinter <?templateDesigner StyleID aped0?> im xml?)[/font]
[font=Arial]Kann der Hintergrund der Listeeingabe eine andere Farbe erhalten, als der Bezeichnungstext? (Habe gelesen, dies gehe nur in stat. Formularen).[/font]
[font=Arial]Ich hab' mal meine derzeitige Lösung reingestellt, vielleicht hat ja jemand Verbesserungsvorschläge / Lösungsideen... oder kann was von meinen Ideen gebrauchen.[/font]

[font=Arial]Viele Grüße[/font]
[font=Arial]AnneP[/font]
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

anform
Beiträge: 23
Registriert: 26.10.2010, 20:33

Dropdown-Liste einschränken - Suchmaske - RegExp

Beitrag von anform » 18.02.2011, 18:13

Hallo Freunde der Datenbindung und der freien Listengestaltung,

damit ich wenigstens eine Antwort bekomme schreibe ich mir selbst... nein -
ein Teil der Lösung der o.g. wundervollen Aufgaben verbirgt sich hier..


http://cookbooks.adobe.com/post_Drop_Down_List_Control_with_auto_complete__Searcha-18402.html


Möchte man, daß die angezeigten Werte der DD-Liste kein automatisches Verhalten zeigen, kann man auf Listenfelder ausweichen.

Dazu nehme man ein Textfeld und ein Listenfeld, platziert in einem auf Position stehenden Teilformular und schon kann es losgehen. (Hier läßt sich nun auch ein wunderschöner Button zum Aufklappen der Liste kreieren. Tut man dies mit einer herkömmlichen DD-Liste, wird leider der eigene Button (über den orginalen platziert) durch diesen, beim Aufklappen der Liste, überblendet).
 
Das oben genannte Muster von der Adobeseite ist sehr gut und funktioniert auch wunderbar, aber dann die eigene Umsetzung...

In meinen Versionen zum Füllen der Adresse (sowohl in der eigenen, als auch in der Version, mit den Ideen aus dem Muster) gibt es eine Fehler bei zurückschreiben des ausgewählten Listeneintrags in das Eingabefeld. 

Weiß da jemand rat?

In der Anlage sind mein "Musterproblem" + xml-Datensatz, HC des Fehlers, (eine deutsche) Doku zum o.g. Formular von Adobe

Viele Grüße

AnneP
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

yuc2me
Beiträge: 201
Registriert: 20.01.2010, 17:55

Dropdown-Liste einschränken - Suchmaske - RegExp

Beitrag von yuc2me » 21.02.2011, 07:35

Hallo Anne,

momentan kann ich dir noch nicht helfen.
Ich selbst realisiere meine Kontaktverwaltung über eine Dialogbox "app.execDialog" und habe mich von daher noch nie mit der DropDownList-Geschichte gearbeitet.

Ich fitze mich in deine Arbeit mal ein und melde mich wieder.

yuc2me
Beiträge: 201
Registriert: 20.01.2010, 17:55

Dropdown-Liste einschränken - Suchmaske - RegExp

Beitrag von yuc2me » 21.02.2011, 11:50

So, hier nun mein Gebasteltes...

Die Suche funktioniert
Das Auswählen funktioniert
und das Rückgeben des Datensatzes

Was noch nicht richtig funktioniert ist das Auswählen aus BP_NUMBER.
Mein Ansatzgedanke war: Die Positionsnummer in der Liste ist gleich dem Index in der Datenanbindung. Du wirst feststellen, das es da noch habert.

Ansonsten: Bei mir funzt das irgendwie nicht, dass er die XML-Datei automatisch einliesst. Ich kann sie nur manuell importieren.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

anform
Beiträge: 23
Registriert: 26.10.2010, 20:33

Dropdown-Liste einschränken - Suchmaske - RegExp

Beitrag von anform » 21.02.2011, 21:21

Hallo yuc2me,
erstmal 1000-Dank für deine schnelle Hilfe - meine Version (das zurückschreiben des Wertes aus der Liste in das Eingabefeld) ging zur Abwechslung heute mal - auf einem anderen Rechner. Rätsels Lösung evtl. wegen anderer Reader-Version? (in 9.11 gehts nicht, aber in 10). Deine Lösung schaue ich mir ganz genau erst morgen an... heute doch nicht mehr so taufrisch.

Ich hab' ja den regexp nicht zum laufen bekommen. Hast du es damit mal mit einer ganz normalen DD-Liste geschafft?

Die kleinen Js-datein sind nicht fürs JS-Verzeichnis gedacht, oder? Das Coding ist doch bereits im jeweiligen event...

Die Bindung zur Debitorennr. kann übers Menue (Objekt, Bindung, Standardbindung) erfolgen. Da diese sortiert sind, nicht leer und auch nicht doppelt ... im Gegensatz zu allen anderen Adressfeldern.

Wichtig ist auch noch die Laufzeit - ich muß noch probieren, was am schnellsten reagiert... Wenn ich Pech habe darf ich eine Index-datei mit allen möglichen Treffern mit rübergeben. 

Was meinst du mit automatisch einlesen? Das anhängen der Testdatendatei? Ich hab' schonmal gesehen, daß sie mit ./xx.xml hinterlegt war und damit hat das pdf diese aus dem gleichen Verzeichnis gezogen. Hat bei mir aber nicht geklappt. Ich habe übrigens genau die gleiche Datei als Datenbindung angehängt (Notlösung damit es lokal läuft - normalerweise ist hier die ABAP-schnittstelle von SAP).

Wahrscheinlich erst Do mehr... (acronaut ist da eigen - es läßt mich nur von meinem Rechner daheim rein... Kekse löschen bringt da nix - falsche PW-eingabe wird allerdings erkannt) ;-)

Viele Grüße
Anne(P)

 

 

 

yuc2me
Beiträge: 201
Registriert: 20.01.2010, 17:55

Dropdown-Liste einschränken - Suchmaske - RegExp

Beitrag von yuc2me » 22.02.2011, 11:44

in den seperaten js-Dateien steht das drin, was ich in die jeweiligen events geschrieben habe.
Ich hatte auch die xml Datei umgeschrieben. Wenn du jetzt aber sagst, dass das aus SAP kommt, ist das natürlich blöd.

RegExp funktioniert. Er sucht prinzipiell nur mit RegExp

Die Performance ist natürlich auch ein Thema.
In deiner Variante ist es jetzt so, das er bei jeder Eingabe eines Buchstaben die komplette Datenbank durchläuft. Wenn du da 1000 Einträge und mehr hast, wird das sicher sehr lahmen.
Ich könnte mir vorstellen, dass man das auch so machen könnte, dass er nach Eingabe des ersten Buchstaben die Ergebnisse in ein Array packt und nach und nach die falschen Ergebnisse aus dem Array rausschmeisst. Somit würde der Durchlauf immer kürzer werden.

Noch was. Du solltest das mit dem DropDownsortieren noch mal überdenken. Es gibt in DropDown's einen Anzeigewert und einen Exportwert. Ich hatte den Lösungsansatz so, dass für jeden BP_NUMBER- und für jeden NamenT-wert der Index aus der XML-Datei als Exportwert steht. Bei deinen Sortierfunktionen fliegt der aber raus.

MfG, yuc2me.

anform
Beiträge: 23
Registriert: 26.10.2010, 20:33

Dropdown-Liste einschränken - Suchmaske - RegExp

Beitrag von anform » 23.02.2011, 21:25

Hallo yuc2me,
da bin ich wieder… mit neuen Fragen. Vielen Dank auch für die Mühe des xml-umformatierens… Ich schreib‘ nächstens gleich SAP ran.

Was stimmt in meinem Nachbau (übers Listenfeld) mit dem bound-Index nicht? Warum liefert die DD-Liste (BP_NUMBER) im Change den Index vom Vorgänger (im Exit aber den richtigen)? Wäre es eine (zwar schmutzige, aber) gangbare Lösung, Im change das Exit-event zu feuern, um dann diesen Wert weiter zu verwenden? (Den User immer erst Enter drücken zu lassen, halte ich auch nicht für so schick.)

Die Listensortierung und Verkleinerung „muß“ ich machen. Es soll so sein, daß z.b. beim Tippen von ap die Apfelkneipe und die Apfelsinenkneipe kommt und in der Ortsliste nur noch Berlin und München, weil es nur da diese Kneipen gibt. Gibt es als Treffer nur noch Berlin, soll der Wert gar nicht mehr in der Liste stehen, sondern gleich ins Eingabefeld übertragen werden. In meinem jugendlichen Leichtsinn gehe ich noch davon aus, daß man ja den Treffer aus der Ortsliste (1x Berlin) wieder als Suchstring nehmen kann und dann in der vollen Liste findet, daß es Berlin für (mind.) 25 Kneipen gibt und diese dann wieder als Liste im Namen bereitstellt. Evtl. könnte man auch die BP_Nummer als "Index" verwenden, denn diese ist eindeutig (allerding würde natürlich auch hier 1x Berlin auf 25..).

Falls ich mich verwirrend ausdrücke… Ab „jetzt“ komme ich (dank Mandy und ihrer Idee mit dem portablen Browser) jederzeit hier rein…

Viele Grüße
AnneP
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Dropdown-Liste einschränken - Suchmaske - RegExp

Beitrag von armine » 24.02.2011, 12:09

Hallo AnneP und alle anderen,

nun habe ich versucht, das Pferd von hinten aufzuzäumen und erst mal aus den Listenfeldern alles zum Bearbeiten in die Textfelder zu schreiben. Das geht auch einmal oder auch mal öfter, aber leider nicht dauerhaft. Gibt es in Listenfeldern ein geeigneteres Ereignis als "exit"?

Gruß
armine
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten