[Allegro] Vb.306 : Der FLEX-Befel "order" / Ergebnisse der Schnellumfrage am 15.1.

Bernhard Eversberg b-eversberg at gmx.de
Do Jan 24 08:59:58 CET 2019



Verlautbarung 306 zur allegro-Entwicklung                    2019-01-24
-----------------------------------------

1.
Der FLEX-Befehl "order"
-----------------------
... hat nichts zu tun mit der ORDER-Anwendung für die Erwerbung!
Er ist auch kein Ordnungsruf, wie ihn ein "Mr Speaker" im britischen
Parlament exklamiert, um halbwegs Würde zu stiften im Getümmel des
Unterhauses, wo zuweilen die Fetzen fliegen und die Invektiven, hinüber
und herüber in die Reihen der Opponenten auf der anderen Seite des
traditionsbefrachteten Tisches in der Mitte des "House of Commons".

Was der FLEX-Befehl "order" tut ist nur das Ordnen einer Ergebnismenge.
Ordnen heißt konkret, daß die Sätze der Erg.Menge sortiert werden
sollen, und zwar mit Hilfe der Kurztiteldaten, also der .stl-Datei.
Nur die darin vorhandenen Kriterien können mit "order" zum Ordnen
benutzt werden. Daher ist es klug, sich für die Kurztitelzeilen
eine sinnreiche Anordnung zu überlegen. Die Standard-Parameterdatei
cat.api z.B. erzeugt Kurzzeilen nach folgendem Schema:

 Vom Misterienspiel zum Stuart-Drama    ·Steiger, K·1984·2629-6720
 (ein Beispiel aus der DemoBank)

Auf Pos. 0 beginnt der Titel, bei 40 der Verfassername, bei 51 das
Erscheinungsjahr und bei 56 die Signatur. Genau diese vier Kriterien 
eignen sich dann zum Sortieren.

Wie geht man z.B. vor, um in einem FLEX eine Ergebnismenge nach dem 
Jahr zu ordnen?

a99 : Die einfachste Anwendung mit diesem FLEX-Befehl ad hoc:
-----
      order a51 : Ordne aufsteigend (a = ascending) an der Position 51
                  der Kurzliste.

Default ist die Einstellung a0, d.h. ohne einen set-Befehl ist
a0 eingestellt. Wenn man als Standard den Verfasser wollte, hätte
man in den _start.flx zu schreiben:
set oa40
Wenn man danach irgendwo einfach nur "order" sagt, wird diese
Einstellung genommen, solange kein anderer Befehl "set o.." den
Wert verändert hat.

Es geht auch andersrum:

order d0 : Ordne absteigend (d = descending)
  d.h.  order d51  sortiert absteigend nach Erscheinungsjahr.

Wenn man nach einem solchen Befehl mal eine Ergebnismenge 
betrachtet, sieht man die dreieckige Sortiermarke an der betr.
Position, d.h. die Einstellung bleibt bis zum nächsten  order .. 
oder  set o..  bestehen.
Den set-Befehl kann man z.B. auch so einsetzen:

var "od51" 
set 

D.h. die Einstellung kann auch als Variable dem FLEX übergeben werden.


acon: Leider nicht *ganz* genauso, sondern man muß sagen
-----
      order a1  bzw.  order d52

d.h. die Zählung der Zeichen beginnt in a99 bei 0, in acon bei 1.
Das ist historisch so gewachsen und nicht zu ändern, weil sonst
hier oder da eine alte Anwendung falsch liefe.
Statt dessen kann man auch sagen

var "a1"   bzw.   var "d52"
order

d.h. auch in einem acon-Job kann die Sortierposition mit einer
Variablen gesetzt werden. Der Wert bleibt jedoch bei acon nicht
nach dem Aufruf erhalten! In der Regel wird der nächste Aufruf
aber in einem neuen Job erfolgen, und die Übergabe von Variablen
von einem Job zum nächsten, anders als von einem FLEX zum nächsten
in a99, ginge nur mittels Hilfsdateien.

Das Programm a99 wurde für die Ausführung des set-Befehls 
verbessert, weil dieser noch nicht immer richtig funktionierte.
Wer a99-Anwendungen mit vielen FLEX-gesteuerten Sortierungen
machen will, sollte sich das aktualisierte a99 downloaden, und
auch a99a und a9910 sind auf Stand.

Nachwort
--------
Wenn man sortierte Ergebnislisten nach *anderen Kriterien* machen will
als denen, die in der Kurzliste stehen, hat man dafür die der Export-
Komfort-Methoden als Werkzeuge. Diese sind ausreichend dokumentiert
und seit langem bewährt und beliebt. Vor allem das Konzept der 
sog. "ViewListe" wurde ausdrücklich geschaffen, um geordnete Ergebnis-
mengen in a99 anbieten zu können, die sich "anfühlen" wie richtige, 
die aber ganz anders geordnet sein können.
Siehe dazu Vb.134 mit dem Titel "Warschauer Paket", sowie auch die
"allegro news" Nr. 58(2000): http://www.allegro-c.de/news/acn002/acn002.htm
Dabei kommt nicht der Befehl "order" zum Einsatz, sondern es wird eine
Hilfsdatei erstellt, die dann mit dem Programm "asort" geordnet wird.


2.
Ergebnis der Schnellumfrage vom 15.1., nur für die Akten
--------------------------------------------------------

24 Antworten sind eingelaufen, die Antworten verteilen sich wie folgt:

   1  A  Abkehr von allegro ist vollzogen oder steht bevor

  21  K  Keine Desiderate mehr, alles läuft wie es soll

   2  N  Nur noch wenig oder Nebensächliche Aktivität mit allegro

Es gab auch einige optionale Anmerkungen, inhaltlich ausnahmslos
positiv bis sehr positiv.

Ein Rücklauf von 10% ist bei Umfragen in Listen-Communities ganz
normal. (Die Liste hat gut 200 eingetragene Abonnenten)





Mehr Informationen über die Mailingliste Allegro