6. September 2006 22:09
Nicht ganz perfekt beantwortet.
Der Filter
WHERE(Nummer=FILTER(1..)) dient dazu, dass das DataItem Ganzzahl erst ab der Nummer 1 anfängt zu zählen, so dass man damit wunderbar ARRAY-Elemente addressieren kann.
Würde dieser Filter so nicht angegeben werden, so würde das Ganzzahl-DataItem nämlich beim ersten Element (irgendwas mit -2,1 Millarden) anfangen.
Da der oben genannte Filter kein definiertes Ende hat, würde es bis zum Maximum von (irgenwas mit) 2,1 Milliarden laufen, daher sieht man mit absoluter Sicherheit irgendwo einen
CurrReport.BREAK;.
Was du meintest war der Filter
WHERE(Nummer=CONST(1)) bzw.
WHERE(Nummer=FILTER(1))
Gerne sieht man auch mal das C/AL-Pendant in Form von
SETRANGE(Nummer,1,MyTempTable.COUNT;.
Hier ist dann das definierte Ende mit der Anzahl Datensätze der Tabelle MyTempTable angegeben, so dass das DataItem exakt so oft durchlaufen wird, wie Datensätze in der Tabelle MyTempTable existieren.
Es gibt drei hauptsächliche Einsatzzwecke für das Ganzzahl-DataItem:
- Ein notwendiges Mittel, um temporär definierte Record-Variablen in einem Report ausgeben zu können
- Ein Trick, um ein altbekanntes Problem mit dem PageHeader zu lösen, wenn jeder Datensatz mit einer neuen Seite starten soll (z. B. Report 206 & Co.)
Leider druckt Navision erstmal die Header-Section aus, um anschließend festzustellen, dass der letzte Datensatz bereits durchlaufen wurde. - Ein Trick, um ein altbekanntes Problem bei der Platz-Reservierung für eine unterdrückte Section zu lösen.
Ein CurrReport.SHOWOUTPUT := FALSE; reserviert leider trotzdem ein klein wenig Platz, obwohl die Section gar nicht ausgegeben werden soll.
Hat man sehr sehr viele Sections, wo jeweils nur eine bestimmte angedruckt wird, so würde der Seitenumbruch viel zu früh erfolgen.
Packt man diese Section in ein (untergeordnetes) Ganzzahl-DataItem, welches nur ein einziges Mal durchlaufen wird, so kann man die Ausgabe der Section auch per CurrReport.SKIP; bzw. CurrReport.BREAK; unterdrücken, ohne dass dabei Platz auf dem Papier reserviert wird.
Ist zwar jetzt ein halber Roman geworden, aber ich hoffe, hiermit ein wenig Licht in das Dunkel gebracht zu haben.