TurboPL Referenz

Sub Funktion

Top  Previous  Next

Syntax

Sub(Ausgabeformat)

Erklärung

Die hier beschriebene Funktion Sub ist nicht identisch mit dem Kommando sub, auch wenn die Funktion ähnlich ist. Die Funktion Sub arbeitet alle verknüpften Datensätze in einem einzigen Aufruf ab, während das Kommando sub einen Bereich in der Prozedur oder im Datenbankjob definiert, der für alle verknüpften Datensätze bearbeitet wird.

Diese Funktion ist nur innerhalb eines Ausgabeformats erlaubt und führt einen eingebetteten Unterreport aus. TurboDB Studio analysiert hierzu das Ausgabeformat und bestimmt daraus diejenigen Tabellen, auf die der Unterreport zugreift. Im Anschluss daran werden sämtliche zur aktuellen Primärtabelle gehörenden Datensatzkombinationen mit diesen Tabellen gebildet und für jede davon das Ausgabeformat ausgegeben. Innerhalb des Ausgabeformats gibt es folgende Sonderregelungen:

Ist die erste Komponente eine SEL-Funktion, so wird nicht deren Wert ausgegeben, sondern der Rest des Ausgabeformats wird nur für solche Datensatzkombinationen ausgegeben, die diese Selektion erfüllen.
Beginnt das eigentliche Ausgabeformat mit einem Komma und besteht das Ausgabeformat aus einer einzigen (beliebig zusammengebundenen) Ausgabekomponente, so werden die den Datensatzkombinationen entsprechenden Ausgaben durch Komma getrennt hintereinander ausgegeben. Auf die letzte Ausgabe folgt kein Komma mehr.
Beginnt das eigentliche Ausgabeformat mit einem Schrägstrich (=Zeilenumbruch), so werden die einzelnen Ausgaben durch einen Zeilenumbruch ausgegeben. nach der letzten Ausgabe erfolgt kein Zeilenumbruch.
Während der Unterreport bearbeitet wird, wird der linke Rand vorübergehend auf die Startposition des Unterreports gesetzt.

Beispiele

Im ersten Beispiel werden die Fahrzeuge des Kunden durch Komma getrennt in einem fortlaufenden Text ausgegeben:

$(KUNDEN(Name, Vorname):20. SUB(,KFZ.Bezeichnung)/)
Müller, Hubert......Fiat 500, Suzuki Swift, VW Golf
Rastlos, Rudi.......Mercedes 190 SL, Mercedes 300 SL,
                   Jaguar E
Primel, Johanna.....VW Polo, Opel Omega
...

Im zweiten Beispiel erfolgt ein Zeilenumbruch nach jedem Fahrzeug:

$(KUNDEN(Name, Vorname):20. SUB(/KFZ.Bezeichnung)/)
Müller, Hubert......Fiat 500
                   Suzuki Swift
                   VW Golf
Rastlos, Rudi.......Mercedes 190 SL
                   Mercedes 300 SL,
                   Jaguar E
Primel, Johanna.....VW Polo
                   Opel Omega
...

Innerhalb des Subreports wird die Primärtabelle entsprechend umgestellt. Aus diesem Grund kann die Funktion auch verschachtelt eingesetzt werden. Die Funktion liefert kein Ergebnis, mit dem weitergerechnet werden kann.

Siehe auch

Link, Exists