Vb.132 : Himmelfahrtskommando

Bernhard Eversberg EV at buch.biblio.etc.tu-bs.de
Di Jun 13 10:14:15 CEST 2000


Verlautbarung 132 der Entwicklungsabteilung                     2000-06-13
-------------------------------------------

MultiKulti
----------

Die diesjaehrige Himmelfahrts-Sonderaufgabe war eine zwiefache:

1) Den Menuepunkt "Datei | Oeffnen" benutzbar machen

2) a99 dazu bringen, eine neue Datenbank anlegen zu koennen.

Das war denn doch zu viel fuer EINEN Feiertag. Ob's nun die Herabkunft des
Hl. Geistes letztendlich gebracht hat, sei dahin gestellt, doch nun ist
beides erreicht.

Zu 1)
-----
Hinter Punkt 1) steckte die gar nicht kleine Problematik, ob a99 nicht zu
einer "Multi-Dokument-Anwendung" umgestaltet werden sollte. (Alle M$-
Programme sind solche Anwendungen, waehrend a99/alcarta "nur" 
Dialoganwendungen sind.)

Nach gruendlicher Abwaegung konnte jedoch kein Grund gefunden werden, warum
man soweit tatsaechlich gehen sollte. Fuer WinWord und Excel macht das Sinn, 
doch das sind Mega-Programme, die tunlichst nur einmal geladen sein sollten. 
a99 ist aber recht schlank, man kann es ruhig 6-8 mal laden. Mit WinWord 
oder Excel hat man ferner nicht selten 10 oder mehr Dokumente offen, aber 
hat man jemals soviele Datenbanken gleichzeitig zu benutzen? Na also.

Die Loesung war deshalb dann doch viel einfacher: Der Punkt "Datei | Oeffnen"
heisst jetzt "Weitere Datenbank oeffnen" und ruft schlicht einen FLEX
auf:  otherdb.flx. Da steht drin:

  otherdb.flx : Weitere Datenbank starten
yes Datenbank suchen? (nein: INI-Datei suchen)
if yes jump db
if cancel end
fnam Datenbank (INI-Datei waehlen)|*.ini
if no end
jump go
:db
fnam Datenbank (*.cDX-Datei waehlen)|*.?dx
if no end
:go
  gewaehlten Namen nach #u{}
ins #u{}
  Befehl zusammenstellen 
var P "\\a99 " #u{}
  und ab geht's
call

Es laeuft also darauf hinaus, dass der User sich eine INI-Datei oder eine
*.cDX-Datei aussucht, und die betr. Datenbank wird dann gestartet.
Voraussetzung:  access=4  in der INI-Datei
Vorteile:

a) Der FLEX kann modifiziert werden, um z.B. die Auswahl einer .cDX nicht
   anzubieten. Oder was GANZ anderes zu machen ...

b) Das neu gestartete a99 ist anschliessend voellig unabhaengig vom ersten
   und kann seinerseits weitere Datenbanken starten (!). Jede kann unab-
   haengig von den anderen beendet werden.

c) Wegen der flexiblen Anderbarkeit der Fenstergroesse kann man sich auch
   zwei oder drei Datenbanken zurecht positionieren, um sie gleichzeitig
   sehen zu koennen.

Das Uebernehmen von Daten von der einen in die andere Datenbank war ja
bereits moeglich. Nur zur Erinnerung: Cut-and-Paste macht man so, dass 
zuerst mit F5 die Kategorieanzeige erzeugt wird, dann markiert man die
gewuenschten Kategorien, dann Alt+c, und im anderen a99 geht man ins
Schreibfeld (!) und macht dort Alt+v. Fertig. 
Oder man legt sich den in news 57 beschriebenen Mechanismus an.

Zu 2) : Neue Datenbank anlegen
------------------------------
a99 verhaelt sich jetzt folgendermassen:
Es schaut, ob auf dem in der INI angegebenen Verzeichnis eine .cDX, .TBL
und .?LD vorhanden ist. Wenn nicht, bringt es als Startseite die neue
Datei  NEWGER.RTF. Von dieser aus kann man den neuen FLEX  new.flx
ausloesen. Da steht drin:

  new.flx : Neuanlage einer Datenbank
  Vorhanden sein muss ein Verzeichnis fuer die Daten, eine INI-Datei (in der
  das Verzeichnis eingetragen ist), eine CFG und alle noetigen Parameter
  Formular 1 anzeigen
form 1
  Es gibt kein Formular -> :pro
if no jump pro
end

:pro
  Abfrageliste zeigen
show prompt
  Es gibt keine -> :cfg
if no jump cfg
end
:cfg
  CFG anzeigen
show cfg

Es wartet dann ab, bis man seinen ersten Datensatz eingegeben hat.
Mit [Speichern] wird dieser abgespeichert, ganz normal, und es entstehen
die noetigen Dateien. Fertig.
Vorhanden sein muss also eine INI mit den korrekten Angaben sowie natuerlich
die CFG und die noetigen Parameter.

Letzteres wird vermutlich vorerst niemand dringend brauchen, aber es ist
ein notwendiger Baustein zu einer CockPit-Nachfolgeloesung.


Pfingst-Zugabe:
---------------
Der neue FLEX-Befehl  STOP   (gross geschrieben!)
stoppt das Programm abrupt und verzichtet ohne Rueckfrage auf das
Speichern der noch in Bearbeitung befindlichen Dateien.
In welcher Form man diese Funktion als Flip oder wie immer anbietet, ist
dem Anwender ueberlassen.
Neuerungen gibt es ferner bei den Sondervariablen, die man in einen
"cstring" einbauen kann (am Ende von FLEXGER.RTF beschrieben)

Auf  ac20/update  liegen a99.lzh und alcarta.lzh. Im ersteren sind auch die
neuen Dateien (new.flx etc.)

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