A99: Flip mit find Befehl

Thomas Berger ThB at gymel.com
Fr Dez 5 18:39:25 CET 2003


Lieber Walter, liebe Liste,

> Kurze Frage. Ich habe in einer Parameterdatei folgende
> Sequenz stehen, die einen Link auf einen Lieferanten-
> Normsatz auslösen soll.
> 
> #503 y0 p"f |; SYSL" =Z~
> #dt p"Lieferant*" e"*" =Y~
> 
> Es wird definitiv nur ein Satz gefunden. Das klappt immer
> noch. Bei älteren A99 Versionen wurde der Satz sofort
> angezeigt, bei den ganz neuen wird eine Kurztitelliste
> mit einem Eintrag angezeigt (nicht ganz das was ich
> wollte). Wieso ist das so und wie schaffe ich Abhilfe ???

Die Aenderung ist mit Version 23.5 oder 23.6 gekommen.

Der Grund ist, dass ein "find", das tendenziell mehrere
Saetze finden durfte, sich bei Eintreffer-Ergebnissen
zu verschieden verhielt: Man hatte keine Ergebnismenge
und musste daher staendig die Faelle "kein Treffer",
"genau ein Treffer" und "mehrere Treffer" unterscheiden.

Damit (etwa bei Flips) find-Befehle noch wie gehabt
funktionieren, von denen *erwartet* wird, dass sie
nur einen Treffer ergeben, gibt es nun den Flex-Befehl
"f1nd" (wohlgemerkt, ein Flex-Befehl, kein Flip).

Die Zeile muesste nun also lauten (das y0 ist ueberfluessig):

#503 p"x f1nd |; SYL" =Z~

Zu beachten ist nun aber auch, dass - anders als bei
find - das Anzeigefenster und falls zutreffend das
Auswahlfeld nicht aktualisiert werden. Die beiden
Aktualisierungsanweisungen muessen also noch angehaengt
werden.

#503 p"x f1nd |; SYL" P"\display\show record" =Z~

[Das ist allerdings immer noch nicht ganz dasselbe,
weil "show record" im Auswahlfeld den Datensatz
anzeigt, unabhaengig davon, ob das Auswahlfeld vorher
ueberhaupt sichtbar war oder anderes, wie etwa die
Liste der Ergebnismengen, enthielt. Der Zustand
des Auswahlfelds ist allerdings ueber die Flexsprache
noch(?) nicht ermittelbar, daher ist der oben angegebene
Flex die beste Annaeherung an die alten Flips.]

viele Gruesse
Thomas Berger




Mehr Informationen über die Mailingliste Allegro