Alternativ 1:använd logik för villkorlig undertryckning för att dölja/visa redundanta fält
Använd ett parameterfält för att driva undertryckningsformlerna för de önskade fälten.
Om du vill eliminera tomma mellanslag mellan fält, måste du stapla fälten ovanpå varandra och undertrycka dem på lämpligt sätt. I ditt exempel skulle kolumn 2 innehålla fält2 och fält3 (båda undertryckta) och kolumn 3 skulle innehålla fält2 och fält3 (båda undertryckta). Undertryckningslogiken, i ditt exempel, skulle fortsätta att undertrycka båda fälten i kolumn 2, men skulle visa fält 3 i kolumn 2 (fält 2 i kolumn 2 skulle fortfarande vara undertryckt).
Alternativ 2:använd "platshållare" formelfältet
Varje kolumn med data som skulle kunna undertryckas skulle vara ett formelfält. Varje formelfält skulle använda SELECT CASE-logik för att välja önskat fält att visa. Ett "dolt" fält skulle helt enkelt returnera ett nollvärde. Din SELECT CASE-logik skulle skrivas för att säkerställa att värden fylls från vänster till höger. Formateringen måste göras i formeln snarare än på själva formelfältet.
Alternativ 3:använd SDK för att dynamiskt ändra rapporten.
Använd CR .Net SDK eller det äldre CRAXDRT API för att dynamiskt ändra kolumnernas synlighet och placering.
Om du använder det här alternativet kommer dock dina distributionsalternativ att vara mer begränsade.