11. Dezember 2018 07:50
Hallo,
das kann man im Report natürlich über einen Integer- Dataitem machen, den man 6 Mal durchlaufen lässt.
Ich persönlich würde das über eine Textvariable lösen, die ich schon im C/AL- Teil des Reports aufbaue und komplett in einem Stück schon in der Artikelzeile an den RDLC- Teil übergebe. Das hat den Vorteil, das weniger Daten an den RDLC- Teil übergeben werden müssen, was bei langen Listen nicht so schnell zu Abstürzen wegen Speichermangel führt.
In Pseudo-Code sieht das dann etwa so aus;
- Code:
REPEAT
i+=1;
IF LagerPlatzText <> '' then
LagerplatzText +=','; // Hier könnte auch ein '<br>' stehen, wenn die Lagerplätze in Zeilen ausgegeben werden sollten
LagerplatzText += LagerplatzInhalt."Lagerplatz Code";
UNTIL (Lagerplatzinhalt.NEXT=0) OR (i>=6)
Diese Textvariable übergibt man jetzt dem RDLC und kann sie dort an gewünschter Stelle ausgeben. Im RDLC sollte man das Textfeld jetzt 'CanGrow' auf true setzten, dann kümmert sich der Reportgenerator selbst um den benötigten Platz. Möchtest du die Lagerplätze Zeilenweise durch '<br>' (HTML- Zeilenumbruch) getrennt ausgeben, musst du das Textfeld noch auf HTML- formatiert setzen. Dazu markierst du die Expression des Feldes im Visual Studio oder Report- Builder und klickst mit der rechten Maustaste darauf. Dann kannst du die Placeholder- Properties bearbeiten, wo du das Feld als HTML- formatiert einstellen kannst.
Gruß Fiddi