<<  Übersicht
Inhalt
  1. Records, Seiteninhalt
  2. Hilfsmittel
  3. Lesen/Schreiben
  4. Dateien
  5. Erweitert

Records, Seiteninhalt

Record, Records

Record RECORD

Geöffneter Record in DetailansichtList<Value> values = RECORD.getValues(); Oder: Record record = RECORD;
List<Value> values = record.getValues();

List<Record> RECORDS

Records der Ansicht// Records in Schleife
List<Record> records = RECORDS;
for(Record record : records) {
}

Werte

Werte auslesen

Auslesen der Werte eines Records (Sichtbare Werte der Tabelle oder alle Werte)// Sichtbare Spalten/Werte
List<Value> values = record.getValues();
for(Value value : values) {
    String name = value.getName(); // Technischer Name
    String text = value.getText(); // Anzeigetext
    String obj = value.getObject(); // Java-Objekt (String, Long, Double, Date, Boolean)
}
Weitere Inhalte:// Alle Spalten/Werte
List<Value> values = record.getValuesAll();
// Einzelwert
Value value = record.getValue("country");

String color = record.getBackgroundColor();
List<Annotation> annotations = record.getAnnotations();
// Subtables (Inhalte: tables.title, tables.records, tables.columns)
List<Table> tables = record.getTables();
// Attachments
List<Attachment> attachments = record.getAttachments();

Gruppierung, Seite

Gruppierung

List<Group> groups = PAGE.getGroups();
for(Group group : groups) {
    // Auch Titel/Level/Anzahl: group.title, group.level, group.count
    List<Column> columns = group.getColumns();
    List<Record> records = group.getRecords();

    for(Column column : columns) {
        String name = column.getName();
        String label = column.getLabel();
    }
}

Aktuelle Seite

PAGE.isView: Ist Ansicht mit Records
PAGE.isRecord: Ist Detailansicht
PAGE.isWebserver: Anwendung wird in Webserver ausgeführt
PAGE.title: Titel der aktuellen Seiteif (PAGE.isRecord) {
}
if (PAGE.isView) {
}
if (PAGE.isWebserver) {
}
String title = PAGE.title;

Hilfsmittel

Templates/Rückgabe

Template lesen

Erlaubt das Auslesen einer Textdatei, hilfreich wenn Inhalt in eine bestehende Datei eingefügt werden soll. Templates werden gelesen aus:
scripts/templates/ (Vordefiniert oder eigene Anwendung)// Template lesen
String templateContent = TEMPLATE.read("HTML_Template1.html");

// Ersetzungen vornehmen (Beispiel)
String page = templateContent.replace("%CONTENT%", "MY CONTENT").replace("%PAGE_TITLE%", PAGE.title);

Rückgabewert

// Script liefert einen Rückgabewert
RESULT.set("Summe für Jahr: xx");
// Text an Rückgabewert anhängen; vorheriges set() nicht erforderlich
RESULT.append("\nSumme für Monat: xx");

Escape/Format

Escape für Sonderzeichen

// Ersetzt Sonderzeichen, z. B. <, >
ESCAPE.forHtml(String text)
ESCAPE.forXml(String text)
ESCAPE.forJson(String text)
ESCAPE.forJava(String text)

HTML-Ausgabe

// Erzeugt passenden HTML-Code (auch Grafiken)
HTML.toHtml(Value value)
HTML.toHtml(String text)
HTML.toHtml(List<Annotation> annotationsList)
HTML.toHtml(Annotation annotation)
HTML.toHtml(Attachment attachment)

Objektinformationen

toString() für Objekte und Variablen

Objekte und Variablen liefern Informationen zu Inhalt und verfügbaren Methoden über toString()// Beispiele für toString()
String summary = "";

summary += RECORD.toString()+"\n";
summary += RECORDS.toString()+"\n";
summary += PAGE.toString()+"\n";

summary += TEMPLATE.toString()+"\n";
summary += RESULT.toString()+"\n";

summary += READ.toString()+"\n";
summary += WRITE.toString()+"\n";

summary += UPLOADS.toString()+"\n";
summary += FILE.toString()+"\n";

RESULT.set(summary);

Lesen/Schreiben

Lesen/Ändern

Lesen von Records

// Liest alle Records für eine Tabelle, festgelegt durch Parameter
// Die Records enthalten nur Werte, keine weiteren Details (Annotations, Untertabellen, ...)
List<Record> recordsWithValues = READ.getRecords(String tablename);

Werte abändern

// Neuen Wert festlegen
WRITE.setValue(Record record, String fieldname, String newValue);

Anlegen/Löschen

Einfügen von Record

// Neuen Record anlegen
Record newRecord = WRITE.insertNewRecord(String tablename);

Einfügen von Record

// Neuen Record anlegen
String tablename = "...";
Record record = new Record(tablename);
record.setValue("firstname", "theodora");

WRITE.insertRecord(record);

Löschen von Record

// Record löschen
Record myrecord = RECORD;
WRITE.deleteRecord(myrecord);
WRITE.deleteRecordLogical(myrecord); // Logisch Löschen
Oder:// Record löschen, durch Angabe von Tablename, ID
String tablename = "...";
Long id = 1122;

Record record = new Record(tablename, id);
WRITE.deleteRecord(record);

Dateien

Felder, Uploads

Felder

// Read bytes of field value
byte[] bytes = FILE.readBytes(Value value);
// Read bytes of upload
byte[] bytes = FILE.readBytes("file.txt");
// Read multiple files
List<byte[]> filesBytes = FILE.readBytesList(Value value);

Uploads hinzufügen

UPLOADS.add("file.txt", String text);
UPLOADS.add("file.bin", byte[] bytes);

Dateizugriff

Temp-Dateien, Öffnen/Bearbeiten

// Temp Files
File tmp = FILE.temp();
File tmp = FILE.temp(String ending);
File tmp = FILE.temp(String ending, String prefix);

// Open/Edit/Browse in Operating System (not Webserver)
FILE.open(File file);
FILE.edit(File file);
FILE.browse(String url);

Dateisystem

FILE.write(File file, String text);
FILE.write(File file, byte[] bytes);

String filetext = FILE.read(File file);
byte[] bytes = FILE.readBytes(File file);

Erweitert

Java-Klassen

Klassen in Scripts

In Scripts lassen sich auch eigene Klassen definieren.
Variablen zur Nutzung in Scripts sind aber innerhalb von Java-Klassen nicht verfügbar. Deshalb müssen Sie im Konstruktor übergeben werden, ein Beispiel:// Variablen PAGE, ESCAPE, UTIL, RESULT, ... sind nur außerhalb von Klassen verfügbar
// Lösung: Variable SCRIPT als Parameter verwendet, sie enthält zusätzlich alle Variablen
new Demo(SCRIPT);

public class Demo {
    private Script s;

    public Demo(Script script) {
        this.s = script;

        // Jetzt in Klasse verfügbar:
        // s.PAGE
        // s.ESCAPE
        // s.UTIL
        // s.RESULT
        // s.RECORD
        // s.RECORDS
        // ...

        execute();
    }

    private void execute() {
        s.RESULT.set("My Result");
    }
}
Variablen: RECORD, RECORDS, PAGE, ESCAPE, UTIL, TEMPLATE, FILE, HTML, READ, WRITE, RESULT, UPLOADS

Template-Beispiel

Template lesen, befüllen und als Datei auf Festplatte schreiben

Befüllt ein geladenes Template und schreibt es als temporäre Datei. Anschließend öffnet das System die Datei.
// Read template and replace placeholders
String content = "MY CONTENT";

String templateContent = TEMPLATE.read("TEMPLATE_HERE.html");
String page = templateContent.replace("%CONTENT%", content).replace("%PAGE_TITLE%", PAGE.title);

// Temp File
File file = FILE.temp(".html");

// Write to file
FILE.write(file, page);

// Open file in System
FILE.open(file);