[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