Showing posts with label app. Show all posts
Showing posts with label app. Show all posts

Friday, March 30, 2012

Reporting Services and FXCop

When I run FxCop on an ASP.NET app that has a reference to the reporting
services web reference, I get a very long list of 'errors' that are not in
my code, but in the web service. As there isn't anything that I can do about
these 'errors' is there a way to tell FxCop to ignore the reference?
--
Brendan Reynoldswell, in the target you can expand and exlude certain assemblies/namespaces.
It's funny though, FxCop doesn't automatically check my referenced dlls.
What version are you using? Are you simply adding the 1 assembly to fxcop?
Karl
--
MY ASP.Net tutorials
http://www.openmymind.net/
http://openmymind.net/redirector.aspx?documentId=51 - Learn about AJAX!
"Brendan Reynolds" <brenreyn@.discussions.microsoft.com> wrote in message
news:OzV9%239p7FHA.1032@.TK2MSFTNGP11.phx.gbl...
> When I run FxCop on an ASP.NET app that has a reference to the reporting
> services web reference, I get a very long list of 'errors' that are not in
> my code, but in the web service. As there isn't anything that I can do
> about these 'errors' is there a way to tell FxCop to ignore the reference?
> --
> Brendan Reynolds
>
>|||"Karl Seguin" <karl REMOVE @. REMOVE openmymind REMOVEMETOO . ANDME net>
wrote in message news:eVoqesq7FHA.3388@.TK2MSFTNGP11.phx.gbl...
> well, in the target you can expand and exlude certain
> assemblies/namespaces.
Ah! Got it, thanks! :-)
That solved the problem for me, but if you're still curious here are the
answers to your questions ...
> It's funny though, FxCop doesn't automatically check my referenced dlls.
Just the web reference, not other references.
> What version are you using?
1.32
> Are you simply adding the 1 assembly to fxcop?
Yes.
> "Brendan Reynolds" <brenreyn@.discussions.microsoft.com> wrote in message
> news:OzV9%239p7FHA.1032@.TK2MSFTNGP11.phx.gbl...
>> When I run FxCop on an ASP.NET app that has a reference to the reporting
>> services web reference, I get a very long list of 'errors' that are not
>> in my code, but in the web service. As there isn't anything that I can do
>> about these 'errors' is there a way to tell FxCop to ignore the
>> reference?
>> --
>> Brendan Reynolds
>>
>

Monday, March 26, 2012

Reporting Services 2005 and Business Logic

I'm working on a app with complex reporting requirement and would like to centralize the business logic for app and reporting. We are not planning to use SP for reporting. Having said that, i would ideally like the reports call the business layer (business.dll) assembly which in turn will call the data access layer (data.dll) assembly to run the required queries and get the results via business assembly as a custom business entity or data set. I'm not sure if this possible with Reporting Services 2005. I have looked at the custom data processing extensions but i dont think it will provide me the required business-data separation unless i'm missing something.

I was wondering if anyone has done this before and if yes, could you please provide me some direction or insight or sample. It will be of great help. I also saw the custom references tab where you can reference an .NET assembly and invoke a method within .NET assembly but i'm not sure if that method could return a custom entity that could be consumed by the reports. Please recommend the right approach to achieve this.

Thanks in advance

There are at least four approaches you could consider:

1. Your app can call down to the business logic layer to retrieve the entity or an ADO.NET dataset and bind it to a local report. This scenario assumes that you don't need to deploy the report to the report catalog (the report is available to the application only). For more information about local vs. remote processing, read this article.

2. If you need to share the report with other users (deploy to the report catalog), write a CDE that will take the serialized entity (e.g. as an ADO.NET dataset) and expose it to the report, as demonstrated here.

3. Assuming SQL Server 2005, implement a CLR stored procedure(s) to call down to the business layer and surface the results to the report, as shown here.

4. Write a web service to return the results in XML and use the RS 2005 XML data provider (see this post).

The first approach is probably the easiest to implement.

|||

Hello Teo,

Thanks for your response. Since this is a web app and would like to deploy to the report catalog i'm thinking of option# 2. I have read the customer data extensions and i see it more as a data layer assembly. We will have to retrieve the custom entity from the middle tier, update it (only if required) and then display using CDE. Now based on that i have these follow up questions

1. Our entity is not going to be a ADO.NET data set at the business layer level, its going to be a custom .NET class so will be possible for the CDE to retrieve this custom entity and then display it. I can serialize the custom .NET class into a XML and then have the reports consume the XML but i'm concerned about the app performance serializing/deserializing.

2. I do not require any open/close connection in the CDE since this will be handled by the app data layer. Is this OK?

3. What is your opinion about accessing .NET code via assembly references and embedded code within the report properties? Is this a good option to think about.

Thanks

|||

1. Performance should be an area of concern. Assuming 100 Mbts LAN, it will take a fraction of time to send the serialized payload across the wire. I didn't see any performance issues with my CDE which serializes ADO.NET datasets.

2. The CDE that I pointed you to doesn't establish a connection either. This is entirely optional.

3. You cannot use this approach to bind a dataset to a report region if this is what you are after. That's because the DataSet property is not expression-based. Other than that, I do use external .NET code extensively to call common functions, e.g. to handle number formatting. In general, I'd recommend you put any .NET function that you need in your reports in an external assembly so you can reuse it across reports.

Wednesday, March 7, 2012

Reporting service access control

Were working on a classic asp app and are trying to implement some
reports through reporting service. I have a few questions.
First the application were working on will have multiple instances, so
one a single server there can be upto 15 identical apps connecting to
different databases, is there a way to have reporting service limit
what data source reporting service can access depending on what IIS
website/application pool the browsers are accessing?
Badgers.servername.com/reportserver should open the reports with the
badgers db
Squirrels.servername.com/reportserver db=squirrels
Servername.com:54333 db=badgers
Servername.com:54334 db=squirrelsNot automatically but you can pass a parameter that is used by your report
to use the appropriate datasource.
In RS 2005 you can use an expression for your data source. Which if you
write your reports to expect a parameter (say DBParam) then you can do
exactly what you want. From Books OnLine:
>>>>>>
Data Source Expressions
You can put an expression into a connection string to allow users to select
the data source at run time. For example, suppose a multinational firm has
data servers in several countries. With an expression-based connection
string, a user who is running a sales report can select a data source for a
particular country before running the report.
The following example illustrates the use of a data source expression in a
SQL Server connection string. The example assumes you have created a report
parameter named ServerName:
Copy Code
="data source=" & Parameters!ServerName.Value & ";initial
catalog=AdventureWorks
Data source expressions are processed at run time or when a report is
previewed. The expression must be written in Visual Basic. Use the following
guidelines when defining a data source expression:
a.. Design the report using a static connection string. A static
connection string refers to a connection string that is not set through an
expression (for example, when you follow the steps for creating a
report-specific or shared data source, you are defining a static connection
string). Using a static connection string allows you to connect to the data
source in Report Designer so that you can get the query results you need to
create the report.
b.. When defining the data source connection, do not use a shared data
source. You cannot use a data source expression in a shared data source. You
must define a report-specific data source for the report.
c.. Specify credentials separately from the connection string. You can use
stored credentials, prompted credentials, or integrated security.
d.. Add a report parameter to specify a data source. For parameter values,
you can either provide a static list of available values (in this case, the
available values should be data sources you can use with the report) or
define a query that retrieves a list of data sources at run time.
e.. Be sure that the list of data sources shares the same database schema.
All report design begins with schema information. If there is a mismatch
between the schema used to define the report and the actual schema used by
the report at run time, the report might not run.
f.. Before publishing the report, replace the static connection string
with an expression. Wait until you are finished designing the report before
you replace the static connection string with an expression. Once you use an
expression, you cannot execute the query in Report Designer. Furthermore,
the field list in the Datasets window and the Parameters list will not
update automatically.
>>>>>>>
--
Bruce Loehle-Conger
MVP SQL Server Reporting Services
<lance.sanchez@.gmail.com> wrote in message
news:1190052200.309137.245860@.d55g2000hsg.googlegroups.com...
> Were working on a classic asp app and are trying to implement some
> reports through reporting service. I have a few questions.
> First the application were working on will have multiple instances, so
> one a single server there can be upto 15 identical apps connecting to
> different databases, is there a way to have reporting service limit
> what data source reporting service can access depending on what IIS
> website/application pool the browsers are accessing?
> Badgers.servername.com/reportserver should open the reports with the
> badgers db
> Squirrels.servername.com/reportserver db=squirrels
> Servername.com:54333 db=badgers
> Servername.com:54334 db=squirrels
>
begin 666 copycode.gif
M1TE&.#EA#P`/`.9F`).BM[+"V*[$\(&NY:Z_U'.AWER,VIBKQBE4JIFLQ_S]
M_LO/U)*P[8JN_,73\JFXSF2%R=;>[/;Y_>OO]BM7L6Z<VB)&CZ:]["!!AJ"Y
M[VB7U9RPSM+;\9>FNZ.RR"-(EOGZ_")%CIRKP;+)\*[0_Z^^U#5EQ2E4K*FY
MSX*?V,_9YM+6W9JMRFZ7YV".Y\S7[-'ZINOS)"JX+K:_^KO^R5,FR=0HIJN
MRI:FN^;J\^#F\25-G25*F+_+W=+>\,#*X,+.Y/7V^[K%U/O]_B-'DG^G\_#T
M^\?2X7.2T4=NNI_%^B%#B=OD]_?X^Z_#[?#R^)>IQ*K![XZX\"%#BIRUYZ*Q
MQV:"I?#S^*.RQYJNS*O"[]/>]55YP2I7LW*:ZH6GZR=0I%MRC[[.\#5)8U&#
MT?_______P``````````````````````````````````````````````````
M`````````````````````````````````````````````````"'Y! $``&8`
M+ `````/``\```>?@.&:"@.X2%AH>"`0$$! \>*X@.!99-E558+AR64"CA"89B%
M*&4S)#X``EI1&0P,+X)8DR!/.0*495\F0&8B94I2`P47MEXC%#\="D$3.A%4
M90T-'"Y=)V `3< 5&C*41DP.63L`5S J1STI944M!F1D-SP`8_/S2&5#-%MB
F3@.E$AA!EVKDC<R"$(2X2-L1@.D> `E"6&DB! 8*/&!PM3, 0"`#L`
`
end|||Thank you, is there a way to tie it into the IIS session so someone
would generate an error if they tried to change the parameter to
something else?
On Sep 17, 11:29 am, "Bruce L-C [MVP]" <bruce_lcNOS...@.hotmail.com>
wrote:
> Not automatically but you can pass a parameter that is used by your report
> to use the appropriate datasource.
> In RS 2005 you can use an expression for your data source. Which if you
> write your reports to expect a parameter (say DBParam) then you can do
> exactly what you want. From Books OnLine:
> Data Source Expressions
> You can put an expression into a connection string to allow users to select
> the data source at run time. For example, suppose a multinational firm has
> data servers in several countries. With an expression-based connection
> string, a user who is running a sales report can select a data source for a
> particular country before running the report.
> The following example illustrates the use of a data source expression in a
> SQL Server connection string. The example assumes you have created a report
> parameter named ServerName:
> Copy Code
> ="data source=" & Parameters!ServerName.Value & ";initial
> catalog=AdventureWorks
> Data source expressions are processed at run time or when a report is
> previewed. The expression must be written in Visual Basic. Use the following
> guidelines when defining a data source expression:
> a.. Design the report using a static connection string. A static
> connection string refers to a connection string that is not set through an
> expression (for example, when you follow the steps for creating a
> report-specific or shared data source, you are defining a static connection
> string). Using a static connection string allows you to connect to the data
> source in Report Designer so that you can get the query results you need to
> create the report.
> b.. When defining the data source connection, do not use a shared data
> source. You cannot use a data source expression in a shared data source. You
> must define a report-specific data source for the report.
> c.. Specify credentials separately from the connection string. You can use
> stored credentials, prompted credentials, or integrated security.
> d.. Add a report parameter to specify a data source. For parameter values,
> you can either provide a static list of available values (in this case, the
> available values should be data sources you can use with the report) or
> define a query that retrieves a list of data sources at run time.
> e.. Be sure that the list of data sources shares the same database schema.
> All report design begins with schema information. If there is a mismatch
> between the schema used to define the report and the actual schema used by
> the report at run time, the report might not run.
> f.. Before publishing the report, replace the static connection string
> with an expression. Wait until you are finished designing the report before
> you replace the static connection string with an expression. Once you use an
> expression, you cannot execute the query in Report Designer. Furthermore,
> the field list in the Datasets window and the Parameters list will not
> update automatically.
> >>>>>>>
> --
> Bruce Loehle-Conger
> MVP SQL Server Reporting Services
> <lance.sanc...@.gmail.com> wrote in message
> news:1190052200.309137.245860@.d55g2000hsg.googlegroups.com...
>
> > Were working on a classic asp app and are trying to implement some
> > reports through reporting service. I have a few questions.
> > First the application were working on will have multiple instances, so
> > one a single server there can be upto 15 identical apps connecting to
> > different databases, is there a way to have reporting service limit
> > what data source reporting service can access depending on what IIS
> > website/application pool the browsers are accessing?
> > Badgers.servername.com/reportserver should open the reports with the
> > badgers db
> > Squirrels.servername.com/reportserver db=squirrels
> > Servername.com:54333 db=badgers
> > Servername.com:54334 db=squirrels
> begin 666 copycode.gif
> M1TE&.#EA#P`/`.9F`).BM[+"V*[$\(&NY:Z_U'.AWER,VIBKQBE4JIFLQ_S]
> M_LO/U)*P[8JN_,73\JFXSF2%R=;>[/;Y_>OO]BM7L6Z<VB)&CZ:]["!!AJ"Y
> M[VB7U9RPSM+;\9>FNZ.RR"-(EOGZ_")%CIRKP;+)\*[0_Z^^U#5EQ2E4K*FY
> MSX*?V,_9YM+6W9JMRFZ7YV".Y\S7[-'ZINOS)"JX+K:_^KO^R5,FR=0HIJN
> MRI:FN^;J\^#F\25-G25*F+_+W=+>\,#*X,+.Y/7V^[K%U/O]_B-'DG^G\_#T
> M^\?2X7.2T4=NNI_%^B%#B=OD]_?X^Z_#[?#R^)>IQ*K![XZX\"%#BIRUYZ*Q
> MQV:"I?#S^*.RQYJNS*O"[]/>]55YP2I7LW*:ZH6GZR=0I%MRC[[.\#5)8U&#
> MT?_______P``````````````````````````````````````````````````
> M`````````````````````````````````````````````````"'Y! $``&8`
> M+ `````/``\```>?@.&:"@.X2%AH>"`0$$! \>*X@.!99-E558+AR64"CA"89B%
> M*&4S)#X``EI1&0P,+X)8DR!/.0*495\F0&8B94I2`P47MEXC%#\="D$3.A%4
> M90T-'"Y=)V `3< 5&C*41DP.63L`5S J1STI944M!F1D-SP`8_/S2&5#-%MB
> F3@.E$AA!EVKDC<R"$(2X2-L1@.D> `E"6&DB! 8*/&!PM3, 0"`#L`
> `
> end|||You are getting into a complicated environment. If your asp applications are
on a different server than RS you are going to run into the double hop
problem. That is a windows issue where someone who is recognized by your web
app as one person then is not recognized when credentials hop from one
server to another. This requires kerboros to work. I am just giving you a
heads up. This is only an issue if you are using integrated security. If you
are using forms based security (i.e. role your own credentials) then it is
not an issue.
A parameter can be hidden so if someone goes directly to report manager
(portal for RS) they will not see the parameter. OR, you can also tie the
report to the user. RS has a global variable called userid that gives the
domain and userid of the user running the report. You could use this to only
allow users to see the data they should.
Bruce Loehle-Conger
MVP SQL Server Reporting Services
<lance.sanchez@.gmail.com> wrote in message
news:1190054179.058425.32890@.50g2000hsm.googlegroups.com...
> Thank you, is there a way to tie it into the IIS session so someone
> would generate an error if they tried to change the parameter to
> something else?
>
> On Sep 17, 11:29 am, "Bruce L-C [MVP]" <bruce_lcNOS...@.hotmail.com>
> wrote:
>> Not automatically but you can pass a parameter that is used by your
>> report
>> to use the appropriate datasource.
>> In RS 2005 you can use an expression for your data source. Which if you
>> write your reports to expect a parameter (say DBParam) then you can do
>> exactly what you want. From Books OnLine:
>> Data Source Expressions
>> You can put an expression into a connection string to allow users to
>> select
>> the data source at run time. For example, suppose a multinational firm
>> has
>> data servers in several countries. With an expression-based connection
>> string, a user who is running a sales report can select a data source for
>> a
>> particular country before running the report.
>> The following example illustrates the use of a data source expression in
>> a
>> SQL Server connection string. The example assumes you have created a
>> report
>> parameter named ServerName:
>> Copy Code
>> ="data source=" & Parameters!ServerName.Value & ";initial
>> catalog=AdventureWorks
>> Data source expressions are processed at run time or when a report is
>> previewed. The expression must be written in Visual Basic. Use the
>> following
>> guidelines when defining a data source expression:
>> a.. Design the report using a static connection string. A static
>> connection string refers to a connection string that is not set through
>> an
>> expression (for example, when you follow the steps for creating a
>> report-specific or shared data source, you are defining a static
>> connection
>> string). Using a static connection string allows you to connect to the
>> data
>> source in Report Designer so that you can get the query results you need
>> to
>> create the report.
>> b.. When defining the data source connection, do not use a shared data
>> source. You cannot use a data source expression in a shared data source.
>> You
>> must define a report-specific data source for the report.
>> c.. Specify credentials separately from the connection string. You can
>> use
>> stored credentials, prompted credentials, or integrated security.
>> d.. Add a report parameter to specify a data source. For parameter
>> values,
>> you can either provide a static list of available values (in this case,
>> the
>> available values should be data sources you can use with the report) or
>> define a query that retrieves a list of data sources at run time.
>> e.. Be sure that the list of data sources shares the same database
>> schema.
>> All report design begins with schema information. If there is a mismatch
>> between the schema used to define the report and the actual schema used
>> by
>> the report at run time, the report might not run.
>> f.. Before publishing the report, replace the static connection string
>> with an expression. Wait until you are finished designing the report
>> before
>> you replace the static connection string with an expression. Once you use
>> an
>> expression, you cannot execute the query in Report Designer. Furthermore,
>> the field list in the Datasets window and the Parameters list will not
>> update automatically.
>> >>>>>>>
>> --
>> Bruce Loehle-Conger
>> MVP SQL Server Reporting Services
>> <lance.sanc...@.gmail.com> wrote in message
>> news:1190052200.309137.245860@.d55g2000hsg.googlegroups.com...
>>
>> > Were working on a classic asp app and are trying to implement some
>> > reports through reporting service. I have a few questions.
>> > First the application were working on will have multiple instances, so
>> > one a single server there can be upto 15 identical apps connecting to
>> > different databases, is there a way to have reporting service limit
>> > what data source reporting service can access depending on what IIS
>> > website/application pool the browsers are accessing?
>> > Badgers.servername.com/reportserver should open the reports with the
>> > badgers db
>> > Squirrels.servername.com/reportserver db=squirrels
>> > Servername.com:54333 db=badgers
>> > Servername.com:54334 db=squirrels
>> begin 666 copycode.gif
>> M1TE&.#EA#P`/`.9F`).BM[+"V*[$\(&NY:Z_U'.AWER,VIBKQBE4JIFLQ_S]
>> M_LO/U)*P[8JN_,73\JFXSF2%R=;>[/;Y_>OO]BM7L6Z<VB)&CZ:]["!!AJ"Y
>> M[VB7U9RPSM+;\9>FNZ.RR"-(EOGZ_")%CIRKP;+)\*[0_Z^^U#5EQ2E4K*FY
>> MSX*?V,_9YM+6W9JMRFZ7YV".Y\S7[-'ZINOS)"JX+K:_^KO^R5,FR=0HIJN
>> MRI:FN^;J\^#F\25-G25*F+_+W=+>\,#*X,+.Y/7V^[K%U/O]_B-'DG^G\_#T
>> M^\?2X7.2T4=NNI_%^B%#B=OD]_?X^Z_#[?#R^)>IQ*K![XZX\"%#BIRUYZ*Q
>> MQV:"I?#S^*.RQYJNS*O"[]/>]55YP2I7LW*:ZH6GZR=0I%MRC[[.\#5)8U&#
>> MT?_______P``````````````````````````````````````````````````
>> M`````````````````````````````````````````````````"'Y! $``&8`
>> M+ `````/``\```>?@.&:"@.X2%AH>"`0$$! \>*X@.!99-E558+AR64"CA"89B%
>> M*&4S)#X``EI1&0P,+X)8DR!/.0*495\F0&8B94I2`P47MEXC%#\="D$3.A%4
>> M90T-'"Y=)V `3< 5&C*41DP.63L`5S J1STI944M!F1D-SP`8_/S2&5#-%MB
>> F3@.E$AA!EVKDC<R"$(2X2-L1@.D> `E"6&DB! 8*/&!PM3, 0"`#L`
>> `
>> end
>|||Thank you once again, no the reports and the database are on the same
server and we are using forms based authentication, or i should say we
will be when i implement it.
one last question if you don't mind. i'm working some some complex
layouts that i have only been able to accomplish with sub reports, is
there a way to pass a parameter from a list object into a dataset?
hmm, i'm not happy with that question, let me give an example. we have
a root table, it has many tables that are related to it with a foreign
key. I have found that when trying to do it with a single report (a
single query with outer joins) that reporting services runs out of
memory when there are 20-30 tables all returning rows (and the unique
attribute set on the tables in reporting services), a way to get
around this has been to make sub reports that I pass the ID from the
root table to and have it render the page, but this is taking a Large
number of sub reports and i fear there is a lot of room for an error.
so instead of passing the ID to another report can it be passed to a
record set thats runs an additional query per ID?
On Sep 17, 2:02 pm, "Bruce L-C [MVP]" <bruce_lcNOS...@.hotmail.com>
wrote:
> You are getting into a complicated environment. If your asp applications are
> on a different server than RS you are going to run into the double hop
> problem. That is a windows issue where someone who is recognized by your web
> app as one person then is not recognized when credentials hop from one
> server to another. This requires kerboros to work. I am just giving you a
> heads up. This is only an issue if you are using integrated security. If you
> are using forms based security (i.e. role your own credentials) then it is
> not an issue.
> A parameter can be hidden so if someone goes directly to report manager
> (portal for RS) they will not see the parameter. OR, you can also tie the
> report to the user. RS has a global variable called userid that gives the
> domain and userid of the user running the report. You could use this to only
> allow users to see the data they should.
> --
> Bruce Loehle-Conger
> MVP SQL Server Reporting Services
> <lance.sanc...@.gmail.com> wrote in message
> news:1190054179.058425.32890@.50g2000hsm.googlegroups.com...
> > Thank you, is there a way to tie it into the IIS session so someone
> > would generate an error if they tried to change the parameter to
> > something else?
> > On Sep 17, 11:29 am, "Bruce L-C [MVP]" <bruce_lcNOS...@.hotmail.com>
> > wrote:
> >> Not automatically but you can pass a parameter that is used by your
> >> report
> >> to use the appropriate datasource.
> >> In RS 2005 you can use an expression for your data source. Which if you
> >> write your reports to expect a parameter (say DBParam) then you can do
> >> exactly what you want. From Books OnLine:
> >> Data Source Expressions
> >> You can put an expression into a connection string to allow users to
> >> select
> >> the data source at run time. For example, suppose a multinational firm
> >> has
> >> data servers in several countries. With an expression-based connection
> >> string, a user who is running a sales report can select a data source for
> >> a
> >> particular country before running the report.
> >> The following example illustrates the use of a data source expression in
> >> a
> >> SQL Server connection string. The example assumes you have created a
> >> report
> >> parameter named ServerName:
> >> Copy Code
> >> ="data source=" & Parameters!ServerName.Value & ";initial
> >> catalog=AdventureWorks
> >> Data source expressions are processed at run time or when a report is
> >> previewed. The expression must be written in Visual Basic. Use the
> >> following
> >> guidelines when defining a data source expression:
> >> a.. Design the report using a static connection string. A static
> >> connection string refers to a connection string that is not set through
> >> an
> >> expression (for example, when you follow the steps for creating a
> >> report-specific or shared data source, you are defining a static
> >> connection
> >> string). Using a static connection string allows you to connect to the
> >> data
> >> source in Report Designer so that you can get the query results you need
> >> to
> >> create the report.
> >> b.. When defining the data source connection, do not use a shared data
> >> source. You cannot use a data source expression in a shared data source.
> >> You
> >> must define a report-specific data source for the report.
> >> c.. Specify credentials separately from the connection string. You can
> >> use
> >> stored credentials, prompted credentials, or integrated security.
> >> d.. Add a report parameter to specify a data source. For parameter
> >> values,
> >> you can either provide a static list of available values (in this case,
> >> the
> >> available values should be data sources you can use with the report) or
> >> define a query that retrieves a list of data sources at run time.
> >> e.. Be sure that the list of data sources shares the same database
> >> schema.
> >> All report design begins with schema information. If there is a mismatch
> >> between the schema used to define the report and the actual schema used
> >> by
> >> the report at run time, the report might not run.
> >> f.. Before publishing the report, replace the static connection string
> >> with an expression. Wait until you are finished designing the report
> >> before
> >> you replace the static connection string with an expression. Once you use
> >> an
> >> expression, you cannot execute the query in Report Designer. Furthermore,
> >> the field list in the Datasets window and the Parameters list will not
> >> update automatically.
> >> --
> >> Bruce Loehle-Conger
> >> MVP SQL Server Reporting Services
> >> <lance.sanc...@.gmail.com> wrote in message
> >>news:1190052200.309137.245860@.d55g2000hsg.googlegroups.com...
> >> > Were working on a classic asp app and are trying to implement some
> >> > reports through reporting service. I have a few questions.
> >> > First the application were working on will have multiple instances, so
> >> > one a single server there can be upto 15 identical apps connecting to
> >> > different databases, is there a way to have reporting service limit
> >> > what data source reporting service can access depending on what IIS
> >> > website/application pool the browsers are accessing?
> >> > Badgers.servername.com/reportserver should open the reports with the
> >> > badgers db
> >> > Squirrels.servername.com/reportserver db=squirrels
> >> > Servername.com:54333 db=badgers
> >> > Servername.com:54334 db=squirrels
> >> begin 666 copycode.gif
> >> M1TE&.#EA#P`/`.9F`).BM[+"V*[$\(&NY:Z_U'.AWER,VIBKQBE4JIFLQ_S]
> >> M_LO/U)*P[8JN_,73\JFXSF2%R=;>[/;Y_>OO]BM7L6Z<VB)&CZ:]["!!AJ"Y
> >> M[VB7U9RPSM+;\9>FNZ.RR"-(EOGZ_")%CIRKP;+)\*[0_Z^^U#5EQ2E4K*FY
> >> MSX*?V,_9YM+6W9JMRFZ7YV".Y\S7[-'ZINOS)"JX+K:_^KO^R5,FR=0HIJN
> >> MRI:FN^;J\^#F\25-G25*F+_+W=+>\,#*X,+.Y/7V^[K%U/O]_B-'DG^G\_#T
> >> M^\?2X7.2T4=NNI_%^B%#B=OD]_?X^Z_#[?#R^)>IQ*K![XZX\"%#BIRUYZ*Q
> >> MQV:"I?#S^*.RQYJNS*O"[]/>]55YP2I7LW*:ZH6GZR=0I%MRC[[.\#5)8U&#
> >> MT?_______P``````````````````````````````````````````````````
> >> M`````````````````````````````````````````````````"'Y! $``&8`
> >> M+ `````/``\```>?@.&:"@.X2%AH>"`0$$! \>*X@.!99-E558+AR64"CA"89B%
> >> M*&4S)#X``EI1&0P,+X)8DR!/.0*495\F0&8B94I2`P47MEXC%#\="D$3.A%4
> >> M90T-'"Y=)V `3< 5&C*41DP.63L`5S J1STI944M!F1D-SP`8_/S2&5#-%MB
> >> F3@.E$AA!EVKDC<R"$(2X2-L1@.D> `E"6&DB! 8*/&!PM3, 0"`#L`
> >> `
> >> end|||never mind, i'm going through olderposts and I do belive someone else
was trying to do the same thing and you said data regions cannot do a
parent child relationship that I need.
On Sep 17, 3:22 pm, "lance.sanc...@.gmail.com"
<lance.sanc...@.gmail.com> wrote:
> Thank you once again, no the reports and the database are on the same
> server and we are using forms based authentication, or i should say we
> will be when i implement it.
> one last question if you don't mind. i'm working some some complex
> layouts that i have only been able to accomplish with sub reports, is
> there a way to pass a parameter from a list object into a dataset?
> hmm, i'm not happy with that question, let me give an example. we have
> a root table, it has many tables that are related to it with a foreign
> key. I have found that when trying to do it with a single report (a
> single query with outer joins) that reporting services runs out of
> memory when there are 20-30 tables all returning rows (and the unique
> attribute set on the tables in reporting services), a way to get
> around this has been to make sub reports that I pass the ID from the
> root table to and have it render the page, but this is taking a Large
> number of sub reports and i fear there is a lot of room for an error.
> so instead of passing the ID to another report can it be passed to a
> record set thats runs an additional query per ID?
> On Sep 17, 2:02 pm, "Bruce L-C [MVP]" <bruce_lcNOS...@.hotmail.com>
> wrote:
> > You are getting into a complicated environment. If your asp applications are
> > on a different server than RS you are going to run into the double hop
> > problem. That is a windows issue where someone who is recognized by your web
> > app as one person then is not recognized when credentials hop from one
> > server to another. This requires kerboros to work. I am just giving you a
> > heads up. This is only an issue if you are using integrated security. If you
> > are using forms based security (i.e. role your own credentials) then it is
> > not an issue.
> > A parameter can be hidden so if someone goes directly to report manager
> > (portal for RS) they will not see the parameter. OR, you can also tie the
> > report to the user. RS has a global variable called userid that gives the
> > domain and userid of the user running the report. You could use this to only
> > allow users to see the data they should.
> > --
> > Bruce Loehle-Conger
> > MVP SQL Server Reporting Services
> > <lance.sanc...@.gmail.com> wrote in message
> >news:1190054179.058425.32890@.50g2000hsm.googlegroups.com...
> > > Thank you, is there a way to tie it into the IIS session so someone
> > > would generate an error if they tried to change the parameter to
> > > something else?
> > > On Sep 17, 11:29 am, "Bruce L-C [MVP]" <bruce_lcNOS...@.hotmail.com>
> > > wrote:
> > >> Not automatically but you can pass a parameter that is used by your
> > >> report
> > >> to use the appropriate datasource.
> > >> In RS 2005 you can use an expression for your data source. Which if you
> > >> write your reports to expect a parameter (say DBParam) then you can do
> > >> exactly what you want. From Books OnLine:
> > >> Data Source Expressions
> > >> You can put an expression into a connection string to allow users to
> > >> select
> > >> the data source at run time. For example, suppose a multinational firm
> > >> has
> > >> data servers in several countries. With an expression-based connection
> > >> string, a user who is running a sales report can select a data source for
> > >> a
> > >> particular country before running the report.
> > >> The following example illustrates the use of a data source expression in
> > >> a
> > >> SQL Server connection string. The example assumes you have created a
> > >> report
> > >> parameter named ServerName:
> > >> Copy Code
> > >> ="data source=" & Parameters!ServerName.Value & ";initial
> > >> catalog=AdventureWorks
> > >> Data source expressions are processed at run time or when a report is
> > >> previewed. The expression must be written in Visual Basic. Use the
> > >> following
> > >> guidelines when defining a data source expression:
> > >> a.. Design the report using a static connection string. A static
> > >> connection string refers to a connection string that is not set through
> > >> an
> > >> expression (for example, when you follow the steps for creating a
> > >> report-specific or shared data source, you are defining a static
> > >> connection
> > >> string). Using a static connection string allows you to connect to the
> > >> data
> > >> source in Report Designer so that you can get the query results you need
> > >> to
> > >> create the report.
> > >> b.. When defining the data source connection, do not use a shared data
> > >> source. You cannot use a data source expression in a shared data source.
> > >> You
> > >> must define a report-specific data source for the report.
> > >> c.. Specify credentials separately from the connection string. You can
> > >> use
> > >> stored credentials, prompted credentials, or integrated security.
> > >> d.. Add a report parameter to specify a data source. For parameter
> > >> values,
> > >> you can either provide a static list of available values (in this case,
> > >> the
> > >> available values should be data sources you can use with the report) or
> > >> define a query that retrieves a list of data sources at run time.
> > >> e.. Be sure that the list of data sources shares the same database
> > >> schema.
> > >> All report design begins with schema information. If there is a mismatch
> > >> between the schema used to define the report and the actual schema used
> > >> by
> > >> the report at run time, the report might not run.
> > >> f.. Before publishing the report, replace the static connection string
> > >> with an expression. Wait until you are finished designing the report
> > >> before
> > >> you replace the static connection string with an expression. Once you use
> > >> an
> > >> expression, you cannot execute the query in Report Designer. Furthermore,
> > >> the field list in the Datasets window and the Parameters list will not
> > >> update automatically.
> > >> --
> > >> Bruce Loehle-Conger
> > >> MVP SQL Server Reporting Services
> > >> <lance.sanc...@.gmail.com> wrote in message
> > >>news:1190052200.309137.245860@.d55g2000hsg.googlegroups.com...
> > >> > Were working on a classic asp app and are trying to implement some
> > >> > reports through reporting service. I have a few questions.
> > >> > First the application were working on will have multiple instances, so
> > >> > one a single server there can be upto 15 identical apps connecting to
> > >> > different databases, is there a way to have reporting service limit
> > >> > what data source reporting service can access depending on what IIS
> > >> > website/application pool the browsers are accessing?
> > >> > Badgers.servername.com/reportserver should open the reports with the
> > >> > badgers db
> > >> > Squirrels.servername.com/reportserver db=squirrels
> > >> > Servername.com:54333 db=badgers
> > >> > Servername.com:54334 db=squirrels
> > >> begin 666 copycode.gif
> > >> M1TE&.#EA#P`/`.9F`).BM[+"V*[$\(&NY:Z_U'.AWER,VIBKQBE4JIFLQ_S]
> > >> M_LO/U)*P[8JN_,73\JFXSF2%R=;>[/;Y_>OO]BM7L6Z<VB)&CZ:]["!!AJ"Y
> > >> M[VB7U9RPSM+;\9>FNZ.RR"-(EOGZ_")%CIRKP;+)\*[0_Z^^U#5EQ2E4K*FY
> > >> MSX*?V,_9YM+6W9JMRFZ7YV".Y\S7[-'ZINOS)"JX+K:_^KO^R5,FR=0HIJN
> > >> MRI:FN^;J\^#F\25-G25*F+_+W=+>\,#*X,+.Y/7V^[K%U/O]_B-'DG^G\_#T
> > >> M^\?2X7.2T4=NNI_%^B%#B=OD]_?X^Z_#[?#R^)>IQ*K![XZX\"%#BIRUYZ*Q
> > >> MQV:"I?#S^*.RQYJNS*O"[]/>]55YP2I7LW*:ZH6GZR=0I%MRC[[.\#5)8U&#
> > >> MT?_______P``````````````````````````````````````````````````
> > >> M`````````````````````````````````````````````````"'Y! $``&8`
> > >> M+ `````/``\```>?@.&:"@.X2%AH>"`0$$! \>*X@.!99-E558+AR64"CA"89B%
> > >> M*&4S)#X``EI1&0P,+X)8DR!/.0*495\F0&8B94I2`P47MEXC%#\="D$3.A%4
> > >> M90T-'"Y=)V `3< 5&C*41DP.63L`5S J1STI944M!F1D-SP`8_/S2&5#-%MB
> > >> F3@.E$AA!EVKDC<R"$(2X2-L1@.D> `E"6&DB! 8*/&!PM3, 0"`#L`
> > >> `
> > >> end|||you can use a DNS round robin.
setup your report data source like:
data source=MyServer.mydomain.com
in the dns server, setup 2 different IP addresses for MyServer.mydomain.com.
insure that the round robin option is setup in the DNS server.
now some accesses go to the first server and some others will go through
the second one.
you can also do this using the NLB feature (network load balancing) to
spread the traffic to multiple servers.
maybe these options will helps you.
<lance.sanchez@.gmail.com> wrote in message
news:1190052200.309137.245860@.d55g2000hsg.googlegroups.com...
> Were working on a classic asp app and are trying to implement some
> reports through reporting service. I have a few questions.
> First the application were working on will have multiple instances, so
> one a single server there can be upto 15 identical apps connecting to
> different databases, is there a way to have reporting service limit
> what data source reporting service can access depending on what IIS
> website/application pool the browsers are accessing?
> Badgers.servername.com/reportserver should open the reports with the
> badgers db
> Squirrels.servername.com/reportserver db=squirrels
> Servername.com:54333 db=badgers
> Servername.com:54334 db=squirrels
>|||Correct.
I really recommend that you stay away from your outer join technique. You
need to limit the amount of data that is rendered. Subreports is really the
way to go. Also, consider changing your design that you don't show all the
data at once and instead use drill through. I.e. you create a link, they
click on the link if they want additional data (just make the text of the
field to click on blue and underline, users are used to clicking on that
visual clue) they click on it. I think the idea of showing everything is a
holdover from older reporting solutions. RS is ideal for showing just the
data you need to see and then click on a link for additional data. It is
very easy to do (jump to report action) and very fast way of showing the
data.
Bruce Loehle-Conger
MVP SQL Server Reporting Services
<lance.sanchez@.gmail.com> wrote in message
news:1190069078.994657.163370@.w3g2000hsg.googlegroups.com...
> never mind, i'm going through olderposts and I do belive someone else
> was trying to do the same thing and you said data regions cannot do a
> parent child relationship that I need.
> On Sep 17, 3:22 pm, "lance.sanc...@.gmail.com"
> <lance.sanc...@.gmail.com> wrote:
>> Thank you once again, no the reports and the database are on the same
>> server and we are using forms based authentication, or i should say we
>> will be when i implement it.
>> one last question if you don't mind. i'm working some some complex
>> layouts that i have only been able to accomplish with sub reports, is
>> there a way to pass a parameter from a list object into a dataset?
>> hmm, i'm not happy with that question, let me give an example. we have
>> a root table, it has many tables that are related to it with a foreign
>> key. I have found that when trying to do it with a single report (a
>> single query with outer joins) that reporting services runs out of
>> memory when there are 20-30 tables all returning rows (and the unique
>> attribute set on the tables in reporting services), a way to get
>> around this has been to make sub reports that I pass the ID from the
>> root table to and have it render the page, but this is taking a Large
>> number of sub reports and i fear there is a lot of room for an error.
>> so instead of passing the ID to another report can it be passed to a
>> record set thats runs an additional query per ID?
>> On Sep 17, 2:02 pm, "Bruce L-C [MVP]" <bruce_lcNOS...@.hotmail.com>
>> wrote:
>> > You are getting into a complicated environment. If your asp
>> > applications are
>> > on a different server than RS you are going to run into the double hop
>> > problem. That is a windows issue where someone who is recognized by
>> > your web
>> > app as one person then is not recognized when credentials hop from one
>> > server to another. This requires kerboros to work. I am just giving you
>> > a
>> > heads up. This is only an issue if you are using integrated security.
>> > If you
>> > are using forms based security (i.e. role your own credentials) then it
>> > is
>> > not an issue.
>> > A parameter can be hidden so if someone goes directly to report manager
>> > (portal for RS) they will not see the parameter. OR, you can also tie
>> > the
>> > report to the user. RS has a global variable called userid that gives
>> > the
>> > domain and userid of the user running the report. You could use this to
>> > only
>> > allow users to see the data they should.
>> > --
>> > Bruce Loehle-Conger
>> > MVP SQL Server Reporting Services
>> > <lance.sanc...@.gmail.com> wrote in message
>> >news:1190054179.058425.32890@.50g2000hsm.googlegroups.com...
>> > > Thank you, is there a way to tie it into the IIS session so someone
>> > > would generate an error if they tried to change the parameter to
>> > > something else?
>> > > On Sep 17, 11:29 am, "Bruce L-C [MVP]" <bruce_lcNOS...@.hotmail.com>
>> > > wrote:
>> > >> Not automatically but you can pass a parameter that is used by your
>> > >> report
>> > >> to use the appropriate datasource.
>> > >> In RS 2005 you can use an expression for your data source. Which if
>> > >> you
>> > >> write your reports to expect a parameter (say DBParam) then you can
>> > >> do
>> > >> exactly what you want. From Books OnLine:
>> > >> Data Source Expressions
>> > >> You can put an expression into a connection string to allow users to
>> > >> select
>> > >> the data source at run time. For example, suppose a multinational
>> > >> firm
>> > >> has
>> > >> data servers in several countries. With an expression-based
>> > >> connection
>> > >> string, a user who is running a sales report can select a data
>> > >> source for
>> > >> a
>> > >> particular country before running the report.
>> > >> The following example illustrates the use of a data source
>> > >> expression in
>> > >> a
>> > >> SQL Server connection string. The example assumes you have created a
>> > >> report
>> > >> parameter named ServerName:
>> > >> Copy Code
>> > >> ="data source=" & Parameters!ServerName.Value & ";initial
>> > >> catalog=AdventureWorks
>> > >> Data source expressions are processed at run time or when a report
>> > >> is
>> > >> previewed. The expression must be written in Visual Basic. Use the
>> > >> following
>> > >> guidelines when defining a data source expression:
>> > >> a.. Design the report using a static connection string. A static
>> > >> connection string refers to a connection string that is not set
>> > >> through
>> > >> an
>> > >> expression (for example, when you follow the steps for creating a
>> > >> report-specific or shared data source, you are defining a static
>> > >> connection
>> > >> string). Using a static connection string allows you to connect to
>> > >> the
>> > >> data
>> > >> source in Report Designer so that you can get the query results you
>> > >> need
>> > >> to
>> > >> create the report.
>> > >> b.. When defining the data source connection, do not use a shared
>> > >> data
>> > >> source. You cannot use a data source expression in a shared data
>> > >> source.
>> > >> You
>> > >> must define a report-specific data source for the report.
>> > >> c.. Specify credentials separately from the connection string. You
>> > >> can
>> > >> use
>> > >> stored credentials, prompted credentials, or integrated security.
>> > >> d.. Add a report parameter to specify a data source. For parameter
>> > >> values,
>> > >> you can either provide a static list of available values (in this
>> > >> case,
>> > >> the
>> > >> available values should be data sources you can use with the report)
>> > >> or
>> > >> define a query that retrieves a list of data sources at run time.
>> > >> e.. Be sure that the list of data sources shares the same database
>> > >> schema.
>> > >> All report design begins with schema information. If there is a
>> > >> mismatch
>> > >> between the schema used to define the report and the actual schema
>> > >> used
>> > >> by
>> > >> the report at run time, the report might not run.
>> > >> f.. Before publishing the report, replace the static connection
>> > >> string
>> > >> with an expression. Wait until you are finished designing the report
>> > >> before
>> > >> you replace the static connection string with an expression. Once
>> > >> you use
>> > >> an
>> > >> expression, you cannot execute the query in Report Designer.
>> > >> Furthermore,
>> > >> the field list in the Datasets window and the Parameters list will
>> > >> not
>> > >> update automatically.
>> > >> --
>> > >> Bruce Loehle-Conger
>> > >> MVP SQL Server Reporting Services
>> > >> <lance.sanc...@.gmail.com> wrote in message
>> > >>news:1190052200.309137.245860@.d55g2000hsg.googlegroups.com...
>> > >> > Were working on a classic asp app and are trying to implement some
>> > >> > reports through reporting service. I have a few questions.
>> > >> > First the application were working on will have multiple
>> > >> > instances, so
>> > >> > one a single server there can be upto 15 identical apps connecting
>> > >> > to
>> > >> > different databases, is there a way to have reporting service
>> > >> > limit
>> > >> > what data source reporting service can access depending on what
>> > >> > IIS
>> > >> > website/application pool the browsers are accessing?
>> > >> > Badgers.servername.com/reportserver should open the reports with
>> > >> > the
>> > >> > badgers db
>> > >> > Squirrels.servername.com/reportserver db=squirrels
>> > >> > Servername.com:54333 db=badgers
>> > >> > Servername.com:54334 db=squirrels
>> > >> begin 666 copycode.gif
>> > >> M1TE&.#EA#P`/`.9F`).BM[+"V*[$\(&NY:Z_U'.AWER,VIBKQBE4JIFLQ_S]
>> > >> M_LO/U)*P[8JN_,73\JFXSF2%R=;>[/;Y_>OO]BM7L6Z<VB)&CZ:]["!!AJ"Y
>> > >> M[VB7U9RPSM+;\9>FNZ.RR"-(EOGZ_")%CIRKP;+)\*[0_Z^^U#5EQ2E4K*FY
>> > >> MSX*?V,_9YM+6W9JMRFZ7YV".Y\S7[-'ZINOS)"JX+K:_^KO^R5,FR=0HIJN
>> > >> MRI:FN^;J\^#F\25-G25*F+_+W=+>\,#*X,+.Y/7V^[K%U/O]_B-'DG^G\_#T
>> > >> M^\?2X7.2T4=NNI_%^B%#B=OD]_?X^Z_#[?#R^)>IQ*K![XZX\"%#BIRUYZ*Q
>> > >> MQV:"I?#S^*.RQYJNS*O"[]/>]55YP2I7LW*:ZH6GZR=0I%MRC[[.\#5)8U&#
>> > >> MT?_______P``````````````````````````````````````````````````
>> > >> M`````````````````````````````````````````````````"'Y! $``&8`
>> > >> M+ `````/``\```>?@.&:"@.X2%AH>"`0$$! \>*X@.!99-E558+AR64"CA"89B%
>> > >> M*&4S)#X``EI1&0P,+X)8DR!/.0*495\F0&8B94I2`P47MEXC%#\="D$3.A%4
>> > >> M90T-'"Y=)V `3< 5&C*41DP.63L`5S J1STI944M!F1D-SP`8_/S2&5#-%MB
>> > >> F3@.E$AA!EVKDC<R"$(2X2-L1@.D> `E"6&DB! 8*/&!PM3, 0"`#L`
>> > >> `
>> > >> end
>

Reporting Service

I am trying to write a win app that will display the list of reports on a server that a given user id has access to. For example, if there are 150 reports on a server, how to tell which reports loginA has access to. I can get the list of reports, but I am not sure how to get the security information for each report. Anyone have any ideas?

R

Hi Ron,

Take a look at the ListChildren SOAP method. I believe it does exactly what you are looking for.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/rsprog/htm/rsp_ref_soapapi_service_lz_2yt2.asp

|||

I am using that, and I am getting the report listing. The trouble is I want to know what login has access to which reports. ListChildren doesn't do this and I am REALLY trying not to directly access the RS database. I am assuming that the Profile related tables have the info I want.

R

Saturday, February 25, 2012

Reporting Problem

my app uses MSSQL 2k + VB 6.0+Crystal Reports 4.6

ive a table of the form

table PIC
(
studentid smallint,
studentname varchar(50),
studentpic image
)

i want to generate an id card for the students using the info from this table, using Crystal reports

the problem is that the image is not displayed in the crystal report
all other fields are present

is this any problem with the image data type and crystal report?

i do welcome suggestions from ur end to tackle this problem
thanks in advanceIt's not a problem with the image data type. You need to "read" the contents of the field into a file and have an image placeholder on the CR designer to link it to the file at runtime.|||thanks for the information

but how can i generate the id cards of 100 students say, by this method

cud u pl tell how to read all images from DB and pass the filename to Crystal Reports, once i click 'Generate ID Cards' Button

regards

Tuesday, February 21, 2012

Reporting Manager - Not all buttons seem to work

I just installed the eval on a XP Pro machine and
everything seems to work fine except in certain places in
the web app. Buttons just don't seem to have a related
event for the onclick or onsubmit. If you click it
nothing happens.
Anyone else run across this?Hi Brian:
It could be the client side javascript files supporting ASP.NET are
not installed properly. Find and run 'aspnet_regiis.exe -c'
HTH,
--
Scott
http://www.OdeToCode.com/
On Fri, 8 Oct 2004 13:16:59 -0700, "Brian Fairchild"
<bfairchild@.NOSPAMintelemedia.com> wrote:
>I just installed the eval on a XP Pro machine and
>everything seems to work fine except in certain places in
>the web app. Buttons just don't seem to have a related
>event for the onclick or onsubmit. If you click it
>nothing happens.
>Anyone else run across this?