Neue Sicht der Dinge

Views

                        

Auszug aus allegro news Nr. 58, (2000/2) vom 19.10.2000

Ergebnismengen konnten früher nur mit Hilfe der Kurztiteldatei der Datenbank (.STL) betrachtet werden: In der Kurzanzeige sieht man zu jedem Satz die zugehörige Kurzzeile. Zum Ordnen der Ergebnismenge können in a99/alcarta nur diejenigen Kriterien verwendet werden, die in der Kurzzeile an festen Positionen auftreten (oder mit Alt+s  die interne Satznummer).

    Nicht immer ist für einen konkreten Zweck die Kurzzeile gut geeignet - weil sie immer gleich aussieht, und es gibt nur genau eine je Satz. Manchmal bräuchte man einen Überblick mit anderen Datenelementen, und manchmal würde man gerne eine andere Ordnung herstellen können. Zum Beispiel sind die Kurzlisten bei einer bolero-Datenbank nach dem Einheitstitel geordnet, manchmal ist aber eine Übersicht nach Opusnummern erwünscht oder auch nach Interpreten, Dirigenten, Aufführungsjahren, Orchestern ... nichts davon steht aber in der Kurzliste.

    Man hätte also gern geschmeidige Alternativen zur Standard-Kurzanzeige, um Ergebnismengen in einer dem Zweck angemes­senen Form und Reihenfolge durchsehen oder auch exportieren zu können. Denn Datenbanken können viele unterschiedliche Satztypen enthalten und es können immer neue und neuartige Ansprüche über eine Datenbank hereinbrechen, z.B. wenn man Geschäftsgänge damit unterstützt.

    Angedacht wurde auch einmal, daß es mehr als nur eine STL-Datei geben könnte. Zwar würde dies für eine Reduzierung gähnender Leerräume auf zeitgenössischen Festplatten sorgen, dennoch aber hätte man nur eine begrenzte Zahl von letztlich auch wieder voreingestellten und wenig anpassungsfreudigen Sichtweisen, weil man dazu gute Parametrierkenntnisse braucht und schnelle Änderungen selten machbar sind, im laufenden Betrieb überhaupt nicht.

Kurzum: die Sicht (engl. view) der Dinge, sprich der Ergebnismengen, sollte flexibel einstellbar sein und wenn irgend möglich ohne großes Insiderwissen kurzfristig, am besten ad-hoc neue An- und Einsichten eröffnen einschl. Export. Schließlich ist die Datenbank kein Selbstzweck, sondern sie soll Früchte tragen.

Aus der Sicht des classico-Systems ist außerdem noch festzustellen:

Per CockPit können aus Ergebnismengen beliebig sortierte Listen erstellt werden (siehe Handbuch Kap. 6), doch wird dies trotz Vereinfachungen noch immer als relativ umständlich empfunden. Im Windows-System soll es mindestens soviel Flexibilität geben, aber man wünscht sich entscheidend weniger Parametrierarbeit und die Möglichkeit, die Vorgänge online durchzuführen und mit sofortiger Betrachtung der sortierten Liste, wahlweise jedoch auch mit einer Druck- oder Dateiausgabe in Listen- oder Tabellenform. Letztere könnte dann nebenbei unter Windows die "alten" CockPit-Funktionen der Listen­produktion ersetzen. (Es gibt sie aber auch noch auf dem Export-Menü von a99.)

Die Lösung sind ViewListen:

Eine ViewListe ist eine besondere Form der Darstellung einer Ergebnismenge. 

(Eine andere Form ist die Tabelle, die man auch mit Office-Programmen weiterverwenden kann. Geben Sie ein  h table, dann erfahren Sie mehr.)

Eine ViewListe gestattet das Durchsehen, Durchsuchen und Exportieren einer Ergebnismenge in einer sinnvollen Reihenfolge und mit Anzeige von zweckdienlichen Feldinhalten, und zwar bei Bedarf mit Gruppierung nach einem gewünschten Feld und mit Summierung von Zahlen.

Sie wollen das sofort sehen? Weiter unten steht, wie's geht.

 Im Folgenden wird immer das englische Wort  "View" statt des deutschen "Sicht" benutzt.

Unter derselben Bezeichnung gibt es etwas Ähnliches, aber grundsätzlich doch anderes bei relationalen Daten­banken. Dort ist ein View ein zur Datenbank­struktur gehöriges Element, einzurichten vom Systemverwalter und dann permanent vorhanden, aber selten schnell realisierbar oder änderbar. Für allegro ist ein View eine temporäre Datei, erstellbar durch jeden Datenbankbenutzer, jederzeit und sofort. Die entwickelte Methodik ist einerseits sofort einsetzbar, ohne langes Vorstudium, andererseits kann man mit einschlägigen Kenntnissen, wie bei allegro üblich, für lokale Zwecke und kompliziertere Aufgaben beliebige Varianten und Verfeinerungen ausarbeiten. Das gilt für die Parameterdateien sowohl wie für die FLEXe.

Datentechnisch besteht eine ViewListe aus einer sehr einfachen Textdatei mit je einer Zeile für jeden Datensatz. Solche Dateien können leicht und schnell erstellt werden, auch außerhalb von a99/alcarta, z.B. mit PRESTO oder SRCH. Die View-Funktionen gibt es nur für a99/alcarta ,  nicht für die konventionellen Programme; es wurde dafür der neue FLEX-Befehl  View  eingerichtet.

Das ViewListen-Fenster kann aber noch mehr:
Nicht nur Ergebnismengen können in dem Fenster präsentiert und genutzt werden, auch Textlisten aller Art und beliebiger Größe: Auswahllisten für Codes oder Systematiken, Menülisten (wobei hinter jeder Zeile ein FLEX stecken kann). Und diese Listen können komfortabel durchsucht werden, in FLEXe und Formulare eingebunden ... Vielleicht wird die praktische Bedeutung dieser Sonder­funktion nicht geringer sein als die der Ergebnismengen-Nutzung.    Mehr zum Thema ViewListen.


Einzelteile des View-Konzepts
       [Hintergrundwissen für Allegrologen]

Nutzung der View-Technik setzt voraus, daß man auf dem Start- und auf dem Temp-Verzeichnis Schreibrecht hat. Wenn in der INI-Datei kein Befehl  DbAux=...  steht (mit dem man das Arbeitsverzeichnis setzt), wird als Temp-Verz. dasjenige genommen, das in der Environment-Variablen TEMP steht. Meistens ist dies  c:\windows\temp. Dort kommen die temporären Dateien zu liegen, die nach Ende einer Sitzung ohne Weiteres gelöscht werden können. Die Parameterdateien (vom Typ v-*.cpr ), die man nicht selten später erneut gebrauchen kann, werden auf das Startverzeichnis geschrieben, desgleichen Exporte, was man durch Eingriff in die FLEXe aber ändern könnte.

Eine ViewListe hat den Dateityp .VW. Sie besteht aus Zeilen von exakt gleicher Länge (Auffüllung am Ende mit Leer­zeichen!). Ist das beim Aufruf nicht gegeben, wird das Programm selbständig eine Kopie der Datei erstellen und darin alle Zeilen an der längsten ausrichten. Jede ViewListe kann aber ihre individuelle, passende Zeilenlänge haben. (Achtung: die Ausgangsdatei wird durch die Kopie ersetzt. Bein nächsten Aufruf hat sie also schon die richtige Gestalt.)

So sieht, schematisch, ein Datensatz, d.h. also eine Zeile, in einer ViewListe aus:

00001234|TEXT                                      13 10

Die hochgestellten, unterstrichenen Zahlen 13 und 10 sind die üblichen ASCII-Steuercodes für die Zeilentrennung.
Warum die feste Länge? Diese macht es viel schneller, die Anzeige dann erscheinen zu lassen und darin zu blättern, als wenn die Zeilen variabel wären. Bei Ergebnismengen von mehreren tausend Sätzen wirkt sich dies sehr spürbar aus. ViewListen sind in aller Regel temporär, daher kann man sich diese Ineffizienz leisten. (Übrigens: Hat eine ViewListe ausnahmsweise Zeilen unterschiedlicher Länge, merkt das Programm dies beim Einlesen und korrigiert es, d.h. die Datei wird entsprechend verändert; es dauert nur etwas länger, bis sie dann erscheint! Tip: Bei sehr langen ViewListen geht das Verändern am schnellsten, wenn die erste Zeile die längste ist.)

Der Inhalt eines View-Satzes ist zweiteilig: eine interne Satznummer (hier 8stellig mit führenden Nullen, das ist jedoch nicht verbindlich), und ein davon durch das Zeichen '|' getrennter TEXT, eine beliebige Zeichenkette. Diese besteht normalerweise aus Elementen des Datensatzes, dessen Nummer vorn steht, und zwar genau den Elementen, die man für einen bestimmten Zweck braucht. In der Regel wird dieser Text in sinnvoller Weise sortierbar sein, wobei die zum Sortieren dienenden Elemente vorn stehen müssen.

Erfreuliche Nebenwirkung: Jede Datei xyz, die so aussieht, kann mit dem FLEX-Befehl  View xyz  als ViewListe angezeigt werden, egal wie man sie erstellt hat! Im Extremfall ist es eine Textdatei ohne ein '|' oder mit jeweils "abc|" am Anfang jeder Zeile, wobei 'abc' nicht mit einer Ziffer beginnt.  Die ViewListe wird angezeigt im Kurzanzeige-Fenster und erlaubt dann die Auswahl einer Zeile. Beginnt die Zeile mit einer Nummer größer als Null, wird der zugehörige Satz sofort angezeigt, wenn der Leuchtbalken darauf geht. Man hat hier nebenbei eine Alternative zum FLEX-Befehl "select", denn:

Anschließend (nach Druck auf [Enter]) steht die ausgewählte Zeile dann in der "internen Variablen". D.h. die Angabe "abc", im View nicht sichtbar, kann dann auch per FLEX ausgewertet werden! Kommt kein '|' vor, ist die ganze Zeile sichtbar. select-Listen sind im Umfang recht begrenzt und langsam, bei sehr langen Listen ist die View-Methode sehr im Vorteil. Beispiel: geben Sie ein  v quick (dann erscheint quick.vw ). Schauen Sie sich die Datei quick.vw an, dann erkennen Sie leicht, was man alles machen kann. Eine weitere Alternative zum select gibt es ab V25: das aresqa-Fenster.
 
Wie könnte nun der TEXT zusammengestellt werden? Vielleicht einfach so, daß man die gewünschten Kategorienummern angibt? Das mag in einfachen Fällen reichen und wird auch über ein Formular komfortabel gelöst, siehe unten (Seite 6), aber wenn die gesamte Bandbreite der potentiellen Wünsche abgedeckt werden soll, muß man vieles bedenken:

  1. Nicht jedes Feld kommt jedesmal vor, manchmal wird statt eines fehlenden Feldes ersatzweise ein anderes an seine Stelle treten sollen. Das ist vor allem dann wichtig, wenn eine Ergebnismenge unterschiedliche Satztypen enthält.
  2. Wenn die Datenbank mit V14-Ersetzungen arbeitet, möchte man Klartexte statt Stammsatznummern.
  3. Manchmal wird man Teilfelder oder andere Bestandteile als Elemente brauchen, nicht den gesamten Feldtext.
  4.  Die Länge jedes am TEXT beteiligten Feldes muß begrenzbar sein.
  5.  Nichtsortierzeichen sollten sich berücksichtigen lassen.
  6.  Zeichenumcodierungen und Textersetzungen können nötig sein.
  7.  Zahlenwerte sollten aus Textfeldern herausgelöst oder auch aus mehreren Feldinhalten berechnet werden können.
  8.  Die Sortierung wird nicht immer unmittelbar durch den Inhalt eines Feldes definiert werden können, es muß vielmehr die Möglichkeit geben, einen veränderten und/oder zusammengesetzten Sortierschlüssel zu definieren. Korrekte Sortierung von Umlauten und Akzentbuchstaben wird man ebenfalls erwarten.
  9. Es sollte möglich sein, die ViewListe in Gruppen einzuteilen, d.h. Zwischenüberschriften zu erzeugen.
  10. Zahlen sollte man addieren und im Falle von Gruppierungen auch Zwischensummen bilden können.
  11. Mehrfach besetzte Felder sollen evtl. mehrere Einträge in der Liste erzeugen.
  12. Letzte, aber für viele Anwender vielleicht sogar wichtigste Wunschvorstellung: Eine ViewListe muß exportiert werden können, und zwar wahlweise die vollständigen Datensätze mit allen geeigneten Druckparametern oder die Liste als Tabelle, mit einem eindeutigen Trennzeichen zwischen den (ungekürzten) Datenfeldern, damit sie dann leicht in andere Programme übernommen werden kann (Textsysteme, Tabellen- und relationale Datenbanksysteme).

 Das alles legt nahe, daß eine ViewListe nur mit den Mitteln der Exportsprache adäquat herstellbar ist. Dabei gibt es zwei Möglichkeiten:

A)     die TEXT-Zeilen sind unmittelbar sortierfähig. Dann kann die Liste direkt in der beschriebenen Form exportiert und dann sortiert werden, bevor man sie anzeigen läßt.

B)      die TEXT-Zeilen sind nicht unmittelbar sortierfähig. Dann muß die Erstellung der ViewListe über einen Umweg laufen: es wird zuerst eine sortierbare Grunddatei mit zwei Kategorien je Satz erstellt. Die erste Kategorie, #u1, enthält den Sortierwert, die zweite, #u2, die anzuzeigende Zeile. Beide können in ihrer Form, aber auch im Inhalt, ganz verschieden sein. Nach dem Sortieren  wird dann die #u1 ganz beseitigt und es bleibt die geordnete ViewListe übrig.

Das Sortieren im Fall 2) geschieht mit dem allegro-Sortierprogramm ASORT.EXE, welches so angepaßt wurde, daß es die Beseitigung des Sortierfeldes #u1 am Schluß automatisch machen kann (neue Option -u3). Übrigens: #u1 braucht nicht von fester Länge zu sein, nur #u2.

Eine ViewListe entsteht in beiden Fällen als Export einer Ergebnismenge mit Hilfe einer View-Parameterdatei, kurz ViP genannt, mit einem Namen der Form V‑XYZ.APR, die immer denselben Aufbau hat. Den Teil mit den allgemeinen Exportparametern kann man für andere Kategoriesysteme einfach kopieren. Die speziellen, auf den jeweiligen Zweck bezogenen Angaben bilden einen Block, der jeweils für eine neue Aufgabe zu bearbeiten ist. Im classico-System entsprechen diesen Dateien die Parameterdateien S‑*.APR zur Erstellung einer Sortierdatei. Es kann beliebig viele solche ViPs geben.

Das Erstellen von ViP-Dateien ist Sache des Systemverwalters, der dafür aber nur relativ wenige Parametrier­kenntnisse braucht (es sei denn, man hat sehr diffizile Wünsche). 

Das Anwenden der ViPs ist, wie das Anwenden der Sortierdateien im classico-System, ohne Parameterkenntnisse möglich, zumal wenn die Anwendung auch noch in FLEXe eingebettet wird. Als kommentierte Vorlage benutzt man die Datei V‑STAND1.APR  oder  V-STAND2.APR  (letztere mit Gruppierung und Summierung) oder eine andere vorhandene ViP.

Hier ein Beispiel:
In der Datei   V-STAND2.APR  (für den Standard-View 2 ) findet man in der Mitte diesen Abschnitt:

#-A     (Oberhalb befindet sich das Kopfstück, der standardisierte Abschnitt view1.apt)

  ****** Variabler Teil ********

  Nur hier muß man eingreifen, und zwar diejenigen Kategorien einsetzen, aus denen der View bestehen soll,
  jeweils mit geeigneten Manipulationsbefehlen

 
Abschnitt für die ViewListen-Zeile:

#nr p'j!' e'!' =vY         Gruppierung gewuenscht

#76 +#40 x"*1" x">1449" e"." u e4 P'///' Avv
#nr p"o.J.///" e7 Avv
#40 e" = " u e15 F" " P": " Avv
#20 u e40 Avv
#77 +D x"*1" x"r2" r7 F"." =vu
#nr p'00000000' e7 =vu
#+D      Sprung zur Verarbeitung von #uvv

         Abschnitt fuer den Tabellenexport (Felder mit Trennzeichen)

         aus VIEWTAB.FLX heraus mit "download view"
#-Q
         #uzV enthaelt die aktuelle View-Zeile
         mit 00000t|... beginnen Trennstrichzeilen,
         mit 00000a|... beginnen Ueberschriftzeilen
#uzV +- c't|' B'|' f' |' e0
#uzV c'a|' B'|' f' |' F' '
 #76 +E
 #nr p"o.J." e4
#-E
#t9
#40 e" = "
#t9
#20
#t9
#77 x"*1" e"." r7
         mit 00000s|... beginnen Summenzeilen
#uzV c's|' B'|' f' |' F' ' e"."


Nur die mit Strichen markierten Zeilen muß man verändern, alles andere kann übernommen werden, auch für andere Konfigurationen. Wichtig: Im ersten Abschnitt wird keine eigentliche Ausgabe gemacht! Es wird hier nur eine Variable #uvv erstellt, aus der dann weiter unten erst (unter #-D) die Zeilen der ViewListe gemacht werden. Allenfalls kann man dort noch die Länge (default: 80 Zeichen) verändern, sonst braucht man nichts weiter zu tun.

Will man für die ViewListe eine Spaltenanordnung, kann man das jeweils mit den Befehlen   en sn   erreichen, also z.B. e20 s20 um die Länge des Abschnitts auf 20 Zeichen zu begrenzen und mit Leerzeichen aufzufüllen.

Für die Differenzierung der Anzeige des Views gibt es zwei Möglichkeiten. Dabei wird nach dem Sortieren die Parameterdatei VIEWGRUP.APR benutzt, die man unverändert auch für andere Kategoriesysteme einsetzen kann.

 

  1. Gruppierung: Dazu muß hinter dem ersten Feld ein ':' stehen statt irgendeines anderen Trennzeichens, dann wird der Inhalt des ersten Feldes als Zwischenüberschrift verwendet

  2. Summierung: Dazu muß vor das letzte Feld ein '_' statt irgendeines anderen Trennzeichens gesetzt werden. Dies führt, wenn "Gruppierung" eingestellt ist, nicht nur zur Gesamtsummierung, sondern auch auch zur Errechnung von Zwischensummen für die Gruppen.

 
Wenn beides zutrifft, hat das Feld TEXT also die Form:

Gruppe:Text_Zahl

Für Allegrologen:

Daraus macht das Programm SRCH mit der Parameterdatei VIEWGRUP.APR eine übersichtliche ViewListe. Die Funktion der Zeichen  :  und  _  ist nicht im Programm "verdrahtet", sondern nur in VIEWGRUP.APR. Wer parametrieren kann, darf sich auch ganz andere Dinge ausdenken, um die ViewListe zu erstellen.

  1. Folgende Funktionen braucht man für den Umgang mit Views:
    Ergebnismenge in eine ViewListe umwandeln : FLEXe  view1.flx  und  view2.flx  mit vorgegebenen ViPs, viewform.flx  und  viewpara.flx  für ad-hoc erstellbare ViPs.

  2. ViewListe betrachten, Sätze auswählen und bearbeiten: FLEX-Befehl  View

  3.  ViewListe exportieren: FLEX-Befehl  download view

Auch eine extern (mit PRESTO oder SRCH oder anders) erstellte ViewListe kann mit den Schritten 2 und 3 benutzt werden.

Aber noch mehr: die schlichte Struktur der ViewListen erlaubt es sogar, Auswahllisten beliebiger Art in derselben Form zu erstellen, die dann mit dem Befehl  View  präsentiert werden können. Zeilen, die nicht mit einem Satz ver­bunden sind, sollten am Anfang die Angabe "0|" haben oder aber das Zeichen '|' nicht enthalten. Die ausgewählte Zeile geht dann in die interne Variable über und kann beliebig weiter verwertet werden. Im FLEX sieht das so aus:
 

  ViewListe anzeigen:
View dateiname      (Achtung: View mit großem V, sonst keine Anzeige, sondern nur Dateiöffnung)
  Es wurde [Esc] gedrückt:

if cancel jump xxx
  Es wurde eine Zeile ausgewählt (mit Enter oder [OK]): in #uaw kopieren
ins #uaw
...

 
In #uaw hat man anschließend die ausgewählte Zeile aus der ViewList und kann damit beliebig umgehen.

Tip: Um eine bestimmte ViewListe, die man vorher produziert hat, erneut zu sehen, kann man sie auch manuell aufrufen:  man gibt im Schreibfeld ein

v dateiname

 

Verbesserungen von ASORT
Das DOS-Sortierprogramm ASORT.EXE wurde so verbessert, daß es die Aufgaben des View-Konzepts wahrnehmen kann, wenn auf DOS-Ebene eine ViewListe hergestellt werden soll:

 Option    -u3

beseitigt die Kategorie #u1 und verwandelt #u2 in eine reine Textzeile

(Option -u1 würde nur  #u1  weglassen, -u1 dagegen beseitigt  #u1 und #u2)

 Option   -r

sorgt für umgekehrte Sortierung (wird im Standardpaket nicht ausgenutzt).

 Ältere Versionen (vor dem 7.8.2000) dieses Programms sind nicht brauchbar für die View-Technik.

 


Wie erstellt und nutzt man eine ViewListe?

Dazu gibt es mehrere Möglichkeiten, die mit fertigen Parametern und FLEXen unterstützt werden. Weitere Methoden und Varianten lassen sich entwickeln, wenn man die Bausteine erst einmal beherrscht (siehe oben).

Zuerst braucht man eine Ergebnismenge. Wie man eine macht, wissen Sie. Was darin ist und wie groß sie ist, spielt keine Rolle. Der Name steht dann unten auf der langen Schaltfläche, wie immer. Was macht man, um eine "Neue Sicht" dieser Daten zu erhalten? Man ruft das View-Menü auf. Am schnellsten mit Eingabe von  h view  im Schreibfeld oder auch Punkt "Views" im Menü "Ansicht". Es kommt dann das folgende Auswahlmenü:


a99/alcarta : Views    

Für schnelle ad-hoc-Listen ist der Punkt

 Neue ViP anlegen

Mit Formular

am wichtigsten. Weiter unten ist das Formular abgebildet.

Mit Doppelklick auf

HILFE..HILFE..HILFE    (rechts oben, hier nicht zu sehen)

kann man eine ausführliche Version dieses Menüs anfordern.
Darin sind die einzelnen Funktionen genauer erklärt.



Geben Sie im Schreibfeld ein:  h view , dann erscheint in der Anzeige dieses Menü:

Eine ViP ist eine View-Parameterdatei, also eine Vorschrift zum Erstellen der ViewListe.

Tip: Geben Sie   h view.rtf  ein, dann sieht man auch die zu den Menüpunkten gehörenden FLEXe.

Das Menü hat links die Funktionen zum Erstellen neuer ViewListen, rechts die zur Benutzung vorhandener ViewListen.

Der Reihe nach:

 

ViewListen erstellen

Mit Standard-ViPs  (Ein Doppelklick genügt und alles läuft automatisch ab)

Hier wird der FLEX  view1.flx  gestartet bzw. view2.flx. Die ViPs  v-stand1.apr bzw. v‑stand2.apr werden dabei benutzt (Normaler View bzw. mit Gruppierung und Summierung). 

Für Views, die immer wieder gebraucht werden, kann man ein- für alle mal einige durchdachte Parameterdateien anlegen und dann Kopien des FLEX  view1.flx  oder view2.flx nutzen, um jeweils die aktuelle Ergebnismenge damit zu betrachten. Nur den Namen der eigenen Parameterdatei muß man darin einsetzen.

Die Parameterdateien  v-stand1.apr und v-stand2.apr kann man als Vorlage oder Strickmuster für eigene ViPs verwenden.  Die Stellen sind markiert und kommentiert, wo man modifizieren kann.

Den einschlägigen Parameterdateien sollte man Namen der Form  V-*.cPR  geben.

Wer die Exportsprache beherrscht, hat hier alle gewohnten Gestaltungsmöglichkeiten.

 

Mit eigener ViP  (dahinter steckt der Aufruf:  X view0.flx )

view0.flx ermöglicht die Auswahl einer vorhandenen ViP (wenn man schon mehrere geeignete Parameterdateien des Typs  V‑*.cPR hat) und führt dann damit die Produktion durch. Wer sich mit der Exportsprache auskennt, kann auch jede ViP modifizieren, ausbauen und verfeinern.

 

Neue ViP anlegen:  Mit Formular  (Für Einsteiger das Einfachste, um eigene Wünsche zu verwirklichen)

Über ein Eingabeformular kann man vorgeben, aus welchen Bestandteilen die ViewListe zusammengesetzt werden soll. Hier braucht man keine Parametrierkenntnisse, dafür sind die Möglichkeiten nicht ganz so weitreichend. Immerhin: es entsteht jedes Mal automatisch eine Parameterdatei, die man hernach auch aufbewahren, verfeinern oder erweitern (mehr als 6 Datenfelder ausgeben lassen!) und dann über "Mit eigener ViP" wieder nutzen kann.

(dahinter steckt der Aufruf:  X viewform.flx )

Das Formular sieht so aus: (F1 erklärt, was zu beachten ist)

     

Hier wurde eingegeben, daß #75 (Verlag) das erste Feld sein soll, begrenzt auf 15 Zeichen. Nach diesem Feld wird also sortiert und auch gruppiert (unter "Gruppierung" ist j eingetragen). Zusätzlich werden #20 (Titel) und #76 (Jahr) ausgegeben. Das Feld #95 enthält einen Geldbetrag und soll mit 5 Stellen und 2 Nachkommastellen ausgegeben werden. Es wird dann summiert, sowohl nach Gruppen als auch insgesamt.



    F1 bringt Hilfe!


Dieses Formular ist in der Datei   view2.frm  definiert. Die Eingaben kommen in Variablen #uvA - #uvZ und werden vom FLEX  viewform.flx  dann zu einer Parameterdatei verarbeitet. Diese wird benutzt, um die Ergebnismenge in eine ViewListe zu verwandeln. Wer jedoch Parametrierkenntnisse hat, kann in den Eingabezeilen "Feld 1" bis "Feld mit Zahl" auch Manipulationsbefehle mit unterbringen, z.B.  #20 e" : ", damit vom Feld #20 (Sachtitel) der Zusatz abgeschnitten wird.

 
Neue ViP anlegen: Mit Parametern (für Allegrologen , man braucht hierfür Parametrierkenntnisse)

(Start:  x var "Start"\ins #uYa\var "X viewpara.flx"\ins #uZa\h viewpara  )

Der dann erscheinende Hilfetext (Datei VIEWPARA.RTF) sieht so aus:

 

Wählen Sie die Kategorien, die in Ihrer ViewListe erscheinen sollen
(Alt+y : dann sehen Sie links die Liste aller Kategorien.)
Wenn fertig; auf  Start  doppelklicken oder Strg+s.
Schreiben Sie für jede gewünschte Kategorie eine Zeile, dahinter geeignete Manipulationsbefehle,
z.B. so:

  ***   Zeilen für die ViewListe (alles in Variable #uvv kopieren!)

#40 e20 =vv
#20 U e40 p": " Avv         Gruppierung gewuenscht
#76 e5 p" (" P")" Avv
#77 x"*1" e"." p"_" Avv     Summierung gewuenscht
  ***  Ende ViewZeilen

#+D
   Zeilen für die Tabellen-Ausgabe: (#uxV ist die ViewZeile)

#-Q
#uxV +- c'0t|' B'|' f' |' e0
#uxV c'0a|' B'|' f' |' F' '

  *** Tabellenkategorien
#20
#t9
#40
#t9
#76
#t9
#77

  *** Ende Tab.Kateg.

#uxV c's|' B'|' f' |' F' '

Aber nehmen Sie die Beispielzeilen zwischen *** ... *** weg, denn jede Zeile wird verarbeitet, die mit '#' beginnt. Günstig ist, wenn die Gesamtlänge nicht größer als 80 Zeichen ist.


Tips:

1. Ist Gruppierung gewünscht; dann  ":"  zwischen dem ersten und zweiten Feld (s.o. #20)

2. Ist Summierung gewünscht: "_" vor dem letzten Element, das dann als Zahl interpretiert wird (s.o. #77).

 

Die Kategoriezeilen, die man hier eingibt (mit '#' beginnend), werden anschließend als Mittelteil der ViP  verwendet.

Wenn man auf  Start  doppelklickt, wird VIEWPARA.FLX gestartet und der Text im Anzeigefeld verarbeitet.

 (Den Befehl X viewpara kann man auch mit der Hand im Schreibfeld eingeben, um dies auszulösen.)

Tip: will man die in der aktuellen Sitzung zuletzt betrachtete ViewListe erneut sehen: im Schreibfeld eingeben 

x view again

Die neu entstehenden ViewListen haben bei diesen Prozeduren immer den Namen VVV.VW. Anschließend hat man die Möglichkeit, ihr einen anderen Namen zu geben und damit für eine längere Aufbewahrung zu sorgen.

 
Und jetzt zu den Funktionen auf der rechten Seite des Menüs:

 
ViewListen benutzen

Aktuelle ViewListe = liste

 neu anzeigen
Dieser Punkt löst den FLEX-Befehl  View again  aus, worauf die ViewListe wieder erscheint. Dasselbe kann man mit Strg+o erreichen, weil der Befehl automatisch auf diese Kombination gelegt wird. (Das passiert in der Datei view.rtf)

exportieren  (dahinter steckt der Aufruf:  X viewexp.flx )
Die Datensätze der ViewListe werden in der Reihenfolge der Liste exportiert. Man wird gefragt, mit welchen Parametern das geschehen soll und in welche Datei. Es kommen hierfür, wenn die Liste anschließend gedruckt werden soll, die Para­meter­dateien der Struktur P-*.APR in Betracht, grundsätzlich kann aber jede Export-Parameterdatei gewählt werden. Zusammen mit der Möglichkeit, die Sortierung der ViewListe einzustellen, hat man somit einen vollen Ersatz für die alte CockPit-Methodik der Listenproduktion (Kap. 6 des Handbuchs). Mehr dazu siehe unten.

als Tabelle ausgeben  (dahinter steckt der Aufruf:  X viewtab.flx )

Der zweite Teil der ViP tritt in Kraft: Es werden die gewählten Datenfelder in voller Länge exportiert, jeweils mit einem bestimmten Trennzeichen dazwischen. Meistens wird man das TAB-Zeichen dafür wählen, deshalb ist es voreingestellt (Code 9). Die entstehende Ausgabedatei hat denselben Namen wie die ViewListe, nur mit dem Typ  .vt .

Vorhandene ViewListen sichten, löschen, umbenennen  (Aufruf:  X viewold.flx )

Die auf dem TEMP-Verzeichnis noch vorhandenen ViewListen (Typ .VW) werden zur Auswahl gezeigt. Jede davon kann man sich sofort anzeigen lassen, löschen oder umbenennen.

Hinweis: Es versteht sich von selbst, daß eine ViewListe, einmal erstellt, eine statische, von der Datenbank losgelöste Textdatei ist und daher nach kurzer Frist veraltet sein kann (sie hat keinerlei funktionale Verbindung mit der Datenbank). Ist die ViP noch vorhanden, kann man eine ViewListe aber jederzeit schnell erneuern.

 

Einen View exportieren = Eine sortierte Liste produzieren

Hat man gerade einen View erstellt, kann man mit dem neuen FLEX-Befehl  download view  die zum View gehörigen Datensätze in der durch den View gegebenen Reihenfolge exportieren. Benutzt dazu werden die aktuell eingestellten Exportparameter. Mit dem xport-Befehl kann man natürlich vorher die Ausgabedatei und/oder die Exportparameter auch anders einstellen.

Die mit 'X' markierten Zeilen werden nicht exportiert. Ansonsten wird jede Zeile der ViewListe verarbeitet, auch diejenigen, die keine Satznummer haben: In den Exportparametern hat man immer die aktuelle View-Zeile in der Variablen #uxV und kann diese darauf prüfen, ob sie mit einer Zahl beginnt, z.B. mit den Zeilen  (siehe auch Kommentar in v-stand2.apr)

 
#uxV +A x">0" e0

... hier die Befehle für den Fall, daß kein Datensatz vorliegt, sondern z.B. eine Überschrifts- oder Summenzeile
#+#

#-A   hier geht's weiter, wenn ein Datensatz vorliegt

 

Ist eine ViewListe xyz.vw vorhanden, egal wie und wann sie erzeugt wurde, kann man jederzeit in einem FLEX schreiben:

view xyz.vw
down view

um den Export auszulösen.

Mit  View xyz.vw   kann man die ViewListe wieder betrachten.

View-Erstellung in eigene FLEXe einbauen

In den FLEXen  view1.flx  und view2.flx sieht man, wie es gemacht wird. Diese Dateien sind ausführlich kommentiert, damit man sieht, wo eingegriffen werden kann. FLEXologen können diese Grundmodelle beliebig ausbauen.