Verfügbare Bausteine

Software Composer - Verfügbare Bausteine

Im Folgenden findest du einen Überblick zu den Bausteinen, die der Software Composer zur Verfügung stellt. Aber keine Sorge, wenn Du nicht jedes Detail gleich verstehst. Es geht hier lediglich darum, dir einen Überblick zu verschaffen.

Mit unserem Basis-Kurs erklären wir dir ganz genau, wie du mit dem Software Composer deine Anwendungen erstellst (siehe Online-Akademie).

Datenmodellierung mit automatischer Schema-Pflege

Du kannst Datenobjekte (sogenannte Entitäten, englisch: Entity) mit Datenfeldern und Beziehungen untereinander definieren. Die Datenfelder bezeichnen wir als Attribute.

Typische Attribute sind

  • Texte, Memos und HTML
  • Zahlen, sowohl Integer als auch Decimal
  • Ja/Nein-Werte (Boolean)
  • Auswahllisten, sowohl feste als auch frei erweiterbare Aufzählungen
  • Datei-Anhänge und Bilder bzw. Fotos
  • Datum, Zeit und Zeitstempel

Ein Beispiel wäre die Entität Person mit den Attributen Name, Geburtsdatum und den typischen Attributen für die Adresse wie Straße, PLZ und Ort.

Typische Beziehungen zwischen den Entitäten sind:

  • Eine Referenz von einer Entität auf eine andere Entität, z.B. die Referenz von einer Rechnung zum Empfänger, denn eine Rechnung verweist auf einen Empfänger. Der Empfänger wird nicht direkt Bestandteil der Rechnung, da insbesondere auch mehrere Rechnungen zu einem Empfänger geben kann.
  • Datensätze einer Entität sind fester Bestandteil einer anderen Entität, z.B. Rechnungspositionen zu einer Rechnung. Dann sprechen wir von einer Ist-Bestandteil-Beziehung, da die Rechnungsposition fest mit der Rechnung verknüpft ist und nicht unabhängig von der Rechnung existiert.
  • Beziehungen zwischen zwei Entitäten, die frei existieren und sogar selbst Attribute haben können. Ein Beispiel hierfür ist die Zuordnung einer Person zu einer Veranstaltung als Teilnehmer. Die Beziehung selbst bezeichnen wir dann als Teilnahme. So kann eine Person mehreren Veranstaltungen zugeordnet sein und eine Veranstaltung auch mehrere Personen als Teilnehmer haben. Die Beziehung Teilnahme kann dann selbst weitere Attribute haben wie z.B. der Zeitpunkt, zu dem die Person sich zur Veranstaltung angemeldet hat. Aus Sicht der Daten-Modellierung wird die Beziehung in diesem Fall als eigenständige Entität definiert, in diesem Fall die Entität Teilnahme.

Jede Entität definiert automatisch eine Datenbank-Tabelle. Der Software Composer übernimmt die Pflege der Datenbank und der Datenbank-Tabellen zu den Entitäten. Du hast also in der Regel nichts mit der zugrunde liegenden Datenbank zu tun. Das bedeutet konkret, dass du keine DDL-Skripte für die Schema-Pflege der Datenbank erstellen und nachziehen musst.

Masken und Formulare

Mit Biz kannst du Masken und Formulare erstellen, die aus aus Widgets und Panels bestehen. Als Widgets stehen dir die üblichen GUI-Elemente wie Textfelder, Memofelder, Auswahlfelder, Checkboxen oder Radio-Buttons zur Verfügung. Darüber hinaus gibt es spezielle Widgets, falls du im aktuellen Datensatz eine Referenz auf andere Entität hast, beispielsweise ein Widget für den Empfänger (Entität Person) einer Rechnung.

 

Layouts

Jedes Panel hat, so wie die Maske selbst auch, ein bestimmtest Layout und kann selbst wieder aus Widgets und Panels aufgebaut werden. Die folgenden Layouts stehen dir zur Verfügung:

  • Vertikal
    Die Panel-Element werden untereinander angeordnet.
  • Horizontal
    Die Panel-Element werden nebeneinander angeordnet.
  • Register
    Hier wird ein Register verwendet, wobei für jedes Panel-Element ein Tab erzeugt wird.
  • Akkordeon
    Die Panel-Elemente können einzeln auf- und zugeklappt werden.
  • Stack
    Du kannst dir dieses Layout wie einen Stapel vorstellen, wobei immer eines der Panel-Elemente oben aufliegt und damit sichtbar ist. Welches Panel-Element unter welchen Bedingungen sichtbar sein soll, kannst du nach deinen Wünschen festlegen

 

Tabellen

In einer Maske kannst du auch Tabellen oder Formulare einfügen, falls du eine Liste von Entitäten darstellen oder verarbeiten möchtest. So kannst du beispielsweise eine Maske erstellen, in der eine Tabelle mit allen aktuellen Rechnungen dargestellt wird. In der Tabelle kannst du eine Aktion hinterlegen, um eine weitere Maske für den gewählten Datensatz zu öffnen.

 

Detail-Tabellen und Master/Detail

Du kannst eine Tabelle auch für eine sogenannte Master/Detail-Beziehung verwenden. Falls du in deiner Anwendung z.B. zu einem Firmenkontakt mehrere Personen hinterlegen möchtest, kannst du in der Maske für einen konkreten Firmenkontakt eine Auflistung aller Personen hinzufügen. Der Firmenkontakt ist in diesem Fall "Master", die Personen dazu die "Details".

Ein weiteres Beispiel ist, dass du in der Maske des Firmenkontakts eine Auflistung aller Rechnungen anbauen kannst, also eine Auflistung der Rechnungen, die du dieser Firma gestellt hast.

Daten-Table mit Filtern/Suchen und Sortierung

Jede Entität definiert eine Datenbank-Tabelle, die du mit einer Datenabfrage als Tabellen-Widget anzeigen kannst. Bei einer Datenabfrage kannst du festlegen, nach welchen Kriterien die Daten gefiltert werden oder gesucht werden können. Zusätzlich hast du auch die Möglichkeit, die Sortierung von vornherein vorzugeben.

Aber keine Sorge: Du musst keine SQL-Abfragen erstellen - das übernimmt der Software Composer automatisch für dich. Du kannst dich voll auf die Anforderungen für deine Anwendung konzentrieren.

 

Optionale Filter

Ein optionaler Filter basiert in der Regel auf einem Attribut, nach dem du filtern bzw. suchen möchtest. Das kann z.B. der Name bei Kontakten oder der Status "Offen" bei einer Liste von Aufgaben sein.

Du kannst auch mehrere Attribute kombinieren, um mit einem Suchfeld parallel anhand mehrerer Attribute zu suchen. Beispielsweise kann du ein Suchfeld definieren, mit dem Kontakte nach den Attributen Name des Kontakts, Bemerkung zum Kontakt, Name einer Kontaktpersonen oder Inhalt der Korrespondenz gesucht werden. 

Es ist auch möglich, Filter mit Bedingung zu formulieren. Ein Beispiel hierfür ist der Filter "Alle offenen Rechnungen" mit der Bedingung "Rechnung ist fakturiert" und "Rechnung ist noch nicht bezahlt". Wie bereits erwähnt, muss du dafür keine SQL-Abfragen erstellen, sondern kannst dich direkt auf die Attribute beziehen. In diesem Beispiel sähe das so aus:

status = "fakturiert" & bezahlt = false

 

Permanente Filter

Eine Datenabfrage kann auch einen permanenten Filter anwenden. Wenn du beispielsweise eine Liste der fakturierten Rechnungen anzeigen möchtest, würdest du einen permanenten Filter status = "fakturiert" verwenden.

 

Sortierung

Wird die Datenabfrage mit einer Tabelle dargestellt, können die Datensätze durch Klick auf die Spaltenüberschrift danach sortiert werden.

Es gibt aber auch Fälle, wo eine Sortierung anhand einer Kombination von mehreren Attributen erfolgen soll. Beispielsweise könntest du eine Liste von Aufgaben nach den Attributen Priorität, Fälligkeit und Aufgabentyp sortieren wollen. Diese Sortierung kannst du als Standard festlegen. Du kannst auch mehrere Sortiermöglichkeiten anbieten, die dann der Anwender selber auswählen kann.

 

Abschließend sei nochmals erwähnt, dass du keine SQL-Abfragen für die Filter und Sortierkriterien erstellen musst - das übernimmt der Software Composer automatisch für dich.

Spezielle Widgets

Zusätzlich zu den Standard-Widgets stehen dir weitere Maskenelement zur Verfügung.

Action Button

Ein Action Button führt eine Aktion aus, die du in der Maske festgelegt hast. Eine Aktion könnte sein, eine Aufgabe als erledigt zu markieren.

 

Entity-Widget

Nehmen wir als Beispiel eine Rechnung, die eine Referenz auf die Entität Kontakt hat, um den Rechnungsempfänger der Rechnung festzulegen. Das Widget für den Rechnungsempfänger in der Rechnungsmaske stellt den Kontakt dar, z.B. mit dessen Namen. Das Entity-Widget hat rechts einen Button, um einen Kontakt auszuwählen.

Um einen Kontakt auszuwählen, wird die Datenbank-Tabelle der Kontakte als Auswahl-Tabelle geöffnet. Die Datenabfrage wird standardmäßig erstellt. Du kannst aber jederzeit die Datenabfrage und die Auswahlmaske selber festlegen, um z.B. spezielle Filter zu definieren oder mit einem permanenten Filter ganz bestimmte Kontakte von vornherein auszufiltern.

Du kannst das Entity-Widget auch mit einer eigenen Aktion ausstatten. So kannst du z.B. in dem Widget, das den Empfänger einer Rechnung anzeigt, auch einen Button hinzufügen, der die Stammdaten-Maske des Kontakts öffnet. Das ist oft praktisch, weil du dann nicht erst umständlich in einer Kontakt-Übersicht den Kontakt suchen und öffnen musst.

 

Datei-Widget

Du kannst auch ein Attribute definieren, das eine Datei speichert. Das kann beispielsweise ein PDF eines Vertrags, eine Excel-Datei oder ein JPG-Bild sein.

Das zugehörige Datei-Widget zeigt dir den Namen der hochgeladenen Datei. Das Widget hat rechts - je nach genauer Konfiguration - mehrere Buttons zum Hochladen einer Datei, zum Download der Datei oder zum Löschen der hochgeladenen Datei.

 

Bild-Widget

Hast du bei einem Datei-Attribut ein Bild hochgeladen, kannst du es mit dem Bild-Widget anzeigen. So kannst du beispielsweise ein Firmen-Logo oder das Portrait-Foto eines Mitarbeiters anzeigen.

 

Video-Widget

Mit dem Video-Widget kannst du auch Videos integrieren.

 

Label-Widget und HTML-Widget

Selbstverständlich kannst du auch beliebige Texte in der Maske ausgeben. Das funktioniert auch, wenn die Text als HTML formatiert sind.

Zudem kannst du den Wert eines Attributs auch als Label-Widget anstatt z.B. als Text-Widget anzeigen.

 

Richtext-Widget

Neben den Text-Feldern und den mehrzeiligen Memo-Feldern kannst du auch Richtext eingeben und anzeigen. Das ist ein Editor, in dem du auch einfache Formatierungen wie Zeichensatz, Schriftgröße und Farben verwenden kannst.

 

URL-Widget

Mit dem URL-Widget kannst du Links (URL) auf andere Seiten in deine Maske einbauen. Die URL kann auch durch ein Attribute festgelegt, also dynamisch sein.

Dynamische Masken

Du kannst jede Maske und jedes Formular dynamisch auf unterschiedliche Situationen anpassen. So kannst du:

  • Masken-Elemente ein- und ausblenden
  • das sichtbare Element bei einem Stack-Layout bestimmen
  • Masken-Elemente aktivieren und deaktivieren (nicht änderbar)
  • Schriftfarbe, Hintergrundfarbe und Zeichensatz von Masken-Elemente ändern
  • Symbole je nach Status anzeigen

Für die unterschiedlichen Situationen definierst du bei der Entität einen oder mehrere Status-Bausteine. Jeder Status-Baustein kann einen bestimmten Wert annehmen, wobei du festlegst, in welcher Situation welcher Wert gelten soll.

Auf Basis dieser Status-Bausteine definierst du die Dynamik deiner Masken, indem zu festlegst, bei welchem Wert eines Status-Bausteins welches Masken-Element in Bezug auf sichtbar ja/nein, änderbar ja/nein, welche Farbe etc. verändert werden soll.

Betrachte beispielsweise eine Rechnung, die den Status "in Erstellung", "Fakturiert" und "Storniert" haben kann. Jetzt kannst du festlegen, dass der Action Button "Rechnung fakturieren" nur im Status "in Erstellung" und der Action Button "Rechnung stornieren" nur im Status "Fakturiert" sichtbar sichtbar sein soll.

Zudem kannst du festlegen, dass gewisse Eingabefelder nur im Status "in Erstellung" änderbar sein sollen.

Business-Logic

Du kannst den Entitäten, Datenabfragen und Masken weitere Bausteine hinzufügen:

Berechnung

Einer Entität kannst du auch Berechnungen als Attribute hinzufügen. Beispielsweise kannst du der Entität Aufgabe das Attribut "Offen seit" hinzufügen, dass die Anzahl der Tage berechnet, seit dem die Aufgabe angelegt, aber noch nicht geschlossen wurde.

 

Business-Rule

Du kannst einer Entität und einer Datenmenge eine Business-Rule hinterlegen, die bei bestimmten Ereignissen eine oder mehrere Aktionen ausführt. Als Ereignis kannst du wählen zwischen

  • init: Die Entität wird zum ersten Mal erzeugt.
  • insert: Die Entität wird zum ersten Mal gespeichert.
  • update: Die Entität wird aktualisiert, d.h. nach dem ersten Mal gespeichert.
  • delete: Die Entität wird gelöscht.
  • edit: Es hat sich ein Attribut der Entität geändert.

Mit init können bestimmte Attribute der Entität mit initialen Werten belegt werden, so z.B. das Attribute Status einer Aufgabe auf "Offen".

Mit edit kann auf Änderungen, auch interaktiv während der Bearbeitung in der Maske, reagiert werden. So kann z.B. bei Änderung des Rechnungsdatums automatisch das Zahlungsziel als Datum gesetzt werden.

 

Invariante

Eine Invariante legt eine Bedingung fest, die immer erfüllt sein muss. Das Datenobjekt kann nicht gespeichert werden, falls die Invariante nicht erfüllt ist. Stattdessen wird eine entsprechende Meldung ausgegeben und ein Widget rot markiert, falls gewünscht.

Ein Beispiel für eine Invariante ist die Bedingung bei einer Rechnung, dass das Rechnungsdatum zum Zeitpunkt der Fakturierung dem aktuellen Datum entsprechen muss.

Bei einer Invariante kannst du festlegen, ob diese schon während der Bearbeitung oder erst beim Speichern geprüft werden soll.

 

Unique Contraint

Mit einem Unique Constraint kannst du festlegen, dass ein Attribut oder eine Kombination aus Attributen eindeutig sein müssen.

Ein Beispiel für ein Unique Constraint ist die Rechnungsnummer - diese muss eindeutig sein, d.h. sie darf nicht doppelt vergeben werden.

Ein weiteres Beispiel für ein Unique Constraint ist die Kombination aus Kontakt und Veranstaltung bei der Entität Teilnahme: Ein Teilnehmer kann jeweils nur einmal an einer konkreten Veranstaltung teilnehmen..

 

Generator für laufende Nummern

Mit einem Generator kannst du laufende Nummern nach vorgegebenen Mustern und Regeln erzeugen.

So kannst du automatisch eine Kunden-Nr. als laufende Nummer generieren. Oder aber auch die Rechnungsnummern als laufende Nummer pro Jahr oder eine laufende Nummer einer Rechnungsposition je Rechnung.

Menüs, Favoriten und Dashboard

Du kannst das Menüs deiner Anwendung frei gestalten.

Es gibt auch die Möglichkeit, im Kopfbereich zwischen dem Logo (links) und den Standard-Menüs (rechts) ein sogenanntes Favoriten-Menü einzufügen, um besonders häufig genutzte Funktionen schnell und einfach zugänglich zu machen.

Des Weiteren kannst Du ein Dashboard definieren, das automatisch nach dem Login angezeigt wird. Das Dashboard kannst du wie eine Maske beliebig gestalten.

Import, Export und PDF-Druck

Du hast die Möglichkeit, einen Export von Daten in Form von Excel-Dateien oder CSV-Dateien hinzuzufügen. In diesem Fall legst du fest, welche Attribute mit welchen Bezeichnungen exportiert werden. Zudem kannst du einen Kopfbereich definieren, in dem allgemeine Werte exportiert werden.

Auch den Import von Daten aus Excel-Dateien oder CSV-Dateien kannst du sehr einfach hinzufügen.

Zuletzt gibt es auch die Möglichkeit, in deinen Masken ein PDF als Druckversion erzeugen zu lassen.

Corporate Design

Du kannst bei deinen Anwendungen folgende Einstellungen vornehmen:

  • Name der Anwendung
  • Logo der Anwendung
  • Primär- und Sekundärfarbe der Anwendung
  • Schriftart
  • Einstellungen für einen Registrierungsdialog, falls du diesen anbieten möchtest
  • Einstellungen für einen Kennwort-Vergessen-Dialog, falls du diesen anbieten möchtest
  • Templates für versendete E-Mail

 

Wir benötigen Ihre Zustimmung zum Laden der Übersetzungen

Wir nutzen einen Drittanbieter-Service, um den Inhalt der Website zu übersetzen, der möglicherweise Daten über Ihre Aktivitäten sammelt. Bitte prüfen Sie die Details und akzeptieren Sie den Dienst, um die Übersetzungen zu sehen.