Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Spalten im Crystal Report zur Laufzeit ausblenden?

Option 1:Logik zur bedingten Unterdrückung verwenden, um redundante Felder auszublenden/anzuzeigen

Verwenden Sie ein Parameterfeld, um die Unterdrückungsformeln für die gewünschten Felder zu steuern.

Wenn Sie Leerzeichen zwischen Feldern eliminieren möchten, müssen Sie die Felder übereinander stapeln und entsprechend unterdrücken. In Ihrem Beispiel würde Spalte 2 Feld2 und Feld3 (beide unterdrückt) und Spalte 3 Feld2 und Feld3 (beide unterdrückt) enthalten. 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ürde immer noch unterdrückt).

Option 2:Formelfeld „Platzhalter“ verwenden

Jede Datenspalte, die unterdrückt werden könnte, wäre ein Formelfeld. Jedes Formelfeld würde die SELECT CASE-Logik verwenden, um das gewünschte anzuzeigende Feld auszuwählen. Ein „verstecktes“ Feld würde einfach einen Nullwert zurückgeben. Ihre SELECT CASE-Logik würde geschrieben, um sicherzustellen, dass Werte von links nach rechts gefüllt werden. Die Formatierung muss in erfolgen die Formel und nicht das 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 ändern.

Wenn Sie diese Option verwenden, sind Ihre Bereitstellungsoptionen jedoch eingeschränkter.