2010-03-08 5 views
7

Ich habe einen anpassbaren rdlc-Bericht, wo der Benutzer wählen kann, welche Spalten angezeigt werden sollen. Alle Spalten sind im Berichtsdesigner enthalten, und ich verwende Parameter zum Ausblenden/Anzeigen von Spalten basierend auf der Benutzerauswahl. Der Bericht wird korrekt gerendert und zeigt nur die ausgewählten Spalten an. Die Gesamtbreite des Berichts ist jedoch dieselbe, als wären alle Spalten sichtbar. Dies bedeutet, dass der Bericht einen großen leeren Bereich rechts von den ausgewählten Spalten haben kann, was sehr albern aussieht.Wie kann ich die Gesamtbreite des Berichts "rdlc" anpassen, wenn einige Spalten ausgeblendet sind?

Also meine Frage: Gibt es eine Möglichkeit, die Berichtsbreite dynamisch zur Laufzeit anzupassen, um einen großen dummen leeren Bereich im Bericht zu vermeiden? Ich habe versucht, dies im Designer zu tun, indem ich einen Parameter der Breite des Berichtskörpers zuordnete .... aber das war nicht erlaubt. Die Breite darf im Designer kein Ausdruck sein, nur ein tatsächlicher Wert ist erlaubt.

Irgendwelche Vorschläge?

Antwort

0

Die tatsächliche Breite des Berichts wurde im Designer festgelegt, sodass der Bericht selbst zur Laufzeit nicht in der Größe geändert werden kann. Sie haben Recht, dass es im Berichtsdesigner keine Möglichkeit gibt, einen Ausdruck zuzuweisen oder dem Bericht, der Seite oder dem Text dynamisch einen Breitenwert zuzuweisen.

Die Breite des CONTAINER für den Bericht "rdlc" kann jedoch zur Laufzeit gesteuert werden. Wenn Sie Ihren Report Viewer in ein Panel-Steuerelement einfügen, sollten Sie in der Lage sein, die gewünschte Ausgabe zu erzielen. Da Ihre Benutzerschnittstelle entscheiden kann, welche Spalten eingeschlossen werden sollen, sollten Sie in der Lage sein, jeder optionalen Spalte einen Wert für die Breite zuzuweisen und diese zu addieren und die Größe des Containers entsprechend anzupassen.

Denken Sie daran, dass bei einer erneuten Größenanpassung des Containers ein Problem mit Leerraum innerhalb des Berichts zu einem Leerraumproblem im Formular wird. Immer noch kann ein enger Rahmen um den Bericht mit leerem Raum außerhalb dieses Rahmens sein, was Sie wollen.

HTH & Cheers,

CEC

+0

Sie können die Breite einer Spalte anpassen, indem Sie die rdlc in ein XmlDocument-Objekt laden und das Element "size" anpassen. Ich mache dies die ganze Zeit um Spalten zur Laufzeit zu verstecken. – clamchoda

1

ich eine Abhilfe, die dumm sein könnte, aber zumindest funktioniert es für mich; Nachdem Sie den rdlc-Berichtsdesigner fertiggestellt haben, schließen Sie ihn und öffnen Sie dann den rdlc-Bericht mit dem XML-Editor. Innerhalb des Tags <Report> rechts neben dem Tag <body>...</body> können Sie ein <width>...</width> -Tag sehen, das die Breite des Berichts enthält. Ändern Sie den Wert auf einen wirklich kleinen Wert (sagen wir <width>1in</width>), dies sollte den Bericht ohne die dummen Leerzeichen erscheinen lassen.

Denken Sie jedoch daran, dass beim Öffnen des Berichts "rdlc" im Designer die Breite auf den Ansichtsbereich zurückgesetzt wird, damit das Problem erneut angezeigt wird. Wiederholen Sie den Vorgang, nachdem Sie den Bericht fertig gestellt haben.

Ich weiß, es ist eine dumme Lösung, aber es ist auf der Entwicklerseite besser albern als auf der Kundenseite^_ ^.

Hoffe, das hilft.

1

Wenn es möglich ist, können Sie die Breite einer anderen Spalte erhöhen, um leeren Platz zu füllen. Ich löste dieses Problem wie folgt.

Zum Beispiel habe ich Spalten "Name" und "Rabatt". Rabatt kann versteckt werden und ich sollte Name.Width zu Name ändern. Width + Discount.Width.

Ich habe eine neue Spalte (nennen Sie es 'NameExt') rechts von 'Name' Spalte mit der gleichen Breite wie Discount.Width. Zusammengeführte Zellen der Spalte "Name" und der Spalte "NameExt". Setzen Sie dann die Sichtbarkeitsregel für 'Rabatt' und die inverse Sichtbarkeitsregel für 'NameExt'.

Hoffe, das kann helfen.

Verwandte Themen