Zum Inhalt springen

Die Widgets eines Boards

Der Katalog steht in der Reihenfolge, in der er im Menü Widget hinzufügen angeboten wird: die alltägliche Kachel zuerst, dann die großen Diagramme, dann die Hilfsmittel — und ganz zuletzt die eine Art, die Daten ändert.

Widget Zeigt Braucht
KPI-Kachel eine große Kennzahl mit Ampel, Ziel und Verlauf ein Wert-Tag, optional Ziel- und Verlaufs-Tag
Balken mit Ziel Werte je Kategorie (Linie, Station) mit Ziel-Linie ein Tag mit Label- und Wertspalte
Pareto Kategorien von groß nach klein, mit kumuliertem Anteil ein Tag mit Kategorie und Menge
Verlauf Zeitreihe über den gewählten Zeitraum ein Tag mit Labelspalte und Zahlenspalten
Tabelle die Zeilen eines Abfrage-Tags ein Tag
Gruppentabelle Zeilen zu aufklappbaren Blöcken gefaltet, Summen in der Blockzeile ein Tag und mindestens eine Gruppenspalte
Streudiagramm zwei Messgrößen gegeneinander, ein Punkt je Zeile ein Tag und beide Achsenspalten
Rundinstrument eine Kennzahl auf einem Bogen, Warn- und Grenzwert darauf ein Tag; Bogenenden und Schwellen sind freiwillig
Heatmap zwei Klassierungen gegeneinander, die Kennzahl als Farbtiefe ein Tag, beide Klassenspalten und die Wertspalte
Bildwand die Bilder eines Tags, groß, als Kacheln ein Tag und die Spalte mit der Datei
Text Überschrift oder Erläuterung auf dem Board nichts
Kopfleiste Logo, Uhrzeit und eine kurze Statuszeile über dem Board, mit durchgezogenem Trennstrich nichts; Logo und Status-Tag sind freiwillig
Zustandsfeld einen Tag-Wert als Wort in einer Farbe: läuft, rüstet, Störung ein Tag und die Liste der Zustände
Störungsliste was gerade anliegt: Schwere, Nummer, Klartext und seit wann ein Tag, dessen Zeilen die Störungen sind, und die Spalte mit dem Klartext
Navigations-Button einen großen Touch-Button, der ein anderes Board öffnet oder zum Home-Board zurückführt ein Ziel-Board beim Namen oder die Aktion Home
Sollwert Istwert, Empfehlung und eine Eingabe, die nach einer Bestätigung einen Wert an die Anlage sendet ein Ziel-Tag per Pfad; Istwert und Empfehlung sind freiwillig
Zeitraum-Filter die üblichen Zeiträume zwei Ziel-Tags für Beginn und Ende
Auswahl-Filter eine Auswahl, deren Einträge aus einem Tag kommen ein Listen-Tag und ein Ziel-Tag
Text-Filter ein eingegebener Wert ein Ziel-Tag
Aktive Filter worauf die Filter dieses Boards gerade stehen, und setzt sie zurück nichts
Stammdaten-Tabelle Stammdaten hinter einem Ziel-Tag: auflisten, anlegen, korrigieren, ausmustern ein Datensatz-Tag
HTML-Widget Ihr eigenes HTML, SVG, CSS und JavaScript, live mit Tags verbunden den Code; was er liest und schreibt, steht in zwei Listen

Die Inhalte Ihres Mandanten folgen der Sprachumschaltung oben rechts, sobald jemand die Übersetzungen dazu hinterlegt hat: Board-Namen und Reiter, Widget-Titel, Überschriften in Text-Widgets, die Wörter hinter einem Zustandscode, die Zeile unter einer Kennzahl — und die Spaltenüberschriften von Tabellen, die aus der Abfrage kommen.

Der gespeicherte Text ist der Schlüssel. „Running“ wird als „Running“ nachgeschlagen. Sie müssen also nichts umbenennen und nichts vorbereiten: schreiben Sie die Übersetzungen, und jedes bestehende Board spricht die neue Sprache.

Gepflegt wird das unter Einstellungen → Übersetzungen. Dort steht jeder Text, den diese Installation anzeigt, mit seinem Fundort daneben, und je Sprache eine Spalte zum Ausfüllen. Die Liste füllt sich von selbst: Was ein Board oder eine Maske anzeigt, meldet sich beim Speichern an. Sie tragen also nicht ein, was übersetzt werden soll, sondern nur, wie es heißen soll.

Welche Sprachen es gibt, entscheiden Sie. Eine Sprache wird auf derselben Seite angelegt und erscheint danach im Sprachmenü der Kopfleiste — auch dann, wenn noch kein einziges Wort darin steht. Sprachen, für die es das Produkt selbst nicht gibt, sind erlaubt; das Menü vermerkt sie als „nur Texte“, weil dann die eigenen Wörter folgen und die Programmoberfläche nicht.

Ein fehlender Eintrag ist kein Fehler, sondern die Antwort: der Text bleibt stehen. Eine halb geschriebene Übersetzung zeigt die eine Hälfte in der neuen Sprache und die andere in der alten, und niemals ein leeres Feld oder einen Schlüsselnamen an der Wand.

Drei Dinge, die Sie wissen sollten:

  • Umbenennen kostet die Übersetzung nicht. Wird ein Titel geändert, zieht seine Übersetzung mit um — sofern der alte Text nirgendwo sonst steht und der neue noch keine eigene hat.
  • Dasselbe Wort bekommt überall dieselbe Übersetzung. Steht „Status“ als Spaltenüberschrift und als Widget-Titel, wird beides gleich übersetzt. Soll es sich unterscheiden, formulieren Sie die beiden Stellen unterschiedlich.
  • Namen sind keine Wörter. „ERA 01“ gehört nicht in die Tabelle: eine Anlage, die in einer Sprache anders heißt, passt nicht mehr zu ihren Datensätzen.

Es gibt keine feste Filterleiste über dem Raster. Ein Filter wird platziert, verschoben, skaliert und entfernt wie jedes andere Widget — und so oft, wie ein Board Filter braucht. Ein Board ohne Filter trägt einfach kein Filter-Widget.

Ein Verlauf hat die Zeit auf der Waagerechten, und die Linie zwischen zwei Punkten behauptet „daraus wurde das”. Beim Streudiagramm sind beide Achsen Messgrößen aus demselben Moment, die Zeilen haben gar keine Reihenfolge, und die Aussage ist die Form der Punktwolke: ein Band heißt, die beiden hängen zusammen; ein Fächer heißt, sie hören damit auf, je größer die eine wird; ein einzelner Punkt weit draußen ist das Teil, bei dem etwas schiefging.

Die Frage, für die es gebaut wurde: Prozesszeit gegen Fläche. Bei einer großen Platte ist ein langer Takt zu erwarten — die Wolke sagt auf einen Blick, ob ein langer Takt an der Größe lag oder an der Maschine. Ein Mittelwert kann das nicht beantworten, er versteckt genau die Ausreißer, die interessieren.

Die Farbspalte trägt eine Kategorie, keine Skala: Verschmutzungsgrad, Anlage, Schalungstyp. Sechs Kategorien bekommen eine eigene Farbe, alles weitere wird zu Sonstige zusammengefasst — eine Legende mit zwanzig Einträgen ist keine Legende. Punkte in Sonstige sind nicht anklickbar: sie stehen für mehrere Kategorien, „diese hier auswählen” hat für sie keine Bedeutung.

Zu viele Punkte werden ausgedünnt, nicht abgeschnitten. Ab einigen hundert Punkten wird eine Kachel zu Brei, eine Schicht liefert Tausende. Das Widget nimmt dann jede k-te Zeile — über den ganzen Zeitraum verteilt — und schreibt darunter, dass es das getan hat („620 von 1.860”). Die neuesten N zu behalten würde das Bild still auf die letzte Stunde verengen und damit genau die Form ändern, um die es geht.

Die KPI-Kachel beantwortet „was ist es”, das Rundinstrument „wie viel Platz ist noch”. Das sind zwei verschiedene Fragen, und die zweite ist der ganze Sinn eines Wartungszählers: 9.340 m² sagt für sich nichts, 9.340 von 12.000, Warnung bei 10.000 sagt „diese Woche Bürsten bestellen” — quer durch die Halle, ohne dass jemand die Zahl liest.

Ein Zähler, der auf eine Grenze zuläuft, wird auf niedriger ist besser gestellt. Dann füllt sich der Bogen Richtung Ärger, und die Ampel bedeutet dasselbe wie auf jeder Kachel — die Regel dahinter ist buchstäblich dieselbe Funktion.

Eine Ablesung jenseits des Bogenendes füllt den Bogen ganz und läuft nicht um. Ein Überlauf muss wie ein Überlauf aussehen und nicht wie ein Neuanfang.

Länge-Klassen untereinander, Breite-Klassen nebeneinander, Anzahl in der Zelle: so wird aus „wir fahren meistens 3 bis 4 Meter auf 2,50” ein heller Fleck, den man in einer Sekunde findet.

Der wichtige Unterschied: eine Kombination, die nie vorkam, und eine, die null mal vorkam, sind zwei verschiedene Tatsachen. Eine nie vorgekommene Paarung bleibt leer — nur ein dünner Rahmen —, eine gemeldete Null bekommt die hellste Stufe der Skala.

Beide Spalten tragen Klassen, keine Rohmaße; klassiert wird im Tag. Sind alle Beschriftungen einer Achse Zahlen, wird numerisch sortiert — sonst stünde ein Größenspektrum als 1200, 400, 800 da, und das ist kein Spektrum.

Die Legende unter der Karte trägt fünf Marken, damit sich eine Farbtiefe als Zahl ablesen lässt. Ist die Kennzahl eine Fehlerquote und die Frage „wo ist es am schlimmsten”, die Farbskala auf Wärme stellen: hellgelb über orange bis rot, rot für den höchsten Wert. Vorgabe bleibt die Farbe des Boards, denn eine Karte, wie oft etwas läuft, ist weder gut noch schlecht.

Die Tabelle kann eine Bildspalte — als 40 Pixel großes Vorschaubild in einer Zelle. Das ist richtig, solange das Bild ein Feld einer Zeile ist, die jemand liest. Es ist falsch, wenn das Bild die Zeile ist: das Foto einer beschädigten Schalung ist ein Beleg, und ein Beleg mit 40 Pixeln ist ein grauer Fleck.

Eine Zeile ohne brauchbares Bild wird nicht gezeigt und darunter gezählt („3 ohne Bild”). Platzhalterkacheln würden eine Wand für Fotos mit grauen Quadraten füllen; stilles Weglassen würde glauben machen, man sähe alle Einträge.

Sortiert wird nicht: die Reihenfolge kommt aus dem Tag. Eine Wand, die selbst sortiert, wäre sich mit der Tabelle daneben uneinig darüber, welcher Eintrag der neueste ist.

Logo, Uhr und Statuszeile stecken mit Absicht in einem Widget. Wie viele Spalten das Raster hat, hängt an der Fensterbreite (12 / 6 / 2 / 1). Drei einzelne Widgets nebeneinander würden auf einem schmalen oder hochkant stehenden Schirm untereinander rutschen — aus der Kopfleiste würde eine Kopfspalte. Ein Widget bestimmt sein inneres Layout selbst und bleibt bei jeder Breite eine Leiste.

Das Logo wird im Einrichtungsdialog des Widgets selbst hochgeladen: SVG, PNG oder JPEG — ein Kundenlogo geht also so hoch, wie es geliefert wird, und das eben hinzugefügte Bild ist auch gleich das, welches das Widget benutzt. Dieselben Bilder stehen unter Navigation zur Verfügung, wo sie zusätzlich als Menüsymbole dienen — es ist ein Speicher, von beiden Stellen erreichbar. Hinzufügen und Auflisten setzt die Rolle der Mandanten-Verwaltung voraus; ohne sie sagt der Dialog das und lässt eine bekannte Kennung trotzdem zu. Ein SVG wird beim Hochladen aus einer Liste erlaubter Zeichenelemente neu aufgebaut, denn Markup kann ein Programm enthalten; gespeichert wird das bereinigte Dokument, nicht die Datei. Ein PNG oder JPEG wird gespeichert, wie es ist — darin gibt es nichts umzuschreiben. Geprüft wird, dass es wirklich dieses Format ist und nicht absurd groß (512 KB und höchstens acht Megapixel; ein Bild, das sich zu einem Gigabyte entfaltet, wird an der Tür abgewiesen). So oder so wird es als Bild ausgeliefert und nie als Markup in die Seite gesetzt.

Der Zustands-Chip ist freiwillig: Wird ein Tag genannt, erscheint neben dem Logo ein kleines farbiges Wort — mit derselben Zuordnungstabelle wie das Zustandsfeld. Ohne Tag kein Chip; ein Board, auf dem schon ein Zustandsfeld steht, soll dasselbe Wort nicht zweimal sagen.

Die Uhr ist die Uhr des Rechners, der das Board anzeigt — daran vergleicht sie, wer vor dem Schirm steht. Eine Kennzahl über die Anlagenzeitzone ist etwas anderes und gehört zu dem Tag, das sie berechnet.

Das Logo wird beim Namen gespeichert, nicht bei einer Kennung. Das ist keine Feinheit: eine Konfiguration wird über Namen angesprochen, nie über Kennungen, und sie setzt das durch, indem sie das ganze Dokument verweigert. Eine einzige Kopfleiste mit einer gespeicherten Kennung machte damit den kompletten Mandanten unspeicherbar — nicht „das Logo reist nicht mit”, sondern „nichts reist mit”.

Boards, die vor dieser Änderung eingerichtet wurden, zeigen ihr Logo weiter. Sobald Sie dort ein Logo neu auswählen, wird der Name gespeichert und der Mandant ist wieder exportierbar.

Eine Maschine meldet ihren Zustand als Code: 0, 1, fault, RUN. Das Zustandsfeld macht daraus das Wort, das in Ihrem Betrieb benutzt wird, in einer Farbe. Verglichen wird als Text, ohne Rücksicht auf Groß- und Kleinschreibung und umgebende Leerzeichen — 1 und "1" sind derselbe Zustand. 1 und 1.0 sind es nicht: zwei Codes zusammenzuziehen, die jemand getrennt hat, ist nicht die Entscheidung dieses Widgets.

Ein Wert ohne Eintrag wird so gezeigt, wie er ankam, mit einer Zeile darunter, dass für ihn kein Zustand hinterlegt ist. Das ist Absicht: ein Code, den niemand zugeordnet hat, ist genau der Code, den jemand sehen muss — eine leere Kachel würde ihn verstecken. Die Farbe bleibt dann neutral, und ebenso, wenn das Tag gar nicht lesbar ist: eine Farbe muss durch einen Wert gedeckt sein.

Die Störungsliste — und warum sie keine Tabelle ist

Abschnitt betitelt „Die Störungsliste — und warum sie keine Tabelle ist“

Eine Tabelle zeigt die Zeilen eines Abfrage-Tags, und für eine Auswertung ist das das richtige Widget. Auf einem Wandschirm ist es das falsche, und der Grund ist der leere Fall: eine leere Tabelle liest sich als keine Daten — womöglich eine abgerissene Verbindung — während eine leere Störungsliste die beste Nachricht der Schicht ist und das auch sagt: grün, Keine Störung.

Welche Störungen anliegen und in welcher Reihenfolge sie zählen, gehört in das Tag. Das Widget zeigt, was das Tag liefert, in der gelieferten Reihenfolge — ein Widget, das umsortiert, würde der Abfrage still widersprechen, und niemand könnte sehen, wer von beiden recht hat. Das WHERE (was als anliegend gilt) und das ORDER BY (Schwere vor Zeit, auf einer Wand) gehören in das Abfrage-Tag.

Zwei Grenzen, mit Absicht. Das Tag begrenzt, was es holt; Gezeigte Zeilen begrenzt, was die Kachel zeichnet — wie viele hineinpassen, ist eine Eigenschaft der Kachel und nicht der Anlage. Was übrig bleibt, wird darunter gezählt statt stillschweigend abgeschnitten.

Die Schwere wird mit derselben Tabelle auf Wort und Farbe abgebildet, die auch das Zustandsfeld benutzt — eine Sprache, damit Kopfleiste, Zustandsfeld und Störungsliste nicht drei verschiedene Wörter für denselben Code sagen. Eine Schwere ohne Eintrag wird so gezeigt, wie sie ankam, in Neutral.

Quittieren gehört nicht dazu. Einen Alarm anzuzeigen ist, was dieses Produkt tut; ihn nach draußen zu melden, ist nicht gebaut. Eine Liste, die man wegklicken kann, wäre auch eine Liste, die jemand leert statt sie abzuarbeiten.

Abschnitt betitelt „Navigations-Button: ein Touch-Bildschirm als kleines Bedienpanel“

Ein Touch-Monitor an einer Anlage leistet mehr, wenn er mehr als ein Board ist: eine Übersicht und dahinter die Störungen, der Bürstenwechsel, die Auftragsliste. Der Navigations-Button ist der Weg dazwischen — ein großer Button je Board, bemessen für einen Finger auf Armlänge: nie kleiner als 48 Pixel, auf einem Bildschirm im Kiosk-Modus doppelt so groß.

Aktion. Board öffnen zeigt das Board, das unter Ziel-Board gewählt ist. Home führt zurück zum Home-Board, das unter Kiosk am angezeigten Board eingestellt ist — ohne eines zu dem Board, mit dem der Bildschirm geöffnet wurde.

Das Ziel wird beim Namen gespeichert, wie jeder Verweis in einer Konfiguration. Wird dieses Board später umbenannt, steht unter dem Button, dass es kein Board dieses Namens gibt, und eine Berührung sagt das ebenfalls — statt nichts zu tun.

Beschriftung und Symbol sind freiwillig. Ohne Beschriftung trägt der Button den Namen des Ziel-Boards; das Symbol kommt aus einer festen Auswahl (house, arrow-left, wrench, triangle-alert, …).

Das Board öffnet sich in derselben Seite. Der Button wechselt den Menüeintrag nicht: Adresse und markierter Eintrag nennen weiter die Seite, mit der der Bildschirm geöffnet wurde. Auf einem Kiosk ist das gewollt — dorthin führen auch Home und die Rückkehr bei Untätigkeit.

Solange das Board bearbeitet wird, tut der Button nichts, damit er sich wie jede Karte ziehen lässt.

Eine KPI-Kachel und ein Zustandsfeld können beim Antippen ein anderes Board öffnen — von „Verfügbarkeit 71 %“ zum Board mit den Stillständen, von „Störung“ zur Störungsliste. Gewählt wird es unter Drilldown-Board in der Einrichtung des Widgets; ohne eines bleibt das Widget eine reine Anzeige.

Auf Wunsch mit Filter. Drilldown-Filter-Tag und Drilldown-Filterwert schreiben vor dem Öffnen einen Wert auf ein Tag — dieselbe Art Tag, die ein Filter-Widget schreibt. Das geöffnete Board zeigt dann schon die Auswahl (die Linie, die Anlage). Ein leerer Wert hebt diesen Filter auf.

Lässt sich der Wert nicht schreiben, wird das Board nicht geöffnet. Es zeigte sonst ungefilterte Zahlen unter einem Tippen, das eine Auswahl versprochen hat; eine Meldung sagt, was passiert ist. Ein Bildschirm über ein Anzeige-Token darf keine Werte setzen: dort öffnet nur ein Drilldown ohne Filter.

Ein kleiner Pfeil in der oberen Ecke zeigt, dass sich ein Widget antippen lässt. Das Board wird beim Namen gespeichert, wie das Ziel eines Navigations-Buttons. Solange das Board bearbeitet wird, tut ein Tippen nichts.

Ein Sollwert-Widget sendet einen Wert vom Board an die Maschine — eine Ofentemperatur, eine Liniengeschwindigkeit, einen Wert, den eine Abfrage oder eine KI-Einsicht vorschlägt. Es zeigt den Istwert, die Empfehlung und eine Eingabe, in der die Empfehlung schon steht. − und + ändern sie um die eingestellte Schrittweite; alle drei sind für einen Finger bemessen und auf einem Bildschirm im Kiosk-Modus doppelt so groß.

Ohne Bestätigung wird nichts gesendet. Übernehmen öffnet einen Dialog, der alten und neuen Wert mit Einheit sowie das Ziel-Tag nennt. Erst Senden schreibt.

Das Widget zeigt, was der Server geantwortet hat. „An die Anlage gesendet“ erscheint erst, wenn die Maschine den Wert bestätigt hat. Ein Tag, das an keine Maschine geht, meldet stattdessen „hier gespeichert“. Kam der Wert nicht an, sagt die Meldung das mit dem Grund — etwa dem Broker, der nicht erreichbar ist. Ein Konto oder Bildschirm, der keine Werte schreiben darf, bekommt auch das gesagt.

Minimum und Maximum sperren Übernehmen mit Begründung, sobald der Wert außerhalb liegt. Das ist ein Komfort des Widgets: Der Server prüft diese Grenzen nicht, ein Skript oder ein anderer Client kann also weiterhin einen Wert außerhalb schreiben.

Das Ziel-Tag wird als Pfad eingetragen, wie das Ziel eines Filters; ein ausgehendes Konnektor-Tag sendet den Wert an die Maschine. Die Empfehlung kann aus jedem Tag kommen — einer Abfrage oder einer KI-Einsicht, deren erste Zahl verwendet wird.

Solange das Board bearbeitet wird, schreibt das Widget nichts.

Sie ist heute die einzige Art, die Stammdaten schreiben darf, und deshalb steht sie am Ende des Menüs statt zwischen zwei Diagrammen. Was sie darf, wird beim Einrichten einzeln angemeldet und vom Server bei jedem Aufruf erneut geprüft. Alles Weitere steht unter Datensätze prüfen und korrigieren.

Wenn keine der fertigen Arten zeigt, was Sie brauchen — ein Anlagenbild, in dem die gerade arbeitenden Bürsten leuchten, ein Datenblatt, eine eigene Grafik —, schreiben Sie es selbst. Das HTML-Widget nimmt HTML, SVG, CSS und JavaScript und führt es auf dem Board aus.

An die Daten kommt der Code über drei Aufrufe — dieselben Namen wie in den Skripten:

Aufruf tut
system.tag.read(pfad) liefert den aktuellen Wert
system.tag.write(pfad, wert) schreibt einen Wert
system.tag.subscribe(pfad, (wert, info) => …) ruft sofort und bei jeder Änderung zurück; info trägt quality und timestamp

Alle drei arbeiten asynchron (ein Promise). Für alles, was sich live bewegen soll, ist subscribe der richtige Aufruf.

Jeder Pfad muss in der Einrichtung stehen. Unter Read tags steht, was der Code lesen darf, unter Write tags, was er schreiben darf — und damit auch lesen. Ein Pfad, der dort fehlt, wird verweigert, bevor irgendetwas an den Server geht. Ob geschrieben werden darf, entscheidet danach der Server anhand der Rechte dessen, der das Board ansieht: eine Hallenanzeige über ein Anzeige-Token liest, schreibt aber nicht.

Der Code läuft abgeschottet. Er sieht weder die Seite noch die Anmeldung und kann die API nicht direkt aufrufen, nur über die drei Aufrufe oben. Die Farben des Boards stehen ihm als CSS-Variablen zur Verfügung — hsl(var(--primary)), hsl(var(--foreground)), hsl(var(--muted-foreground)), hsl(var(--success)), hsl(var(--warning)), hsl(var(--destructive)) —, und ein Wechsel zwischen hell und dunkel kommt ohne Neuladen an.

Wörter in der Sprache des Betrachters. An Ihre Übersetzungen (Einstellungen → Übersetzungen) kommt der Code über system.i18n:

Aufruf tut
system.i18n.t(text) liefert sofort die Übersetzung für die Sprache des Boards, oder den Text selbst, wenn es keine gibt
system.i18n.locale die Sprache des Boards, etwa de
system.i18n.onChange(() => …) ruft zurück, wenn die Übersetzungen während der Laufzeit eintreffen oder sich ändern; liefert eine Funktion, die das beendet

t arbeitet nicht asynchron. Die Übersetzungen können einen Moment nach dem Start des Widgets eintreffen — schreiben Sie Ihre Wörter deshalb in einer Funktion und rufen Sie diese in onChange erneut auf. Wird die Sprache umgeschaltet, startet das Widget in der neuen neu.

Tragen Sie jeden Text, den der Code an system.i18n.t gibt, in der Einrichtung unter Texts ein, eine Zeile je Text und genau so geschrieben wie im Code. Erst dann erscheint er in der Übersetzungsliste — aus dem Code selbst kann das Board keine Wörter lesen.

Fehler bleiben sichtbar. Wirft der Code einen Fehler oder wird ein Lesen oder Schreiben abgelehnt, steht die Meldung unten im Widget und im Diagnoseprotokoll. Die Meldungen sind englisch, wie die aus den Skripten, damit man sie wiederfindet — etwa "Line.Count" is not listed in this widget's readTags - add it in the widget setup first.

Der Knopf Beispiel einfügen schreibt in ein leeres Codefeld ein kleines Widget, das den ersten Pfad unter Read tags live anzeigt.

Der Assistent kann es auch. Bitten Sie ihn um ein eigenes Widget, legt er ein HTML-Widget an; ein Folgesatz („mach die Zahl größer”) ändert dasselbe Widget, statt ein zweites danebenzustellen.

  • Noch keine Datenquelle zugewiesen — das Widget steht, ist aber noch nicht eingerichtet.
  • Unbekannter Widget-Typ — ein älteres Board, geöffnet mit einer neueren Paketfassung. Das Widget wird benannt statt als leere Kachel gezeigt, und der Rest des Boards bleibt heil.
  • Konnte nicht geladen werden / Keine Daten im gewählten Zeitraum — der Unterschied ist wichtig: das eine ist eine Störung, das andere ein Ergebnis.
  • Statistik-Zeile bei Tabelle und Gruppentabelle: je Spalte eine Zahl — Mittelwert, Summe, Minimum, Maximum — über alle Ergebniszeilen, nicht nur die sichtbare Seite. Darunter steht, über wie viele Werte gerechnet wurde. Ohne Extremwerte lässt höchsten und niedrigsten Wert weg; sind es dafür zu wenige Werte, wird das gesagt statt stillschweigend gerechnet.
  • Zahlen folgen der Sprache. In Tabellen, Gruppentabellen, Stammdaten-Tabellen und an Diagrammachsen steht eine Kommazahl so, wie die eingestellte Sprache sie schreibt — „42,8“ auf Deutsch, „42.8“ auf Englisch —, und zwar mit genau so vielen Nachkommastellen, wie der Wert aus der Abfrage trägt: „85.0“ wird „85,0“. Einen Tausenderpunkt gibt es bewusst nicht, denn eine Zelle kann eine Menge nicht von einer Jahreszahl, einem Zählerstand oder einer Auftragsnummer unterscheiden, und „2.026“ wäre schlicht falsch. Werte mit führender Null („000417“), Kennungen, Datumsangaben und mit $t: markierte Texte bleiben, wie sie sind.
  • Fotospalten in einer Tabelle zeigen ein Vorschaubild; ein Klick öffnet es groß.
  • Klick schreibt auf ein Tag bei Balken, Verlauf und Pareto: ein Klick auf eine Kategorie setzt einen Filterwert. Das ist ausdrücklich kein Datenschreiben — das Ziel ist ein Speicher-Tag mit einer Auswahl darin.
  • Der Pareto hat eine Schwelle und eine Höchstzahl an Balken; der Rest wird als Sonstige zusammengefasst, mit der Anzahl daneben.

Sprachknöpfe auf dem Bildschirm, und warum es sie geben muss

Abschnitt betitelt „Sprachknöpfe auf dem Bildschirm, und warum es sie geben muss“

Im Präsentationsmodus gibt es keine Kopfzeile der Anwendung und damit auch kein Sprachmenü. Ein Hallenbildschirm hing deshalb in der Sprache fest, mit der sein Anzeige-Link ausgestellt wurde — für einen Besuch, eine Schicht, die anders liest, oder einen Abnahmetermin war das nicht zu ändern.

Die Kopfleiste kann deshalb je Sprache einen Knopf zeichnen: DE, EN, und was der Mandant sonst übersetzt hat. Ein Tippen schaltet sofort um — Board-Namen, Kachel-Überschriften, die Wörter hinter einem Zustand und alle als Text markierten Werte.

Von Haus aus ist das aus, und das ist die eigentliche Entscheidung: Ein Werk mit einer Sprache auf dem Hallenboden will keinen Knopf, den eine vorbeistreifende Hand trifft. Eingeschaltet wird es je Board, im Einrichtungsdialog der Kopfleiste. Gezeichnet wird überhaupt nur, wenn die Installation mehr als eine Sprache hat — eine Auswahl mit einem Eintrag wäre ein Knopf, der nichts tun kann.

Die Wahl gilt für diese Sitzung, nicht für immer: Ein Anzeige-Link hat keinen Benutzer, bei dem sich etwas merken ließe. Nach einem Neuladen steht der Bildschirm wieder in der Sprache seines Links — so, wie ihn auch die Rückkehr bei Untätigkeit wieder auf sein Startboard bringt.

Kein eigener Start-Knopf mehr im Präsentationsmodus

Abschnitt betitelt „Kein eigener Start-Knopf mehr im Präsentationsmodus“

Bis September 2026 zeichnete das Board im Kiosk oben links ein eigenes Kärtchen „Start”, sobald man nicht auf dem Startboard war. Es ist ersatzlos entfernt. Der Weg zurück gehört auf das Board: ein Navigations-Widget steht dort, wo derjenige es hinlegt, der den Bildschirm einrichtet, in der Gestalt des Boards und mit seinen Wörtern. Die Rückkehr bei Untätigkeit bringt einen vergessenen Bildschirm weiterhin von selbst nach Hause — dafür braucht es keinen Knopf.

Achsen: beschriftet, und nichts von der Zeichenfläche

Abschnitt betitelt „Achsen: beschriftet, und nichts von der Zeichenfläche“

Diagramme sagen jetzt, was ihre Achsen sind. Die stehende Achse trägt die Einheit, wenn eine eingetragen ist, sonst den Namen der Wertespalte; die liegende Achse den Namen der Kategoriespalte. Beides sind die Wörter, die die Abfrage ohnehin benutzt — es ist nichts zusätzlich einzutragen, und beide gehen durch die Übersetzung wie jeder andere Text des Mandanten.

Höhe wird dabei nicht verbraucht. Auf einem Hallenbildschirm ist die Höhe eines Diagramms das Knappste, was es gibt. Deshalb steht die Beschriftung der stehenden Achse hochkant in deren Breite, und die der liegenden neben dem Achsenende — nicht darunter. Breiter wird nur der Rand.

Die stehende Achse ist außerdem nicht mehr fest 40 Pixel breit, sondern richtet sich nach der Schriftgröße. Im Präsentationsmodus schreibt ein Diagramm größer, und „10.000” verlor dort vorher seine erste Ziffer.