Schnelle Anwendungsentwicklung auf Client-/Server-Basis. Entwicklerhandbuch. Version 2014 Änderungsstand - PDF\nSchnelle Anwendungsentwicklung auf Client-/Server-Basis. Entwicklerhandbuch. Version 2014 Änderungsstand\nDownload "Schnelle Anwendungsentwicklung auf Client-/Server-Basis. Entwicklerhandbuch. Version 2014 Änderungsstand 06.11.2014. www.datacool."\n1 DataCool Schnelle Anwendungsentwicklung auf Client-/Server-Basis Entwicklerhandbuch Version 2014 Änderungsstand Copyright 2014 Ingenieurbüro Neuhahn GmbH Tengstr Ingolstadt DataCool ist ein eingetragenes Warenzeichen (Registernummer )\n2 2 Inhaltsverzeichnis 1 Einleitung 1.1 Vorwort 1.2 Vereinbarungen zur Schreibweise 2 Installation und Konfiguration 2.1 Funktionsweise von DataCool Anwendungen 2.2 Einzelplatz-Installation 2.3 Client-Installation und Update 2.4 Lizensierung von DataCool USB-Dongle Lizenzcode 3 Erstellung einer DataCool-Anwendung 3.1 Anlage einer neuen Datenbank 3.2 Anhängen einer bestehenden Datenbank 3.3 Einrichtung von Verbindungen auf Client-Computern 3.4 Die Übungsdatenbank DataCool Tutorial 3.5 Programmstart und Befehlszeilenparameter 3.6 Systemkonfiguration 3.7 Arbeitsplatzkonfiguration 3.8 Verbindungskonfiguration 4 Formulare und Verknüpfungen 4.1 Anlegen eines Formulars Formular: Entwurf Objekt hinzufügen: Text Objekt hinzufügen: Linie Objekt hinzufügen: Rechteck Objekt hinzufügen: Button Objekt hinzufügen: Bild Objekt hinzufügen: Feld Objekt hinzufügen: Subformular Objekte bearbeiten Objekte verschieben Objekte löschen Formular: Indizierung Formular: Eingabezwang Formular: Tab-Reihenfolge Formular: Felder für Listenansicht Formular: Eindeutigkeit Formular: Menüdefinition 4.3 Änderung eines Formulare 4.4 Verknüpfungen 4.5 Ableitungsformeln 4.6 Ereignisverarbeitung\n3 3 5 Menügestaltung 5.1 Standardmenü 5.2 Toolbarmenü 6 Benutzerverwaltung 6.1 Benutzer definieren und ändern 6.2 Benutzerrechte zuweisen 7 Datenaustausch 7.1 Datenimport 7.2 Datenexport 8 Hilfsmittel 8.1 SQL Direkt 8.2 Dokumente exportieren und importieren 8.3 Formulare aus anderen Quellen erstellen 8.4 Konfigurationstool für Client-Arbeitsplätze 8.5 Globale Suche 9 SQL Server 2012 Express 9.1 Installation SQL-Server und Management Studio 9.2 Erstellen einer neuen Datenbank 9.3 Anhängen einer bestehenden Datenbank 9.4 Hinweise zur Datensicherung 10 DataCool Scriptsprache (SQL Basic) 10.1 Aufbau der Scriptsprache 10.2 Script-Editor 10.3 Script-Wizard 10.4 Befehlsübersicht 10.5 Referenzteil\n4 4 1 Einleitung 1.1 Vorwort DataCool ist ein Entwicklungswerkzeug für Client-/Server-Anwendungen. Mit Hilfe der intuitiven Benutzeroberfläche können versierte Anwender innerhalb kurzer Zeit Datenbank-Anwendungen erstellen. Viele zeitintensive Programmieraufgaben werden von DataCool automatisch im Hintergrund für Sie erledigt. Auf diese Weise kommen Sie auch ohne große Vorkenntnisse schnell ans Ziel. Was ist eine Client-/Server-Anwendung? Die Client-/Server-Technologie basiert auf der SQL-Abfragesprache. SQL ist die Abkürzung für Structured Query Language. Hierbei handelt es sich um eine Sprache zur Definition, Manipulation und Abfrage von Daten in relationalen Datenbanken. Die Kommunikation zwischen dem Server und dem Client erfolgt mit Hilfe dieser Sprache. Was sind die Vorzüge der Client-/Server-Technik? Die SQL-Abfragesprache ist standardisiert und bietet somit eine weitgehende Unabhängigkeit von der verwendeten Software. Die Verarbeitung der Daten erfolgt zum überwiegenden Teil im Server. Zwischen Server und Client werden nur Befehle und Ergebnisse übertragen. Diese Vorgehensweise führt zu einer Reduktion der Netzwerklast. Sperrkonflikte oder defekte Indexdateien, wie sie in Datei-basierten Datenbanken häufig auftreten, gehören der Vergangenheit an. Mit Hilfe der Transaktionsverarbeitung können Befehlsfolgen zu einer logischen Einheit zusammengefasst werden. Die Befehlskette wird dann nur komplett oder gar nicht ausgeführt. Muss ich SQL lernen, bevor ich mit DataCool arbeiten kann? DataCool setzt keine Kenntnisse in SQL voraus. Mit dem Formulargenerator erstellen Sie in einem Arbeitsgang Eingabemaske und SQL-Tabelle. Danach können Sie sofort mit der Datenerfassung beginnen. Für die wichtigsten Programmieraufgaben stehen Ihnen Hilfswerkzeuge (Wizards) zur Verfügung. Mit der Hilfe der Wizards können Sie die SQL-Sprache spielend erlernen. Für anspruchsvolle Aufgaben steht Ihnen die DataCool Scriptsprache zur Verfügung. Diese Scriptsprache verbindet auf einfache Weise Elemente aus SQL und BASIC.\n5 5 1.2 Vereinbarungen zur Schreibweise In diesem Handbuch werden verschiedene Schreibweisen verwendet um eine bessere Lesbarkeit zu gewährleisten: F2 Neu Courier Funktionstaste Schaltfläche oder Toolbar-Button Scriptbefehl oder Ableitungsformel Nützlicher Hinweis Wichtige Information, die unbedingt beachtet werden sollte Neues Feature ab Version DataCool 2014\n6 6 2 Installation und Konfiguration 2.1 Funktionsweise von DataCool-Anwendungen Für die Erstellung einer DataCool-Anwendung benötigen Sie eine SQL-Datenbank. Im Einzelplatzbetrieb wird hierfür der SQL Server Express 2012 Local DB vom DataCool Setup installiert. Verwenden Sie hierzu eines der folgenden Setup- Programme: Setup DataCool 2014 Win7 32 Bit.exe Setup DataCool 2014 Win7 64 Bit.exe Das Einzelplatz-Setup ist für folgende Betriebssysteme geeignet: Windows 7 (32 Bit bzw. 64 Bit) Windows 8 Im Netzwerkbetrieb können Sie den SQL Server Express 2012 kostenfrei von Microsoft herunterladen und auf dem Server installieren. Einzelheiten hierzu erfahren Sie bei Bedarf in Kapitel 9. Auf den einzelnen Arbeitsplätzen verwenden Sie dann nur das Client Setup von DataCool: Setup DataCool 2014 Client.exe Das Client Setup ist für folgende Betriebssysteme geeignet (32 Bit und 64 Bit): Windows XP Windows Vista Windows 7 Windows 8 Das Client Setup können sie auch auf dem Server ausführen, falls Sie direkt auf dem Server mit DataCool arbeiten möchten. In der gesamten nachfolgenden Dokumentation wird unabhängig von der eingesetzen Version stets die Bezeichnung SQL Server verwendet. Eine mit dem SQL Server Express LocalDB entwickelte Datenbank können Sie zu einem späteren Zeitpunkt jederzeit auf den SQL Server Express migrieren, wenn Sie von Einzelplatz- auf Netzwerkbetrieb umsteigen möchten.\n7 7 Je nach Anwendungsfall ergeben sich folgende Installationsmöglichkeiten: SQL Server Local DB + DataCool Einzelplatz Der SQL Server Express Local DB und DataCool werden auf demselben Rechner installiert. Hierfür benötigen Sie nur eine DataCool Lizenz. Peer-To-Peer Netzwerk DataCool SQL Server Express + DataCool DataCool Der schnellste Rechner in Ihrer Arbeitsgruppe wird als Server ausgewählt. Auf diesem Rechner wird der SQL Server Express installiert (siehe Kapitel 9. Im nebenstehenden Beispiel ist diese Station rot markiert. Auf allen Rechnern der Arbeitsgruppe wird mit dem Client Setup DataCool installiert. Sie benötigen für alle Rechner der Arbeitsgruppe eine DataCool-Lizenz. DataCool Client-/Server-Netzwerk DataCool SQL Server Express DataCool DataCool Der SQL Server Express wird auf dem Fileserver installiert. DataCool wird auf jedem Netzwerkarbeitsplatz installiert. Hierfür benötigen Sie eine DataCool Lizenz für jeden Client. Auf Wunsch können Sie auch auf dem Server mit DataCool arbeiten. In diesem Fall benötigen Sie auch für den Server eine DataCool Lizenz. Terminal-Server Betrieb Datacool + SQL-Server Express Die Installation von DataCool erfolgt nur einmal auf dem Terminal Server. Der SQL Server Express wird ebenfalls auf dem Terminal Server installiert. In großen Netzwerken kann die Datenbank aber auch auf einem zusätzlichen Server installiert werden, um den Terminal Server zu entlasten. In dieser Betriebsart werden die DataCool Instanzen gezählt. Die benötigte Anzahl der Lizenzen hängt also davon ab, wie viele Benutzer auf dem Terminal Server gleichzeitig mit DataCool arbeiten.\n8 8 2.2 Einzelplatz-Installation Je nach Art Ihrer Windows-Version (32 Bit oder 64 Bit) laden Sie eines der folgenden Setups von herunter: Setup DataCool 2014 Win7 32 Bit.exe Setup DataCool 2014 Win7 64 Bit.exe Das Einzelplatz Setup installiert DataCool und den SQL Server Express Local DB in einem Arbeitsgang. Bitte verwenden Sie dieses Setup nur für die Erstinstallation auf einem Einzelplatz. Für das Update von DataCool 2010 auf DataCool 2014 verwenden Sie bitte das Client Setup. DataCool Verzeichnis Während der Einrichtung werden Sie nach dem Installationsverzeichnis für DataCool gefragt. Die Vorgabe C:\_Programme\_DataCool sollten Sie in der Regel nicht verändern. Speicherort für Datenbanken Datenbankdateien die Sie mit Hilfe von DataCool erstellen werden automatisch im lokalen Profilpfad des Benutzers abgelegt. Das Einzelplatz-Setup installiert automatisch eine Testanwendung zur Lernzwecken. Weitere Einzelheiten zum DataCool Tutorial erfahren Sie in Kapitel 3.4.\n9 9 2.3 Client-Installation und Update In einer Netzwerkumgebung benötigen einen SQL Server, der auf einem Server- Computer oder auf einem leistungsstarken Computer Ihrer Arbeitsgruppe installiert ist. Einzelheiten zur Installation des SQL Servers erfahren Sie bei Bedarf in Kapitel 9. Auf den einzelnen Netzwerkarbeitsplätzen wird das Client Setup ausgeführt. Es kommt in folgenden Situationen zum Einsatz: - Erstinstallation von DataCool auf einem Netzwerk-Client - Update einer bestehenden Installation (Einzelplatz oder Client) Achtung: Sollten Sie DataCool auf einem Terminal Server installieren, so muss dieser vor dem Start des Setup in den Installationsmodus versetzt werden. Verwenden Sie hierzu folgenden Befehl: change user /install. Nach erfolgter Installation schalten Sie den Terminal Server wieder in den Ausführungsmodus zurück: change user /execute. Diese Maßnahme ist zwingend erforderlich, da andernfalls keine korrekte Installation gewährleistet ist! DataCool Verzeichnis Während der Einrichtung werden Sie nach dem Installationsverzeichnis für DataCool gefragt. Wir empfehlen die Installation des Client auf einem lokalen Laufwerk. Die Vorgabe C:\_Programme\_DataCool sollten Sie deshalb in der Regel nicht verändern. Ihre DataCool-Anwendungen sind selbstverständlich trotzdem mehrplatzfähig, auch wenn Sie den Client auf einem lokalen Laufwerk installieren. Update einer vorhandenen Installation Mit dem Client Setup können Sie auch eine bestehende Installation von DataCool aktualisieren. Sie können das Programm einfach drüber installieren. Eine vorherige Deinstallation ist nicht erforderlich. Achten Sie aber darauf, dass während der Installation alle Instanzen von DataCool geschlossen sind. Zusätzlich zur Installation von DataCool müssen Sie für jede Datenbank einen sogenannten DSN-Eintrag (Datasource-Name) anlegen. Die Einrichtung von DSN- Einträgen ist im Kapitel 3.3 beschrieben.\n10 Lizensierung von DataCool Nach der erstmaligen Installation von DataCool auf einem Rechner beginnt eine Testphase von 90 Tagen. Während dieser Testphase können Sie mit DataCool uneingeschränkt arbeiten. Die Restdauer der 90-Tagesfrist können Sie im Hauptmenü von DataCool in der Statusleiste ablesen. Nach Ablauf der Testphase müssen Sie eine Lizenz erwerben, bevor Sie weiterarbeiten können. Es stehen Ihnen zwei unterschiedliche Lizenzformen zur Verfügung: USB-Dongle und Lizenzcode. Der Unterschied dieser beiden Lizenzen wird nachfolgend erläutert. Nach dem Update von DataCool können Sie zunächst 30 Tage weiterarbeiten. Während dieser Zeit haben Sie Gelegenheit Ihren Dongle umzutauschen oder einen neuen Lizenzcode zu erwerben USB-Dongle Der Dongle ist ein kleiner Stecker, der in einen freien USB-Port Ihres Rechners gesteckt wird. Der Vorteil dieser Lizenzform besteht darin, dass sie jederzeit auf einen anderen Rechner übertragen werden kann. Auf einem Arbeitsplatz-Rechner können Sie beliebig viele DataCool-Sitzungen starten, wenn ein USB-Dongle eingesteckt ist. Auf einem Rechner mit Server- Betriebssystem berechtigt der USB-Dongle lediglich zum Aufruf einer einzelnen Sitzung. USB-Dongle installieren Stecken Sie den Dongle in einen beliebigen freien USB-Port Ihres Rechners. Der USB-Dongle wird automatisch erkannt und installiert. Die benötigten Treiberdateien sind bereits Bestandteil von Windows. Eine zuvor installierte Demo-Version wird durch Einstecken des Dongles automatisch freigeschaltet. Zusätzliche Arbeitsschritte sind nicht erforderlich Lizenzcode Der Lizenzcode ist ein 32-stelliger Schlüssel, der die Freischaltung Ihrer DataCool- Installation ermöglicht. Im Gegensatz zum USB-Dongle ist der Lizenzcode an einen bestimmten Rechner gebunden. Sollten Sie Ihren Rechner in der Zukunft tauschen, dann erhalten Sie von uns kostenfrei einen neuen Lizenzcode.\n11 11 Lizenzcode installieren Bei der Bestellung eines Lizenzcodes müssen Sie uns Ihre eindeutige Computer-ID mitteilen. Sie können Ihre Computer-ID wie folgt abrufen: Klicken Sie auf das Fragezeichen im Hauptmenü von DataCool um das Info-Fenster zu öffnen. In diesem Fenster erhalten Sie Informationen über die Programmversion und die gegenwärtige Lizensierungsform. Bitte klicken Sie auf die Option Lizenzcode freischalten, um den nachfolgenden Dialog aufzurufen. Unter Vista und Windows 7 müssen Sie DataCool mit der rechten Maustaste und der Option Als Administrator ausführen starten, damit der Dialog aufgerufen werden kann. Im obigen Beispiel lautet die Computer-ID: 71A-8AE-225-ABC. Bitte teilen Sie uns Ihre ID zusammen mit der Bestellung mit. Mit dem nebenstehenden Pfeil können Sie die Computer-ID in die Zwischenablage kopieren. Sobald Sie den Lizenzcode von uns erhalten haben kopieren Sie diesen mit dem Pfeilsymbol in das dafür vorgesehene Feld. Klicken Sie nun auf Freischalten um den Lizenzcode zu aktivieren. Sollte Ihre Demo-Version bereits abgelaufen sein, so öffnet sich beim Start automatisch das DataCool-Infofenster. Auf diese Weise können Sie die Aktivierung auch nachträglich vornehmen. Bei der Installation von DataCool auf einem Terminal-Server müssen Sie stets einen Lizenzcode verwenden. Der USB-Dongle ist in diesem Fall zur Lizensierung nicht geeignet, da Sie auf dem Terminal-Server mit dem Dongle lediglich eine Sitzung gleichzeitig starten können. Bei der Bestellung eines Lizenzcodes für einen Terminal- Server ist neben der Computer-ID auch die Angabe der gewünschten Benutzerzahl erforderlich. Aus dem Lizenzcode ergibt sich dann die Zahl der Benutzer, die das Programm gleichzeitig auf dem Terminal-Server starten können. Eine Erhöhung der Benutzerzahl auf dem Terminal-Server ist zu einem späteren Zeitpunkt jederzeit möglich. In diesem Fall erhalten Sie einen Lizenzcode für die neue Gesamtanzahl der Benutzer. Hierbei wird Ihnen die Differenz zwischen alter und neuer Benutzerzahl in Rechnung gestellt.\n12 12 3 Erstellung einer DataCool-Anwendung 3.1 Anlage einer neuen Datenbank Für jede DataCool-Anwendung wird eine separate SQL-Datenbank benötigt. Sie können beliebig viele Datenbanken gleichzeitig betreiben. Das Anlegen einer neuen Datenbank muss auf dem Server-PC erfolgen. DataCool speichert neben den Daten auch die Programmstruktur Ihrer Anwendung in der SQL Datenbank. Hierzu wird eine Reihe von Systemtabellen benötigt, die alle mit der Bezeichnung SYS_ beginnen. Die Systemtabellen bilden zusammen das sogenannte Repository. Beim erstmaligen Aufruf einer neuen Datenbank wird das Repository automatisch angelegt. Die nachfolgend beschriebene Methode zum Anlegen einer neuen Datenbank gilt nur wenn Sie mit der Einzelplatzversion von DataCool arbeiten. Im Netzbetrieb verwenden Sie stattdessen das Tool SQL Server Management Studio auf dem Server-Computer. Einzelheiten hierzu erfahren Sie in Kapitel 9.1. Klicken Sie nach dem Start von DataCool auf das grüne + Symbol:\n13 13 Vergeben Sie nun einen Namen für die neue Datenbank und klicken Sie anschließend auf den Button Datenbank anlegen: Zusammen mit der Datenbank wird auch ein DSN-Eintrag (Data Source Name) erstellt. Der DSN-Eintrag ermöglicht die Auswahl der Datenbank im Login-Bildschirm von DataCool: Bei der erstmaligen Anmeldung können Sie Benutzername und Passwort frei vergeben. Der neue Benutzer wird automatisch zum Administrator der neuen DataCool Anwendung.\n14 Anhängen einer bestehenden Datenbank Mit der Funktion Datenbank anhängen können Sie eine komplette Datenbank (Programmstruktur und Nutzerdaten) von einem Rechner auf einen anderen Rechner übertragen. Das Anhängen einer Datenbank muss auf dem Server-PC erfolgen. Die nachfolgend beschriebene Methode zum Anhängen einer neuen Datenbank gilt nur wenn Sie mit der Einzelplatzversion von DataCool arbeiten. Im Netzbetrieb verwenden Sie stattdessen das Tool SQL Server Management Studio auf dem Server-Computer. Einzelheiten hierzu erfahren Sie in Kapitel 9.2. Klicken Sie hierzu nach dem Start von DataCool auf das grüne + -Symbol:\n15 Bevor Sie die Datenbank anhängen können, müssen Sie die beiden Datenbankdateien mit der Endung MDF und LDF in Ihr Profilverzeichnis kopieren. Wählen Sie dann die Option vorhandene Datenbank-Dateien anhängen und klicken Sie auf den Button Datenbank anhängen: 15\n16 Einrichtung von Verbindungen auf Client-Computern Jeder Client-Computer benötigt zum Zugriff auf eine entfernte Datenbank einen sog. Data Source Name (DSN). Zum Anlegen einer DSN starten Sie DataCool auf dem Clientcomputer und klicken Sie auf das grüne + Symbol: Der nachfolgende Dialog dient zur Festlegung der benötigten Parameter:\n17 17 Datenbankname Geben Sie den Namen der SQL-Datenbank an, die Sie zuvor auf dem Server- Computer angelegt haben. IP-Adresse des Servers Geben Sie vorzugsweise den Computernamen des Servers an. Alternativ können Sie auch die IP-Adresse des Servers eintragen, falls Sie mit einem Peer-To-Peer- Netzwerk arbeiten. Authentifizierung über Domäne Aktivieren Sie diese Option wenn Ihr Client Computer Mitglied einer Windows Domäne ist. In diesem Fall erfolgt die Authentifizierung der Benutzer über den Domänencontroller. Bitte beachten Sie hierbei auch die benötigten Rechte- Einstellungen wie in Kapitel 9 beschrieben. Verbindung mit DataCool-Instanz der MSDE Aktivieren Sie diese Option, falls Sie auf dem Server-Computer eine separate Instanz des SQL Serves mit dem Namen DATACOOL installiert haben. Ab der Version 2014 steht Ihnen das Tool AppConfig.exe zur Verfügung, um Ihre DataCool Anwendungen automatisch auf einem Client einzurichten. Einzelheiten hierzu entnehmen Sie bitte dem Kapitel 8.4.\n18 Die Übungsdatenbank DataCool Tutorial Beim Einzelplatz-Setup wird automatisch das DataCool Tutorial mitinstalliert. Es handelt sich hierbei um ein komplettes Rechnungsprogramm für die Übungsfirma AquaCool. Anhand der fertigen Anwendung können Sie sich schnell einen Überblick über die Leistungsfähigkeit von DataCool verschaffen. Das Programm beinhaltet folgende Funktionen: - Adressverwaltung - Artikelverwaltung - Druck von Angeboten - Druck von Auftragsbestätigungen - Druck von Lieferscheinen - Druck von Rechnungen - Druck von Gutschriften - automatisches 3-stufiges Mahnwesen - Buchhaltungsmodul mit Teilzahlungsfunktion Sie können das Rechnungsprogramm aus dem DataCool Tutorial gerne in Originalform oder als Teil eigener Anwendungen weitervertreiben. Separate Lizenzkosten fallen hierbei nicht an. Bitte starten Sie das Tutorial wie folgt:\n19 19 Sobald Sie die DSN DataCool_Tutorial auswählen werden Benutzername (admin) und Kennwort (DataCool) automatisch eingetragen. Klicken Sie anschließend auf den Login-Button. Die Benutzeroberfläche der fertigen Anwendung können Sie per Doppelklick auf das Dokument HAUPTMENUE starten: Viel Spaß beim Ausprobieren!\n20 Programmstart und Befehlszeilenparameter Normalerweise benötigen Sie drei Angaben zum Start einer DataCool-Anwendung: DSN (Datenbankname) Benutzername Passwort Diese Informationen werden in der Login-Maske abgefragt. Mit Hilfe von Befehlszeilenparametern können Sie eine oder mehrere Angaben vorbelegen: DataCool.exe [/dsn="datenbank"] [/usr="benutzer"] [/pwd="passwort"] [/pic="bildpfad"] [/netlogon] Die eckigen Klammern bedeuten, dass es sich um optionale Angaben handelt. Ist lediglich die Angabe /dsn vorhanden, so ist der Datenbankname vorausgewählt und der Cursor steht beim Programmstart direkt in der Benutzerzeile. Sind die Parameter /dsn und /usr vorhanden, so ist lediglich die Eingabe des Passwortes in der Startmaske erforderlich. Sind die Angaben /dsn, /usr und /pwd in der Befehlszeile vorhanden, so startet die Anwendung direkt ohne Anzeige der Login-Maske. Mit Hilfe des Parameters /pic kann die Grafik in der Login-Maske ausgetauscht werden. Hierzu muss eine BMP-Datei mit Pfadangabe übergeben werden. Durch Austausch der Startgrafik können Sie Ihrer fertigen Anwendung ein eigenes Branding geben. Die BMP-Datei benötigt die Abmessungen 500 x 400 Pixel. Der Parameter /netlogon kann in Netzwerken mit einer Windows Domäne benutzt werden. In diesem Fall wird der an der Domäne angemeldete Benutzer direkt von DataCool übernommen. Die Eingabe eines Kennwortes ist in dann nicht erforderlich. Bitte beachten Sie, dass in der Benutzerverwaltung von DataCool ein Benutzername angelegt werden muss, der mit dem Windows Login-Name übereinstimmt.\n21 Systemkonfiguration Nach dem ersten Aufruf Ihrer neuen Anwendung sollten Sie zunächst einige grundlegende Einstellungen vornehmen. Bitte rufen Sie hierzu in der Menüzeile die Option Konfiguration System auf: Allgemeine Einstellungen Programmname: Druckeralias 1-5: Hier können Sie den Namen Ihrer Anwendung festlegen. Der Programmname wird bei verschiedenen Systemmeldungen angezeigt. Mit Hilfe von Aliasnamen können Sie in DataCool-Scripten auf unterschiedliche Drucker zugreifen. Die Zuordnung zwischen Aliasname und Treiber erfolgt in der Arbeitsplatzkonfiguration (siehe Kapitel 3.7). Auf diese Weise können Sie Druckernamen aufgabenspezifisch definieren (z.b. Farbdrucker, Laserdrucker, Etikettendrucker) und für jede Station im Netzwerk den nächstgelegenen passenden Drucker zuordnen.\n22 22 Verzeichnis für Word-Vorlagen: Sprache: Datumsformat: Sonderfarben: Startjahr: DataCool besitzt eine Schnittstelle zu Microsoft Word. Mit Hilfe dieser Schnittstelle können Sie aus jedem Formular heraus Briefe erstellen. Hierzu wird eine Word-Vorlage ausgewählt. In der Vorlage können Sie Platzhalter definieren, die von DataCool mit Feldinhalten ersetzt werden. Das Vorlage-Verzeichnis ist der Ordner, in dem Ihre Vorlagedateien (*.dot) abgelegt sind. Weitere Einzelheiten zur Word-Schnittstelle finden Sie im Anwenderhandbuch. Hier können Sie die Benutzersprache einstellen. Diese Einstellung ist für künftige Versionen vorbehalten. Als Datumsformat steht derzeit nur TT.MM.JJJJ zur Verfügung. Hinweis: In den Regions- und Sprachoptionen von Windows muss als kurzes Datumsformat auch TT.MM.JJJJ eingestellt sein, damit DataCool korrekt arbeitet. Hier können Sie Farben für Eingabefelder definieren. Die Einstellungen wirken sich auf alle Formulare aus. Die Farben 1, 2 und 3 sind Hervorhebungsfarben und die Farbe F dient zur Markierung des aktuellen Eingabefeldes. Zweistellige Jahreszahlen werden von DataCool automatisch in vierstellige Jahreszahlen umgewandelt. Das Startjahr bestimmt hierbei den zugrundegelegten Zeitraum. Die Einstellung 70 bedeutet, dass zweistellige Jahreszahlen in den Zeitraum von 1970 bis 2069 fallen. Fenstereinstellungen An dieser Stelle bestimmen Sie, ob ein Dokument als Vollbild oder als Fenster angezeigt wird. Formulare werden in der Regel als Vollbild angezeigt, während Scripte überwiegend den Fenstermodus verwenden. Die Einstellungen gelten als Vorgabewerte und können in jedem Dokument individuell abgeändert werden. Einstellungen Die Option Stationsnamen durch Benutzernamen ersetzen ist für den Terminal- Server-Betrieb gedacht. Jeder Rechner im lokalen Netzwerk besitzt normalerweise einen eindeutigen Computernamen. DataCool benutzt diesen Stationsnamen zur Identifikation der unterschiedlichen Arbeitsplätze. Bei einer Terminalserver- Installation funktioniert diese Technik allerdings nicht, da alle Benutzer auf demselben Rechner arbeiten. Aus diesem Grund müssen Sie hier den Stationsnamen durch den Benutzernamen ersetzen.\n23 Arbeitsplatzkonfiguration Unter Konfiguration Arbeitsplatz können Sie individuelle Einstellungen für jede Station im Netz definieren. DataCool legt für jeden Netzwerkarbeitsplatz automatisch einen Konfigurationsdatensatz an. Als eindeutiges Merkmal dient hierbei der Computername der Station. Bei einer Terminal-Server-Installation kann auch der Benutzername als eindeutiges Merkmal dienen, wenn die entsprechende Option in der Systemkonfiguration aktiviert wurde. Stationsname: TAPI-Treiber: Wählpräfix: Computername im Netzwerk oder Benutzername auf einem Terminal-Server. Beim erstmaligen Aufruf von DataCool an einer Station wird automatisch ein Konfigurationsdatensatz angelegt. TAPI steht für Telephony Application Programming Interface. Mit Hilfe eines TAPI-Treibers kann DataCool automatisch Telefonnummern wählen. Einzelheiten zur Installation und Konfiguration des TAPI-Treibers entnehmen Sie bitte den Unterlagen Ihrer Telefonanlage. An dieser Stelle können Sie eine Ziffer für die Amtsholung definieren. Der Wählpräfix wird allen Telefonnummern bei der automatischen Wahl vorangestellt.\n24 24 Drucker-Alias: Drucker-Treiber: Drucker-Aliasnamen dienen zur Auswahl von Druckern in Scripten. Die Festlegung der Aliasnamen erfolgt in der Systemkonfiguration. In der Arbeitsplatzkonfiguration wird jedem Aliasnamen ein Druckertreiber zugeordnet. Die Einstellung Standard bedeutet, dass der momentan eingestellte Standarddrucker von Windows benutzt wird. Sollte ein hier eingestellter Drucker nicht mehr verfügbar sein (z.b. weil er deinstalliert wurde), so erfolgt die Druckerausgabe ebenfalls auf dem Standarddrucker von Windows.\n25 Verbindungskonfiguration Mit Hilfe von Verbindungen erhalten Sie Zugriff auf fremde Datenbanken. Unter Konfiguration Verbindungen können Sie die nötigen Einstellungen vornehmen: Verbindungsname: DSN: Name: Passwort: Servertyp: Legen Sie einen Kurznamen für den Zugriff auf das fremde System fest. Der Bezeichner dient in SQL-Befehlen zur Auswahl der Connection (z.b.: select * from Für den Zugriff auf die fremde Datenquelle wird ein ODBC- Treiber verwendet. Bitte wählen Sie an dieser Stelle den zuvor angelegten Data Source Name aus. Benutzername zur Anmeldung an der fremden Datenbank. Passwort zur Anmeldung an der fremden Datenbank. Trotz der Standardisierung der SQL-Abfragesprache gibt es eine Reihe von Unterschieden zwischen den Datenbanken der verschiedenen Hersteller. Bitte wählen Sie deshalb einen der nachfolgenden Hersteller aus: Microsoft, Oracle, MySQL. Sie müssen DataCool beenden und neu starten bevor Änderungen an der Verbindungskonfiguration wirksam werden. Bitte stellen Sie außerdem sicher, dass der angegebene Data Source Name (DSN) in den ODBC-Einstellungen jedes Arbeitsplatzes eingerichtet wurde.\n26 26 4 Formulare und Verknüpfungen 4.1 Erstellung eines Formulars Bitte wählen Sie die Option Formulare im Hauptmenü von DataCool. Klicken Sie anschließend auf den Button Neu oder drücken Sie die Taste Einfg um ein neues Formular zu erstellen. Im nachfolgenden Fenster können Sie nun die Formulareigenschaften definieren:\n27 27 Eigenschaften Name: Hier können Sie den Namen des Formulars eingeben. Erlaubt sind hierbei die Zeichen zwischen 0 und 9, sowie das Alphabet. Leerstellen werden zu _ gewandelt, Umlaute zu ae, oe, ue und ß zu ss. DataCool kennt vier verschiedene Dokumentarten: Ein Menü ist ein einfaches Formular dem keine SQL-Tabelle zugrunde liegt. Mit Hilfe von Menüs können Anwender die Funktionen Ihrer Applikation steuern. Ein Daten-Formular ermöglicht das Eingeben, Ändern oder Löschen von Datensätzen in einer SQL-Tabelle. Darüberhinaus stehen dem Anwender diverse Suchfunktionen zur Verfügung. Bei der Erstellung eines Daten-Formulars wird von DataCool automatisch eine passende SQL-Tabelle erstellt. Ein Konfigurations-Formular ist ein Formular, dem nur ein einzelner Datensatz zugrunde liegt. Dieser Datensatz wird beim Aufruf des Formulars automatisch angezeigt. Mit einem Script können Listen und automatische Abläufe erstellt werden. Auch ein Script kann ein Formular besitzen, wenn es vor dem Start zusätzliche Benutzereingaben erfordert. Titel: Überschrift in der Titelleiste von Scripten und Menüs. Ansicht Sie können zwischen Vollbild- und Fensteranzeige wählen. Bei der Fensteranzeige müssen Sie die gewünschte Breite und Höhe des Fensters festlegen. Die Größenangabe erfolgt in der Einheit Pixel (=Bildschirmpunkte). Tabelle Im Normalfall ist die Option Dokument definiert Tabelle aktiviert. Dies bedeutet, dass DataCool zusammen mit der Erstellung des Formulars automatisch eine passende SQL-Tabelle anlegt. Bei nachträglichen Änderungen am Formular wird die SQL-Tabelle durch spezielle Befehle automatisch mit dem Formular synchronisiert. Mit DataCool können Sie jedoch auch Formulare für fremde SQL-Tabellen erstellen. In diesem Fall müssen Sie Verbindungs- und Tabellenname angeben. Fremde SQL-Tabellen werden von DataCool nicht verändert.\n28 28 Rechte Sie können jedem DataCool Benutzer eine der nachfolgenden Berechtigungsstufen zuweisen: niedrig, mittel, hoch und admin. In den Formulareigenschaften wird hierbei festgelegt, welche Stufe der Benutzer mindestens besitzen muss, damit er eine bestimmte Aktion ausführen kann. Einstellungen Die Option Eingabemaske erneut anzeigen bestimmt, dass das Eingabeformular eines Scriptes nach Ablauf des Scriptes erneut angezeigt werden soll. In diesem Fall hat der Anwender die Möglichkeit das Script mit anderen Startparametern erneut auszuführen. Mit der Option Eingabewerte wiederholen kann die jeweils letzte Benutzereingabe als Vorgabe in die Eingabemaske eines Scriptes eingetragen werden. Die Option Menü als Toolbar verwenden wird im Kapitel 5.2 näher erläutert. Die Option Trefferzahl beim Suchen ohne Filter beschränken ist standardmäßig aktiviert. Diese Einstellung bewirkt, dass bei Suchvorgängen jeweils nur die letzten 100 Treffer geladen werden, wenn kein Suchfilter aktiv ist. Sobald ein Suchfilter aktiv ist werden stets alle Suchergebnisse geladen. Diese Funktion dient dazu die Ladezeiten bei Suchergebnissen und beim Start von Formularen zu optimieren. Wenn Sie den Haken entfernen, dann wird die Begrenzung der Suchergebnisse abgeschaltet. In der Praxis gibt es jedoch trotzdem eine Beschränkung auf Datensätze. Wir empfehlen die Beschränkung aktiv zu lassen, da beim Suchen mit einem Filterkriterium ohnehin stets alle Treffer angezeigt werden. Lediglich bei Formularen, die eine geringe Gesamtanzahl von einigen Hundert oder Tausend Datensätzen haben kann die Abschaltung der Begrenzung sinnvoll sein.\n29 29 Audit Trail Bei aktivierter Audit Trail Funktion wird jede Änderung an einem Datensatz vom System automatisch dokumentiert. Auf diese Weise kann die Historie eines Datensatzes nachvollzogen werden. Bei Stufe 1 werden folgende Informationen protokolliert: Benutzer, Datum, Uhrzeit, Station. Bei Stufe 2 wird zusätzlich der Grund für die Änderung abgefragt und dokumentiert. Sobald die Audit Trail Funktion eingeschaltet ist, wird vom System bei jeder Änderung eine Kopie des angezeigten Datensatzes in der Systemtabelle SYS_Trail abgespeichert. Mit der Audit Trail Funktion können Sie Anwendungen erstellen, die den Anforderung von GAMP 4 (Good Automated Manufacturing Practice) gerecht werden. Durch die Protokollierung von Datensatzänderungen können große Datenmengen anfallen, die in der Systemtabelle SYS_Trail gespeichert werden müssen. Die Audit Trail Funktion sollten Sie daher nur für solche Formulare einschalten, in denen eine Dokumentation von Änderungen wirklich benötigt wird. Außerdem können Sie bei Bedarf die Option ohne Bildfelder aktivieren um Speicherplatz zu sparen. Die Inhalte von Bildfeldern werden dann nicht im Audit Trail abgespeichert. Die nächsten Schritte Nachdem die Formulareigenschaften festgelegt sind, können Sie mit der Gestaltung der Eingabemaske beginnen. Der Formulareditor verfügt hierzu über verschiedene Modi, die in den folgenden Kapiteln beschrieben werden.\n30 Formular: Entwurf Der Entwurfsmodus dient zur Gestaltung der Eingabemaske. Nach der Festlegung der Formulareigenschaften befinden Sie sich automatisch in diesem Modus. Ein Formular besteht aus statischen und dynamischen Elementen. Statische Elemente sind Text, Linien und Rechtecke. Dynamische Elemente sind Eingabefelder, Buttons oder Bildschaltflächen. Die nachfolgende Abbildung zeigt die Bedienungselemente des Editors: 1: Jedes Dokument besteht aus einer Eingabemaske und einem dazugehörigen Script. Die beiden Buttons dienen zur Umschaltung zwischen Formular- und Scripteditor.\n31 31 2: Grundlegende Bearbeitungsfunktionen: - Speichern des Dokumentes - Start des Dokumentes im Anwendermodus - Drucken der Formulardefinition 3: Schaltflächen zum Hinzufügen eines Objektes. Das neue Objekt wird an der aktuellen Cursorposition platziert. 4: Aktuelle Cursorposition 5: Ab der Version 2010 kann jedes Formular bis zu 5 Bildschirmseiten umfassen. Die Bildschirmseiten werden nun als Registertabs am unteren Bildschirmrand dargestellt. Auf diese Weise können Sie schnell per Mausklick ein bestimmtes Register ansteuern. Im Entwicklungsmodus können Sie den einzelnen Registern individuelle Namen vergeben. Klicken Sie hierzu mit der rechten Maustaste auf die Registerbezeichnung. Register mit dem Namen noexist werden zur Laufzeit nur dem Administrator anzeigt. 6: x- und y-koordinate des Cursors in der Maßeinheit Pixel (Bildschirmpunkte) 7: Aktiver Bearbeitungsmodus des Formulareditors 8: Ab der Version 2010 zeigt die Statusbar am rechten Rand den Namen der Datenbank. Viele Entwickler arbeiten während der Programmierphase mit einer Kopie einer Live-Anwendung. Durch die Anzeige des Datenbanknamens können Sie nun stets sehen, welche Anwendungsversion gerade aktiv ist. Ab der Version 2014 können Sie ein Bild als Formularhintergrund laden. Klicken Sie hierzu einfach mit der rechten Maustaste auf eine freie Stelle des Bildschirms und wählen Sie eine Bilddatei aus.\n32 32 Neue Objekte hinzufügen Den Modus Hinzufügen erkennen Sie an der blauen Cursorfarbe. Bewegen Sie den Cursor an die gewünschte Stelle links unterhalb des neuen Objektes. Am einfachsten können Sie den Cursor mit den Pfeiltasten auf der Tastatur positionieren: -30 Pixel -15 Pixel +15 Pixel +30 Pixel Mit den Pfeiltasten bewegen Sie den Cursor auf die jeweils nächstgelegene Rasterposition. Das Raster besitzt einen horizontalen Abstand von 15 Pixel und einen vertikalen Abstand von 30 Pixel. Mit Tab bzw. Shift-Tab bewegen Sie den Cursor auf die nächste Tabulatorposition. Mit der Tastenkombination Strg+Pfeiltaste springt der Cursor an den jeweiligen Bildschirmrand. Natürlich können Sie den Cursor auch mit der Maus platzieren. Klicken Sie hierzu einfach auf die gewünschte Stelle. Der Cursor springt dann automatisch auf die nächstgelegene Rasterposition. Bei Bedarf lässt sich der Cursor auch pixelgenau verschieben: Verwenden Sie hierzu die Tastenkombination Shift+Pfeiltaste. Im Regelfall sollten Sie alle Objekte an den vordefinierten Rasterpositionen belassen. Größe und Lage der einzelnen Objekte sind optimal aufeinander abgestimmt. Sie erhalten dadurch im Handumdrehen ein harmonisches Erscheinungsbild für Ihre Formulare. Außerdem ist sichergestellt, dass alle Masken einer Anwendung den gleichen Look aufweisen. Nachdem der Cursor richtig platziert ist wählen Sie ein Objekt mit der Buttongruppe 3 aus der Toolbar. Die einzelnen Objekte und deren Eigenschaften werden auf den folgenden Seiten näher erläutert.\n33 Objekt hinzufügen: Text Ein neues Textobjekt wird auf folgende Weise erstellt: Bewegen Sie den Cursor an die gewünschte Stelle und wählen Sie den Button Text aus der Toolbar. Alternativ dazu können Sie auch Strg+T drücken oder einfach zu schreiben beginnen. Sobald das Objekt angelegt ist wechselt der Cursor in den Bearbeitungsmodus (Farbe rot) und Sie können den Text innerhalb des schwarzen Rahmens eingeben. Wenn der Text fertig ist drücken Sie Enter um die Bearbeitung des Textobjektes abzuschließen. Text bearbeiten Klicken Sie mit der rechten Maustaste auf den Text und wählen Sie Bearbeiten aus dem Kontextmenü. Sie können den Bearbeitungsmodus auch mit der Tastenkombination Strg+B aktivieren wenn der Cursor links unter dem Text steht. Text verschieben Klicken Sie mit der rechten Maustaste auf den Text und wählen Sie Verschieben aus dem Kontextmenü. Sie können den Verschiebungsmodus auch mit der Tastenkombination Strg+M aktivieren wenn der Cursor links unter dem Text steht.\n34 34 Text löschen Zum Entfernen eines Textobjektes klicken Sie mit der rechten Maustaste auf das Objekt und wählen Sie die Option Löschen aus dem Kontextmenü. Sie können Textobjekte auch mit der Taste Entf löschen, wenn der Cursor links unter dem Text steht.\n35 Objekt hinzufügen: Linie Mit DataCool können Sie horizontale oder vertikale Linien erstellen. Bewegen Sie zunächst den Cursor an den Anfangspunkt. Wählen Sie nun Linie in der Toolbar oder drücken Sie Strg+L. Anschließend bewegen Sie den Cursor an den Endpunkt. Mit Return wird die Bearbeitung der Linie abgeschlossen. Linie bearbeiten Klicken Sie mit der rechten Maustaste auf die Linie und wählen Sie die Option Bearbeiten aus dem Kontextmenü. Der Cursor nimmt die Farbe rot an. Bewegen Sie nun den Anfangs- bzw. Endpunkt auf die neue Position. Mit Return wird die Bearbeitung der Linie abgeschlossen. Mit der Taste ESC können Sie die Bearbeitung jederzeit abbrechen. Linie verschieben Klicken Sie mit der rechten Maustaste auf die Linie und wählen Sie die Option Verschieben aus dem Kontextmenü. Der Cursor nimmt die Farbe gelb an. Bewegen Sie nun die Linie mit den Cursortasten an die gewünschte Position. Mit Return wird die Positionierung der Linie abgeschlossen. Mit ESC verbleibt die Linie an Ihrer ursprünglichen Position.\n36 36 Linie löschen Klicken Sie mit der rechten Maustaste auf die Linie und wählen Sie die Option Löschen aus dem Kontextmenü. Sie können die Linie auch mit Entf löschen, wenn der Cusor auf dem Startpunkt der Linie steht.\n37 Objekt hinzufügen: Rechteck Rechtecke werden in der Regel dazu verwendet, bestimmte Eingabebereiche Ihrer Maske zu gruppieren. Bewegen Sie zunächst den Cursor an eine Ecke des gewünschten Rechtecks. Wählen Sie nun Rechteck in der Toolbar oder drücken Sie Strg+R. Anschließend bewegen Sie den Cursor an die gegenüberliegende Ecke. Mit Return wird die Bearbeitung des Rechtecks abgeschlossen. Rechteck bearbeiten Klicken Sie mit der rechten Maustaste auf eine Linie des Rechtecks und wählen Sie die Option Bearbeiten aus dem Kontextmenü. Der rote Cursor springt automatisch auf die nächstgelegene Ecke. Bewegen Sie nun den Eckpunkt mit den Cursortasten an die gewünschte Position. Mit Return wird die Bearbeitung des Rechtecks abgeschlossen. Mit der Taste ESC können Sie die Bearbeitung jederzeit abbrechen. Rechteck verschieben Klicken Sie mit der rechten Maustaste auf eine Linie des Rechtecks und wählen Sie die Option Verschieben aus dem Kontextmenü. Der gelbe Cursor springt automatisch auf die linke untere Ecke des Rechtecks. Mit den Cursortasten können Sie das Rechteck an die gewünschte Position bewegen. Mit Return wird die Positionierung abgeschlossen. Mit ESC wird die Verschiebung rückgängig gemacht.\n38 38 Rechteck löschen Klicken Sie mit der rechten Maustaste auf eine Linie des Rechtecks und wählen Sie die Option Löschen aus dem Kontextmenü. Sie können das Rechteck auch mit Entf löschen, wenn der Cusor an der linken unteren Ecke steht.\n39 Objekt hinzufügen: Button Ein Button ist eine rechteckige Schaltfläche, die beim Anklicken eine Aktion auslöst. Bewegen Sie den Cursor an die linke untere Ecke und wählen Sie die Option Button aus der Toolbar. Anschließend bewegen Sie den Cursor nach rechts bis die gewünschte Breite des Buttons erreicht ist. Mit Return wird die Bearbeitung des Buttons abgeschlossen. Im Anschluss können Sie den Button beschriften und mit einer Aktion versehen. Ab der Version 2010 können Sie auch die Höhe des Buttons einstellen. Auf diese Weise können Sie nun große Schaltflächen erstellen, die sich optimal auf einem Touchscreen bedienen lassen. Button bearbeiten Klicken Sie mit der rechten Maustaste auf den Button und wählen Sie die Option Bearbeiten aus dem Kontextmenü. Der rote Cursor springt automatisch auf die rechte untere Ecke des Buttons. Durch Bewegung der Cursortasten können Sie die gewünschte Breite und Höhe einstellen. Mit Return wird die Bearbeitung des Buttons abgeschlossen. Mit der Taste ESC können Sie die Bearbeitung jederzeit abbrechen.\n40 40 Button verschieben Klicken Sie mit der rechten Maustaste auf den Button und wählen Sie die Option Verschieben aus dem Kontextmenü. Der gelbe Cursor springt automatisch auf die linke untere Ecke. Mit den Cursortasten können Sie den Button an die gewünschte Position bewegen. Mit Return wird die Positionierung abgeschlossen. Mit ESC wird die Verschiebung rückgängig gemacht. Button löschen Klicken Sie mit der rechten Maustaste auf den Button und wählen Sie die Option Löschen aus dem Kontextmenü. Sie können den Button auch mit Entf löschen, wenn der Cusor an der linken unteren Ecke steht.\n41 41 Aktion definieren Klicken Sie mit der rechten Maustaste auf den Button und wählen Sie die Option Aktion aus dem Kontextmenü. Im nebenstehenden Dialog können Sie nun die Beschriftung und die auszuführende Aktion des Buttons festlegen. Außerdem legen Sie die Berechtigungsstufe fest, die ein Benutzer mindestens besitzen muss um die Aktion ausführen zu können. Folgende Berechtigungsstufen sind möglich: niedrig, mittel, hoch und admin. Die Option Datensatz vor der Ausführung speichern bewirkt, dass die angezeigten Daten abgespeichert werden, bevor die Aktion ausgeführt wird. Sollte das Speichern fehlschlagen (z.b. aufgrund von fehlenden Benutzereingaben), so wird die Aktion nicht ausgeführt. Die Option Datensatz nach der Ausführung aktualisieren bewirkt, dass der angezeigte Datensatz nach Ausführung der Aktion frisch aus der SQL-Tabelle geladen wird. Diese Funktion ist nützlich, wenn die Ausführung der Aktion eine Veränderung des Datensatzes bewirkt (z.b. durch einen Scriptlauf). Sie haben die Wahl zwischen folgenden Aktionen: keine Aktion Menü öffnen Formular öffnen Script starten Wählen Sie diese Option, wenn Sie den Button erst zu einem späteren Zeitpunkt mit einer Aktion belegen wollen. Öffnet das ausgewählte Menü. Öffnet das ausgewählte Formular. Startet das ausgewählte Script. Import starten Startet einen Datenimport auf der Basis der angegebenen Importdefinition.\n42 42 Export starten Startet einen Datenexport auf der Basis der angegebenen Exportdefinition. Code ausführen Startet das im Dokument eingebettete Script. Als Event ID können Sie einen freien Text festlegen, der innerhalb des Scriptes mit der Systemvariable current.event abgefragt werden kann. Auf diese Weise kann das Script auf das eingetretene Ereignis reagieren. Auswahl definieren Eingabefelder vom Typ Auswahl stellen dem Anwender eine Reihe vordefinierter Optionen zur Verfügung. Mit der Aktion Auswahl definieren geben Sie dem Benutzer die Möglichkeit zur Veränderung einer Auswahlliste. Verknüpfung öffnen Eine Verknüpfung ist eine Beziehung (Relation) zwischen zwei Formularen. Beim Ausführen dieser Aktion wird das angegebene Formular mit dem verknüpften Datensatz geöffnet. Die Funktionsweise von Verknüpfungen wird im Kapitel 4.4 näher erläutert. Arbeitsplatzkonfiguration Beim Ausführen dieser Aktion wird der Dialog zur Konfiguration des Arbeitsplatzes aufgerufen. Auf diese Weise kann der Anwender die Druckerkonfiguration und die TAPI-Einstellungen für seinen Arbeitsplatz selbst anpassen. Sichtbar Ab der Version 2010 können Sie Buttons definieren, die nicht immer sichtbar sind. Sie können Sie Sichtbarkeit des Buttons mit Hilfe einer Ableitungsformel steuern. Der Button ist sichtbar wenn das Ergebnis der Ableitungsformel den Wert true annimmt. Andernfalls ist der Button unsichtbar.\n43 Objekt hinzufügen: Bild Bilder dienen der Verschönerung von Formularen und Menüs. Sie können aber auch mit Aktionen versehen werden. Auf diese Weise können Sie beispielsweise selbstgestaltete grafische Buttons realisieren. Bewegen Sie den Cursor an die linke untere Bildposition und wählen Sie die Option Bild aus der Toolbar. Anschließend öffnet sich ein Dialog zur Auswahl der Grafikdatei. Folgende Grafikformate werden unterstützt: gif, jpg, bmp, ico, tif, png. Bilder werden von DataCool in der Datenbank als Binärdaten gespeichert. Sie können die Bilddatei also bei Bedarf löschen - trotzdem bleibt das Bild als Teil Ihrer Eingabemaske erhalten. Die Abmessungen des Bildes können mit DataCool nicht verändert werden. Sie müssen das Bild ggf. mit einem Bildbearbeitungsprogramm (z.b. IrfanView) entsprechend vorbereiten. Bitte beachten Sie auch, dass die Dateigröße nicht mehr als KByte betragen sollte, damit es zu keinen Wartezeiten beim Laden aus der Datenbank kommt. Im Programmverzeichnis finden Sie die beiden ZIP-Dateien AppIcons16x16.zip und AppIcons24x24.zip. Diese Dateien enthalten eine Reihe von Standard-Icons im Look von DataCool 2014, die Sie bei Bedarf in Ihren Anwendungen verwenden können. Bild bearbeiten Klicken Sie mit der rechten Maustaste auf das Bild und wählen Sie die Option Bearbeiten aus dem Kontextmenü. Sie können nun mit dem Dateidialog eine neue Grafikdatei auswählen.\n44 44 Bild verschieben Klicken Sie mit der rechten Maustaste auf das Bild und wählen Sie die Option Verschieben aus dem Kontextmenü. Der gelbe Cursor springt automatisch auf die linke untere Ecke. Mit den Cursortasten können Sie das Bild an die gewünschte Position bewegen. Mit Return wird die Positionierung abgeschlossen. Mit ESC wird die Verschiebung rückgängig gemacht. Bild löschen Klicken Sie mit der rechten Maustaste auf das Bild und wählen Sie die Option Löschen aus dem Kontextmenü. Sie können das Bild auch mit Entf löschen, wenn der Cusor an der linken unteren Ecke steht. Aktion definieren Klicken Sie mit der rechten Maustaste auf das Bild und wählen Sie die Option Aktion aus dem Kontext-menü. Im nebenstehenden Dialog können Sie nun den Tooltip-Text und die auszuführende Aktion defi-nieren. Außerdem legen Sie die Berechtigungsstufe fest, die ein Benutzer mindestens besitzen muss um die Aktion ausführen zu können. Fol-gende Berechtigungsstufen sind möglich: niedrig, mittel, hoch und admin. Die Option Datensatz vor der Ausführung speichern bewirkt, dass die angezeigten Daten abgespeichert werden, bevor die Aktion ausgeführt wird. Sollte das Speichern fehlschlagen (z.b. aufgrund von fehlenden Benutzereingaben), so wird die Aktion nicht ausgeführt. Die Option Datensatz nach der Ausführung aktualisieren bewirkt, dass der angezeigte Datensatz nach Ausführung der Aktion frisch aus der SQL-Tabelle geladen wird. Diese Funktion ist nützlich, wenn die Ausführung der Aktion eine Veränderung des Datensatzes bewirkt (z.b. durch einen Scriptlauf).\n45 45 Sie haben die Wahl zwischen folgenden Aktionen: keine Aktion Menü öffnen Formular öffnen Script starten Wählen Sie diese Option, wenn Sie erst zu einem späteren Zeitpunkt eine Aktion festlegen wollen. Öffnet das ausgewählte Menü. Öffnet das ausgewählte Formular. Startet das ausgewählte Script. Import starten Startet einen Datenimport auf der Basis der angegebenen Importdefinition. Export starten Startet einen Datenexport auf der Basis der angegebenen Exportdefinition. Code ausführen Startet das im Dokument eingebettete Script. Als Event ID können Sie einen freien Text festlegen, der innerhalb des Scriptes mit der Systemvariable current.event abgefragt werden kann. Auf diese Weise kann das Script auf das eingetretene Ereignis reagieren. Auswahl definieren Eingabefelder vom Typ Auswahl stellen dem Anwender eine Reihe vordefinierter Optionen zur Verfügung. Mit der Aktion Auswahl definieren geben Sie dem Benutzer die Möglichkeit zur Veränderung einer Auswahlliste. Verknüpfung öffnen Eine Verknüpfung ist eine Beziehung (Relation) zwischen zwei Formularen. Beim Ausführen dieser Aktion wird das angegebene Formular mit dem verknüpften Datensatz geöffnet. Die Funktionsweise von Verknüpfungen wird im Kapitel 4.4 näher erläutert. Arbeitsplatzkonfiguration Beim Ausführen dieser Aktion wird der Dialog zur Konfiguration des Arbeitsplatzes aufgerufen. Auf diese Weise kann der Anwender die Druckerkonfiguration und die TAPI-Einstellungen für seinen Arbeitsplatz selbst anpassen. Sichtbar Ab der Version 2010 können Sie Bildschaltflächen definieren, die nicht immer sichtbar sind. Sie können Sie Sichtbarkeit des Bildes mit Hilfe einer Ableitungsformel steuern. Das Bild ist sichtbar wenn das Ergebnis der Ableitungsformel den Wert true annimmt. Andernfalls ist das Bild unsichtbar.\n46 Objekt hinzufügen: Feld Felder sind die wichtigsten Elemente eines Formulars. Sie ermöglichen die Eingabe von Daten, die vom System in einer SQL-Tabelle abgespeichert werden. DataCool erstellt für jedes Formular automatisch eine passende SQL-Tabelle. Die Spalten der SQL-Tabelle entsprechen dabei den Feldern der Eingabemaske. Jeder Datensatz ist eine Zeile in der SQL-Tabelle. Zur Anlage eines neuen Feldes bewegen Sie den Cursor an die gewünschte Stelle und wählen Sie die Option Feld aus der Toolbar. Sie können auch die Taste F10 benutzen um ein Feld zu erstellen oder zu ändern. Der Dialog zur Felddefinition ist in verschiedene Bereiche unterteilt: 1: Feldname 2. Feldfarbe 3. Feldeinstellungen 4. Feldtyp 5. Berechnungen und Prüfungen\n47 47 Feldname Der Feldname dient als Bezeichner für die Spalte in der SQL-Tabelle. Jeder Feldname darf innerhalb eines Formulars nur einmal verwendet werden, da der Feldname eindeutig sein muss. Feldbezeichner dürfen nur die Buchstaben A-Z, a-z sowie die Ziffern 0-9 enthalten. Sonderzeichen, Umlaute oder Leerzeichen sind nicht zulässig. DataCool wandelt die Umlaute ä, ö, ü automatisch in ae, oe und ue. Tipp: Normalerweise steht links neben jedem Feld ein Text als Beschriftung. Wenn Sie zuerst die Beschriftung erstellen und danach rechts davon das Feld anlegen, so wird der Feldname automatisch aus dem nebenstehenden Text abgeleitet. Feldfarbe Die Standard-Feldfarbe ist weiß für Eingabefelder und grau für gesperrte Felder. Diese Farbe erhalten Sie durch Anklicken des ersten Buttons links. Zusätzlich stehen Ihnen drei Sonderfarben zur Verfügung. Diese Sonderfarben sind in allen Formularen gleich und werden zentral in der Systemkonfiguration eingestellt. Der letzte Button auf der rechten Seite bewirkt eine Darstellung des Feldes in Textfarbe. Zur Laufzeit wird zusätzlich der Rahmen des Feldes ausgeblendet, so dass das Feld wie ein Teil der Formularbeschriftung wirkt. Eingabezwang Wenn Sie diese Option ankreuzen, dann wird der Benutzer zur Eingabe eines Wertes in diesem Feld gezwungen. Sie können einen Datensatz nur dann abspeichern, wenn alle Felder mit Eingabezwang ausgefüllt sind. Listenanzeige Zur Laufzeit hat der Anwender die Möglichkeit zwischen Formular- und Tabellenansicht umzuschalten. Mit der Option Listenanzeige können Sie festlegen, ob dieses Feld in der Tabellensicht gezeigt wird. registerübergreifend Seit der Version 2014 werden die einzelnen Bildschirmseiten eines Formulares als Registertabs dargestellt. Die Option registerübergreifend bewirkt, dass das Feld auf jeder Registerseite sichtbar ist. Wenn Sie beispielsweise ein Kundenformular erstellen, dann empfiehlt es sich den Kundennamen auf jeder Registerseite darzustellen. Dadurch weiß der Anwender stets welche Kundendaten gerade auf dem Bildschirm zu sehen sind.\n48 48 Index Ein Index ist eine sortierte Liste, die von der Datenbank im Hintergrund gepflegt wird, damit Sie in diesem Feld schnell suchen oder sortieren können. Verknüpfungsfelder oder Felder in denen Sie häufig suchen sollten indiziert werden. Bitte gehen Sie bei der Vergabe der Index-Eigenschaft mit Bedacht um, da zu viele Indizes den Speichervorgang verlangsamen können. Außerdem sollten Sie Felder nur dann indizieren wenn die Tabelle mehr als Datensätze enthalten wird. Andernfalls ist das System auch ohne Index schnell genug. virtuell Virtuelle Felder werden nicht als Teil der SQL-Tabelle gespeichert. Stattdessen enthalten Sie eine Ableitungsformel, die beim Aufruf des Datensatzes jeweils neu berechnet wird. Bitte beachten Sie, dass virtuelle Felder bei Scriptläufen nicht zur Verfügung stehen. Sie müssen die angezeigten Werte dann ggf. im Script neu berechnen. Virtuelle Felder werden oft zur Anzeige von Werten aus verknüpften Formularen verwendet. Änderungen in der verknüpften Tabelle werden dann beim Aufruf eines Datensatzes automatisch reflektiert. Dies entspricht dem Konzept des relationalen Datenbankmodells, bei dem die doppelte Speicherung von Informationen vermieden wird. gesperrt Gesperrte Eingabefelder können vom Anwender nicht verändert werden. In der Regel werden diese Felder mittels einer Ableitungsformel oder durch das Formularscript ausgefüllt. versteckt Versteckte Felder sind zur Laufzeit für den Anwender nicht sichtbar. Versteckte Felder erhalten automatisch das Attribut gesperrt. Ausrichtung DataCool wählt für jeden Feldtyp automatisch die optimale Ausrichtung. In Ausnahmefällen kann es sinnvoll sein von der normalen Feldausrichtung abzuweichen. Wählen Sie einen der Werte links, mittig oder rechts.\n49 49 Recht zum Anzeigen Wählen Sie die minimale Berechtigungsstufe, die ein Benutzer für die Anzeige des Feldinhaltes benötigt. Folgende Berechtigungsstufen sind verfügbar: niedrig, mittel, hoch und admin. Die Zuweisung von Rechten erfolgt in der Benutzerverwaltung. Recht zum Ändern Wählen Sie die minimale Berechtigungsstufe, die ein Benutzer zur Änderung von Feldinhalten benötigt. Folgende Berechtigungsstufen sind verfügbar: niedrig, mittel, hoch und admin. Die Zuweisung von Rechten erfolgt in der Benutzerverwaltung.\n50 50 Feldtyp Text Der Feldtyp Text wird zur Speicherung von alphanumerischen Daten verwendet. Sie müssen eine maximale Feldlänge zwischen einem und 200 Zeichen festlegen. Darüberhinaus stehen weitere Feldeigenschaften für diesen Typ zur Verfügung: Telefonnummer Die Eingabe einer Telefonnummer erfolgt im Format 0841/ Beim Verlassen des Feldes wird die Rufnummer automatisch umformatiert um eine optimale Lesbarkeit zu erzielen: (08 41) Hierbei werden die Ziffern von rechts nach links in Zweierblöcken aufgeteilt und durch Leerzeichen getrennt. Bei internationalen Vorwahlen sollten Sie das Zeichen + voranstellen. Somit wird aus / die Zeichenfolge +49 (8 41) DataCool erkennt alle internationalen Vorwahlen und zieht diese vor die Klammer mit der Ortsvorwahl. -Adresse Internet-Adresse Großbuchstaben Passwort Verschlüsselung Fließtextzeile Eingabe einer gültigen -Adresse, z.b. Eingabe einer URL, z.b. Eingaben werden automatisch in Großbuchstaben gewandelt. Während der Eingabe erscheinen Sternchen anstelle von Buchstaben, damit niemand das Passwort am Bildschirm mitlesen kann. DataCool verschlüsselt die Eingaben vor der Speicherung in der SQL-Tabelle. Die Informationen können danach nur noch innerhalb von DataCool gelesen werden. Auf diese Weise wird beispielsweise ein verschlüsseltes Passwortfeld vor einem Direktzugriff auf die SQL-Tabelle geschützt. Bei Aktivierung dieser Option wird das Textfeld in einem Subformular so behandelt, als wäre es ein großes Memofeld.\n51 51 Feldtyp Nummer Ein Nummernfeld ist ein Zahlenfeld mit führenden Nullen. Bei Bedarf kann die Nummer auch mit Hilfe von Trennzeichen formatiert werden. Folgende Trenner sind zulässig: Doppelpunkt, Schrägstrich, Bindestrich, Punkt. Der Formatstring dient zur Festlegung der Stellenzahl und der Position von Formatierungszeichen. Die Ziffer 0 im Formatstring symbolisiert eine Zahl an der jeweiligen Stelle. Beispiele für gültige Formatstrings: 00000, 000/00000, 000:000, , Feldtyp Zahl Der Feldtyp Zahl ist für numerische Daten vorgesehen. Hierbei wird zwischen Ganzzahlen, Festkommazahlen und Gleitkommazahlen unterschieden. Bei Ganzzahlen legen Sie die gewünschte Stellenzahl fest und geben 0 im Feld Nachkomma an. Bei Festkommawerten geben Sie im Feld Stellen die Anzahl der Vorkommastellen an und im Feld Nachkomma die Anzahl der Dezimalstellen. Bei Gleitkommazahlen füllen Sie nur das Feld Stellen aus und lassen die Angabe für die Nachkommastellen frei.\n52 52 Feldtyp Datum Dieser Feldtyp ist für Datumswerte vorgesehen. Zur Laufzeit kann die Eingabe eines Datums auf verschiedene Weisen erfolgen: TT.MM.JJJJ Angabe mit Punkten, vierstellige Jahreszahl TTMMJJJJ Angabe ohne Punkte, vierstellige Jahres zahl TT.MM.JJ Angabe mit Punkten, zweistellige Jahreszahl TTMMJJ Angabe ohne Punkte, zweistellige Jahreszahl H Heute: bei Eingabe von H wird das Systemdatum übernommen Fehlende Punkte werden von DataCool automatisch ergänzt. Zweistellige Jahreszahlen werden von DataCool in vierstellige Jahreszahlen gewandelt. Hierbei wird das Startjahr aus der Systemkonfiguration zugrundegelegt. Die Einstellung 70 bedeutet, dass zweistellige Jahreszahlen in den Zeitraum von 1970 bis 2069 fallen. Die Option der Kurzeingabe ermöglicht auch die Eingabe von Datumsfragmenten im Format TT oder TTMM. Hierbei müssen Sie festlegen, ob die Kurzeingabe als Datumswert in der Zukunft oder in der Vergangenheit interpretiert werden soll. DataCool ergänzt dann Ihre Eingabe, so dass der nächstgelegene Datumswert in der Zukunft oder Vergangenheit erreicht wird. Sofern die Kurzeingabe aktiviert ist stehen Ihnen weitere Hotkeys zur Veränderung des Datums zur Verfügung: + Weiterschaltung um einen Tag in die Zukunft - Weiterschaltung um einen Tag in die Vergangenheit E Erster des Monats bzw. Weiterschaltung um einen Monat L Letzter des Monats bzw. Weiterschaltung um einen Monat\n53 53 Feldtyp Zeit Der Feldtyp Zeit ermöglicht die Eingabe einer Uhrzeit im Format Stunden:Minuten. Zeitangaben werden von DataCool als Textwerte in der SQL-Datenbank gespeichert. Feldtyp ja/nein Ja/Nein-Felder können wahlweise als Auswahlfeld oder als Markierungsfeld dargestellt werden. Ein Auswahlfeld kann drei Werte annehmen: leer, nein oder ja. In der SQL-Datenbank entspricht dies den Werten null, 1 oder 2. Ein Markierungsfeld ist entweder angekreuzt (SQL-Wert: 2) oder nicht (SQL-Wert: 1). Bitte beachten Sie die Besonderheit bei Ja/Nein-Feldern: Die Abfrage der Eingabemaske gibt den Textwert nein oder ja zurück während die Abfrage der SQL-Tabelle den Zahlenwert 1 oder 2 liefert. Zusammenfassung: ja = SQL-Wert 2, nein = SQL-Wert 1 Sie können jederzeit zwischen den beiden Darstellungsformen umschalten, ohne dass hierbei Daten verloren gehen.\n54 54 Feldtyp Auswahl Der Feldtyp Auswahl bietet dem Anwender eine vordefinierte Anzahl von Optionen. Auswahllisten werden von DataCool an zentraler Stelle gespeichert und stehen deshalb formularübergreifend zur Verfügung. Jede Auswahlliste besitzt einen eindeutigen Namen. Änderungen an der Liste wirken sich unmittelbar auf alle betroffenen Formulare aus. So definieren Sie eine neue Auswahlliste: Vergeben Sie im Feld (1) einen eindeutigen Namen für die neue Auswahlliste. Geben Sie die erste Option im Feld (2) an und klicken Sie anschließend auf den Button (4). Die Option wird dadurch am Ende der Liste (3) hinzugefügt. Wiederholen Sie diesen Vorgang für jede benötigte Auswahloption.\n55 55 Zum Löschen einer Option wählen Sie diese in der Liste (3) aus und klicken Sie anschließend auf den Button (5). Sie können auch die Reihenfolge verändern. Markieren Sie hierzu die gewünschte Zeile in der Liste und verschieben Sie diese mit Hilfe der Buttongruppe (6). In der Buttongruppe (7) finden Sie diverse Bearbeitungsfunktionen für die Liste: Speichern, Neu, Löschen, Schließen und Drucken. Mit Hilfe der Navigationsleiste (8) können Sie zwischen den Auswahllisten navigieren. Eine Auswahlliste lässt sich nur löschen, wenn diese an kein Feld mehr gebunden ist. Sie können die Liste also nicht löschen, solange sie von einem anderen Formular verwendet wird. Auswahlfelder werden in der SQL-Tabelle als Zahl (1-99) gespeichert. Sie können die Auswahloptionen deshalb nicht gefahrlos ändern, wenn die Tabelle bereits Datensätze enthält. In diesem Fall müssen Sie ggf. mit Hilfe von SQL-Befehlen die Datensätze in geeigneter Weise angleichen. Neue Optionen am Ende einer Auswahlliste können jederzeit gefahrlos hinzugefügt werden. Feldtyp Memo Memofelder sind mehrzeilige Textfelder mit automatischem Zeilenumbruch. Bei der Definition eines Memofeldes können Sie die Breite in Zeichen und die Höhe in Zeilen angeben. Die tatsächlich angezeigte Zeilenanzahl kann in der Praxis höher sein als der angegebene Wert, da DataCool die Höhe des Memofeldes dem Raster anpasst. Für Memofelder werden grundsätzlich 4096 Zeichen in der SQL-Tabelle reserviert. Dies gilt unabhängig von der angezeigten Größe des Memofeldes am Bildschirm. Sie können die Breite und Höhe des Memofeldes also jederzeit gefahrlos ändern. Memofelder führen einen automatischen Zeilenumbruch aus. Sie können jedoch auch manuelle Zeilenumbrüche mit der Taste Return einfügen. Manuelle und automatische Umbrüche werden mit dem Datensatz abgespeichert. Beim Ausdruck von Memofeldern werden diese stets so umgebrochen, wie sie zum Zeitpunkt des Speicherns am Bildschirm zu sehen waren.\n56 56 Feldtyp Bild Mit Hilfe von Bildfeldern können Sie Abbildungen und PDF-Dokumente als Teil des Datensatzes speichern. Bildfelder werden als Binärdaten direkt in der Datenbank abgelegt. Sie können die Originaldateien also bedenkenlos löschen - die Abbildung bleibt trotzdem als Teil des Datensatzes erhalten. Bildformat Breite x Höhe Wählen Sie eines der folgenden Formate: gif, jpg, bmp, ico, tif, png, pdf. Geben Sie Breite und Höhe des Bildfeldes auf dem Bildschirm an. Wenn Sie die Option Bild in Originalgröße speichern aktivieren, dann werden die Bilder auf dem Bildschirm verkleinert dargestellt aber in der Datenbank in voller Größe gespeichert. In der Regel sollten Sie diese Option jedoch nicht aktivieren, da die Speicherung von Bildern in Originalgröße sehr viel Platz in der Datenbank beansprucht und das Laden der Datensätze verlangsamt.\n57 57 Wenn Sie das Bild nicht in Originalgröße speichern, dann öffnet sich beim Laden eines Bildes der neue Bildeditor von DataCool Sie können hierbei Bilder aus der Zwischenablage einfügen oder beliebige Bildformate laden. Der Editor ermöglicht Ihnen danach die Auswahl eines Bildausschnittes. Der gewählte Bildausschnitt wird von DataCool automatisch auf die vordefinierte Bildgröße skaliert und verkleinert in der Datenbank gespeichert. Wenn der Auswahlrahmen die Farbe rot hat, dann stimmt das Seitenverhältnis nicht mit dem angegebenen Seitenverhältnis im Formular überein. DataCool führt trotzdem eine verzerrungsfreie Skalierung durch und füllt die kürzere Bildseite mit einem weißen Rand auf. Wenn der Auswahlrahmen die Farbe grün hat, dann ist das Seitenverhältnis des gewählten Ausschnittes optimal. Bild-Verzeichnis Pickup-Verzeichnis Wählen Sie ein Standard-Verzeichnis für die Auswahl von Bildern. Der Benutzer kann zur Laufzeit auch auf andere Verzeichnisse zugreifen. Bilder, die vom Anwender aus dem Pickup-Verzeichnis übernommen werden, werden vom System automatisch gelöscht. Diese Einstellung ist sinnvoll wenn Sie die Bilder ausschließlich in der Datenbank speichern wollen. Sollte nur eine Datei im Pickup-Verzeichnis stehen, so wird diese ohne Auswahldialog direkt übernommen und gelöscht.\n58 58 Berechnungen und Prüfungen Im unteren Bereich der Felddefinition finden Sie vier Register zur Festlegung weiterer Eigenschaften: Ableitung Eine Ableitung veranlasst DataCool, den Wert eines Feldes automatisch zu bestimmen. Die Berechnung des Feldwertes erfolgt mit Hilfe einer Ableitungsformel. Eine Formel kann aus Konstanten, Feldnamen, Systemvariablen, Funktionen oder Operatoren bestehen. Die Feldnamen können sich auf Felder des gleichen Formulars oder auf Felder aus einem verknüpften Formular beziehen. Beispiele für Ableitungsformeln: EUR current.date Nettobetrag*1.19 Kunde.Postleitzahl Name & & Vorname if(datum=current.date, Heute, null) Eine vollständige Auflistung der Funktionen und Operatoren finden Sie im Referenzteil. Minimum Maximum Aktionsbutton Geben Sie bei Bedarf einen unteren Grenzwert an. Sie können einen festen Wert oder eine Formel eingeben. Geben Sie bei Bedarf einen oberen Grenzwert an. Sie können einen festen Wert oder eine Formel eingeben. Mit Hilfe eines Aktionsbuttons können Sie die Funktionalität des Feldes erweitern. Es stehen folgende Möglichkeiten zur Wahl: SQL-Browser, Dateiauswahl, Kalender, Telefonwahl, , Internet.\n59 59 SQL-Browser Ein SQL-Browser gibt dem Anwender die Möglichkeit Daten aus einer fremden Tabelle zu selektieren. Hierzu wird in der Felddefinition ein SQL-Befehl hinterlegt. Dieser Befehl bestimmt die Felder, die in der Auswahltabelle angezeigt werden. Das zuletzt genannte Feld ist der Rückgabewert. Im nachfolgenden Beispiel werden die Felder Suchbegriff, Ortszeile und Nummer aus einer Adresstabelle gelistet. Die Datensätze werden nach dem Suchbegriff sortiert. Als Auswahlergebnis wird das Feld Nummer zurückgegeben. Das Ergebnis sieht zur Laufzeit so aus: Hierbei kommt der ersten Spalte eine besondere Bedeutung zu: Durch das Tippen von Anfangsbuchstaben können Sie sich dem gewünschten Suchbegriff nähern. Tipp: Wenn Sie sich in einem Nummernfeld mit Auswahlbutton befinden, dann müssen Sie nicht unbedingt auf den Button klicken um die Auswahl zu öffnen. Sie können einfach einen Buchstaben tippen. Dieser bewirkt dann automatisch eine Öffnung des SQL-Browsers.\n60 60 Sie können den SQL-Wizard zur Erstellung des Auswahlbefehls benutzen, falls Sie noch keine Erfahrungen mit der Abfragesprache SQL besitzen. Klicken Sie hierzu auf das Symbol rechts: Wählen Sie nun zuerst die Tabelle und dann die Felder aus, die angezeigt werden sollen. In der Regel sollten Sie das erste Feld bei der Sortierung berücksichtigen: Bereits während der Arbeit mit dem Wizard wird der SQL-Befehl in der unteren Fensterhälfte angezeigt. Sie können auf diese Weise unmittelbar beobachten wie eine Veränderung Ihrer Auswahl den Befehl beeinflusst.\n61 61 Dateiauswahl Die Dateiauswahl ermöglicht die Auswahl eines Dateinamens. Hierzu wird zur Laufzeit ein kleines Explorerfenster geöffnet. Sie können das Startverzeichnis für den Explorer festlegen: Kalender Der Kalenderbutton ermöglicht zur Laufzeit die Auswahl eines Datums aus einem kleinen Kalenderfenster. Sie können diesen Button für Text- und Datumsfelder verwenden. Internet Die Option Internet ist nur für Textfelder verfügbar, die als Internet-Adresse gekennzeichnet sind. Zur Laufzeit kann der Benutzer mit einem Button einfach die URL im Browser öffnen. Die Option ist nur für Textfelder verfügbar, die als -Adresse gekennzeichnet sind. Zur Laufzeit kann der Benutzer mit einem Button sein - Programm starten und ein neues Mail an die Zieladresse verfassen. Telefonwahl Die Option Telefonwahl ist nur für Textfelder verfügbar, die als Telefonnummer gekennzeichnet sind. Der Anwender erhält zur Laufzeit einen Button zur Verfügung gestellt, der eine Telefonnummer automatisch wählt. Zur Nutzung der Wählfunktion benötigten Sie ein TAPI-fähiges Telefon. Zusätzlich muss ein TAPI-Treiber installiert werden und in der Arbeitsplatzkonfiguration von DataCool eingetragen werden. Weitere Einzelheiten entnehmen Sie bitte der Anleitung Ihrer Telefonanlage.\n62 Objekt hinzufügen: Subformular Ein Subformular wird zur Abbildung einer 1:N-Beziehung zwischen zwei Formularen verwendet. Hierbei wird jeweils ein Datensatz im Hauptformular mit einer variablen Anzahl von Datensätzen im Subformular verknüpft. Das Subformular wird stets in Tabellenform in das Hauptformular eingebettet. Ein Beispiel aus der Praxis ist ein Rechnungsformular mit einer variablen Anzahl von Rechnungspositionen. Erstellen Sie zuerst beide Formulare einzeln (im nachfolgenden Beispiel: Beleg und Belegposition ). Danach können Sie das Formular Belegposition als Subformular in das Formular Beleg einbinden. Bewegen den Cursor an die linke untere Ecke und wählen Sie die Option Subformular aus der Toolbar. Der nachfolgende Dialog wird angezeigt: Die Angabe Subsätze bestimmt die Anzahl der Subdatensätze, die auf dem Bildschirm sichtbar sind. Der SQL-Befehl dient zur Definition der angezeigten Felder und zur Verknüpfung von Haupt- und Subformular. Das Verknüpfungskriterium wird in der where-klausel des SQL-Befehls untergebracht. Im obigen Beispiel werden jeweils nur die Positionen angezeigt, bei denen die SatzNr mit der SatzNr des Hauptformulars übereinstimmt.\n63 63 Die Bedingung lautet also allgemein: where wobei die ein Feld aus dem Hauptformular repräsentiert. Ab der Version 2010 hat sich die Schreibweise der Verknüpfungsbedingung geändert. Anstelle von where SatzNr=Beleg.SatzNr gilt nun die neue Schreibweise where Anders als beispielsweise in DataEase ist für die Erstellung eines Subformulars keine separate Verknüpfung erforderlich, da die Bedingung Teil der Subformulares ist. Mit Hilfe des SQL-Befehls können Sie nicht nur die Felder auswählen, sondern auch Einfluss auf die Gestaltung des Subformulares nehmen: - manuelle Einstellung der Feldbreite - Verwendung von Bildfeldern in Subformularen - Vergabe von Aliasnamen für Spaltenüberschriften - mehrzeilige Subformulare (Felder werden untereinander angeordnet) Beispiel 1: Standard select BestNr, Beschreibung, Menge, Einzelpreis, Gesamtpreis from Belegposition where Beispiel 2: manuelle Einstellung der Feldbreite DataCool ermittelt die Spaltenbreiten automatisch. Sie können die Spaltenbreite jedoch beeinflussen, wenn Sie die [Breite in Pixel] direkt hinter dem Feldnamen angeben: select BestNr, Beschreibung, Menge, Einzelpreis, Gesamtpreis from Belegposition where Tipp: Durch Angabe der Spaltenbreite  können Sie Felder unsichtbar laden. Dies kann sinnvoll sein, wenn diese Felder für Ableitungsformeln benötigt werden.\n64 64 Beispiel 3: Verwendung von Aliasnamen Normalerweise werden die Feldbezeichnungen als Spaltenüberschriften verwendet. Sie können jedoch bei Bedarf auch abweichende Bezeichnungen festlegen, indem Sie hinter dem Feldnamen einen Aliasnamen angeben: select BestNr Bestellnummer, Beschreibung, Menge, Einzelpreis, Gesamtpreis from Belegposition where Tipp: Durch Angabe von - als Aliasname können Sie eine Spaltenüberschrift auch komplett abschalten. Beispiel 4: zweizeiliges Layout In der Regel entspricht ein Subdatensatz genau einer Zeile in der Tabelle. Bei Bedarf können Sie jedoch auch mehrzeilige Subdatensätze definieren, wenn der Platz am Bildschirm nicht ausreicht. In diesem Fall ersetzen Sie einfach das Komma zwischen den Feldern durch das Feldtrennzeichen. Felder, die mit diesem Zeichen voneinander getrennt sind, werden im Subformular untereinander angeordnet: select BestNr, Beschreibung, Menge, Einzelpreis Gesamtpreis from Belegposition where\n65 65 Beispiel 5: Verwendung eines Bildfeldes Bei Bedarf können Sie sogar Bildfelder in das Subformular integrieren. Das Subformular wird dann automatisch mehrzeilig. Es kann maximal ein Bildfeld eingebunden werden. select BestNr, Bezeichnung, Abbildung from Belegposition where Beispiel 6: Angabe eines Sortierkriteriums Bei Bedarf können Sie eine Sortierung für das Subformular vorgeben. Verwenden Sie hierzu einfach die Klausel order by in der Subformulardefinition: select BestNr, Beschreibung, Menge, Einzelpreis, Gesamtpreis from Belegposition where order by BestNr Ab der Version 2014 können Sie die vordefinierte Sortierung ändern. Klicken Sie einfach mit der Maus auf die Spalte, die Sie sortieren möchten. Die aktuelle Sortierspalte wird mit blauer Farbe hervorgehoben. Durch erneutes Anklicken einer Sortierspalte können Sie die Sortierreihenfolge umkehren. Wenn Sie kein Sortierfeld vorgeben, dann wird die Sortierfunktion abgeschaltet und DataCool stellt sicher, dass die Datensätze stets in der eingegebenen Reihenfolge erscheinen.\n66 66 Berechtigungen Anzeigen Einfügen Löschen Duplizieren Im Anwendungsmodus kann der Benutzer den Subdatensatz im Vollbildmodus anzeigen, in dem er auf die jeweilige Positionsnummer klickt. Die Anzeigeberechtigung bestimmt, welche Benutzerstufe für diese Aktion minimal erforderlich ist. Min. Benutzerstufe zum Hinzufügen von Subdatensätzen. Min. Benutzerstufe zum Löschen von Subdatensätzen. Min. Benutzerstufe zum Duplizieren von Subdatensätzen. Weitere Subformular-Einstellungen leere Subsätze zulassen: Normalerweise werden leere Tabellenzeilen nicht als Subsätze in der Datenbank gespeichert. In Einzelfällen (z.b. bei der Erfassung von Trennzeilen zwischen Rechnungspositionen) kann dies jedoch erwünscht sein. jeden 2. Subsatz schattieren: Jede zweite Zeile in der Tabelle wird mit einer Grauschattierung versehen. Subsätze nicht löschen wenn Hauptsatz gelöscht wird: Aktivieren Sie diese Option um zu Verhindern, dass beim Löschen des Hauptdatensatzes auch die Subdatensätze mitgelöscht werden. Subsätze nicht duplizieren wenn Hauptsatz dupliziert wird Aktivieren Sie diese Option um zu Verhindern, dass beim Duplizieren des Hauptdatensatzes auch die Subdatensätze dupliziert werden. Beim Duplizieren eines Hauptdatensatzes werden die Subsätze zwar mitdupliziert, aber nur mit den Daten die am Bildschirm zu sehen sind.\n67 Objekte bearbeiten Sie können ein Element aus dem Formular jederzeit ändern. Klicken Sie hierzu mit der rechten Maustaste auf das Objekt und wählen Sie anschließend die Option bearbeiten aus dem Kontextmenü. Mit der Tastenkombination Strg+B können Sie ebenfalls in den Bearbeitungsmodus wechseln, wenn sich der Cursor an der linken unteren Ecke eines Objektes befindet. Sie erkennen den Bearbeitungsmodus an der roten Cursorfarbe. Je nach Feldtyp stehen Ihnen unterschiedliche Bearbeitungsfunktionen zur Verfügung: Feldtyp Text Linie Rechteck Button Bild Feld Subformular Bearbeitungsfunktion Text ändern Länge ändern Ecke verschieben Breite oder Höhe verändern. Zur Änderung der Beschriftung oder der Aktion wählen Sie bitte Aktion definieren aus dem Kontextmenü. Bild austauschen. Zur Änderung der Tooltip-Hilfe oder der Aktion wählen Sie bitte Aktion definieren aus dem Kontextmenü. Veränderung der Feldeigenschaften. Beim Speichern des Formulars werden bereits vorhandene Daten in der Tabelle automatisch an die neue Felddefinition angepasst. Hierbei findet bei Bedarf eine Konvertierung der SQL-Datentypen statt (z.b. Zahl nach Text). Sollte die Konvertierung nicht möglich sein, so kann das Formular nicht gespeichert werden. Änderung der Subformulardefinition (z.b. Änderung der Spaltenauswahl oder der Sortierreihenfolge). Mit der Taste ESC können Sie den Bearbeitungsvorgang abbrechen ohne die Änderungen zu übernehmen. Mit Enter wird die Änderung übernommen. Änderungen an der Feld- oder Subformulardefinition müssen Sie mit OK oder F2 bestätigen.\n68 Objekte verschieben Sie können ein Element aus dem Formular jederzeit verschieben. Klicken Sie hierzu mit der rechten Maustaste auf das Objekt und wählen Sie die Option verschieben aus dem Kontextmenü. Mit der Tastenkombination Strg+M-können Sie ebenfalls in den Verschiebemodus wechseln, wenn sich der Cursor an der linken unteren Ecke eines Objektes befindet. Sie erkennen den Verschiebemodus an der gelben Cursorfarbe. Mit den Pfeiltasten bewegen Sie das Objekt an die jeweils nächstgelegene Rasterposition. Das Raster besitzt einen horizontalen Abstand von 15 Pixel und einen vertikalen Abstand von 30 Pixel. Mit Tab bzw. Shift-Tab bewegen Sie das Objekt an die nächste Tabulatorposition. Mit der Tastenkombination Strg+Pfeiltaste springen Sie an den jeweiligen Bildschirmrand. Bei Bedarf lassen sich Objekte auch pixelgenau verschieben: Verwenden Sie hierzu die Tastenkombination Shift+Pfeiltaste. Mit Hilfe der Tasten Bild Auf bzw. Bild Ab können Sie Objekte über Bildschirmseiten hinweg verschieben. Mit ESC können Sie den Verschiebevorgang abrechen. Das Objekt springt dann an seine Ursprungsposition zurück. Mit Enter wird das Objekt an seiner neuen Position verankert. Gruppen verschieben Wenn Sie mehrere Objekte auf einmal verschieben möchten, dann müssen Sie zuvor eine Gruppe markieren. Bewegen Sie den Cursor an die linke untere Auswahlposition und wählen Sie Objekt Gruppe markieren oder drücken Sie Strg+G. Ziehen Sie nun mit den Cursortasten das rote Rechteck über den gewünschten Bereich. Anschließend bestätigen Sie die Auswahl mit Return. Das Rechteck verfärbt sich nun gelb und der Cursor springt an die linke untere Ecke des Auswahlbereiches. Sie können nun alle Objekte der Gruppe gemeinsam verschieben.\n69 Objekte löschen Klicken Sie mit der rechten Maustaste auf das Objekt und wählen Sie die Option löschen aus dem Kontextmenü. Sie können auch die Taste Entf zum Löschen benutzen, wenn sich der Cursor an der linken unteren Ecke eines Objektes befindet. Wenn Sie ein Feld aus der Maske löschen, dann gehen eventuell bereits erfasste Daten in diesem Feld beim Abspeichern des Formulars unwiderruflich verloren. Vor der Entfernung des Feldes erfolgt deshalb eine Sicherheitsabfrage. Gruppe löschen Wenn Sie mehrere Objekte auf einmal löschen möchten, dann müssen Sie zuvor eine Gruppe markieren. Bewegen Sie den Cursor an die linke untere Auswahlposition und wählen Sie Objekt Gruppe markieren oder drücken Sie Strg+G. Ziehen Sie nun mit den Cursortasten das rote Rechteck über den gewünschten Bereich. Anschließend bestätigen Sie die Auswahl mit Return. Das Rechteck verfärbt sich nun gelb und der Cursor springt an die linke untere Ecke des Auswahlbereiches. Sie können nun mit der Taste Entf alle Objekte auf einmal löschen.\n70 Formular: Indizierung Mit der Option Formular Indizierung gelangen Sie in die Indexansicht des Formulareditors. In dieser Ansicht können Sie keine Objekte hinzufügen oder ändern. Stattdessen können Sie durch einen Mausklick auf ein Feld einen Index hinzufügen oder entfernen. Felder mit Index werden farbig hervorgehoben. Sie können einen Index auch direkt in den Feldeigenschaften aktivieren. Die spezielle Indexansicht im Editor verschafft Ihnen jedoch einen optimalen Überblick über alle indizierten Felder eines Formulars. Was ist ein Index? Ein Index ist eine sortierte Liste, die zur Optimierung von Suchvorgängen von der Datenbank bereitgehalten wird. Was sind die Vor- und Nachteile der Indizierung? Wenngleich ein Index die Suchvorgänge beschleunigt, so benötigt er andererseits zusätzlichen Speicherplatz in der Datenbank. Darüberhinaus muss der Index stets aktuell gehalten werden. Dies kann beim Hinzufügen, Ändern oder Löschen von Datensätzen zu einer Verlangsamung führen. Sie sollten daher stets gründlich überlegen, ob Sie ein Feld indizieren oder nicht. Die geschickte Auswahl der Indexfelder ist ein wichtiger Aspekt bei der Anwendungsentwicklung. Welche Felder sollten indiziert werden? Felder in denen häufig recherchiert wird sollten Sie mit einem Index ausstatten. Dies gilt insbesondere für Schlüsselfelder die der Verknüpfung von Formularen dienen. Wann kann auf einen Index verzichtet werden? Wenn Sie nur gelegentlich in einem Feld suchen, dann benötigen Sie keinen Index. Sie können außerdem auf einen Index verzichten, wenn ein Feld lediglich als zweites oder drittes Selektionsmerkmal dient. Besteht ein Selektionskriterium aus mehreren indizierten Feldern, dann wird oftmals nur ein Index bei der Suche genutzt. Formulare, in denen nicht mehr als etwa Sätze gespeichert werden, sollten Sie grundsätzlich nicht indizieren. Bei kleinen SQL-Tabellen erfolgt der Zugriff auch ohne Index schnell genug. Dies gilt insbesondere für Konfigurationsformulare, die ja lediglich einen Datensatz besitzen.\n71 Formular: Eingabezwang Mit der Option Formular Eingabezwang können Sie auf einfache Weise die Pflichtfelder eines Formulars festlegen. Alle Felder mit Eingabezwang werden farbig markiert dargestellt. Sie können den Eingabezwang durch Anklicken eines Feldes mit der Maus einfach ein- oder ausschalten Formular: Tab-Reihenfolge Die Option Formular Tab-Reihenfolge gestattet die Festlegung der Tabulator-Reihenfolge in einem Formular. Hierzu klicken Sie einfach die Felder in der gewünschten Reihenfolge an. Jedes Feld erhält beim Anklicken eine Positionsnummer. Für Felder ohne Tabstopp gilt die sog. Serpentinen- Reihenfolge. Hierbei werden die Felder von oben nach unten und von links nach rechts aktiviert. Felder ohne Tabposition werden stets nach den Feldern mit Tabposition angeordnet. Für nachträgliche Änderungen steht eine Reihe von Zusatzfunktionen zur Verfügung. Klicken Sie hierzu mit der rechten Maustaste auf ein Feld und wählen Sie eine Option aus dem Kontextmenü: Wählen Sie Tab entfernen um einen Tabulator zu entfernen. Mit der Option alle Tabs setzen erhalten alle Felder eine Positionsnummer gemäß Serpentinen- Reihenfolge. Sollten bereits Felder mit Tabpositionen existieren, so bleiben diese unverändert erhalten. Die Zählung beginnt dann mit der nächsten freien Positionsnummer. Mit der Option alle Tabs entfernen werden alle Tabpositionen auf der aktuellen Bildschirmseite entfernt.\n72 72 Sie können auch Felder nachträglich in die Tabreihenfolge aufnehmen. Klicken Sie hierzu zunächst auf das nachfolgende Feld um es zu markieren. Klicken Sie anschließend mit der rechten Maustaste auf das neue Feld und wählen Sie die Option Tab einfügen. Das neue Feld erhält die Nummer des zuvor markierten Feldes. Alle nachfolgenden Felder werden automatisch neu nummeriert Formular: Felder für Listenansicht Mit der Option Formular Felder für Listenansicht können Sie auf einfache Weise bestimmen, welche Felder in der Listenansicht einer Maske angezeigt werden. Felder, die in der Listenanzeige enthalten sind werden farbig markiert. Sie können ein Feld durch Anklicken mit der Maus hinzufügen oder entfernen Formular: Eindeutigkeit Mit der Option Formular Eindeutigkeit können Sie ein oder mehrere Felder definieren, die gemeinsam eindeutig sind. Die Datenbank prüft dann beim Abspeichern eines Datensatzes ob bereits ein Datensatz mit gleichen Eindeutigkeitsfeldern existiert. Sind alle als eindeutig definierten Felder gleich, so wird der Datensatz als Dublette angesehen und kann nicht gespeichert werden. Die Festlegung der Eindeutigkeit erfolgt durch einen Mausklick auf die gewünschten Felder. Alle eindeutigen Felder werden hierbei farbig markiert. Es stehen insgesamt drei voneinander unabhängige Eindeutigkeitsebenen zur Verfügung. Die farbig markierten Felder einer Ebene bilden ein gemeinsames Eindeutigkeitsmerkmal. Ein Datensatz wird nur dann als doppelt angesehen, wenn alle Felder gleich sind.\n73 Formular: Menüdefinition DataCool Formulare besitzen eine Standard-Menüzeile mit den Optionen Ansicht, Suchen und Bearbeiten (Bereich 1). Sie können diese Menüzeile um eigene Funktionen erweitern. Die nebenstehende Abbildung zeigt ein Formular mit zwei Zusatzoptionen (Bereich 2).\n74 74 Zur Gestaltung eines benutzerdefinierten Menüs starten Sie den Menüeditor über Formular Menü definieren: 1 Menübaum (Treeview) 2 Festlegung der Optionseigenschaften 3 Untermenü (enthält untergeordnete Menüpunkte) 4 Trennlinie (zur Strukturierung der Menüanzeige) 5 Bezeichnung der Menüoption. Die Änderung einer Menübezeichnung klicken Sie auf den Text und drücken Sie die Taste F2. 6 Wählen Sie die Art der Menüposition: Untermenü, Menüpunkt oder Trennlinie. 7 Wählen Sie die Aktion eines Menüpunktes: keine Aktion Menü öffnen Formular öffnen Script starten Wählen Sie diese Option, wenn Sie den Menüeintrag erst zu einem späteren Zeitpunkt mit einer Aktion belegen wollen. Öffnet das ausgewählte Dokument vom Typ Menü. Öffnet das ausgewählte Formular. Startet das ausgewählte Script. Import starten Startet einen Datenimport auf der Basis der angegebenen Importdefinition. Export starten Startet einen Datenexport auf der Basis der angegebenen Exportdefinition.\n75 75 Code ausführen Startet das im Dokument eingebettete Script. Als Event ID können Sie einen freien Text festlegen, der innerhalb des Scriptes mit der Systemvariable current.event abgefragt werden kann. Auf diese Weise kann das Script auf das eingetretene Ereignis reagieren. Auswahl definieren Eingabefelder vom Typ Auswahl stellen dem Anwender eine Reihe vordefinierter Optionen zur Verfügung. Mit der Aktion Auswahl definieren geben Sie dem Benutzer die Möglichkeit zur Veränderung einer Auswahlliste. Verknüpfung öffnen Eine Verknüpfung ist eine Beziehung (Relation) zwischen zwei Formularen. Beim Ausführen dieser Aktion wird das angegebene Formular mit dem verknüpften Datensatz geöffnet. Die Funktionsweise von Verknüpfungen wird im Kapitel 4.4 näher erläutert. 8 Wählen Sie hier das zu startende Dokument aus oder vergeben Sie einen Namen für das Ereignis, falls Sie die Option Code ausführen gewählt haben. 9 Geben Sie die minimale Berechtigungsstufe an, die ein Benutzer zum Ausführen der Aktion benötigt. 10 Optional: Wählen Sie eine Funktionstaste oder eine Tastenkombination zum Ausführen der Aktion. Der Shortcut Druckbutton nimmt eine Sonderstellung ein: er überlagert die normale Satzdruck-Funktion von DataCool. 11 Diese Option bewirkt, dass der Datensatz vor der Ausführung der Aktion automatisch gespeichert wird. Sollte das Speichern fehlschlagen, so wird auch die Aktion nicht ausgeführt. 12 Diese Option bewirkt, dass der Datensatz nach der Ausführung der Aktion frisch aus der SQL-Tabelle geladen wird. Sollte die Aktion (z.b. ein Scriptlauf) den Datensatz verändert haben, so wird hierdurch die Änderung direkt am Bildschirm reflektiert. 13 Hinzufügen eines neuen Menüeintrags unterhalb der markierten Stelle. Neue Menüeinträge können auch mit der Taste Einfg hinzugefügt werden. 14 Löscht den markierten Menüeintrag aus dem Menübaum. Menüeinträge können auch mit der Taste Entf aus dem Baum entfernt werden. 15 Verschiebt den markierten Menüeintrag nach oben. 16 Verschiebt den markierten Menüeintrag nach unten. 17 Übernimmt die Änderungen und beendet den Menüdialog. 18 Bricht die Bearbeitung des Menüs ab. Alle Änderungen gehen verloren.\n76 Änderung eines Formulars Bei der Erstellung eines Formulars wird von DataCool automatisch eine passende SQL-Tabelle erzeugt. Dies ist ein Vorteil im Vergleich zu vielen anderen Systemen, bei denen Tabellenentwurf und Maskengestaltung getrennte Arbeitsschritte sind. Wie ändere ich ein bestehendes Formular? Klicken Sie mit der rechten Maustaste auf ein Dokument in der Formularliste des Hauptmenüs. Wählen Sie anschließend die Option Bearbeiten aus dem Kontextmenü. Sie können Formulare auch mit der Taste F4 im Entwicklungsmodus öffnen. Was passiert mit den eingegebenen Daten bei einer Formularänderung? Änderungen an der Eingabemaske, die keine Felder betreffen, haben auch keinen Einfluss auf die zugehörige SQL-Tabelle. Wenn Sie also beispielsweise Änderungen an der Feldbeschriftung vornehmen oder eine Linie hinzufügen, so muss die zugrunde liegende SQL-Tabelle nicht angepasst werden. Sobald Sie jedoch Felder hinzufügen, ändern oder löschen, muss auch die SQL- Tabelle an die neue Datenstruktur angepasst werden. Hierbei kommen grundsätzlich zwei unterschiedliche Techniken zum Einsatz. Enthält die SQL-Tabelle noch keine Daten, so wird die Tabelle komplett gelöscht und neu erzeugt. Sind bereits Daten erfasst worden, so wird die SQL-Tabelle mit Hilfe von Synchronisierungsbefehlen an die neue Formularstruktur angepasst. Beispiel: Sie fügen ein Feld mit der Bezeichnung Telefax zum Formular Adresse hinzu. Bei Abspeichern synchronisiert DataCool die bestehende SQL-Tabelle mit dem Formular. Hierzu wird nachträglich die Spalte Telefax zur SQL-Tabelle hinzugefügt. Dieser Vorgang wird im SQL-Monitorfenster dokumentiert:\n77 77 Die Anpassung der SQL-Tabelle mit Hilfe von Synchronisierungsbefehlen erfolgt sehr schnell. Selbst wenn bereits große Datenmengen in der Tabelle gespeichert sind benötigt der SQL-Server kaum mehr als einige Sekunden. Dies ist ein großer Vorteil im Vergleich zu Datei-basierten Datenbanksystemen, die bei Änderungen einen zeitaufwändigen Reorganisationslauf benötigen. Viele Änderungen können Sie online ausführen selbst wenn andere Benutzer gleichzeitig mit der Vorgängerversion des Formulars arbeiten. Dies gilt insbesondere dann, wenn Sie nur Felder hinzufügen oder Feldlängen erweitern. Andere Benutzer sollten die Maske verlassen, sobald Sie Felder entfernen oder verkürzen. Fehlermeldungen bei der Synchronisation der SQL-Tabelle Das Hinzufügen oder Löschen von Feldern ist generell unproblematisch. Änderungen an einer Felddefinition erfordern jedoch eine Konvertierung von Daten. So kann beispielswiese ein Zahlenfeld jederzeit in ein Textfeld gewandelt werden. Der umgekehrte Weg setzt jedoch voraus, dass alle erfassten Datensätze einen gültigen Zahlenwert im Textfeld besitzen. Der SQL-Server führt die Synchronisationsbefehle nur dann aus, wenn jeder vorhandene Datensatz verlustfrei konvertiert werden kann. Die Speicherung der Formulardefinition und die Datenkonvertierung erfolgt innerhalb einer SQL- Transaktion. Diese bedeutet, dass die Änderungen an der Maske nur gespeichert werden, wenn auch die Anpassung der Daten fehlerfrei durchgeführt werden kann. Beispiel: Sie versuchen das Textfeld von der ursprünglichen Länge (50 Zeichen) auf 10 Zeichen zu verkürzen. Die Tabelle enthält jedoch Datensätze mit E- Mail-Adressen, die länger als 10 Zeichen sind. Die Synchronisation scheitert, da das Abschneiden des Feldes zum Verlust von Daten führen würde. Sie müssen die Bearbeitung der Maske abbrechen ohne zu Speichern.\n78 Verknüpfungen Eine Verknüpfung ist eine Beziehung zwischen zwei Tabellen. Hierbei werden zusammengehörige Datensätze in den Tabellen anhand gleicher Schlüsselfelder identifiziert. Beispiel: Im Formular A werden Kundenadressen gespeichert. Das Formular B dient zur Speicherung von Rechnungen. Für jeden Kunden im Formular A kann es beliebig viele Rechnungen im Formular B geben. Jede Rechnung hat jedoch nur einen zugehörigen Kundendatensatz. Man spricht in diesem Fall von einer sog. 1:N- Beziehung. Wie wird eine Verknüpfung erstellt? Als erstes müssen Sie die zu verknüpfenden Formulare erstellen. In jedem Formular muss es ein Schlüsselfeld geben, das als Verknüpfungsmerkmal dient. In obigem Beispiel dient hierzu das Feld Kundennummer. Die Felder können unterschiedliche Bezeichner haben, müssen aber vom gleichen Typ sein. Beim Auflisten von verknüpften Datensätzen muss die Datenbank eine Suche anhand der Schlüsselfelder ausführen. Die Schlüsselfelder einer Verknüpfung sollten daher in beiden Formularen mit einem Index versehen werden. Bitte wählen Sie die Option Verknüpfungen im Hauptmenü von DataCool. Klicken Sie anschließend auf den Button Neu oder drücken Sie die Taste Einfg um eine neue Verknüpfung zu erstellen. Tipp: Sie können eine Verknüpfung auch über das Kontextmenü der Formularliste erstellen. Klicken Sie mit der rechten Maustaste auf eines der beiden Verknüpfungsformulare und wählen Sie Verknüpfungen Neue Verknüpfung.\n79 79 So definieren Sie die Verknüpfung aus dem vorangegangenen Beispiel: Formulare: Wählen Sie die beiden Formulare aus, die miteinander verknüpft werden sollen. Verknüpfungsnamen: Als Verknüpfungsname dient normalerweise der Formularname. Sie können jedoch mehr als nur eine Verknüpfung zwischen zwei Formularen definieren. In diesem Fall müssen Sie einen eindeutigen Bezeichner für Ableitungsformeln vergeben. Verknüpfungsfelder 1: Verknüpfungsfelder 2: Verknüpfungsfelder 3: Wählen Sie die Schlüsselfelder in beiden Formularen aus. Die Felder müssen vom gleichen Typ sein und sollten indiziert werden. Definieren Sie hier ggf. ein zweites Schlüsselfeldpaar. Eine Verknüpfung von Datensätzen findet nur statt, wenn alle Schlüsselfeldpaare übereinstimmen. Definieren Sie hier ggf. ein drittes Schlüsselfeldpaar. Eine Verknüpfung von Datensätzen findet nur statt, wenn alle Schlüsselfeldpaare übereinstimmen. Sie können auch Verknüpfungen ohne Schlüsselfelder definieren. Diese Art der Verknüpfung wird häufig für Konfigurationsformulare verwendet. Hier ist keine Selektion erforderlich, da es nur einen einzelnen Datensatz gibt. Nachdem die Verknüpfung erstellt wurde können Sie auf einfache Weise auf Informationen aus anderen Formularen zugreifen. Die Verwendung der Verknüpfung in Ableitungsformeln wird im nächsten Kapitel erläutert.\n80 Ableitungsformeln Eine Ableitung veranlasst DataCool, den Wert eines Feldes automatisch zu bestimmen. Die Berechnung des Feldwertes erfolgt mit Hilfe einer Ableitungsformel. Eine Formel kann aus Konstanten, Feldnamen, Systemvariablen, Funktionen oder Operatoren bestehen. Die Feldnamen können sich auf Felder des gleichen Formulars oder auf Felder aus einem verknüpften Formular beziehen. Es stehen Ihnen alle Funktionen zur Verfügung, die im Referenzteil beschrieben werden. Beispiel: Die nachfolgende Abbildung zeigt das in Kapitel 4.4 beschriebene Kundenformular. Die grau gefärbten Felder sind virtuell. Dies bedeutet, dass die Feldinformationen nicht der SQL-Tabelle gespeichert werden. Die Maske soll nun mit einigen Ableitungsformeln versehen werden. Hierzu rufen Sie die Eigenschaften des jeweiligen Feldes auf (rechte Maustaste bearbeiten) und tragen die Formel im Register Ableitung ein. Einige Beispiele für sinnvolle Ableitungsformeln finden Sie auf der nächsten Seite.\n81 81 Feldname Rechnungsnummer Ableitungsformel und Erläuterung sequence("rechnung", "Rechnungsnummer") Die Rechnungsnummer wird automatisch fortlaufend hochgezählt. Die Funktion sequence ermittelt den höchsten Wert des Feldes Rechnungsnummer im Formular Rechnung und addiert die Zahl 1. Rechnungsdatum current.date MwStProzent 19.0 Die Systemvariable current.date liefert das aktuelle Systemdatum zurück. Der Mehrwertsteuer-Prozentsatz wird mit einem Wert von 19,0 vorbelegt. Bitte beachten Sie: In Ableitungen und Scripten wird als Dezimaltrennzeichen stets ein Punkt verwendet. MwStBetrag Nettobetrag * MwStProzent / 100 Der Mehrwertsteuerbetrag wird aus dem Nettobetrag und dem Mehrwertsteuer-Prozentsatz errechnet. Bruttobetrag Nettobetrag + MwStBetrag Der Bruttobetrag ergibt sich als Summe von Nettobetrag und Mehrwertsteuerbetrag. Die virtuellen Anschriftsfelder werden mit Hilfe der Verknüpfung zum Formular Kunde ausgefüllt. Die Ableitungsformel lautet allgemein: Verknüpfungsname.Feldname. Anschrift1 Anschrift2 Strasse Postleitzahl Ort Kunde.Anschrift1 Kunde.Anschrift2 Kunde.Strasse Kunde.Postleitzahl Kunde.Ort Beim Aufruf einer Rechnung wird die Kundenadresse stets neu aus der Kundenmaske geladen, da die Adressfelder virtuell sind. Auf diese Weise werden nachträgliche Änderungen an der Kundenadresse sofort in den Rechnungen reflektiert.\n82 82 Wenn die Ableitungsformel eines Eingabefeldes den Wert noexist ergibt, dann wird das betroffene Feld ausgeblendet. Auf diese Weise können Formulare erstellt werden, die sich in Abhängigkeit der Benutzereingaben dynamisch verändern. Beispiel: if(allergie="ja", null, noexist) Die obige Ableitungsformel wird für das Feld Allergiename verwendet und bewirkt, dass die Eingabe eines Allergienamens nur dann abgefragt wird, wenn das Feld "Allergie" angekreuzt ist:\n83 Ereignisverarbeitung Jedes Formular besteht neben der Eingabemaske auch aus einem dazugehörigen Script. Dieses Script wird künftig als Formularscript bezeichnet. In der Entwurfsphase können Sie mit dem nebenstehenden Button zwischen Formular- und Script umschalten. Bei den meisten Formularen ist das Script leer. Sie können jedoch bei Bedarf ein Script definieren, das auf bestimmte Ereignisse reagiert. Mit Hilfe eines Formularscriptes können Sie beispielsweise komplizierte Plausibilitätsprüfungen oder Ableitungen realisieren. Das Formularscript kommt also immer dann zum Einsatz, wenn Sie mit Ableitungsformeln an Ihre Grenzen stoßen. Das Ausführen eines Formularscriptes wird durch verschiedene Ereignisse ausgelöst. DataCool unterscheidet Systemereignisse und Benutzerereignisse. Die Systemereignisse sind fest vordefiniert und werden automatisch ausgelöst. Die Benutzerereignisse werden durch Buttons, Bildschaltflächen oder Menüs ausgelöst. Jedes Ereignis besitzt einen eindeutigen Bezeichner, den Sie mit der Systemvariable current.event im Script abfragen können. current.event load check run insert postinsert update Systemereignisse Laden eines Dokumentes Tritt vor dem Ausführen eines Scriptes auf. Auf diese Weise können diverse Prüfungen der Eingabewerte per Script vorgenommen werden. Bei eventuellen Fehlern kann das Script mit der Anweisung error eine Fehlermeldung ausgeben und so den Start des Scriptes unterbinden. Ausführen eines Scriptes Tritt vor dem Speichern eines neuen Datensatzes auf. Die Speicherung des Satzes kann unterbunden werden, wenn im Script die Systemvariable current.check auf false gesetzt wird. Tritt nach dem Speichern eines neuen Datensatzes auf. Die Speicherung des Satzes kann rückgängig gemacht werden, wenn im Script die Systemvariable current.check auf false gesetzt wird. Tritt vor der Änderung eines bestehenden Datensatzes auf. Die Speicherung des Satzes kann unterbunden werden, wenn im Script die Systemvariable current.check auf false gesetzt wird.\n84 84 postupdate delete click_[feldname] browse_[feldname] Tritt nach der Änderung eines bestehenden Datensatzes auf. Die Speicherung des Satzes kann rückgängig gemacht werden, wenn im Script die Systemvariable current.check auf false gesetzt wird. Tritt vor dem Löschen eines Datensatzes auf. Die Löschung des Satzes kann unterbunden werden, wenn im Script die Systemvariable current.check auf false gesetzt wird. Dieses Ereignis wird vor dem Aufruf eines SQL- Browsers ausgelöst. Die Ereigniskennung enthält den Namen des Auslöserfeldes. Dieses Ereignis wird ausgelöst, wenn ein Wert mit Hilfe eines SQL-Browsers ausgewählt wurde. Das Ereignis tritt nicht ein, wenn der SQL-Browser ohne Auswahl eines Wertes geschlossen wird. Die Ereigniskennung enthält den Namen des Auslöserfeldes. Den Ereignissen insert, update und delete kommt eine besondere Bedeutung zu. Diese Ereignisse treten vor Ausführung der jeweiligen Operation ein. Wenn das Script die Systemvariable current.check auf den Wert false setzt, dann wird die jeweilige Operation unterbunden. Mit anderen Worten: das Script kann also verhindern, dass der angezeigte Datensatz gespeichert oder gelöscht wird.\n85 85 Beispiel: Bedingter Eingabezwang mit Hilfe eines Formularscriptes if current.event="insert" or current.event="update" then if Form.Allergiker="ja" and Form.Allergie=null then error "Wogegen sind Sie allergisch?"; current.check=false; focus "Allergie"; exit script; end end Erläuterung des Scriptes if current.event="insert" or current.event="update" then Der nachfolgende Code wird nur ausgeführt, wenn ein Datensatz hinzugefügt oder geändert werden soll. if Form.Allergiker="ja" and Form.Allergie=null then Wenn das Formularfeld Allergiker mit ja ausgefüllt ist und das Formularfeld Allergie keine Eingabe enthält, dann soll ein Hinweis erfolgen und der Datensatz soll nicht gespeichert werden. message "Wogegen sind Sie allergisch?"; Nachfrage an den Benutzer. current.check=false; Wird die Systemvariable current.check auf false gesetzt, so wird der Datensatz nicht gespeichert. focus "Allergie"; Der Cursor wird in das Feld Allergie gesetzt. exit script; Der Scriptlauf wird beendet. Der Benutzer kann nun mit der Eingabe fortfahren und die fehlenden Angaben ergänzen.\n86 86 Error-Befehl Formularscripte werden häufig eingesetzt um Benutzereingaben auf Plausibilität zu prüfen. Tritt ein Fehler auf, so sind meistens die nachfolgenden Schritte erforderlich: - Ausgabe einer Fehlermeldung für den Benutzer - Setzen der Systemvariable current.check auf false - Positionierung des Cursors im fehlerhaften Eingabefeld - Abbruch des Scriptlaufes Alle oben genannten Funktionen sind beim Befehl error zusammengefasst worden. Das vorangegangene Beispiel lässt sich daher auch verkürzt schreiben: if current.event="insert" or current.event="update" then end if Form.Allergiker="ja" and Form.Allergie=null then end error "Wogegen sind Sie allergisch?", "Allergie"; Zugriff auf Formularfelder Innerhalb eines Formularscriptes können Sie auf Felder aus der Eingabemaske zugreifen. Das Script kann Feldwerte auslesen oder verändern. Verwenden Sie hierzu den Bezeichner Form.Feldname.\n87 87 5 Menügestaltung 5.1 Standardmenü Mit Hilfe von Menüs können Sie für den Anwender Ihres Programmes eine Benutzeroberfläche erstellen. Bei DataCool ist das Menü eine Sonderform des Formulars. Ein Menü besitzt im Gegensatz zum Formular keine SQL-Tabelle. Bitte wählen Sie die Option Formulare im Hauptmenü von DataCool. Klicken Sie anschließend auf den Button Neu oder drücken Sie die Taste Einfg um ein neues Dokument zu erstellen. Im nachfolgenden Fenster wählen Sie nun den Dokumententyp Menü :\n88 88 Die Eingabe im Feld Titel wird zur Laufzeit des Menüs in großer Schrift angezeigt. Ein Menü kann aus folgenden Elementen bestehen: - fester Text - feste Bilder - Linien und Rechtecke - Standard-Schaltflächen (Buttons) - Bildschaltflächen mit hinterlegten Aktionen - Virtuelle Felder mit Ableitungsformeln (z.b. current.user ) - Subformulare Menüs werden auf die gleiche Art und Weise erstellt wie Formulare. Die Vorgehensweise wird in Kapitel 4.1 ausführlich beschrieben. Nachfolgend sehen Sie ein Beispiel für ein fertiges Menü mit Standard-Schaltflächen. Dieses Beispiel ist aus dem DataCool Tutorial entnommen:\n89 89 Alternativ zu den Standard-Schaltflächen können Sie auch Icons für das Menü verwenden. Nachdem Sie die Icons in das Menü eingebunden haben können Sie mit der rechten Maustaste auf die Symbole klicken und dort jeweils die benötigte Aktion hinterlegen. Beispiel für ein fertiges Menü unter Verwendung von Bildschaltflächen:\n90 Toolbarmenü Das Toolbarmenü ist eine Sonderform des Menüs. Es ist am besten zu vergleichen mit der linken Menüleiste von Microsoft Outlook. Sie können mit Hilfe der Toolbar dynamisch zwischen mehreren Formularen wechseln. Hierbei bleiben die jeweils angezeigten Datensätze auf dem Bildschirm stehen. Das nachfolgende Beispiel erläutert die Erstellung eines Toolbar-Menüs: Schritt 1: Wählen Sie beim Anlegen des Menüs die Option Menü als Toolbar verwenden :\n91 91 Schritt 2: Erstellen Sie ein Menü mit grafischen Buttons. Bitte achten Sie bei der Wahl der Icons darauf, dass diese alle gleich groß sind. Klicken Sie anschließend auf jedes Icon mit der rechten Maustaste und wählen Sie die Option Aktion definieren aus dem Kontextmenü. Legen Sie auf diese Weise für jedes Icon fest, welches Formular geöffnet werden soll. Die Aktion des ersten Icons (links oben) wird beim Öffnen des Menüs automatisch aktiviert. Ab der Version 2014 können Sie zusätzlich ein Hover-Bild und ein Click-Bild definieren. Das Hover-Bild erscheint wenn der Mauszeiger über das Bild bewegt wird. Das Klick-Bild erscheint wenn das Bild angeklickt wird. Für ein Toolbar-Menü benötigen Sie also jeweils drei Bilder je Button um einen professionellen Look zu erzielen. Standard-Bild Hover-Bild Click-Bild\n92 92 Schritt 3: Erstellen Sie die benötigten Datenformulare und achten Sie darauf, dass an der geplanten Position der Toolbar-Buttons ein Freiraum bleibt. Freiraum für Toolbar Ergebnis: Beim Start des Toolbarmenüs wird die erste Option links oben automatisch aktiviert. Im Falle unseres Beispiels ist dies eine Auftragsliste. Die Toolbar selbst wird dann bei jedem Formular automatisch eingeblendet:\n93 93 6 Benutzerverwaltung 6.1 Benutzer definieren und ändern Bitte wählen Sie die Option Benutzer im Hauptmenü. Klicken Sie anschließend auf den Button Neu oder drücken Sie die Taste Einfg um ein neues Benutzerkonto zu erstellen. Legen Sie nun die Benutzereigenschaften fest: Name: Login-Name des Benutzers. Dieser Name kann in Ableitungsformeln oder in Scripten mit der Systemvariable current.user abgefragt werden. Passwort: Wiederholung: Start-Dokument: Kennwort des Benutzers. Bitte geben Sie das Kennwort zur Sicherheit erneut ein. Bestimmen Sie, welches Dokument nach der Anmeldung bei DataCool als erstes gestartet werden soll. Das Startdokument kann ein Menü, ein Formular oder ein Script sein. Der erste Eintrag Systemmenü bedeutet, dass DataCool mit der Programmieroberfläche startet.\n94 94 Berechtigung: Wählen Sie eine der Berechtigungsstufen: niedrig, mittel, hoch oder admin. Für die meisten Anwender empfiehlt sich die Stufe mittel. Mit dieser Berechtigungsstufe können Sie in den meisten Formularen Daten eingeben, ändern oder löschen. Die höchste Berechtigungsstufe admin ermöglicht das Abspeichern von SQL-Filtern in Formularen. Eingabemethode: Die Option Eingaben in Textfeldern automatisch markieren legt die bevorzugte Eingabemethode für diesen Benutzer fest: Option deaktiviert (Standard): Wenn ein Eingabefeld den Fokus bekommt, dann wird der Cursor ans Ende gesetzt. Dies bewirkt, dass neu eingegebene Werte am Ende angehängt werden. Bei einer Neueingabe muss das Feld zunächst mit F6 oder Entf geleert werden. Beispiel: Option aktiviert: Wenn ein Eingabefeld den Fokus bekommt, dann werden vorhandene Daten ggf. automatisch markiert. Dies bewirkt, dass neu eingegebene Werte die vorhandenen Eingaben ersetzen. Bei Änderungen muss jedoch zunächst der Cursor bewegt werden um die Markierung zu entfernen: Beispiel:\n95 Benutzerrechte zuweisen DataCool unterscheidet vier Berechtigungsstufen, die den Zugriff auf diverse Programmfunktionen steuern: niedrig mittel hoch admin Bei der Entwicklung Ihrer Anwendung können Sie an verschiedenen Stellen die Berechtigungsstufe festlegen, die ein Benutzer zum Ausführen einer Aktion mindestens besitzen muss: Formulare: In den Formulareigenschaften können Sie die Berechtigung für folgende Aktionen festlegen: - Eingeben - Ändern - Löschen - Suchen Subformulare: In der Subformulardefinition können Sie die Berechtigung für folgende Aktionen festlegen: - Anzeigen von Subdatensätzen - Einfügen von Subdatensätzen - Löschen von Subdatensätzen - Duplizieren von Subdatensätzen Buttons: Bild-Schaltflächen: Menü-Optionen: Berechtigung zum Ausführen der Aktion. Berechtigung zum Ausführen der Aktion. Berechtigung zum Ausführen der Aktion Sie können den Zugang zu bestimmten Dokumenten auch unabhängig von den Benutzerrechten einstellen. Legen Sie hierzu einfach verschiedene Menü- Dokumente für bestimmte Benutzergruppen an. Weisen Sie anschließend jedem Benutzer sein passendes Menü als Startdokument zu.\n96 96 7 Datenaustausch 7.1 Datenimport DataCool besitzt eine komfortable Schnittstelle zum Einlesen aller gebräuchlichen Dateiformate. Zum Einlesen von Daten in eine SQL-Tabelle benötigen Sie eine Importdefinition. Eine Importdefinition beschreibt den genauen Aufbau der Quelldatei und die Zuordnung zu den einzelnen Datenfeldern der Zieltabelle. Zur Erstellung einer neuen Importdefinition klicken Sie auf den Button Import im Hauptmenü von DataCool. Klicken Sie anschließend auf den Button Neu oder drücken Sie die Taste Einfg. Es öffnet sich der Dialog zur Erstellung einer Importdefinition: Importname: Vergeben Sie eine eindeutige Bezeichnung für die Importdefinition. Die Importdefinition kann unter Angabe des Namens wie folgt gestartet werden: - über einen Button - über eine Menüoption - über eine Bildschaltfläche - mit Hilfe des Befehls import der Scriptsprache\n97 97 Dateiformat: Geben Sie das Dateiformat der Quelldatei an. Folgende Formate werden unterstützt: Text Das Format Text ist das am weitesten verbreitete Dateiformat zum Austausch von Daten. Häufig wird auch die Bezeichnung CSV-Datei für dieses Format verwendet. Eine Textdatei besteht aus einer beliebigen Anzahl von Zeilen. Jede Zeile in der Quelldatei entspricht genau einem Datensatz. Die einzelnen Felder einer Zeile werden durch ein Feldtrennzeichen von einander getrennt. Aufgrund des Feldtrennzeichens ist es kein Problem, wenn die Feldinhalte unterschiedlich lang sind. Man spricht daher auch von einer Textdatei mit variabler Länge. Excel Daten aus der Tabellenkalkulation Microsoft Excel lassen sich besonders einfach einlesen. Die Importfunktion setzt allerdings voraus, das Excel 2003 oder höher auf dem Rechner installiert ist. DataEase 4.x DataCool verfügt über eine spezielle Schnittstelle, die das Einlesen von Formulardaten aus dem Datenbanksystem DataEase ermöglicht. Es wird ausschließlich die Version 4.x für DOS unterstützt. Für den Import benötigen Sie stets zwei Dateien: die dba-datei mit der Formulardefinition und die dbm-datei mit den Daten. XML XML ist die Abkürzung von extensible Markup Language. Das XML-Format findet besonders im Internet weite Verbreitung. Es handelt sich um eine Sonderform einer Textdatei, bei der die Feldinhalte von einer Anfangs- und Endekennung umschlossen werden. Diese Kennung wird auch als öffnendes bzw. schließendes Tag bezeichnet: <Feldname> Feldinhalt </Feldname> Durch die Verschachtelung von Tags ist das Format sehr gut zur Abbildung von hierarchischen Datenstrukturen geeignet. Ein weiterer Vorteil besteht in der Möglichkeit Text- und Binärdaten in einer Datei zu übertragen. DataCool nutzt diese Technik für Formulare mit Bildfeldern.\n98 98 Das nachfolgende Beispiel zeigt eine einfache XML-Datei mit zwei Datensätzen. Jeder Datensatz wird von den Tags <record> und </record> umschlossen. Innerhalb eines Datensatzes sind die einzelnen Werte zwischen Tags mit den Feldnamen eingebettet. <?xml version='1.0' encoding='iso '?> <!-- DataCool Export 'Artikel' --> <export> <record> <BestNr> q2610a </BestNr> <Bezeichnung> Toner </Bezeichnung> </record> <record> <BestNr> 51645a </BestNr> <Bezeichnung> Tinte </Bezeichnung> </record> </export> Zeichensatz: Trennzeichen: Dezimal-Trenner: Datumsformat: Geben Sie den Dateiursprung (DOS oder Windows) an. Diese Einstellung ist nur für Textdateien relevant. Dateien, die mit dem DOS-Zeichensatz erzeugt wurden, werden von DataCool beim Import in den Windows-Zeichensatz konvertiert. Beim Dateiformat Text müssen Sie das Feldtrennzeichen festlegen. Wählen Sie eines der gebräuchlichen Trennzeichen aus der Liste oder geben Sie ein beliebiges Symbol als Trennzeichen ein. Die Auswahl Tab bedeutet, dass die Felder mit einem Tabulator (Zeichencode $09) voneinander getrennt sind. Bitte legen Sie fest, ob die Datei ein Komma oder einen Punkt als Dezimaltrennzeichen verwendet. Diese Einstellung ist nur für die Formate Text und XML relevant. Bestimmen Sie die Reihenfolge der Angaben Tag, Monat und Jahr. Legen Sie außerdem fest, ob die Jahreszahl 4- stellig oder 2-stellig angegeben wird. 2-Stellige Jahreszahlen werden von DataCool beim Import automatisch in 4-stellige Jahreszahlen gewandelt. Hierbei wird das Startjahr aus der Systemkonfiguration zugrundegelegt. Das Trennzeichen zwischen Tag, Monat und Jahr muss kein Punkt sein. Jedes beliebige oder kein Trennzeichen ist möglich. TT.MM.JJ, MM.TT.JJ, JJ.MM.TT TT.MM.JJJJ, MM.TT.JJJJ, JJJJ.MM.TT\n99 99 Zeile 1 importieren: Zieltabelle leeren: Dateiname abfragen: Sätze aktualisieren: Diese Einstellung ist nur für die Formate Text oder Excel relevant. Wenn die erste Zeile der Importdatei keinen Datensatz sondern die Feldbezeichnungen als Überschrift enthält, dann müssen die hier nein eintragen. Wenn Sie hier ja eintragen, dann wird die Zieltabelle vor dem Import mit dem SQL-Befehl truncate table geleert. Es erfolgt eine Sicherheitsabfrage, falls die Tabelle bereits Daten enthält. Wird der Import über ein Script ausgeführt, so unterbleibt die Rückfrage damit das Script ohne Benutzereingriff ablaufen kann. Wenn Sie hier ja eintragen, dann wird vor dem Import ein kleiner Dateiexplorer geöffnet. Bei der Einstellung nein wird von einem festen Dateinamen ausgegangen. Diese Option ist nur dann relevant, wenn das Zielformular eindeutige Felder besitzt. Anhand der Eindeutigkeitsregel wird bestimmt, ob der zu importierende Datensatz in der Zieltabelle bereits existiert oder nicht. Bestehende Sätze aktualisieren = ja Ist der Importdatensatz in der Zieltabelle bereits vorhanden, so wird der Datensatz in der Zieltabelle aktualisiert. Bestehende Sätze aktualisieren = nein Ist der Importdatensatz in der Zieltabelle bereits vorhanden, so wird der Importdatensatz verworfen. Transaktion: Wenn Sie den Import als eine Transaktion ausführen, dann wird die Importdatei ganz oder gar nicht eingelesen. Tritt während des Einlesevorganges ein Fehler auf (z.b. ein ungültiger Datumswert), so wird der Import insgesamt verworfen. Wenn Sie den Import nicht als Transaktion ausführen, dann werden nur die fehlerhaften Datensätze der Importdatei übersprungen. Alle korrekten Datensätze werden trotzdem übernommen. Vorteile beim Import mit Transaktion: - schnellerer Importvorgang - konkrete Meldung beim Auftreten des ersten Fehlers\n100 100 Quelldatei: Zielformular: Wählen Sie mit dem Dateiexplorer eine Quelldatei aus. Unmittelbar nach der Auswahl wird die erste Zeile der Importdatei in die Zuordnungstabelle geladen. Wählen Sie das Zielformular für die importierten Daten aus. Mit Hilfe der Buttons können Sie nun eine Zuordnung zwischen den Quellspalten der Importdatei und den Zielspalten der SQL-Tabelle vornehmen. Auf diese Weise können Sie bestimmen welche Spalten in welche Felder importiert werden sollen. Die Reihenfolge der Felder in der Importdatei muss also nicht mit der Reihenfolge der Felder in der Tabelle übereinstimmen. Funktionen der Zuordnungstabelle: Alle Verbindungen lösen Markierte Verbindung lösen Verbindung für markierte Spalte erstellen Alle Spalten verbinden (nach Reihenfolge) Alle Spalten verbinden (nach Feldbezeichnung)\n101 Datenexport DataCool besitzt eine komfortable Schnittstelle zum Auslesen von Daten in den wichtigsten Formaten. Bevor Sie mit dem Export beginnen können, müssen Sie eine Exportdefinition erstellen. Die Exportdefinition beschreibt u.a. die Auswahl und die Reihenfolge der zu auszugebenden Datenfelder. Zur Erstellung einer neuen Exportdefinition klicken Sie auf den Button Export im Hauptmenü. Klicken Sie anschließend auf den Button Neu oder drücken Sie die Taste Einfg. Es öffnet sich der Dialog zur Erstellung einerexportdefinition:\n102 102 Exportname: Vergeben Sie eine eindeutige Bezeichnung für die Exportdefinition. Die Exportdefinition kann unter Angabe des Namens wie folgt gestartet werden: - über einen Button - über eine Menüoption - über eine Bildschaltfläche - mit Hilfe des Befehls export der Scriptsprache Die Option Datei nach dem Export öffnen bewirkt, dass die frisch erstellte Exportdatei automatisch geöffnet wird. Hierzu wird das jeweils geeignete Programm verwendet (Excel, Texteditor oder Webbrowser). Dateiformat: Wählen Sie ein Format für die Exportdatei. Folgende Formate werden unterstützt: Text Das Format Text ist das am weitesten verbreitete Dateiformat zum Austausch von Daten. Häufig wird auch die Bezeichnung CSV-Datei für dieses Format verwendet. Eine Textdatei besteht aus einer beliebigen Anzahl von Zeilen. Jede Zeile in der Datei entspricht genau einem Datensatz. Die einzelnen Felder einer Zeile werden durch ein Feldtrennzeichen von einander getrennt. Aufgrund des Feldtrennzeichens ist es kein Problem, wenn die Feldinhalte unterschiedlich lang sind. Man spricht daher auch von einer Textdatei mit variabler Länge. Excel DataCool kann Ihre gespeicherten Daten direkt als Excel- Tabelle ausgeben. Diese Funktion setzt allerdings voraus, das Excel 2003 oder höher auf dem Rechner installiert ist Ab DataCool 2014 können Sie bestimmen ob das alte Excel-Format von Office 2003 (.xls) oder das neue Excel- Format ab Office 2007 (.xlsx) verwendet werden soll. Die Verwendung des neuen Formates setzt natürlich voraus dass Excel 2007 oder höher installiert ist.\n103 103 HTML HTML steht für HyperText Markup Language. Dieses Format wird für die Erstellung von Internetseiten verwendet. Mit DataCool können Sie Ihre Daten in Form einer einfachen HTML-Tabelle exportieren. Die erzeugte Exportdatei können Sie per Doppelklick direkt in Ihrem Browser öffnen. XML XML ist die Abkürzung von extensible Markup Language. Das XML-Format findet besonders im Internet weite Verbreitung. Es handelt sich um eine Sonderform einer Textdatei, bei der die Feldinhalte von einer Anfangs- und Endekennung umschlossen werden. Diese Kennung wird auch als öffnendes bzw. schließendes Tag bezeichnet: <Feldname> Feldinhalt </Feldname> Durch die Verschachtelung von Tags ist das Format sehr gut zur Abbildung von hierarchischen Datenstrukturen geeignet. Ein weiterer Vorteil besteht in der Möglichkeit Text- und Binärdaten in einer Datei zu übertragen. DataCool nutzt diese Technik für Formulare mit Bildfeldern. Das nachfolgende Beispiel zeigt eine einfache XML-Datei mit zwei Datensätzen. Jeder Datensatz ist in das Tag record eingebettet. Innerhalb eines Datensatzes sind die einzelnen Werte zwischen Tags mit dem Feldnamen eingebettet. <?xml version='1.0' encoding='iso '?> <!-- DataCool Export 'Artikel' --> <export> <record> <BestNr> q2610a </BestNr> <Bezeichnung> Toner </Bezeichnung> </record> <record> <BestNr> 51645a </BestNr> <Bezeichnung> Tinte </Bezeichnung> </record> </export>\n104 104 Trennzeichen: Beim Dateiformat Text müssen Sie das Feldtrennzeichen festlegen. Wählen Sie eines der gebräuchlichen Trennzeichen aus der Liste oder geben Sie ein beliebiges Symbol als Trennzeichen ein. Die Auswahl Tab bedeutet, dass die Felder mit einem Tabulator (Zeichencode $09) voneinander getrennt werden. Zeichensatz: Geben Sie den gewünschten Zeichensatz für die Exportdatei an (DOS oder Windows). Diese Einstellung ist nur für Textdateien relevant.. Feldüberschriften: Zielordner: Bestimmen Sie, ob die erste Zeile der Exportdatei Feldbezeichner enthalten soll oder nicht. Geben Sie den Zielordner für die Exportdatei an. Ab der Version 2014 können Sie auch eines der folgenden Systemverzeichnisse als Ziel für den Export wählen: - Desktop - Eigene Dateien - Verzeichnis für temporäre Dateien Dateiname: SQL-Befehl: Bestimmen Sie den Dateinamen für die Exportdatei. Bestehende Dateien werden von DataCool beim Export ohne Rückfrage überschrieben. Geben Sie einen SQL-Befehl zur Selektion der Exportdaten ein. Anhand des select-befehles können Sie folgende Angaben bestimmen: Tabelle, Feldliste, Sortierreihenfolge. Beispiel: Der nachfolgende Befehl exportiert die Felder BestNr und Bezeichnung aus der SQL-Tabelle Artikel: select BestNr, Bezeichnung from Artikel\n105 105 8 Hilfsmittel 8.1 SQL Direkt SQL Direkt ist ein einfaches Dialogfenster zur direkten Kommunikation mit dem Datenbankserver. Sie finden dieses Tool mit Hauptmenü unter Tools SQL Direkt. Mit Hilfe von SQL Direkt können Sie beliebige SQL-Befehle direkt an der Server senden. Bei der Verwendung des Befehls select werden die ausgewählten Daten in tabellarischer Form angezeigt: Menü SQL-Befehl : Vorheriger (Shift-F3): Nächster (F3): Neu (F5): DataCool 2014 speichert die letzten 20 SQL-Befehle in einer Historytabelle ab. Mit den Buttons Vorheriger und Nächster können Sie einen SQL-Befehl wiederfinden und ggf. erneut ausführen. DataCool 2014 speichert die letzten 20 SQL-Befehle in einer Historytabelle ab. Mit den Buttons Vorheriger und Nächster können Sie einen SQL-Befehl wiederfinden und ggf. erneut ausführen. Löscht die Anzeige für die Eingabe eines neuen Befehls.\n106 106 Wizard: Ausführen (F2): Ruft den SQL-Wizard auf. Der SQL-Wizard ist ein Hilfefenster, das die Erstellung von select-befehlen für ungeübte Benutzer erleichtert. Führt den SQL-Befehl aus. Rückmeldungen werden im Feld Serverantwort angezeigt. Bei der Ausführung von select- Befehlen werden die ausgewählten Daten in die darunterliegende Tabelle geladen. Ab der Version 2014 zeigt das Feld Serverantwort auch die Anzahl der selektierten oder geänderten Datensätze an. Darüberhinaus ist es nun möglich einzelne Werte aus der Ergebnistabelle in die Zwischenablage zu kopieren. Klicken Sie hierzu mit der rechten Maustaste auf die gewünschte Tabellenzelle: Drucken: Exportieren: Timeout: Druckt die angezeigten Ergebnisse aus. Die angezeigte Datentabelle wird an Microsoft Excel übergeben. Diese Funktion setzt voraus, dass Excel auf dem PC installiert ist. Der Excel-Export enthält stets alle selektierten Daten, obwohl die Tabellenanzeige auf dem Bildschirm auf oder Datensätze beschränkt ist. Für die Ausführung von SQL-Befehlen gilt normalerweise ein Timeout von 90 Sekunden. Wenn DataCool innerhalb dieser Zeit keine Rückantwort vom Server bekommt, dann wird die Ausführung des Befehles abgebrochen. In Einzelfällen kann die Ausführung von SQL-Befehlen auch länger dauern, wenn z.b. mit einem update-befehl eine große Anzahl von Datensätzen verändert wird. In diesem Fall haben Sie nun die Möglichkeit den Timeout-Wert von 90 Sekunden auf 300 Sekunden (5 Minuten) hochzusetzen.\n107 107 Ansicht: 1000 Sätze: Beschränkt den Ladevorgang auf Datensätze Sätze: Beschränkt den Ladevorgang auf Datensätze. Verbindungen: Falls Sie Verbindungen zu anderen SQL-Datenbanken definiert haben (siehe Kapitel 3.8), so können Sie in der Toolbar zwischen diesen Verbindungen umschalten. Die SQL-Befehle werden dann auf die jeweils ausgewähle Datenbank angewendet. Der Name der aktiven Verbindung wird in der Statusbar angezeigt.\n108 Dokumente exportieren und importieren Von Zeit zu Zeit kann es erforderlich werden ein DataCool Formular oder ein Script von einer Anwendung in eine andere Anwendung zu überspielen. Zu diesem Zweck stehen Ihnen eine Import- und eine Export-Funktion für Dokumente zur Verfügung. DataCool verwendet beim Import/Export von Dokumenten das XML-Format. Die Struktur der verwendeten XML-Dateien ist offen und transparent. Auf diese Weise haben Sie eine zukunftssichere Lösung, da Sie auch mit Drittprogrammen ggf. auf die Dokumentendefinition zugreifen können. Dokument exportieren Markieren Sie das gewünschte Formular oder Script und wählen Sie die Option Dokument exportieren. Wählen Sie anschließend den Zielordner für die Exportdatei aus. Der Name des Dokumentes wird automatisch als Dateiname verwendet. Dokument importieren Wählen Sie die Option Dokument importieren aus dem Hauptmenü von DataCool. Wählen Sie anschließend mit dem Explorer die XML-Datei aus. Bitte beachten Sie, dass noch kein gleichnamiges Dokument in der Applikation existieren darf. Beim Import von Formularen wird die zugehörige SQL-Tabelle automatisch mit erstellt.\n109 Formulare aus anderen Quellen erstellen DataCool verfügt über drei Hilfsprogramme zur automatischen Erzeugung von Formularen. Formular erstellen (aus SQL-Tabelle) Mit diesem Assistenten erzeugen Sie ein Formular auf der Basis einer bestehenden SQL-Tabelle. Die zugrundeliegende Tabelle kann auch eine Tabelle sein, die mit einer anderen Anwendung erstellt wurde. Das Ergebnis des Assistenten ist ein einfaches Formular mit Feldbezeichnern und Feldern. Die Feldnamen und Feldeigenschaften werden aus den Spalten der SQL-Tabelle abgeleitet. Das automatisch erzeugte Formular ist ein View. Dies bedeutet, dass Änderungen am Formular nicht zu einer Anpassung der zugehörigen Tabelle führen. Wenn Sie das automatisch generierte Formular löschen, so bleibt die Basistabelle erhalten. Tools Formular erstellen (aus SQL-Tabelle) Formularname: Verbindung: Basistabelle: Name des neuen Formulars (frei wählbar). Wählen Sie die Standardverbindung oder die Bezeichnung einer fremden Datenquelle, die Sie zuvor im Menü Konfiguration Verbindungen eingerichtet haben. Wählen Sie die Tabelle aus, für die das Formular erstellt werden soll.\n110 110 Formular erstellen (aus DataEase 4.x) Mit Hilfe des Assistenten können Sie Formulare aus DataEase übernehmen. Sie benötigen hierzu die Formulardefinitionsdatei mit der Endung dba. Der Wizard ist nur zu DataEase DOS Version 4.x kompatibel. Tools Formular erstellen (aus DataEase 4.x) Formularname: Name des neuen Formulars (frei wählbar). DBA-Datei: Wählen Sie die Formulardefinitionsdatei aus dem Applikationsverzeichnis Ihrer DataEase Anwendung. DataCool verwendet die Zeilen- und Spaltenposition aus der DOS Maske zur Positionierung der Felder in der Windows Maske. Dies funktioniert in der Regel recht gut. Sie müssen das neue Formular aber eventuell etwas nachbearbeiten. Die Feldeigenschaften (Feldtyp, Feldlänge, etc.) werden bei der Konvertierung exakt übernommen. Bitte beachten Sie jedoch, dass die Ableitungsformeln verloren gehen. Eine Übernahme ist nicht möglich, da DataCool nicht mit der Scriptsprache DQL von DataEase arbeitet. Nach der Installation des Formulars müssen Sie ggf. noch eine Überspielung der Daten vornehmen. Verfahren Sie hierzu wie im Kapitel 7.1 (Datenimport) beschrieben.\n111 111 Formular erstellen (aus Excel-Tabelle) Ab Version 2014 gibt es einen neuen Assistenten zur Erstellung eines Formulares auf der Basis einer Excel-Tabelle. Diese Option ist besonders nützlich wenn Sie eine fremde Excel-Tabelle erhalten und diese für einen Einmalimport einlesen möchten. Bisher mussten Sie manuell ein passendes Hilfsformular erstellen. Tools Formular erstellen (aus Excel-Tabelle) Bitte beachten Sie, dass die erste Zeile der Excel-Tabelle Spaltenüberschriften enthalten muss. Diese Spaltenüberschriften werden im DataCool Formular als Feldbezeichner verwendet. Die Datentypen der einzelnen Spalten bestimmen die Feldeigenschaften des neuen Formulares.\n112 Konfigurationstool für Client-Arbeitsplätze Ab der Version 2014 können Sie eine Konfigurationsdatei bereitstellen, die zur automatischen Einrichtung neuer Client-Computer verwendet werden kann. Mit dem Tool AppConfig.exe können Sie dann auf dem Client den DSN-Eintrag erstellen und eine Verknüpfung für Ihre Anwendung auf dem Desktop anlegen. Die benötigten Einstellungen speichert DataCool in der Datei AppConfig.xml, die im Programmverzeichnis abgelegt wird. Diese Datei wird von allen DataCool Anwendungen gemeinsam genutzt. Auf diese Weise können Sie auf einem Client Computer mit einem Mausklick die DSN-Einträge und Verknüpfungen für mehrere DataCool Anwendungen anlegen. Zur Erstellung oder Änderung der Datei AppConfig.exe wählen Sie die Option Konfigurationstool für Client-Arbeitsplätze aus dem Menü Tools der Menüleiste: Aktivieren Sie bei Bedarf die Option Verknüpfung anlegen : Pfad für DataCool: Pfad für Logobild: Pfad für Icon: Name: Programmpfad für DataCool.exe. Pfad zu einer BMP-Bilddatei, falls der Login-Bildschirm mit einem individuellen Logo erscheinen soll (siehe Kapitel 3.5). Pfad zu einer Icon-Datei, falls die Desktopverknüpfung nicht das DataCool Icon verwenden soll. Benutzername, falls der Loginbildschirm mit voreingestelltem Benutzer starten soll.\n113 113 Passwort: Verknüpfung: Wenn Sie Benutzer und Passwort angeben, dann startet die Anwendung ohne Loginbildschirm. Vorschau der Programmparameter, die in der Verknüpfung auf dem Desktop hinterlegt werden. Aktivieren Sie bei Bedarf die Option DSN anlegen : Datenbankname: Server\_Instanz: Authentifizierung über Domäne: Name der SQL-Datenbank auf dem Server. Servername oder Servername\_Instanzname falls auf dem Server eine benannte Instanz läuft. Aktiveren Sie diese Option wenn die Clientcomputer Mitglied einer Windows-Domäne sind. Es wird dann die Methode NT- Authentizierung anstelle der SQL-Server-Authentifizierung verwendet. Klicken Sie auf Speichern um die Datei AppConfig.xml im Systemverzeichnis von DataCool abzulegen. Anschließend kopieren Sie diese Datei zusammen mit dem Tool AppConfig.exe auf ein Netzlaufwerk. Bei der Einrichtung neuer Client- Arbeitsplätze gehen Sie dann folgendermaßen vor: - Führen Sie das Client Setup von DataCool aus - Starten Sie das Tool AppConfig.exe zur Einrichtung von DSN und Verknüpfung\n114 Globale Suche Ab der Version 2014 gibt es ein neues praktisches Tool für die globale Suche in allen Scripten und Ableitungsformeln. Dieses Tool ist besonders dann nützlich, wenn Sie beispielsweise ein Feld umbenannt haben und alle Scripte und Ableitungsformeln an die neue Schreibweise anpassen müssen. So geht s: Wählen Sie die Option Globale Suche in der linken Menüleiste des Hauptmenüs. Geben Sie nun den Suchbegriff ein und legen Sie fest ob Sie alle Scripte und/oder alle Ableitungsformeln durchsuchen möchten. Klicken Sie anschließend auf das Symbol mit dem Fernglas um die Suche zu starten: Danach wird Ihnen die Trefferliste angezeigt: Iin der rechten Spalte sehen Sie, ob der Suchbegriff in der Ableitung oder im Script gefunden wurde. Sie können einen Treffer in der Liste markieren und direkt die Bearbeitung des Dokumentes aufrufen. Wenn es sich um ein Script handelt, dann können Sie im Scripttext mit der Taste F3 zu den Fundstellen springen.\n115 115 9 SQL Server 2012 Express 9.1 Installation SQL Server und Management Studio Beim Einzelplatz-Setup wird von DataCool automatisch die LocalDB installiert. Dies ist eine spezielle Version des SQL Server Express, die wenig Ressourcen beansprucht. Diese Version ist jedoch nicht netzwerkfähig. Falls Sie mit DataCool im Mehrplatzbetrieb arbeiten möchten müssen Sie den SQL Server Express installieren. Führen Sie in diesem Fall die nachfolgenden Schritte auf dem Server-Computer aus. Schritt 1: Laden Sie die Setup-Dateien vom Microsoft Download Center herunter: Wählen Sie hierzu die Version SQLEXPRWT_x86_DEU.exe für 32 Bit oder SQLEXPRWT_x64_DEU.exe für 64 Bit.\n116 116 Schritt 2: Starten Sie die Installation von SQL Server Express 2012 und wählen Sie den Punkt Neue eigenständige SQL Server-Installation : Funktionsauswahl: Es genügt wenn Sie die nachfolgend angekreuzten Instanzfunktionen auswählen. Die restlichen Komponenten werden nicht benötigt.\n117 117 Instanzkonfiguration: Erstellen Sie eine benannte Instanz mit dem Namen DATACOOL. Dienstkonten: Übernehmen Sie die vorgeschlagenen Werte für den Kontonamen und stellen Sie den Starttyp für beide Dienste auf automatisch : Authentifizierungsmodus: Wählen Sie Gemischter Modus und vergeben Sie ein Kennwort für den SQL Server-Systemadministrator (SA):\n118 118 Schritt 3: Starten den SQL Server Configuration Manager und aktivieren Sie das Netzwerkprotokoll TCP/IP für die benannte Instanz von DataCool: Schritt 4: Konfigurieren Sie die Windows-Firewall, damit die Client-Computer mit dem SQL Server kommunizieren können. Definieren Sie hierzu zwei eingehende Regeln, die den Datenverkehr der Protokolle TCP und UDP auf den Ports 1433 und 1434 zulassen:\n119 Erstellen einer neuen Datenbank Starten Sie das SQL Server Management Studio und klicken Sie mit der rechten Maustaste auf den Punkt Datenbanken um eine neue Datenbank zu erstellen: Vergeben Sie einen Namen für die neue Datenbank. Der SQL-Server schlägt jeweils einen Dateinamen für die Datenbank und das Transaktionsprotokoll vor. Im Normalfall können Sie die vorgeschlagenen Speicherorte übernehmen. Klicken Sie auf der linken Seite auf den Punkt Optionen und kontrollieren Sie das eingestellte Wiederherstellungsmodell der neuen Datenbank. Hier sollte unbedingt der Wert Einfach eingestellt werden, da die Transaktionsprotokolle sonst enorm viel Speicherplatz belegen und die Perfomance des Systems beieinträchtigen. Wenn alle Einstellungen geprüft sind klicken Sie auf OK um die neue Datenbank anzulegen.\n120 120 Nachdem die Datenbank erstellt wurde müssen Sie noch Zugriffsrechte für die Netzwerkbenutzer vergeben. Klicken Sie hierzu auf Sicherheit Anmeldungen Vordefiniert\_Benutzer. Wählen Sie dann den Punkt Benutzerzuordnung und aktivieren Sie für die neu angelegte Datenbank die Option db_owner :\n121 Anhängen einer bestehenden Datenbank Kopieren Sie zunächst die vorhandene Datenbank (.mdf) und das zugehörige Transaktionsprotokoll (.ldf) in das Datenverzeichnis des SQL Servers: Starten Sie danach das SQL Server Management Studio und klicken Sie mit der rechten Maustaste auf den Punkt Datenbanken um die vorhandene Datenbank anzufügen: Im nachfolgenden Dialog klicken Sie dann auf Hinzufügen um die Datenbankdateien auszuwählen.\n122 122 Nachdem die Datenbank angefügt wurde müssen Sie noch Zugriffsrechte für die Netzwerkbenutzer vergeben. Klicken Sie hierzu auf Sicherheit Anmeldungen Vordefiniert\_Benutzer. Wählen Sie dann den Punkt Benutzerzuordnung und aktivieren Sie für die neu angelegte Datenbank die Option db_owner : 6. Deinstallieren Sie die MSDE, falls diese nicht mehr benötigt wird\n123 Hinweise zur Datensicherung DataCool speichert sowohl die Programmstruktur als auch die Anwendungsdaten in der SQL-Datenbank. Die SQL-Datenbank besteht aus zwei Dateien: - der Datenbankdatei mit der Endung MDF - dem Transaktionsprotokoll mit der Endung LDF In diesen beiden Dateien sind alle Informationen einer DataCool-Anwendung enthalten: - Formulare inklusive Bilder - Scripte - Verknüpfungen - Benutzer - Importdefinitionen - Exportdefinitionen - Anwendungstabellen - Anwendungsdaten inklusive Bildfelder Offline-Sicherung Bei einem einfachen Sicherungsmodell genügt es die beiden o.g. Dateien auf ein anderes Medium zu kopieren. Zu diesem Zweck muss die Datenbank gestoppt werden, da die Dateien andernfalls geöffnet sind und sich nicht kopieren lassen. Sie können die zu sichernde Datenbank entweder im SQL Server Management Studio offline schalten oder mit Hilfe von Befehlen in der Eingabeaufforderung stoppen: net stop mssql$datacool Danach können Sie die Dateien kopieren und die Datenbankdienste wieder starten: net start mssql$datacool Die Datenbankdateien befinden sich in der Regel im folgenden Verzeichnis auf der Festplatte des Servers: C:\_Programme\_Microsoft SQL Server\_MSSQL11.DATACOOL\_MSSQL\_Data Hinweis: Beim SQL Server Express Local DB befinden sich die Datenbankdateien stattdessen im Profilverzeichnis des Benutzers.\n124 124 Online-Sicherung Für eine Online-Sicherung Ihrer Datenbanken gibt es prinzipiell zwei Möglichkeiten: - Erstellung einer VSS-Kopiesicherung: Verwenden Sie eine Sicherungssoftware, die den Volume Shadow Service (VSS) unterstützt. Hierbei wird eine laufende Datenbank während der Sicherung kurz gestoppt um einen konsistenten Zustand der Sicherung zu ermöglichen. Nur so ist gewährleistet, dass die Sicherungsdateien später erfolgreich wiederhergestellt werden können. Sie können VSS-Sicherungen beispielsweise mit dem Windows Server Backup oder dem Sicherungsprogramm Acronis Backup & Recovery erstellen. - Online-Sicherung mit dem Management Studio Bei der Onlinesicherung wird eine Sicherungsdatei mit der Endung.bak erstellt. Diese Datei kann mit der Option Wiederherstellung im Management Studio für ein Restore verwendet werden. In der kostenpflichtigen Vollversion des SQL-Servers gibt es das Tool SQL Server Agent. Mit diesem Tool können Onlinesicherungen zeitgesteuert automatisch durchgeführt werden. In der kostenfreien Version SQL Server Express ist diese Möglichkeit nicht vorgesehen.\n125 DataCool Scriptsprache (SQL Basic) 10.1 Aufbau der Scriptsprache Die DataCool Scriptsprache verbindet die mengenorientierte Abfragesprache SQL mit der einfachen Programmiersprache BASIC. BASIC steht für Beginner s All-purpose Symbolic Instruction Code und wurde in seiner Urform bereits 1963 entwickelt. Ausgehend von dem einfachen BASIC Befehlssatz wurde unsere Scriptsprache um viele nützliche Zusatzfunktionen wie etwa der Druck von Barcodes oder das Versenden von s erweitert. Im Kapitel 10.4 können Sie sich einen Überblick über die Leistungsfähigkeit der DataCool Scriptsprache verschaffen. Im Kapitel 10.5 finden Sie den Referenzteil, der alle Befehle ausführlich erläutert Der Script-Editor Die Handhabung des Script-Editors soll an einer einfachen Programmieraufgabe demonstriert werden. Aufgabe Wir programmieren das Spiel Was mag Willi. Das Script soll den Benutzer dazu auffordern, einen Gegenstand zu benennen. Sobald der Benutzer den Gegenstand eingegeben hat soll das Script dem Benutzer mitteilen, ob Willi den Gegenstand mag oder nicht. Dahinter steht ein einfaches Prinzip: Willi mag alle Gegenstände, in denen ein ll vorkommt. Lösung Klicken Sie im Hauptmenü von DataCool auf den Button Scripte. Wählen Sie anschließend die Option Neu oder drücken Sie die Taste Einfg. Es öffnet sich der Dialog zur Festlegung der Scripteigenschaften.\n126 126 Name: Titel: Ansicht: Geben Sie einen Namen für das Script an. Ein Script darf nicht denselben Namen besitzen wie ein Formular. Leerzeichen und Sonderzeichen sind nicht erlaubt. Wir nennen unser Script WasMagWilli. Der Dokumententyp ist Script. Der Titel wird beim Start des Scriptes in der Eingabemaske in großer Schrift angezeigt. Wählen Sie zwischen Vollbild- und Fensteranzeige. Die Einstellung ist nur für Scripte relevant, die eine Eingabemaske besitzen. In unserem Fall können Sie die Vorgabe von 400 x 300 Pixel übernehmen.\n127 127 Script-Einstellungen: Die Option Eingabemaske erneut anzeigen ist nur für Scripte mit Eingabeformular relevant. Normalerweise wird das Script nach seiner Ausführung beendet. Ist die Option jedoch aktiviert, so springt das Script wieder zur Eingabemaske zurück. Der Benutzer kann dann mit einer neuen Eingabe fortfahren oder auf Abbruch klicken um das Script zu beenden. In unserem Beispiel haben wird diese Option aktiviert, damit der Benutzer beliebig viele Gegenstände vorschlagen kann. Die Option Eingabewerte wiederholen bestimmt, dass bei wiederholter Ausführung des Scriptes die zuletzt eingegebenen Werte automatisch vorgeschlagen werden. Nachdem Sie den Button OK angeklickt haben befinden Sie sich automatisch im Script-Editor. Da unser Beispiel-Script vom Benutzer eine Eingabe erwarten soll, müssen wir jedoch zuerst ein Eingabeformular für das Script erstellen. Klicken Sie hierzu auf den Button Formular in der Toolbar. Erstellen Sie ein einfaches Formular mit einem Textfeld namens Gegenstand. Die grauen Begrenzungslinien deuten die spätere Größe des Formulars zur Laufzeit an. Nun können wir mit der Erstellung des Programmes beginnen. Klicken Sie hierzu auf den Button Script in der Toolbar:\n128 128 Zur besseren Lesbarkeit hier nochmals der Programmcode im Klartext: if pos(form.gegenstand, "ll")>0 then message Form.Gegenstand & " mag Willi!"; else message Form.Gegenstand & " mag Willi nicht!"; end Die pos-funktion sucht nach der Zeichenfolge ll im Feld Gegenstand. Auf die Werte der Eingabemaske können Sie mit dem Bezeichner Form.Feldname zugreifen. Wenn die pos-funktion die Zeichenfolge ll im Gegenstand findet, so erfolgt die Meldung, dass Willi den Gegenstand mag. Andernfalls erfolgt die Meldung, dass Willi den Gegenstand nicht mag.\n129 129 Nachdem Sie das Script eingegeben haben klicken Sie auf den Button Prüfen. DataCool überprüft die Syntax des Scriptes. Wenn alles korrekt ist, dann wird das Script abgespeichert und die Beschriftung des Buttons ändert sich in Geprüft. Im Falle eines Fehlers wird die falsche Programmzeile farbig markiert und das Script wird nicht gespeichert. Wenn das Script fehlerfrei geprüft wurde, dann können Sie auf Start klicken um es auszuführen: Das Script prüft nun ob ein ll im Gegenstand vorkommt und gibt eine Meldung aus: Zugegeben, dieses Beispiel hat noch nicht viel mit Datenverarbeitung zu tun. Dennoch haben Sie nun die ersten Handgriffe im Umgang mit dem Script-Editor kennengelernt.\n130 130 Die Funktionen des Script-Editors im Detail: 1 Anzeige / Bearbeitung des Script-Formulars. 2 Anzeige / Bearbeitung des Scriptes (Programmcode). 3 Speicherung des Scriptes ohne Prüfung. 4 Speicherung des Scriptes mit Prüfung. Tritt ein Fehler auf, so wird die fehlerhafte Programmzeile rot markiert und das Script wird nicht gespeichert. Ist das Script fehlerfrei, so wird es gespeichert. 5 Start des Scriptes. 6 Schaltet die Pickliste aus oder ein. Die Pickliste ist eine Ansammlung von Auswahllisten im unteren Bereich des Editorfensters. Die Auswahllisten helfen dem Programmierer beispielsweise bei der Bestimmung von Feld- oder Tabellennamen. 7 Funktion zum Suchen und Ersetzen von Scripttext. 8 Aufruf des Script-Wizards. Der Script Wizard ist ein Listengenerator, der auf der Basis eines Dialoges automatisch Scriptcode erzeugt. 9 Aufruf der Online-Befehlsreferenz im Internet. 10 Editor-Bereich zur Bearbeitung des Programmcodes. 11 Umschaltung der Tabellenanzeige zwischen mehreren Verbindungen.