April 17, 2005 at 8:11 am
Hi,
I decided to publish my reports in different folders, for sake of order and neatness. Unless I create the same shared datasource in each folder, the reports won't publish. I don't want all these datasources, I just want a single datasource which will reside in the parent folder - but RS won't let me!!! This is so frustrating, I'm sure I read somewhere that shared datasources are visible from any sub directory. CAN ANYONE HELP???
April 17, 2005 at 10:17 pm
Possibly you have a security (ie right/visibility) issue? We have our reports seperated into distinct folders ut only 1 'Data Sources' folder fo rthe entire RS instance. All reports reference one of the datasources in this folder. One thing that used to get/annoy me was when setting the DS for the report within Report Manager, you selected the shared datasource, clicked OK, but unless you then click the Apply button at the botom of the page it doesn't save the DS to that report.
HTH,
Steve.
April 18, 2005 at 12:00 am
I struggled along with the single level folders in Visual Studio for a while. I now have one report project with one folder for reports and one for datasources. The destination folder on the Report Server is called 'Upload'.
After deploying my project to the 'Upload' folder. I then move the reports to their appropriate folders. The datasources stay in the 'Upload' folder. The references to the datasources in the reports are changed automagically when you move the reports.
Now if I could just get my head around the scripting part of the rs.exe program ...
--------------------
Colt 45 - the original point and click interface
April 18, 2005 at 12:09 am
Come on Phil, rs.exe is simple, you write the VB.net code using visual studio, you then remove all of your using (or is it imports in VB.net??) statements, everywhere (or should that be anywhere) that you've made a reference to the RS instance (because of course to type the code using intellisense you needed to add a web reference) and you then remove the instantiation because that's already done for you.
The alternatvie of course is to write it in visual notepad, using no intellisense, and then run it 50 times to get your syntactical erros out, then start on the logic ones :S
Apart from the fact that you can distribute the scripts and have them (theoretically) eceute on any given RS server, if you put that much work into it, why not just write yourself the winforms app you really want
Have you looked at the new management piece for RS within RS2K5? Makes it quite a bit easier.
RE: your deployment method, I've resorted to pulling the reports up the line into the RS server (ie via Report Manager) as I often have several reports that I don't want to publish in the same project.
[mus'nt grumble] [mus'nt grumble]
Steve.
April 18, 2005 at 12:59 am
Steve
I must admit I've only had 1 or 2 adventures with the scripting, and each them was a horrible disaster.
If you don't want to publish all reports in the project you can just ctrl+click the ones you want and deploy just them.
[must grumble][must grumble]
--------------------
Colt 45 - the original point and click interface
April 18, 2005 at 1:02 am
Thanks Phil, i didn't even think of doing that (ctrl clicking). having used VS primarily for coding rather than RS, I am used to just compiling and deploying an entire project every time.
I think this means i can go home now (learnt something new today).
Steve.
April 18, 2005 at 2:11 am
Thanks y'all,
But i know you can change the shared datasource from
the report manager. This is not the problem. My reports need
to be destributed to "stupid" users, so I want everything to be
made in advance. Just as I suspected, there is no way to script it, is there?
(the rs.exe program won't publish aany report that references a datasource that
doesn't appear in the same folder - this is not a security issue)
April 18, 2005 at 5:28 am
You should be able to move the reports using rs.exe (ie script), you can also interrogate them to findout their DS props. Take a look at BOL (look for ReportingService.GetReportDataSources Method) for a sample that gets the DS props from one of the sample reps and then creates a new DS in the root with the same props.
Steve.
April 18, 2005 at 5:42 am
Yes I have thought of this option. But it doesn't work, because in order to get
a report datasource, you first need to create it via rs.CreateReport. This fails because
the rs program doesn't create the report if it doesn't find the datasource in the same folder.
God this is so stupid, it's such a basic feature and apparantly no one even knows
how to tweak rs to make it happen.
Thanks anyway!!!
April 18, 2005 at 6:34 am
Ehh ?!?
So what's wrong with my idea? Upload all the items to a single folder via CreateReport then move them using MoveItem (see below). Now that I'm looking at it from a different point of view, it really doesn't seem that hard actually.
using System; using System.Web.Services.Protocols;class Sample { public static void Main() { ReportingService rs = new ReportingService(); rs.Credentials = System.Net.CredentialCache.DefaultCredentials; string currentPath = "/SampleReports/Employee Sales Summary"; string targetPath = "/Employee Sales Summary"; try { rs.MoveItem(currentPath, targetPath); } catch (SoapException e) { Console.WriteLine(e.Detail.OuterXml); } } }
--------------------
Colt 45 - the original point and click interface
April 18, 2005 at 7:03 am
I agree phil, it's a nice way of doing it. Plus if you didn't want to script the move (ie do it all GUI) you could skip Report Manager and use the sample app that comes with RS, or mod the code in the sample app if it doesn't support move (which i thought it did).
And further to the point of rs.exe not being able to do it, the web service must allow it because Report Manager lets you upload an rdl that doesn't have an associted DS in the same folder, you obviously can't run the report until you re-associate it with an existing DS that exists *somewhere* on the server, but this works.
Steve.
April 18, 2005 at 8:35 am
This sounds like it might work - I'll give it a shot. Thanks...
And a similar problem but with resources - my reports use a couple of
GIF's , and I was wondering whether I can put the resources in one folder and
have the reports from other folders use it? (now the reports don't show the images
because they can't find them in their folders - so I just copy the images to every folder
- what a waste...)
THANKS!
April 18, 2005 at 5:05 pm
Why not save the images into the report? I guess it depends on whether these are being used in a header or similar single instance items or as row 'icons' or similar. I've not tried embedding images that are to be used multiple times so can't say if it's possible or not. I know it increases the overall size but assuming small gif's it shouldn't add that much.
Steve.
April 18, 2005 at 5:11 pm
Haven't had much call to add images yet, but can't you add the images using a URL reference?
--------------------
Colt 45 - the original point and click interface
April 19, 2005 at 12:33 am
The images are different from client to client so I can't embed them. The client is supposed to put his images under a certain name in a certain directory, and from there I publish the resource and put it in every web folder which has reports in it. I'm not sure about the URL image - does anyone thinks it can work? If not, I guess i'll just keep copying the images to every folder...
Viewing 15 posts - 1 through 15 (of 16 total)
You must be logged in to reply to this topic. Login to reply