2012-04-04 6 views
0

Ich möchte ein Bild in meinem Bericht anzeigen, wenn dieses Bild in der Datenbank für den Personendatensatz im Bericht vorhanden ist. Wenn dieser Personendatensatz jedoch kein Bild enthält, möchte ich ein eingebettetes Bild an der genauen Position anzeigen, an der sich das Datenbankbild befinden würde. Wenn ich sie übereinander lege und die Sichtbarkeit basierend auf einem Ausdruck umschalte, "scheint" SSRS den Platz für das Bild, das versteckt ist. Wenn sich das eingebettete Bild beispielsweise auf dem Datenbankbild des Berichts befindet und das eingebettete Bild auf "Versteckt" eingestellt ist, wird auf der rechten Seite des sichtbaren Bilds ein Leerzeichen angezeigt.SSRS-Anzeige Eingebettet oder Datenbank-Image

Ich habe versucht, die Bilder in eine Tabelle zu bringen und die Spalten ohne Glück umschalten und spielte mit den Bildeinstellungen (AutoFit, Clip, etc) herum. Es sieht nicht so aus, als könnten wir einen Ausdruck verwenden, da sie unterschiedliche Typen haben (eingebettet vs. Datenbank). Gibt es eine Möglichkeit, dies zu tun, anstatt das eingebettete Bild in die Datenbank zu übertragen?

+0

Ich habe keine Zeit, dies heute zu testen, aber was passiert, wenn Sie jedes Bildelement in ein separates Rechteck setzen und die Sichtbarkeit des Rechtecks ​​einstellen? Rechtecke werden beim Auslegen von Berichtselementen oft ein wenig anders behandelt: Sie ermöglichen die Verwendung einer anderen Hierarchie beim Auslegen späterer Elemente auf der Seite, so dass diese nicht von der Größe der Elemente im Rechteck abhängig sind. –

+0

Das Rechteck funktionierte nicht, weil SSRS es nicht erlaubte, das Rechteck über das andere Rechteck zu setzen. Es würde automatisch das Rechteck in das, das wir wollten, auf der Unterseite hinzufügen. – Drew

Antwort

0

ein Rechteck-Objekt in der Zelle der Tabelle setzen, so dass Sie frei Form Platzierung des Bildpunktes haben. Fügen Sie ein Standard-eingebettetes Bild in Ihre RDL ein, nennen Sie es defaultImage. Da der Datentyp aus der Datenbank wird ein byte [], um für Sie Wert, wenn das Datenbankfeld überprüfen null, Ihre Sichtbarkeit Ausdruck auf dem eingebetteten Bild Standard wird:

=Not(IsNothing(Fields!{FieldName}.Value)) 

Jetzt, wo Ihr Standard Das Bild wird ausgeblendet, wenn ein Feldwert aus der Datenbank vorhanden ist. Legen Sie ein neues Bildobjekt über das Standardbild derselben Größe. Dieses Bild verwendet den Datenbankfeldwert direkt, keine Unterdrückung erforderlich. Wenn das Byte [] leer ist, wird das Datenbankbild nicht angezeigt und das eingebettete (Standardbild) wird angezeigt.