[Allegro] Vb.336: ExtroText - Datensätze mit externen Texten anreichern
Bernhard Eversberg
b-eversberg at gmx.de
Mi Mai 12 16:21:52 CEST 2021
Verlautbarung 336 zur allegro-Entwicklung 2021-05-12
-----------------------------------------
Himmelfahrts-Enthüllung 2021
Wer schon länger dabei ist, erinnert's noch: Bis ca. 2009 gab es
alljährlich ein "Himmelfahrtskommando" - das war dann ein am nämlichen
Datum neu vorgestelltes Feature. Einmal war's auch Aschermittwoch.
Heuer lebt diese Tradition nochmal auf, und zwar mit gleich drei
neuen Kommandos, allesamt mit F8 auszulösen, denn:
Die Taste F8 kann jetzt noch mehr : "ExtroText"
Wenig Zeit?
Gestresste Leser können die Neuerung sofort ausprobieren an der
Demo-Bank: Weiter unten steht eine SCHNELLE KURZ-ANLEITUNG.
Normalerweise wird man mehr gar nicht wissen müssen.
(Die Programme selbst sind unverändert - kein Update erforderlich.)
Tip:
Wer F8 noch nie benutzt hat, kann's bei dieser Gelegenheit
schnell mal eben ausprobieren - es ist gefahrlos.
Ab heute kann man noch mehr damit anfangen:
Verbesserungen im Multifunktions-FLEX onf8.flx
-----------------------------------------------
Auch die neuen Funktionalitäten sind allein auf FLEX-Basis realisiert,
ohne Eingriff in das Programm a99. Und es funktioniert mit jeder
Datenbank, egal welches Schema, ohne besondere Vorbereitungen.
Hier aber eine ausführliche Beschreibung incl. der Hintergründe.
F8 kriegt drei neue Funktionen, eingebaut in das Skript onf8.flx.
Das Thema ist:
Beliebigen Text zum aktuellen Datensatz speichern
-------------------------------------------------
Wozu? Man kann in einen Datensatz doch sowieso allerhand reinschreiben!
Und wer sein Datenschema zu erweitern versteht, via .cfg-Datei, der kann
sich noch mehr eigene Kategorien einrichten. Oder die HFM-Methode
nutzen, die es seit V34.3 gibt (siehe h vb260)
ABER:
Das ist nicht immer sinnvoll oder erwünscht, manchmal auch unmöglich,
z.B. wenn die darin zu speichernden Inhalte unangenehm lang sind und/oder
im OPAC keinesfalls aufscheinen sollen!
Zu denken ist etwa bei Zeitschriften an Hinweise zum Bezug etc.,
bei Büchern Rezensionen, Anekdoten, Buchgeschichte, Provenienzdaten,
Ausstellungstexte, o.a.
"ExtroText" heißt die neue Methode: zu jedem Datensatz beliebigen Text
speichern, bis zu 4MB Umfang. Darin kann alles stehen, was man als
Zusatz-Info zu dem Datensatz aufbewahren will.
Zentrale Funktion dafür ist der FLEX-Befehl "file", der den aktuell
im Anzeigefenster stehenden Text in der Datei speichert, deren Name
in dem Moment in der iV angegeben ist.
(schnell mal h xfile eingeben, dann kommt die Doku zu dem Befehl)
Eingebaut ist die Sache in den onf8.flx. Der vereinigt in sich eine
Anzahl von Sonderfunktionen, die jederzeit genutzt werden können,
indem man einfach die Taste F8 drückt. Dann erscheint
ein Menü der Funktionen, die in der aktuellen Situation ausgeführt
werden können.
Hinzu kommen drei neue Funktionen, sie erscheinen auf den drei
ersten Zeilen des Menüs, das mit F8 angezeigt wird:
XA : ExtroText zum aktuellen Satz zeigen (falls vorh.)
XS : Anzeige-Inhalt als ExtroText zum aktuellen Satz speichern
XV : Volltext-Suche in allen Extro-Textdateien
Der ExtroText zum aktuellen Datensatz wird gespeichert im Unterordner
namens "extro" unterhalb des Datenordners, also nicht im Datensatz.
Bei der ersten Nutzung wird dieser Unterordner angelegt. Wenn das
nicht klappt, kommt die Ansage "geht nicht!" - z.B. dann, wenn man gar
nicht die Berechtigung hat, neue Ordner anzulegen.
Folgendes passiert bei diesen neuen Funktionen:
XS : Der gerade in der Anzeige stehende Text wird als ExtroText zum
aktuellen Satz gespeichert, der Dateiname ist der Primärschlüssel
des Satzes. Zuerst muss man also einen Text in die Anzeige schreiben
oder mit Strg+v hineinkopieren. Gespeichert wird nur der Text, ohne
Farben und sonstige Attribute.
XA : Der zum aktuellen Satz gehörige Text wird angezeigt.
Warum der Primärschlüssel als Dateiname? Weil der sich aus dem
Satz ergibt (FLEX-Befehl var p) und sich auch, anders als etwa
die interne Nummer (var i) bei Neuaufbau der Datenbank nicht
ändert. Im Satz selbst wird durch die neue Funktion nichts geändert.
Dies ist der Vorgang beim Erstellen des Extro-Textes zum aktuellen Satz:
1. Cursor in das Anzeigefeld,
Strg+A Leertaste (oder Enter) um das Anzeigefeld zu leeren
(Dem Datensatz passiert dabei nichts)
2. Text schreiben oder einkopieren
3. F8, Cursor runter, Enter (ExtroText speichern ist zweite Zeile)
Mit F5 kann man den Datensatz wieder anzeigen lassen.
Das Abrufen und Anzeigen des Extro-Textes braucht nur zwei Tastendrücke:
1. F8
2. Enter (denn der Balken steht dann schon auf XA)
Und was ist XV?
Das ist die Funktion zur Volltextsuche in den Extro-Dateien.
Es funktioniert so ähnlich wie die Volltextsuche in den Verlautbarungen.
*****************************************************************
Jetzt noch zwei kleine andere Funktionen, die verbessert wurden:
Aktuellen Satz zur aktuellen Erg.Menge hinzufügen
-------------------------------------------------
Diese Funktion in onf8.flx (aufzurufen in a99 mit F8 und dann +) war
nicht zuverlässig.
Nun wurde ein neuer, separater FLEX namens recadd.flx dafür geschrieben.
Dieser wird aus onf8.flx aufgerufen, wenn man die Funktion '+' wählt.
Äußerlich ändert sich bei F8 nichts - man merkt es nicht, wenn aus einem FLEX
heraus, hier onf8.flx, ein anderer aufgerufen wird, hier also recadd.flx
Anm.: Manueller Aufruf mit X recadd geht auch.
Aktuellen Satz aus der Erg.Menge herausnehmen
---------------------------------------------
Das sollte am bequemsten so gehen:
Erg.Menge anzeigen lassen
Balken auf den betr. Satz
Taste "Entf" - Satz wird mit DEL gekennzeichnet
Esc - Es kommt die Frage "Markierte Sätze aus der Liste entfernen?"
Wenn man das aber mit Ja beantwortet - Absturz, meistens.
Bevor dies mittels Eingriff in den Quelltext von a99, kann man
die Ergebnismenge um den aktuellen Satz verkleinern mit der
Funktion - : Aktuellen Satz aus Erg.Menge herausnehmen.
Ferner wurde ein neuer, separater FLEX namens recdel.flx dafür
geschrieben. Aufruf mit X recdel
-----------------------------------------------------------------------
SCHNELLE KURZ-ANLEITUNG zum ExtroText
Vorbereitung: (nur vor dem ersten Gebrauch)
5 neue bzw. verbesserte FLEXe mit diesen 4 Befehlen abholen:
X gf xgrep.flx X gf onf8.flx X gf extrox.flx
X gf recdel.flx X gf recadd.flx
Am Beginn der a99-Sitzung, vor der ersten ExtroText-Aktion,
einmal F8 Esc eingeben, dann wird eine interne Einstellung gemacht.
Es gibt dann während der ganzen Sitzung drei neue Vorgänge:
A. Text speichern B. Text abrufen C. Volltextsuche in den Texten
Und so geht's:
A. TEXT ZUM DATENSATZ EINGEBEN UND SPEICHERN
1. DemoBank starten
2. irgendeinen Datensatz anzeigen lassen
3. In die Anzeige klicken, Strg+a Enter (Anzeige wird leer)
4. Text eingeben oder einkopieren in das leere Anzeigefeld, beliebig lang
5. F8 , Cursor runter (auf die Zeile, die mit XS anfängt), Enter
Dann wird der Text gespeichert
Nun besitzt der Datensatz also einen ExtroText
B. DEN TEXT SPÄTER WIEDER ABRUFEN
1. Den Datensatz neu anzeigen lassen
2. F8 und Enter - der Text erscheint
Nun kann man den Text ändern und wie in A.5. beschrieben neu speichern
3. F5 : Datensatz erscheint wieder
4. Sonder-Hinweis
C. VOLLTEXTSUCHE IN ALLEN EXTRO-TEXTEN
F8 und dann XV (dritte Zeile) - dann sieht man's schon.
(Natürliche erst, wenn's schon einen oder mehr solche Texte gibt)
Um sich am Anfang jeder Sitzung den den Handgriff mit F8 ESc zu ersparen
und daran immer denken zu müssen, kann man auch in den eigenen _start.flx
(liegt im Datenordner) diese Zeile irgendwo einfügen:
#uX=X extrox
Das bewirkt, daß beim Anzeigen eines Datensatzes, zu dem es schon einen
ExtroText gibt, im Schreibfeld dazu dieser Hinweis erscheint:
ExtroText zu diesem Datensatz abrufen mit F8
------------------------------------------------------------
ZUSATZ-HINWEIS
--------------
Es gibt Anwender, die sich längst eine eigene Methode gemacht haben:
1. Zu jeder laufenden Zeitschrift wird eine Excel- oder Word-Datei
angelegt in einem dafür vorgesehenen Ordner
2. Der Dateiname kommt in eine Sonderkategorie, z.B. #89z
3. In der dienstlichen Anzeige zeigt a99 einen Flip (Link), der z.B.
"Dienstliche Textdatei" lautet. Damit wird die Datei in Word bzw.
Excel sofort anzeigt
Das ist eine hochbeliebte, unentbehrlich gewordene Anwendung, auf
die man bei keinem Systemwechsel verzichten wollen würde. Denn ohne
allerhand Zusatz-Informationen über die Bezugsbedingungen, Konsortien,
Lizenzen für Online-Zugänge etc. kommt man nicht mehr aus bei E-Medien.
Voraussetzung ist nur der Einbau des Flips in die Anzeigeparameter.
Nicht wirklich schwierig, aber ohne Kenntnis der Exportsprache nicht
machbar - es müssen dabei natürlich lokale Gegebenheiten berücksichtigt
werden.
Die ExtroText-Methode funktioniert dagegen sofort bei jeder Datenbank,
egal welches Schema, welcher Anwendungszweck und welche Art Informationen
im jeweiligen ExtroText stehen sollen.
Ach so, eins noch: Es gibt als Zugabe eine Volltextsuch-Funktion!
Die leistet das schnelle Durchsuchen aller Extrotexte. So etwas gab es
ja bereits für die Verlautbarungen, für die Handbuch-Texte etc.
Der FLEX dazu heißt xgrep.flx, schon seit 2007 im Paket, jetzt wurde
er aufgebohrt für "Extro".
--------------------------
Nebenbei: Es gibt länger schon die Funktion "Notiz zum Datensatz"
(vorletzter Punkt im Menü von onf8.flx).
Die erzeugt eine "persistente Variable" zum aktuellen Satz.
Das ist was anderes, nur für kurze Notizen.
Mehr dazu:
h vb258#288 eingeben (Neuerung des Jahres 2014)
Mehr Informationen über die Mailingliste Allegro