[Allegro] symbolische Register
Thomas Berger
ThB at Gymel.com
Mi Nov 4 22:49:45 CET 2009
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Lieber Herr Eversberg, liebe Liste,
nachdem nun die Kapazitaeten frei fuer die Entwicklung von V30 sind,
folgen Desiderate fuer den Wunschzettel...
* die symbolischen (virtuelle?, Pseudo? wie ist eigentlich der offizielle
Name?) Register werden seit einigen Versionen im Pulldown-Menue des
Indexfensters angeboten. Bei niedrigem Zugriffslevel wurden bislang
Register 11 und evtl. sogar Register 10 nicht angeboten, jetzt haben
Anwender eine wesentliche Komfortsteigerung: Musste man sich bislang
erst einmal Wissen um die Registerpraefixe aneignen, werden nun die
einem eigentlich vorenthaltenen Daten direkt mit Erlaeuterung angeboten.
Wg. Avanti-Anwendung und Nutzen in Flexen sind die symbolischen
Registernamen aber fast unverzichtbar (zumindest waere es ein grosser
Rueckschritt, nun alle Flexe auf die Notation "|;pipapo" zurueckzustellen.
Umgekehrt gibt es einige symbolische Register, die fuer interaktive
Anwender nicht wirklich spannend sind, da sehe ich eher das Beduerfnis,
die Liste zu entschlacken und sinnvoll zu sortieren.
Vorschlag: Ueber eine neue Einstellung in der .ini-Datei eine Liste
von anzubietenden symbolischen Registern inklusive Sortierung einrichten,
fehlt dieser Einstellung, werden weiterhin alle angeboten. Es werden
jedoch stets jene herausgenommen, deren reales Register durch das
access-Level verboten ist.
[Ich bin bekanntlich nicht davon ueberzeugt, dass man eine allegro-
Datenbank in einer a99-Umgebung gegen die eigenen Mitarbeiter
"sichern" kann, immerhin kann man denen das Leserecht auf die nackten
Datendateien niemals entziehen. Das heisst aber nicht, dass man ihnen
Daten, die sie nichts angehen, auch noch fertig indexiert aufdraengen
sollte, denn selbst im besten Fall stoert es sie beim Auge-Hand-Ansteuern
der Elemente, die sie jeweils benoetigen.]
* Umgekehrt: In Formularen und ask-Boxen gibt es derzeit keine Moeglichkeit,
in ein symbolisches Register zu springen, um von dort einen Wert zu
uebernehmen, es geht nur ueber das reale Register mit seinen stoerenden,
da stets mit einzugebenden Praefixen.
Nicht-Ziffern (und ":", ";") hinter "|" in der .frm-Datei werden wohl stets
als Name einer View-Datei interpretiert. Hier sollte m.E. zunaechst untersucht
werden, ob die Zeichenkette hinter "|" der Name eines symbolischen Registers
ist. Der Zugriff darauf sollte unabhaengig vom access-Level gewaehrleistet
sein, in diesen Auswahl-Situationen kann man sich nicht aus dem "gelben"
Indexmodus befreien, es wird einem daher nur eine Liste etwa von Ausleiher-
namen geboten, die man fuer eine ALFA-artige Ausleihe unbedingt benoetigt,
ohne die Moeglichkeit weitere Daten einzusehen.
* Im Zusammenhang mit der Registermaskerade gibt es einige zu pruefende
Unstimmigkeiten: Erfolgt der Zugriff ueber ein symbolisches Register
und "greift" der Fussabschnitt in der .api, d.h. produziert Ausgabe,
so funktioniert seitenweises Rueckwaertsblaettern, das Scrollen um
eine /Zeile/ jedoch liefert den Anfang(?) des realen Registers, und man
ist ploetzlich irgendwie "ausserhalb" des virtuellen Registers und muss
durch Eingabe eines neuen Suchbegriffs wieder einsteigen. Bei Bedarf kann
ich gerne einen Testfall anhand der Demo-Datenbank konstruieren.
* Anders als die Umcodierungsabschnitte ist bei der Registermaskerade
nicht das Praefix des virtuellen Registers in #u1 enthalten. Das ist
nicht gut, und umgekehrt waere es auch nicht gut: Es gibt einfach
drei Faelle, die die Registermaskerade unterscheiden muss:
1. Hauptregister und seine Aufbereitung
2. Spezialabschnitt im Hauptregister mit spezieller Aufbereitung
3. Spezialabschnitt mit spezieller Aufbereitung, jedoch im Kontext
des virtuellen Registers zu praesentieren, d.h. die Aufbereitung
muss vermeiden, das Praefix in den Ausgabetext zu integrieren, sie
muss aber zunaechst bemerken koennen, dass sie einen Eintrag aus
dem Spezialabschnitt verarbeitet
Ich koennte mir vorstellen, dass hier #u2 mit dem Namen des virtuellen
Registers belegt werden koennte, sofern der Zugriff derzeit darueber
erfolgt. #u1 hingegen sollte (Vorschlag) analog den Umcodierungsabschnitten
die "echte" Registerzeile enthalten, also inklusive Praefix.
* Ich nutze (insbesondere unter Avanti) in den Umcodierungsabschnitt
eingebaute "heimliche" Hintergrundrecherchen. In einem (realen) Register,
das /unter anderem/ Notationen enthaelt kann auch ein Verbalbegriff
eingegeben werden (oder in einem Register mit Namen kann eine Normdaten-
Identnummer eingegeben werden), die Umcodierung konsultiert vorab ein
weiteres Register mit "Aufloesungen" und springt dann an diese Stelle.
(Das Feature ist nicht unbedingt fuers Blaettern im Index interessant,
wohl aber fuer kombinierte Suchen). Auch hier waere es hilfreich, in
den Umcodierungsabschnitten (etwa als #u2) auf den symbolischen Registernamen
der konkreten Recherche zurueckgreifen zu koennen, die Sache laesst sich zwar
ueber Vergabe von Praefixen disambiguieren, die muessen dann aber bei
"normaler" Nutzung in a99 auch stets eingegeben werden, was laestig ist
(oder man doppelt alle Schluessel). Auch bei klassischen Mischregistern
(Stichworte und Titelanfaenge, oder Stich- und Schlagworte) koennte man
bei der Umcodierung in Kenntnis des symbolischen Registers andere Suffixe
anhaengen, und damit etwa in der Demo-Datenbank gezielt nach Stichworten
aus Zeitschriften etc. recherchieren, indem das geeignete Suffix angehaengt
wird.
* Die Diskussion um Zugangsnummerngeneratoren neulich (und vor allem die
dann von Ihnen gefundene sehr clevere Loesung: Das Problem war ja nicht so
sehr das ermitteln der naechsten Nummer, sondern deren Aufbereitung in exakt
der Form, die fuer den Index benoetigt wird) zeigte mir, dass es hilfreich
sein koennte, analog "deposit" auf Abschnitte oder Unterprogramme in der
.cPI-Datei zugreifen zu koennen. Eventuell geht es aber auch etwas
sparsamer und zudem fuers Debuggen sehr nuetzlich: Ein "leerer" Find-Befehl
(oder qrix-Befehl: mehrere Begriffe simultan stelle ich mir muehsam
zurueckzuparsen vor), der keine Ergebnismenge zurueckliefert, sondern exakt
die Zeichenkette, die der Umcodierungsabschnitt liefert (unabhaengig davon,
ob es einen Treffer gibt oder nicht). D.h. im Flex gebe ich
NonFind ZGN "91-1234" und erhalte in der iV zurueck den "realen"
Registerwert "|9Z91-001234" oder was auch immer die Aufbereitung ist [Hoffen
wir einmal, dass in realen Datenbanken der Aufbereitungsabschnitt fuer
konkrete Zugangsnummern stets dasselbe liefert wie die Benutzereingabe fuer
denselben Inhalt, bei der Demo-Datenbank gibt es z.B. Probleme mit Zugangs-
nummern, die selbst wiederum mit "Z" beginnen ;-)].
Das wuerde Ihre Generatoren-Loesung wirklich wasserdicht machen
(und auch effizienter, und sogar bessser portierbar, sofern man "ZGN"
fest mit sich selbst verabredet), haette beim Testen von Anwendungen
/unschaetzbaren/ Wert (wenn man wuesste, wonach wirklich gesucht wird, koennte
man auch verstehen, warum die Suche trotz richtiger Eingabe 0 Treffer liefert)
und eroeffnet nebenbei auch eine "deposit"-artige Funktionalitaet, die etwa
dann nuetzlich ist, wenn man auf die Umcodierungsroutinen der .cPI
zurueckgreifen moechte.
viele Gruesse
Thomas Berger
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3-nr1 (Windows XP)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iQCVAwUBSvH2+WITJZieluOzAQJBygP/SAnfZ1H3IBbBbZl3JFRv9OX0heb6wtoI
QINrHGUubMOg8PYQ2EL9P6++toNu7TJcPzB9LlIfinqGun990sLFr36IgY9wmqdL
3uWsmqMpbQOtOGsBoHAV6htEB1B51/zXsNIcUu5YlSrrpXUThOurNVjXPNruE+6a
H2yuZKw1Y18=
=Yoij
-----END PGP SIGNATURE-----
Mehr Informationen über die Mailingliste Allegro