Ich habe eine Lösung, die mehrere Berichtsprojekte enthält (eines pro Zielimplementierungsordner - ich denke, dass dies der einzige Weg ist, um diesen Effekt zu erreichen, zumindest bis ich Visual Studio für die Berichtsbereitstellung verlasse).
Ich möchte meine Datenquelleninformationen für alle diese Berichte "einmalig" angeben.
Bisher habe ich ein separates Berichtsprojekt erstellt, das meine freigegebene Datenquelle enthält. Wenn ich Objekte in der richtigen Reihenfolge auf einem Berichtsserver bereitstelle und den entsprechenden Göttern ausreichende Gebete gebe, scheinen die Berichte mit der freigegebenen Datenquelle verbunden zu sein und ausgeführt zu werden (zumindest über den Berichts-Manager in IE).
Wenn ich jedoch einen Bericht entwickle, kann ich nicht mehr "Vorschau" sehen, um ihn lokal auszuprobieren - ich muss ihn nun auf einem Berichtsserver bereitstellen, um ihn auszuführen. Das ist ein Streit.
Kann ich nur eine ganze Reihe von Kopien einer Datenquelle hinzufügen (auf meine Entwicklungsdatenbank zeigen), eine in jedem Projekt, diejenigen, die nicht von meinem Rechner bereitgestellt werden, und (wahrscheinlich) sie von der Quellcodeverwaltung ausschließen?
Eine Technik (Dirty-Trick?) Ich spiele jetzt mit dem Kopieren meiner Datenquelle ( .rds
) in jedes Projekt, schließe Visual Studio, dann in den darunter liegenden Dateien / Ordnern:
.rds
aus meinen Berichtprojekten (nur die einzige Kopie in meinem Data Sources
-Projekt übrig) Foo.rptproj
) den Text des Elements Project.DataSources.ProjectItem.FullPath
von My Shared Data Source.rds
in ..\Data Sources\My Shared Data Source.rds
Auf diese Weise verweisen alle Berichtsprojekte auf die gleiche Datei im Dateisystem, so dass sie eine einzelne Datenquellendefinition verwenden, aber jedes Projekt hat auch eine "lokale" gemeinsame Datenquelle, so dass Visual Studio glücklich ist.
Bezüglich der Quellcodeverwaltung: Es ist immer noch nur eine Kopie von .rds
eingecheckt, also verschmutzen wir die Code-Basis nicht mit vielen ekligen Duplikaten; Die Änderungen an den .rptproj
-Dateien können eingecheckt werden, so dass wir Entwickler nicht zu unnatürlichen Quellkontroll-Gymnastik (selektive Teil-Commits etc.) zwingen, um eine vernünftige Master-Kopie zu erhalten.
Jedes Berichtsprojekt versucht, diese Datenquelle bereitzustellen, obwohl ich das Überschreiben vorhandener Datenquellen auf dem Server verboten habe. Es ist also kein allzu großes Problem. . . und ich nehme an, wenn ich die Datenquellendefinition des Servers überschreiben wollte, wäre es nicht wirklich wichtig, ob ich es einmal oder zehnmal mit demselben .rds
überschrieben hätte.
Disclaimer: Dies ist immer noch ein Experiment. Ich habe noch keine Erfahrung damit, diese Technik in der Praxis anzuwenden, daher kann ich nicht so weit gehen, sie wirklich zu empfehlen.
Woody,
Was wir getan haben, ist:
Auf dem Server haben Sie einen Ordner namens "DataSources", der vor den Benutzern verborgen ist. Dort werden alle Datenquellen sein.
Für jedes Berichtsprojekt in VS gibt es einen Ordner, der auch "DataSources" genannt wird, aber dieses Mal enthält er nur die Datenquelle für diesen Bericht.
Solange die Ordnerstruktur dieselbe ist (d. h. Bericht und Datenquelle haben die gleiche entsprechende Ordnerebene auf dem Server und in VS), scheint dies für uns zu funktionieren.
Tags und Links sql-server-2005 reporting-services