Tip:
Highlight text to annotate it
X
Willkommen zum Java Break mit BASIS.
Mein Name ist Nico Spence. Ich bin Chairman und CEO von BASIS International.
Heute zeigen wir eine weitere Erfolgsstory, ...
..aber mit einem anderen Fokus.
Ein generischer Ansatz, wie man eine ASCII- oder
GUI-Anwendung mit etwas GUI-Flitter aufpeppen kann.
Und los geht's mit der Agenda. Wir geben einen Technologie-Überblick,
sehen uns die Problematik an, der Sie sich
täglich stellen; und wir sehen uns eine Musterlösung an.
Heute wird es sehr praktisch zugehen.
Dann zeigen wir im Detail, wie's gemacht wurde.
(Die Barista-Angebote sind nicht mehr verfügbar)
Zum Ende fassen wir Ihre Vorteile zusammen.
und beantworten Ihre Fragen.
Zuerst also der Technologie-Überblick. Wir hatten uns verschiedene Ausprägungen angesehen.
Heute werden diese alle eine Rolle spielen:
PRO/5-Systeme mit vielen Usern
rufen BBj-Programme via XCALL auf,
oder greifen gleichzeitig auf die gleiche
Datenbank zu, nutzen die gleichen Locking-Mechanismen.
Wir schauen uns auch Visual PRO/5-Systeme mit 5-25 Usern
und große BBj-Systeme an.
Verschiedene Features - heute sehen wir, wie Sie mit Barista
den GUI-Flitter in Ihre
grafische oder ASCII-App zaubern.
Worin besteht die Herausforderung? Wir möchten unsere Legacy-ASCII-
oder GUI-Anwendung modernisieren.
Die User sollen Ihre Daten mit einem GUI-Grid komfortabler bearbeiten können.
Das ist in Visual PRO/5 sehr schwierig,
die Grid-Logik
ist in unserem Windows-Produkt weit schwächer entwickelt
als in BBj, unserer plattformübegreifenden grafischen Entwicklungsumgebung.
BBj unterstützt Grids deutlich besser als VPRO/5.
Aber wir abstrahieren noch eine Schicht weiter
und verwenden Barista. Dadurch
brauchen wir weniger als zehn Zeilen Code!
In unserer Musterlösung gehen wir Schritt für Schritt vor.
Wir nehmen das RAD-Tool Barista,um unsere
CUI- oder GUI-Anwendung aufzupeppen.
Und wir profitieren sofort von den Barista-Vorteilen.
Wir starten den GUI Lookup-Grid direkt aus der
ASCII- bzw. GUI-Anwendung. Heute zeigen wir das für eine ASCII-App.
Das beschert uns eine Filterfunktion für die Daten, ermöglicht also das Umsortieren der Grid-Spalten.
Wir gewinnen Optionen wie
die Erzeugung einer blätterbaren Druckvorschau am Bildschirm,
oder können Dateiformate wie XLS, CSV, XML, oder Google Doc erzeugen. Wir können die Daten faxen,
er E-mail versenden
und automatisch archivieren - das sind alles Funktionen
die in Barista eingebaut sind.
Wiederholen wir kurz, was Barista ist und kann.
Barista ist unser Data Dictionary-basiertes RAD-Tool
und Runtime-Engine. Und diesen Runtime-Aspekt
werden wir uns heute besonders zu Nutze machen.
Mit Barista entwickeln Sie neue GUI-Anwendungen,
und machen aus ASCII-Anwendungen grafische.
Diesen Aspekt von Barista als Brückentechnologie sehen Sie heute,wenn wir
grafische Elemente in eine ASCII-Anwendung einbinden.
Und natürlich können wir bestehende grafische Anwendungen mit schwachen Grid-Features damit modernisieren,
indem wir diese zehn Zeilen Code einbauen,
die den Barista Grid-Lookup aufrufen.
Barista ist ein Standard-Framework. Es bringt die Navigation, Anzeige, Suche und Dateimanagement mit
und verbindet den User interaktiv mit der Datenbank. Das wird heute das Hauptthema sein.
Und: Barista liefert funktionale GUI-Anwendungen für verschiedene Betriebssysteme, ist also nicht
auf Windows beschränkt.
Sie erhalten ein modernes Look-and-Feel...
...und eine standardisierte Tastatur- und Maus-Navigation ohne Programmieraufwand.
Sie müssen nicht immer die Maus nehmen.
Es gibt Tastaturbefehle für alles,
was sie mit der Maus ausführen können.
Und es nutzt unsere eingebaute SQL-basierte Abfrage-Engine.
Dazu gleich mehr.
Entwicklern beschert enormen Produktivitätszuwachs.
Sie arbeiten effizienter und können
in der gleichen Zeit mehr Kunden bedienen.
Und natürlich sinken die
Entwicklungskosten für Ihre Kunden,
und zwar potenziell um den Faktor 10.
Sie sparen also bei der Erstentwicklung des Produkts
und auch bei der laufenden Wartung Ihrer Anwendung.
Künftige Erweiterungen gehen leicht von der Hand
oder werden sogar direkt mit dem Tool mitgeliefert.
Nutzer können sich ihre benötigten Reports direkt selbst konfigurieren.
Das sehen Sie gleich selbst in der Demo.
Beginnen wir also mit der Demo.
In der aktuellen "Advantage" finden Sie übrigens
auch einen Artikel über dieses Thema.
Sehen wir uns also die Lösung
in Aktion an.
für unsere Demo sehen wir uns zunächst
den kleinsten gemeinsamen Nenner an.
Wir nehmen die ASCII-Anwendung "CD Jazz"
und laden sie in die BASIS-IDE, laden das Dateisystem
Wenn wir nun hier unten in das Verzeichnis "Prog" gehen
Ich klicke auf die Mitarbeiter-Verwaltung
und öffne sie im Vollbild-Modus
der Code ist vielen von Ihnen vertraut.
Ganz simpler Code mit Zeilennummern
ich starte den Code,
und minimiere die IDE,
und hier ist das Programm, mit dem wir
die Mitarbeiter eines Unternehmens verwalten können.
Natürlich gibt es hier auch ASCII-Abfragen,
aber sehen wir uns die neue
grafische Grid-Abfrage an, die wir hinzugefügt haben.
wir drücken F3...
...und die Grid-Abfrage erscheint.
Das ist die mitgelieferte Version,
Nun können wir Filter eingeben und speichern,
und diese Filter werden für den nächsten Systemstart behalten.
Als erstes möchte ich
die Spaltenbreiten anpassen.
Das sieht aufgeräumter aus
und wir passen es an den verfügbaren Platz an.
Und fertig. Nun passt alles auf den Bildschirm.
Sie haben nun zusätzliche Funktionalität gewonnen. Klar - wir können die Mitarbeiter nach Familiennamne durchsuchen.
wenn ich hier draufklicke, wird nach Familiennamen sortiert.
Und dann kann ich mit der Shift-Taste unter dem Familiennamen ...
noch nach Vornamen sortieren.
Dannach ist "Aaron Abby" vor "Steven Abby" einsortiert.
Wenn ich auf einen Eintrag doppelklicke, wird der Wert
an die ASCII-Anwendung zurückgegeben.
Rufen wir die Abfrage erneut auf und sehen mal,
welche weiteren Funktionalitäten nun verfügbar sind.
Zunächst ein paar optische Hinweise - der kleine Schlüssel zeigt ein Schlüsselfeld an.
Wenn die Felder Vor- und Nachname einen Schlüssel hätten,
würden wir das auch hier sehen. Ein Hinweis:
Sie können jederzeit Schlüssel hinzufügen, ohne Ihren bestehenden Quellcode ändern zu müssen.
Einfach die Schlüssel hinzufügen,
den WRITE oder WRITE RECORD-Befehl
mit dem KEY=,
Der Interpreter merkt selbst, dass es sich
z. B. um eine MKEYED-Datei handelt
und ignoriert dann das KEY=.
Sie können also nach der Änderung sofort weiterarbeiten.
Aber zunächst ändern wir noch andere Parameter. Hier oben rechts sehen Sie
eine Option
zur Einrichtung von Filtern.
Und zwar werden wir die stundenweise Beschäftigten ausfiltern.
Dieses Tool ist großartig, wenn Mitarbeiter nach Bedarf diese
benötigten Filter selbst definieren können.
Danach zeigt uns dieser kleine "*" an,
dass diese Spalte gefiltert wurde.
Den Filter speichern wir...
und so können wir ihn
später wieder laden, ....
in dem wir einfach auf die
Taste hier oben klicken.
Wir erhalten die Dropdown-Liste.
Wir leeren sie und sehen dann alle Mitarbeiter
oder
wählen nur die stundenweise Beschäftigten aus.
Ihre Nutzer können viele unterschiedliche Untermengen der Daten
abfragen, wenn Sie ihnen diese Abfrage zur Verfügung stellen.
Aber wir können noch mehr tun. Jetzt haben wir die stundenweise Beschäftigten
ausgewählt. Diese Spalte hier ist also überflüssig.
also schauen wir uns die Abfragespalten an. Der User kann auswählen, dass
diese Spalte nicht mehr angezeigt werden soll.
Genauso könnte er z. B. zuerst den Vor- und dann den Nachnamen sehen wollen.
Dann können wir das einstellen.
Sortieren wir also neu.
Wir haben nun die gleichen Informationen in anderer Sortierung.
Das ist natürlich noch nicht alles. Wir können diese Informationen nun auch
in vielen verschiedenen Formaten ausgeben.
Dabei können wir wählen: Entweder wir exportieren ...
..."alle" oder nur "markierte" Datensätze.
Dann schicken wir die Auswahl zu DocOut,
dem "Document Output Viewer"
oder wir erstellen eine PDF-Datei, ...
bzw. eine Excel-Datei. Zunächst DocOut.
hier sehen Sie die Vorschau.
Ein Report,
der uns zur Verfügung steht.
Unter "Speichern unter"
sehen wir die vielen Optionen,
die Sie erwarten -PDF,
XML, Tabellenkalkulation, usw.
Ich breche hier ab.
die zweite Option die wir haben ist die
Document Output-Auswahl, die wir schon gesehen haben. but we can
Aber wir können speichern,
auch faxen oder e-mailen,
als PDF speichern ...
die PDF können wir auch gleich anzeigen lassen.
Ich breche hier ab.
Es gibt viele Optionen. .. hier ein Druckvorschau-Fenster...
Wie ich sagte: ein einfaches, nützliches Reporting-System.
Die andere Option: Wir können die Datensätze auch
exportieren, z.B. in eine Tabellenkalkulation
und
im Default
greift dies auf meinen lokalen Rechner zu, für den ich kein
Sicherheitszertifikat habe. aber ich fahre trotzdem fort. Der Download ist erfolgt.
Über Chrome....
wird automatisch Excel gestartet, dem bei mir das XLS-Format zugeordnet ist.
und hier das Ergebnis.
Wir können uns die Daten in
einer Excel-Tabelle ansehen.
Eine ähnliche Funktionalität steht uns
für den Export in PDF zur Verfügung.
Das sind also unsere Optionen. Wir könnten auch Daten per Copy und Paste in ein
anderes Dokument kopieren.
und es gibt weitere Optionen, z. B. Übernehmen von Datenbanktabelle
und Spaltentiteln,
wir können beliebige Delimiter setzen, und auch
den Text-Trenner: einfache, doppelte Anführungszeichen usw.
Diese mächtigen Funktionen stehen Ihnen
also zur Verfügung.
Ebenso dem Enduser, der sich damit seine Reports selbst zusammenstellen und
produktiver arbeiten kann -
Tag für Tag.
Werfen wir noch einen Blick auf die schicke Suchfunktion.
Wir können mit Wildcards suchen.
Diese beiden Spalten sollen bei der Suche "case insensitive" sein.
Wir können also mit einer Wildcard wie "erson" suchen.
als Ergebnis erhalten wir
die "Andersons" und die "Hendersons."
Verkürzen wir als Beispiel
die Wildcard auf "sons",
und wir erhalten deutlich mehr Namen, die das Kriterium erfüllen.
Wir könnten auch wie gesagt nur den ersten
Buchstaben des Namens eingeben,
und erhalten alle Namen, die mit "C" beginnen.
eine sehr mächtige Funktionalität
und ein nützliches Tool
das Enduser produktiver macht.
Die große Frage ist nun wohl: Wieviel Code war nötig, um das alles zu realisieren?"
Ich habe versprochen, dass sie keine 10 Zeilen
in Ihrer ASCII-Anwendung einfügen müssen,
Um das Grid Lookup einzufügen.
Und hier sehen den Code.
Es sind sogar
nur acht Zeilen Code.
schauen wir sie uns an.
Zunächst bestimmen wir das Installations- verzeichnis von BBj, mit diesen 2 Zeilen.
'System.getProperty'
des 'configDirectory'
und wir setzen 'bbjHome$'
als diesen Verzeichnispfad.
Dann setzen wir einen Namen für die Group Namespace-Variable, die wir für den
Rückgabewert verwenden wollen.
Wir "scallen", d.h. starten einen Systemaufruf
an BBj, um den Grid Lookup zu erzeugen.
Den Rückkanal zu unserer ASCII-Anwendung...
legen wir mit dem Namespace. Namespace ist ein BBj-Konzept
das uns den Austausch von Informationen
aus verschiedenen Prozessen,
aus verschiedenen BBx-Interpreter-Sessions erlaubt.
Wir setzen also einen eindeutigen Namen mit einer
'pid'-Nummer, einer Prozess-ID-Nummer
mit der 'info(3,0)'
und
dann führen wir den eigentlichen SCALL aus,
wir rufen die Barista-Query via SCALL auf
Wir verwenden das Argument "-w".
Barista wartet, bis der Nutzer die Abfrage beendet, indem er ein Fenster schließt ...
.. oder eine Auswahl trifft.
Wir geben die Info zurück. Hier geben wir den Namen
der Query 'CDJ_EMPL' an.
Das sehen Sie gleich.
Dann legen wir eine Group Namespace-Variable an,
und speichern die Mitarbeiterdaten
in Value. Wenn der Nutzer das
Grid Lookup ohne Auswahl schließt, existiert der Namespace nicht
oder er bleibt leer.
Und wenn mehrere Filter zugelassen waren,
wenn wir mehrere Reihen gewählt haben,
handeln Sie das mit dem "^"-Zeichen.
Dann müssen wir nur noch die Mitarbeiter-ID in die gleiche Eingabevariable laden,
als hätte der Nutzer die ID per Tastatur in sein ASCII-Programm eingegeben.
Schauen wir uns die *** nacheinander an.
Erstens haben wir eine Barista-Anwendung erstellt. D. h. wir haben Barista
gesagt, dass wir einige Komponenten
in unserer Anwendung verwenden wollen, und sie benannt.
Das Beispiel zeigen wir gleich.
Dabei zeigen wir auch, wie Sie Ihren Data Dictionary nach Barista importieren können.
Was passiert, wenn Sie keinen Data Dictionary haben?
Das ist kein Problem.
Sie können für die Tabellen, die Sie importieren wollen, einen DD anlegen.
Markieren Sie das String Template für die Tabelle
im Quellcode Ihrer Anwendung
Dort, wo Sie Ihre I/O Liste oder Ihr String Template haben.
Kopieren Sie es in den Data Dictionary Editor im Enterprise Manager oder in die IDE.
Und voilà, fertig ist der Data Dictionary.
Beim Import kreiert Barista Elementtypen und Tabellendefinitionen
und erzeugt daraus automatisch Formulare zur Datenpflege,
Reports und Abfragesysteme.
Ich geben an Ralph Lance weiter,
unseren Senior Software Engineer für Barista. Er zeigt wie es geht.
Um eine Anwendung in Barista zu erzeugen, The first thing you do in order to create an application in Barista is
wählen Sie den Menüpunkt
Create Application
und für unsere Demo
wählen wir aus dem Verzeichnis 'Training',
die Konfiguration 'cdjazz', die
ich vorbereitet habe.
Im Prinzip gehen Sie nun durch den Wizard und füllen die Felder aus,
um Ihre Anwendung zu identifizieren. Dann klicken Sie "Next" und wählen aus,
welche Sprachen Sie in der Anwendung zur Verfügung haben möchten.
Klicken Sie "Weiter" und definieren Sie die Module,
die Ihre Anwendung enthält.
In unserem Fall gibt es nur ein Modul. Wir geben ihm die ID CDJ.
Ein Kombination aus dem Company-Kürzel
under der Produkt-ID
ermöglicht Ihnen,
das BASIS-Lizenzsystem zu nutzen, um Ihr geistiges Eigentum zu schützen.
Wir klicken ein paar Mal auf "Weiter",
um diese globalen Parameter
in der Barista-Konfiguration einzurichten.
So weiß Barista wo es suchen muss, und das Abfragesystem
findet die SQL-Engine
und die Datei Config.INI
wo die globalen Parameter abgelegt sind.
Klicken Sie "Weiter", und wir sind fertig. Nun kreieren wir die Anwendung.
Hier wird die Definition der Anwendung kreiert, und durch das Synchronisieren
ziehen Sie eine Anwendungsdefinition
in Barista und machen sie für Barista zugänglich.
Das geht ruckzuck.
Ihr nächster Schritt bei einer neuen Anwendung: Gehen Sie in "Barista Development"...
und importieren sie die bestehenden Tabellen
die im Data Dictionary Ihrer Anwendung enthalten sind.
Unser DD liegt im Verzeichnis "Training",
"CD Jazz","BBdict".
Wir geben das Präfix der Anwendung "CDJ" an.
Das Präfix steht immer am Anfang von Tabellennamen, Elementnamen usw.,
die Beschreibungen der Tabellen, Elemente u. Tabellenspalten enthalten.
So finden wir die Objekte unserer Anwendung in Barista schneller wieder.
Es ist also vorteilhaft, das Präfix immer anzugeben.
Wir klicken "Weiter".
Wir sehen eine Liste der Spalten bzw. Felder unseres Data Dictionary
und auch den Parameter "Data global",
die wir auf unseren DD CDJazz abändern.
Wir klicken ein paar Mal auf "Weiter",
wählen die zu importierenden Tabellen aus,
und Barista importiert die Tabellen.
Das war's.
Links sehen Sie nun, dass
Barista ein Menü erzeugt hat
auf Basis der Informationen, die die Anwendung beschreiben.
Im Menu haben wir Zugriff auf die Tabellen, die in unserem
BASIS Data Dictionary enthalten sind.
Nun wollen wir sehen, was Barista im Standard
für Funktionen für die
Mitarbeiter-Tabelle bzw. die Mitarbeiter-Datei bietet.
Hier sehen Sie die grafische Version unseres Mitarbeiter-Formulars, aus der Legacy-Anwendung.
Ohne Aufwand habe ich die Datensatz-Navigation,
die Bestätigung beim Löschen von Datensätzen,
und ich habe die eingebaute Datensatzpflege, um sehr einfach
zu suchen,
zu sortieren
und meine Daten innerhalb der Datei zu filtern,
und ich kann alle Datensätze, die ich bearbeiten will,
auswählen.
Nehmen wir nun an, es gäbe keine DD-Definition für unsere Mitarbeiter-Tabelle.
Wie würden wir eine anlegen?
Schauen wir uns dazu noch einmal die BASIS IDE...
und dort die eigentliche Tabelle an.
Hier unten finden wir 'cdj_empls' (CDJ-Mitarbeiter)
wir rechtsklicken darauf und können die BASIS Datendatei sehen,
können den gewünschten Typ der gewünschten Datensatzsperre aussuchen,
und sehen hier den Inhalt der Datendatei. wir können darin mit der Tab-Taste navigieren.
Wir können sie auch mit Hilfe eines Datensatz-Templates betrachten.
Schauen wir uns ein Datensatz-Template an. Wir doppelklicken auf dieses
zweite PRO/5-Programm hier, sehen wir hier
unsere IOLIST mit fünf Elementen,
und hier eine besser lesbare
Liste der Variablennamen.
Um daraus ein String-Template zu machen, brauchen wir
nur den Datentyp, die max. Feldlänge und den Feldbegrenzer anzugeben,
in diesem Fall ein Sternchen.
Das sagt uns, dass es sich um ein Zero A handelt.
so gehen wir
durch die verschiedenen Werte
un legen die Typen und Längen fest.
Dann haben wir unser String Template.
Nun schneiden wir es aus und verschieben es in unsere
kleine Utility.
Wir gehen zurück zur Utility,
geben dort unser Datensatz-Template ein und klicken "Refresh".
Und fertig!
Nun können wir durch die Tabelle blättern und die Werte ansehen.
Das ist schon mal recht nützlich. Wie machen wir daraus ein String Template?
Und wie verwandeln wir das String Template in ein Data Dictionary?
Gehen wir also wieder zurück zu unserem Tool,
der Datenbank-Konfiguration. Das können Sie vom EM oder von der IDE aus tun.
Wenn wir rechtsklicken auf LOCALHOST und verbinden...
mit den Standard-Zugangsdaten von BASIS,
User Name, Passwort: admin, admin123
hier ist eine Liste unserer Tabellen, und wenn Sie CDJAZZ auswählen,
fehlt die CDJ_EMPLOYEES. Die legen wir jetzt an.
So einfach ist das.
wir gehen auf "Tabellenname" und geben dort ein "CDJ_EMPLOYEES".
Und jetzt fügen wir die ganzen Spalten ein. Ich will das aber nicht alles tippen,
also kopiere ich unsere String Template hier rein,
und fertig!
Jetzt braucht es noch einen Index, also fügen wir ihn ein.
Wir geben ihm einen klareren Namen:
EMPL_ID
und fügen einen Abschnitt hinzu.
wir brauchen nur einen Abschnitt, und der heißt auch EMPL_ID.
Jetzt speichern wir den Dictionary,
dann wird die Tabelle angelegt.
wir doppelklicken noch einmal darauf
und geben die Details der Datei ein.
Wenn ich mich richtig erinnere, hieß das 'cdj_empls'.
Wir speichern den Dictionary,
und drücken auf "Refresh".
Hier sehen wir den Datentyp MKEYED.
wir können die Tabelle analysieren.
Dann erfährt die SQL-Engine etwas mehr über den Inhalt
und wie sie am besten auf die Daten zugreift.
Wir sehen hier eine kleine Fehlermeldung. Sehen wir mal nach.
Wir haben ein neues Feature im Data Dictionary,
Wir können die Fehlermeldungen auf ausgewählten Tabellen reparieren.
Wir lesen, dass in einem DEPT einen Wert mit 21 Zeichen
statt der erwarteten 20 gefunden wurde.
Wir reparieren das....
und starten erneut die Analyse. Die Tabelle ist recht klein, das sollte also nicht so lange dauern.
Erneut "Refresh",
und fertig!
Die Fehlermeldung ist weg.
und können wir, wie Ralph uns vorhin gezeigt hat,
den Data Dictionary nach Barista importieren.
Hier ist er.
Mit dem Data Dictionary kriegen wir unsere Barista-Anwendung rasch zum Laufen.
Als nächsten Schritt definieren wir eine individuelle Abfrage.
Wir starten die Funktion 'Query Definitions' im
Barista Application Framework...
und wir beschreiben die Spalten bzw. Felder für diese Abfrage.
Die Felder können aus mehreren Tabellen stammen. Unser heutiges einfaches Beispiel
nutzt aber nur die Mitarbeiter-Tabelle.
Wir können den von Barista erzeugten SQL-Code verwenden, um unser Grid-Query zu erzeugen,
oder Sie können eigenen SQL-Code einbinden.
Die Abfrage kann also beliebig komplex werden.
Dann müssen wir den SQL-Befehl testen.
Sehen wir uns an, wie das funktioniert.
Gehen wir also zum Barista Application Framework
und richten die Abfrage ein. Wir klicken auf Barista Development,
wählen Query Definitions aus und
legen CDJ_EMPLY als Abfrage an.
Die Beschreibung lautet 'Employee Lookup and Reporting'
denn wir haben ja den Zugang zu DocOut.
Unser Table Alias ist die Haupttabelle.
Das wird die Tabelle 'CDJ_EMPLOYEES' sein.
Wir legen einige Optionen fest, erlauben dem Nutzer, die Spalten zu verändern,
Filter zu definieren,
und Output an DocOut zu übergeben, und in die Zwischenablage zu kopieren.
Wir wählen die Standard-Company ID, wenn Sie keinen Kopierschutz
brauchen. Den können wir Ihnen bei Bedarf gern einrichten.
Ansonsten übernehmen wir die Standardeinstellungen,
und speichern die Informationen - das waren die Titel-Informationen.
Nun definieren wir die Spalten, die in Ihrem Grid zu sehen sein werden.
Mit diesem Drop Down-Menü generieren wir die Spalten aus dem Data
Dictionary und der Definition der Tabelle CDJ_EMPLOYEES.
Wir wählen alle Felder aus
und übernehmen sie.
Dann machen wir noch ein paar Änderungen: Ich will bei der Nachnamen-Suche
case-insensitive vorgeben.
Also haken wir das an.
Nach Vornamen genauso,
also klicke ich's an.
Und dann ändern wir auch den Spaltentitel.
Der sieht so noch nicht benutzerfreundlich aus.
Nehmen wir "Angestellt" oder
"Arbeiter" als Titel.
Wir speichern alles.
Kommen wir nun zur SQL-Syntax.
Barista is SQL-fähig.
Wir können also mit SQL die Auswahl der Daten für unser Grid treffen.
SQL von Hand zu tippen ist aufwändig, deshalb gehe ich hierhin und lasse
Barista den SQL-Code für uns generieren.
Und hier ist der einfache SELECT-Befehl.
Das SELECT-Statement könnte natürlich auch wesentlich komplexer sein.
Sie könnten auch verschiedene Tabellen verbinden und Informationen aus Sekundärtabellen filtern.
und in diesem Format ausgeben.
Gehen wir zurück, speichern,
und nun können wir über das Drop Down-Menü den Test aufrufen.
Und hier ist er!
Das hat nicht lange gedauert.
Den letzten Schritt haben wir vorhin bereits erwähnt.
Das Einbinden der neuen Lookup-Funktion in die ASCII-Anwendung.
Das sind unsere zehn Zeilen Code.
Fügen Sie den neuen Lookup hinzu, rufen Sie die Abfrage via SCALL auf
und verwenden Sie den 'Namespace', um die Auswahl des Nutzers zu übernehmen.
Was ist mit der Performance? Was ist, wenn die Performance nicht gut ist?
Denn der Nutzer kann ja beliebige Spalten abfragen und beliebig sortieren.
Nun, man kann immer die passenden Schlüssel in die Tabelle einbinden.
Mit dem Query Analysis-Tool können Sie sehen, welche Abfragen Ihre Nutzer auf die Tabelle ...
angewendet haben...
und die entsprechenden Schlüssel einrichten.
Danach führen Sie wieder die Tabellen-Analyse durch.
Sie brauchen sich keine Gedanken über die neu eingefügten Schlüssel machen.
PRO/5 und BBj berücksichtigen die Änderung automatisch.
Code, der einen WRITE or WRITERECORD-Befehl mit der 'KEY='-Syntax
enthält, der eine SingleKeyed MKeyed-Datei erwartet, ignoriert den 'KEY='-Parameter.
Die Interpreter sind schlau genug zu wissen, in welches Dateiformat sie schreiben,
und sich entsprechend zu verhalten.
Sie müssen höchstens bedenken,
alle Utility-Programme zu ändern,
die die Datendatei definieren oder neu definieren.
- Die Barista-Angebote sind nicht mehr verfügbar -
Vergessen Sie nicht, sich die TechCon in Las Vegas
im Kalender zu notieren:
13.-15. Mai 2013
Trainings folgen am 16.-17. Mai.
Und jetzt freuen wir uns auf Ihre Fragen.