Verschiedene Datenquellen kombinieren
2 posts
• Page 1 of 1
Verschiedene Datenquellen kombinieren
Hallo,
wie sollte man grundsätzlich vorgehen, wenn man Folgendes umsetzen möchte.
In einer Tabelle sollen in einer Spalte Daten angezeigt werden, die nicht aus der Datenbank kommen, sondern z.B. per Webservice von irgendwo je Datenzeile abgerufen werden. Muss hier ein eigenes Storage implementiert werden oder kann die Spalte nachträglich eingefügt werden.
Sollte dies nicht möglich sein, wäre zumindest das Anzeigen der zusätzlichen Daten im Edit-Formular für einen Datensatz wünschenswert.
Grüße
F.Stephan
wie sollte man grundsätzlich vorgehen, wenn man Folgendes umsetzen möchte.
In einer Tabelle sollen in einer Spalte Daten angezeigt werden, die nicht aus der Datenbank kommen, sondern z.B. per Webservice von irgendwo je Datenzeile abgerufen werden. Muss hier ein eigenes Storage implementiert werden oder kann die Spalte nachträglich eingefügt werden.
Sollte dies nicht möglich sein, wäre zumindest das Anzeigen der zusätzlichen Daten im Edit-Formular für einen Datensatz wünschenswert.
Grüße
F.Stephan
- stephanf
- Posts: 7
- Joined: Mon Nov 02, 2015 2:33 pm
Re: Verschiedene Datenquellen kombinieren
Dafür gibt es mehrere empfohlene Lösungen, je nach tatsächlichem Use-case:
- Eine View erstellen, die Daten aus mehreren Tabellen joined (bei einem Webservice unpassend)
- Eine eigene Storage erstellen (ist immer die bevorzugte Variante wenn insert/update/delete ebenfalls eine Rolle spielt). Die Storage kann aber von AbstractMemStorage abgeleitet werden oder die anspruchsvollere Variante wäre von AbstractCachedStorage abgeleitet (wie DBStorage selbst)
- Die Metadaten der Storage können vor dem open() erweitert werden und mit dem calculateRow event: eventCalculateRow können Sie diese "errechneten" Spalten befüllen. Dieser Mechanismus eignet sich für Anzeigespalten.
- Die bisherhigen Optionen waren rein server-seitig. Natürlich können Sie auch ein RemoteDataBook vor dem open() mit eigenen Spalten erweitern. Das DataBook bietet aber keinen calculateRow event und dort müssen Sie eventAfterReload und ggf. eventAfterRestore, eventValuesChanged verwenden - je nachdem Änderungen eine Auswirkung haben.
-
Support@SIB - Posts: 353
- Joined: Mon Sep 28, 2009 1:56 pm
2 posts
• Page 1 of 1