Bug? Feature?
T

Hallo Allerseits...

Folgende Situation hat mir etwas Kopfzerbrechen bereitet, vielleicht muss das so sein, aber es erscheint mir doch unlogisch.

Also:

Ich habe Hersteller in einer Tabelle, welche jeweils Artikel in einer Untertabelle zugeordnet haben. Manche dieser Artikel sollen in einem PDF erscheinen. Diese werden per Schalter DRUCK und einem Nummer-Feld Sortierung markiert. Die Sortierung soll manuell erfolgen.

Einige Artikel dieser Hersteller sind BIO. Diese werden über einen Schalter mit BIO markiert.

Ein Berechnungsfeld im Artikel checkt, ob der Artikel BIO ist und lädt aus einer Metadaten-Tabelle ein BIO-Logo. Wenn Artikel nicht BIO, dann auch kein Logo im Berechnungsfeld.

So weit, so gut.

Ich kann nun von der Hersteller Tabelle aus, eine Druckansicht öffnen und per for-Schleife durch alle Artikel des Herstellers welche mit DRUCK markiert sind iterieren. Das klappt bestens. 

Mit folgendem Code in jeweils einem Funktions-Feld kann ich mir nun den Artikel "zusammenbauen" und optisch ansprechend formatieren. Immer 6 Artikel auf einer Seite:

let myName := for i in Artikel[Druck] order by 'Sortierung' do
i.Artikelname
end;
item(myName, 0)

Dann nächster Artikel ... item(myName,1) .... item(myName,2) usw.

Preise, Artikelbeschreibung, Artikelbild usw. nach gleichem Muster.

Alles funktioniert ABER 

Jedes der angesprochenen Felder hat IMMER einen Inhalt, Name, Preis, Bild usw.

Allein das Berechnungsfeld mit dem BIO Logo ist manchmal leer (wenn der Artikel eben nicht BIO ist) und dann haut er mir die Sortierung durcheinander. Sobald das Feld leer ist, wird nicht einfach ein leeres Feld angezeigt (also kein Logo) sondern der ganze Datensatz wird übersprungen. Ist das richtig so?

Für mich ist das unlogisch. 

Ich frage doch mit ... 

let myLogo := for i in Artikel[Druck] order by 'Sortierung' do
i.BIOLogo
end;
item(myLogo, 0)

... jeden Datensatz aus Artikel mit gesetztem Schalter DRUCK geordnet durch das Feld SORTIERUNG ab. Wenn da nun das Feld BIOLogo leer ist, darf er doch nicht den ganzen Datensatz überspringen!? Oder??

Ich habe jetzt statt eines leeren Logos ein 1px großes Bild eingesetzt - damit klappt es. 

Ninox Profile

Dies ist der richtige Workaround.
Beim Schleifendurchlauf wird entweder ein Bild oder Nichts (null) ausgeworfen. 

Null-Werte werden ignoriert.

Birger

T

Ok, dann weiß ich Bescheid was das angeht. Danke Dir für die Info ...

Beste Grüße

Tobias

Reply