Wie kann man Spalten in Crystal Reports zur Laufzeit ausblenden? Vielen Dank für jede Anregung.
Antworten
Zu viele Anzeigen?Option 1: Verwendung der Logik der bedingten Unterdrückung zum Ausblenden/Einblenden redundanter Felder
Verwenden Sie ein Parameterfeld, um die Unterdrückungsformeln für die gewünschten Felder zu steuern.
Wenn Sie die Leerzeichen zwischen den Feldern eliminieren wollen, müssen Sie die Felder übereinander stapeln und sie entsprechend unterdrücken. In Ihrem Beispiel würde Spalte 2 Feld2 und Feld3 enthalten (beide unterdrückt) und Spalte 3 würde Feld2 und Feld3 enthalten (beide unterdrückt). Die Unterdrückungslogik würde in Ihrem Beispiel weiterhin beide Felder in Spalte 2 unterdrücken, aber Feld3 in Spalte 2 anzeigen (Feld2 in Spalte 2 wäre weiterhin unterdrückt).
Option 2: Verwendung eines "Platzhalter"-Formelfeldes
Jede Datenspalte, die unterdrückt werden könnte, wäre ein Formelfeld. Jedes Formelfeld würde SELECT CASE-Logik verwenden, um das gewünschte Feld für die Anzeige auszuwählen. Ein "ausgeblendetes" Feld würde einfach einen Nullwert zurückgeben. Ihre SELECT CASE-Logik würde so geschrieben werden, dass die Werte von links nach rechts aufgefüllt werden. Die Formatierung muss wie folgt vorgenommen werden in der Formel und nicht auf dem Formelfeld selbst.
Option 3: Verwenden Sie das SDK, um den Bericht dynamisch zu ändern.
Verwenden Sie das CR .Net SDK oder die ältere CRAXDRT API, um die Sichtbarkeit und Positionierung der Spalten dynamisch zu verändern.
Wenn Sie diese Option verwenden, sind Ihre Bereitstellungsoptionen jedoch stärker eingeschränkt.
Ich habe einen tollen und einfachen Artikel gefunden unter
http://www.codeproject.com/KB/cs/Dynamic_Crystal_Report.aspx
dass die Verwendung von Parametern in Crystal Report zum dynamischen Laden von Daten aus einer Datenbank in Crystal Report und zur Angabe, welches Feld (Spalten einer bestimmten Tabelle) im Bericht je nach Benutzerwahl angezeigt werden soll.
Dani.