alcarta-ALFA

Bernhard Eversberg EV at buch.biblio.etc.tu-bs.de
Do Jan 28 08:10:01 CET 1999


Zum Thema: alcarta-ALFA

Wenn man, wie der Unterzeichnete, von Hause aus Mathematiker ist, neigt man
zu Verallgemeinerungen - man will statt eines Spezialproblems eine moeglichst
grosse Klasse von Problemen loesen, in der das spezielle als einer von
vielen Faellen enthalten ist. Im Falle ALFA fuehrt das zu folgenden 
Gedankengaengen:

Was macht ALFA?

1. Wurde TAB gedrueckt? Nein - keine Aktion
   wenn Ja, dann: ist eine Kategorie #90 da?

   a)  nein - Keine Aktion

   b)  ja, genau eine: Abfrage eines Benutzernamens (oder Id)

   c)  ja, mehrere: diese zur Auswahl anbieten, aber nur diejenigen
       ohne Teilfeld $u, dann wie b)

2. Benutzername + Datum werden an die (ausgewaehlte) #90 angehaengt

3. Satz wird gespeichert

In der Rueckgabefunktion laeuft fast dasselbe ab, nur umgekehrt: es werden
nur die #90er angeboten, die ein $u bereits enthalten, das ausgewaehlte
wird dann von $u und $D befreit, dann der Satz wieder gespeichert.

Die verallgemeinernde Idee ist nun:
Mehrere dieser Dinge koennte man auch mit der Exportsprache programmieren. 
Was man dabei nicht machen kann, sind nur diese Punkte:

-- Abfrage des Benutzernamens (Befehl #q geht bei a99 / alcarta noch nicht)

-- veraenderten Satz speichern

-- eine Variable fehlt, die mit dem ausgewählten Flipp zusammenhängt. 
Die Auswahl, wenn mehrere Exemplare vorliegen, kann natuerlich so erfolgen,
dass man dieselben als Flipp-Zeilen erscheinen laesst! Dann entfaellt ein
extra Button (oder Flipp) für TAB. Jede Flipp-Zeile muesste zu einer 
Sprungmarke
gehen, wo dann die Abfrage ausgeloest wird. Noetig ist, dass die ausgewaehlte
Kategorie dann an der Stelle erkannt werden kann.

In anderen Zusammenhaengen sind aber diese Funktionen durchaus im Programm
vorhanden: eine Abfage kann ueber das Eingabefeld erfolgen, und das Speichern
eines Satzes ist eh als Unterprogramm realisiert.
Was also noetig waere: einen Zugang schaffen von den Eportroutinen zu diesen
vorhandenen Funktionen.
Dieser Zugang wuerde dann die ALFA-Funktionen als Spezialfall programmierbar
machen per Exportsprache, und zwar als recht einfachen Fall sogar.
Das Instrumentarium der Exportsprache wuerde dann Moeglichkeiten eroeffnen,
die ueber ALFA weit hinausgingen. In den Exportparametern koennen ja
Bedingungspruefungen und Berechnungen aller Art stattfinden, und in 
Abhaengig-
keit von den Ergebnissen koennten wieder Benutzerinteraktionen erfolgen,
die schliesslich zu einem Speichern (oder auch Loeschen) eines Satzes
fuehren. 
Was Kollege Berger neulich aus "Befehlssprache" bezeichnete und wofuer er
Bedarf anmeldete, genau das waere dann erreicht.

Notwendig ist zur Realisierung dieser Vorstellungen: Ein Befehl innerhalb der
Exportsprache, mit dem man eine Funktion in a99 / alcarta aufrufen kann,
mit Uebergabe von Werten, die man per Export aus dem aktuellen Satz gewonnen
hat. Bei Rueckkehr als a99 / alcarta in die Exportroutine muss wiederum ein
Wert zurueckgegeben werden koennen, den die Exportsprache auswerten kann.
Es bietet sich an, das die zu uebergebenden Werte im Exportspeicher stehen,
d.h. dass die Exportsprache sozusagen den auszufuehrenden Befehl als
regulaere Ausgabe produziert, die vom Programm dann ausgewertet werden kann.
(Die Ausgabe geht immer zuerst in einen Pufferspeicher, der in diesem Fall
eben nicht ausgegeben, sondern ausgewertet wuerde.)

Im Prinzip scheint die Realisierung nicht sehr schwierig zu sein. Man wuerde
sogar ohne Eingriff in die Klassenbibliothek auskommen. Man muss nur die
Befehle definieren, die dann die Exportsprache in den Ausgabepuffer schreiben
muss. 
Und eine Variable muss zum Uebergeben von Werten vom a99/alcarta an die
Exportroutine dienen. Dazu koennten #u1 und/oder #u2 dienen, die in solchen 
Zusammenhaengen bislang undefiniert sind.
Die Belegung der #u1 koennte zusammen mit dem Flippbefehl geschehen: jetzt
besteht dieser einfach aus "j x" fuer die Sprungmarke #-x. Dahinter koennte
unmittelbar noch alles moegliche stehen, was man in der #u1 dann haben
moechte. Z.B. die Kategorienummer der ausgewaehlten #90! Mit dem Manipu-
lationsbefehl  w  kann man darauf dann im Abschnitt #-x zurueckgreifen.
Die #u1 koennte in den Exportroutinen aber auch in jeder anderen Weise ausge-
wertet werden. Damit haette man maximale Flexibilitaet. Man koennte eine 
eigene Abfragemethodik fuer die Datenerfassung parametrieren... 


Dadurch, dass das normale Eingabefeld genutzt wuerde, koennte man auch 
jederzeit (wie bei PRESTO) in den Index springen und daraus etwas 
uebernehmen.

Diese Ueberlegungen gehen davon aus, dass in der Exportsprache (also in der
Klassenbibliothek) keine Veraenderung vorgenommen wird.

Wenn dazu noch jemand Ideen hat, dann nur heraus damit. Wir werden uns um
die Realisierung weitere Gedanken machen.

Mfg B.E.


Bernhard Eversberg
Universitaetsbibliothek, Postf. 3329, 
D-38023 Braunschweig, Germany
Tel.  +49 531 391-5026 , -5011 , FAX  -5836
e-mail  B.Eversberg at tu-bs.de  




Mehr Informationen über die Mailingliste Allegro