Sprache: Deutsch · English
Datenquellen als Grundlage von Reports und Formularen – Parameter, intid, Wildcards und SQL-Editor.
REFERENZ ANWENDUNGSENTWICKLER STAND: JUL 2026 GILT FUER NUCLOS 4.2026.X
Auf dieser Seite
Datenquellen bilden die Grundlage für Reports und Formulare. Eine Datenquelle legt fest, welche Businessobjekte betrachtet werden; über Bedingungen und Verknüpfungen schränkst du die Daten ein oder ergänzt Attribute. Parameter machen eine gespeicherte Datenquelle wiederverwendbar.
Menüaufruf: Konfiguration → Datenquellen → Report und Formular
Die Maske gliedert sich in fünf Bereiche:
| Bereich | Inhalt |
|---|---|
| Kopf | Name und Beschreibung der Datenquelle. |
| Tabellenauswahl | Systemobjekte (Stamm-/Bewegungsdaten), dynamische Objekte (BO-Tabellen) und gespeicherte Abfragen (als Unterabfragen). |
| Tabellenansicht | per Drag&Drop gezogene Businessobjekte. |
| Parameterdefinition | Name, Datentyp und Eingabeaufforderung je Parameter. Für Formulare ist mindestens intid Pflicht. |
| Spaltenansicht | sichtbare Spalten (Alias = späterer Feldname), Sortierung und Bedingungen. Nach dem Speichern: SQL und Vorschau. |
Parameterdefinition der Datenquelle.
Datenquellen für Formulare müssen den Parameter intid für die Spalte intid des zu druckenden BO definieren. Nuclos füllt ihn beim Drucken automatisch – ohne Benutzerdialog. Ein Valuelist Provider liefert eine Auswahlliste; der Textwert per '$name', die ID per '$nameId'.
intid-Parameter im Formular.
| Bedingung | Wirkung |
|---|---|
| ='$param' | keine Wildcards; „=“-Vergleich; erlaubt Suche nach % und _. |
| WIE '$param' | Wildcards erlaubt; LIKE-Bedingung. |
| ='$param%' | immer LIKE mit angehängter Wildcard; leerer Wert = alle Datensätze. |
Text-Liste, Integer-Liste, SQL werden dem Benutzer nicht angeboten, sondern intern in Regeln genutzt. SQL-Parameter benötigen einen VLP als Whitelist der erlaubten Ausdrücke.
SELECT T1.INTID "<primaryKey>", T1.INTARTICLENUMBER "articleNumber", T1.STRNAME "name" FROM V594_ARTICLE T1 WHERE $pSql OR T1.INTARTICLENUMBER in $pListOfInteger OR T1.STRNAME in $pListOfText
List<Number> listOfInteger = new ArrayList<>();
listOfInteger.add(4711L); // Test with Long
List<String> listOfStrings = new ArrayList<>();
listOfStrings.add("4711");
Map<String, Object> params = new HashMap<>();
params.put("pListOfInteger", listOfInteger);
params.put("pListOfText", listOfStrings);
params.put("pSql", "T1.INTARTICLENUMBER > 4000");
DatasourceProvider.run(TestDS.class, params);
In Spaltenbedingungen sind Vergleichsoperatoren (= > < >= <= != WIE), Bereiche (zwischen 'a' und 'b'), Klammern und Spaltenvergleiche möglich. Parameter beginnen immer mit $. Reicht die grafische Modellierung nicht, aktivierst du den Reiter SQL und bearbeitest das SELECT-Statement direkt; danach lässt sich per Syntax prüfen und Vorschau testen (inkl. Export nach Excel/PDF/CSV).
SQL-Statement bearbeiten.
Ergebnis-Vorschau.