Showing posts with label services. Show all posts
Showing posts with label services. Show all posts

Wednesday, March 28, 2012

Hide dimension members which have no rows in fact table

When a cube is presented to the end user (thru Excel or Reporting services), I would like to limit the available dimension members to only those which have at least one row in fact table. This is to simplify what user sees as a list of choices under a dimension attribute/hierarchy and not be overwhelmed with all the dimension members for which no data may exist in reality in the fact table. Does Analysis Services 2005 have any easy way to accomplish this as part of UDM/Cube design?

Let me give you an example. Take "Locations" role playing dimension. In ocean transportation business, "Locations" are of different types such as Port of Load (sea-port), Port of Discharge (sea-port), Inland Point of origin, Inland Point of destination etc. Sea-ports are only few (5 to 10) where as inland locations are in thousands. The entire list of locations, which includes locations which may not have had any shipment booked till date, may be even bigger. To keep the ETL simple, we want to keep one central dimension table for all location roles. However, for cube query selection purposes, users want to see a simple and compact list of Port of Load locations for which bookings have been made (i.e., data exists in fact table with those Port Of Load locations) - for example.

One possible solution is... to use one view for each location role in the UDM and setup relationships from fact table column to these individual location views, where the view joins Location dimension table with the fact table to select only those locations that exist in the fact table. Is this a good approach? Will there be any performance impact in Cube processing or end user cube query performance because of using views like this (since view is run every time it is referenced on the fly to generate the result set)?

Another solution is... to have separate dimension tables for each location role with only those members that are used in fact table records. But this complicates the ETL due to lot of redundancy. Will it give any performance advantage since it uses a permanent table versus view in UDM (data source view)?

Please share your insights on the best ways of handling this problem in SQL Server 2005. Thank you!

Hello. The standard behaviour you are looking for is the standard behaviour in a TSQL inner join. So if you make a report in SSRS2005 and use TSQL with your data mart / data warehouse as a source, you will only see connected records in the dimensions and the fact table.

A cube is more like a crossjoin in TSQL. If you crossjoin two tables in TSQL you will get all combinations of members in the tables. This is standard behaviour in SSAS2005.

But within a dimension table in SSAS2005 you have a new feature, only within the dimension, called autoexist, that will only show combinations of members like a TSQL inner join of members. Within a dimension, in the previous version of SSAS (2000), you would get a TSQL-crossjoin of all members within a dimension.

If you combine sea-ports and inland destinations, in the same dimension(in SSAS2005), you will get an inner join of dimension member combinations(autoexists). If you put them as separate dimensions you will miss autoexist.

To reduce empty cells in the grid(in a SSAS2005 cube) you will have to add NonEmpty or Non Empty in MDX in order to not show empty cells. Many clients can help help you with this by having a button to hide empty rows and columns in the grid.

There are many more superior MDX experts, on this forum, that can explain this even further.

HTH

Thomas Ivarsson

|||

Hello. Auto exist does not have anything to do with data in the fact table. Auto exist is a dimensional concept only. Auto-exist only pertains to the attributes in the same dimension. If we separate the datasources (either using view or permanent table) for each location role dimension, then with in any single location role dimension, "auto exist" is still effective across the attributes of that dimension. My problem has to do with not wanting to see the dimension members if they (dimension key) are not present in the fact table data. Thanks for the reply. Appreciate it.

|||

I have tried to tell you about the behavior of Autoexist if you read my post carefully. You have also an explanation for the dimension and fact problem.

Autoexist is not new to me either.

Regards

Thomas Ivarsson

|||

Shan,

If I understand your requirement correctly, you have one Locations dimension table, but you use that single dimension within your UDM in different roles. In each of its roles, you want the dimension to have a different set of members based on whether or not the members exist within a related fact table or not. Is that correct?

If that is the case, then I believe your best option is to create different views (or named queries in the DSV) on top fo the Locations dimension table that handle the inner join to each related fact table. Then, in the UDM, set up separate dimensions on top of each view and relate each dimension to each fact table/measure group as appropriate.

There will be some performance implications to doing this. For example, you'll be running similar (or even the exact same) queries agains the Locations dimension table as you process each of the separate dimensions in the UDM. So, if you have a lot of them and/or if the joins to the fact tables within the views or named queries are expensive, you'll be adding processing time. Once processing is complete, however, I don't think query performance against any given measure group within the UDM will be any different than if you had a single dimension that was being used as a role-playing dimenision within the cube.

HTH,

Dave Fackler

|||

Dave,

That's correct summary of my requirement. We will proceed with this recommended solution. Thank you. I was not sure whether Analysis Services has some built-in support to meet this common need which does not require separating data sources (view or separate table) since that approach takes some additional work! Trying to find an easier or better way since this question applies to many dimension tables in our data warehouse (both simple and role playing dimensions)... :-) Now I understand that there is no such easy way (out of the box support).

If I am right, the added performance time you mentioned impacts the cube processing step time during ETL job run. That's okay.

sql

Hide dimension members which have no rows in fact table

When a cube is presented to the end user (thru Excel or Reporting services), I would like to limit the available dimension members to only those which have at least one row in fact table. This is to simplify what user sees as a list of choices under a dimension attribute/hierarchy and not be overwhelmed with all the dimension members for which no data may exist in reality in the fact table. Does Analysis Services 2005 have any easy way to accomplish this as part of UDM/Cube design?

Let me give you an example. Take "Locations" role playing dimension. In ocean transportation business, "Locations" are of different types such as Port of Load (sea-port), Port of Discharge (sea-port), Inland Point of origin, Inland Point of destination etc. Sea-ports are only few (5 to 10) where as inland locations are in thousands. The entire list of locations, which includes locations which may not have had any shipment booked till date, may be even bigger. To keep the ETL simple, we want to keep one central dimension table for all location roles. However, for cube query selection purposes, users want to see a simple and compact list of Port of Load locations for which bookings have been made (i.e., data exists in fact table with those Port Of Load locations) - for example.

One possible solution is... to use one view for each location role in the UDM and setup relationships from fact table column to these individual location views, where the view joins Location dimension table with the fact table to select only those locations that exist in the fact table. Is this a good approach? Will there be any performance impact in Cube processing or end user cube query performance because of using views like this (since view is run every time it is referenced on the fly to generate the result set)?

Another solution is... to have separate dimension tables for each location role with only those members that are used in fact table records. But this complicates the ETL due to lot of redundancy. Will it give any performance advantage since it uses a permanent table versus view in UDM (data source view)?

Please share your insights on the best ways of handling this problem in SQL Server 2005. Thank you!

Hello. The standard behaviour you are looking for is the standard behaviour in a TSQL inner join. So if you make a report in SSRS2005 and use TSQL with your data mart / data warehouse as a source, you will only see connected records in the dimensions and the fact table.

A cube is more like a crossjoin in TSQL. If you crossjoin two tables in TSQL you will get all combinations of members in the tables. This is standard behaviour in SSAS2005.

But within a dimension table in SSAS2005 you have a new feature, only within the dimension, called autoexist, that will only show combinations of members like a TSQL inner join of members. Within a dimension, in the previous version of SSAS (2000), you would get a TSQL-crossjoin of all members within a dimension.

If you combine sea-ports and inland destinations, in the same dimension(in SSAS2005), you will get an inner join of dimension member combinations(autoexists). If you put them as separate dimensions you will miss autoexist.

To reduce empty cells in the grid(in a SSAS2005 cube) you will have to add NonEmpty or Non Empty in MDX in order to not show empty cells. Many clients can help help you with this by having a button to hide empty rows and columns in the grid.

There are many more superior MDX experts, on this forum, that can explain this even further.

HTH

Thomas Ivarsson

|||

Hello. Auto exist does not have anything to do with data in the fact table. Auto exist is a dimensional concept only. Auto-exist only pertains to the attributes in the same dimension. If we separate the datasources (either using view or permanent table) for each location role dimension, then with in any single location role dimension, "auto exist" is still effective across the attributes of that dimension. My problem has to do with not wanting to see the dimension members if they (dimension key) are not present in the fact table data. Thanks for the reply. Appreciate it.

|||

I have tried to tell you about the behavior of Autoexist if you read my post carefully. You have also an explanation for the dimension and fact problem.

Autoexist is not new to me either.

Regards

Thomas Ivarsson

|||

Shan,

If I understand your requirement correctly, you have one Locations dimension table, but you use that single dimension within your UDM in different roles. In each of its roles, you want the dimension to have a different set of members based on whether or not the members exist within a related fact table or not. Is that correct?

If that is the case, then I believe your best option is to create different views (or named queries in the DSV) on top fo the Locations dimension table that handle the inner join to each related fact table. Then, in the UDM, set up separate dimensions on top of each view and relate each dimension to each fact table/measure group as appropriate.

There will be some performance implications to doing this. For example, you'll be running similar (or even the exact same) queries agains the Locations dimension table as you process each of the separate dimensions in the UDM. So, if you have a lot of them and/or if the joins to the fact tables within the views or named queries are expensive, you'll be adding processing time. Once processing is complete, however, I don't think query performance against any given measure group within the UDM will be any different than if you had a single dimension that was being used as a role-playing dimenision within the cube.

HTH,

Dave Fackler

|||

Dave,

That's correct summary of my requirement. We will proceed with this recommended solution. Thank you. I was not sure whether Analysis Services has some built-in support to meet this common need which does not require separating data sources (view or separate table) since that approach takes some additional work! Trying to find an easier or better way since this question applies to many dimension tables in our data warehouse (both simple and role playing dimensions)... :-) Now I understand that there is no such easy way (out of the box support).

If I am right, the added performance time you mentioned impacts the cube processing step time during ETL job run. That's okay.

Hide blank pages

Hi,
Can someone help me identifying a way to hide blank pages in Reporting
services 2000.
Thanks.On Mar 2, 11:15 am, Helpseeker <Helpsee...@.discussions.microsoft.com>
wrote:
> Hi,
> Can someone help me identifying a way to hide blank pages in Reporting
> services 2000.
> Thanks.
Do you mean when you export data? Please explain.
Enrique Martinez
Sr. SQL Server Developer|||In a report I am displaying data using table. And I am hiding the data using
some expression. What is happening is the table is hiding the data...but for
the records its hiding it is showing them as blank in blank pages following.
Like if there is data shown in first 3 pages... but actual data spans 10
pages...the remaining 7 pages are shown blank ('coz i am hiding it). Hope you
understand.
Bmanchi.
"EMartinez" wrote:
> On Mar 2, 11:15 am, Helpseeker <Helpsee...@.discussions.microsoft.com>
> wrote:
> > Hi,
> >
> > Can someone help me identifying a way to hide blank pages in Reporting
> > services 2000.
> >
> > Thanks.
>
> Do you mean when you export data? Please explain.
> Enrique Martinez
> Sr. SQL Server Developer
>

Monday, March 26, 2012

Hide a parameter

Using Report Manager (default viewer for Reporting Services) is possible to
choose one parameter to be hide. This hide parameter has a default value and
the user inform the others.
thanksHi Julio,
On the parameter property dialog you can uncheck the "Prompt user"
checkbox.
--
Scott
http://www.OdeToCode.com
On Tue, 3 Aug 2004 08:29:56 -0300, "Julio"
<julio.caldas@.brfree.com.br> wrote:
>Using Report Manager (default viewer for Reporting Services) is possible to
>choose one parameter to be hide. This hide parameter has a default value and
>the user inform the others.
>thanks
>

Hide / Disable Report Parameter

Hi

I am using reporting services 2005. (sql server 2005 Sp2).

I have two parameters on the reports. Both parameter are not related to each other.

If user selects first parameter value I want to Hide or Disable second parameter drop down.

Is it possible in Reporting services?

Thanks for everyone's help.

Regards

Swam

I am guessing a big NO

You could simply not use the 2nd parameter in the report

and have a text with "2nd parameter will not be used if 1st parameter is used"

|||

Swam wrote:

If user selects first parameter value I want to Hide or Disable second parameter drop down.

You can't do that, but what you can do is make the default value and even the *contents* of the second parameter dependant on what is selected in the first parameter. I would have the second dropdown default to null or an empty string if a value was selected in the first dropdown.

|||Thanks for your help..|||Thanks for your help....

Hidden Parameters in SQL Server 2000 Reporting Services.

Hi all,

I am having a problem. I know of hidden parameters in SQL 2005 RS, but I need to have this functionality as well for SQL 2000 RS. I read on the Net that MS SQL 2000 RS Service Pack 1 adds this functionality. I have installed SP4 for SQL 2000, then I installed RS SP1 on my laptop, but I don't see that functionality in VS 2003 Enterprise Architect. I even installed RS SP2 on my other machine, but still no joy. Am I missing something here or is Microsoft lying about this functionality? My client will be upgrading to SQL 2005 sometime in the near future (if they don't change their minds again), but I need to implement this kind of functionality now. I can't wait for them to upgrade to SQL 2005. This parameter I need to hide in the reports is necessary to ensure the reports show data by specific department. I'll implement it in such a way that when they call the report from the web application, I'll pass the departmentID to the report via the query string.

P.S. It is not possible for me to achieve this using JOINs in the queries. The parameter lists themselves depend on this value.

Thanks a lot in advance for this

Ciao,
Hi there everyone.

I found the "solution" to this problem. You cannot set the hidden property of a parameter from within visual studio 2003 for SQL 2000 RS. You'll have to set it using the Report Manager. This is done in the "Properties" section under "Parameters" for the specific report. There is a checkbox for "Prompt user" which must be de-selected and the parameter will be invisible. A user must then select a default value for the parameter (which can be changed using the querystring when the parameter is called from an application). The query prompt must also be made to null.

This, to me, is very silly. But at least that is the solution.

Hope this helps you guys out there.

Eduard K.
|||

Hi Eduard,

I was experiencing the same problem. The solution as proposed using the Report Manager works indeed. However, I have to update my reports quit frequently and dont want to go to the Report Manager each time I deploy my reports. So here is the solution.

First remove the parameter from your report and deploy it. (This clears the parameter on the report server)

Then create the parameter again but leave the Prompt in VS2003 for the parameter empty. Deploy the report.

Because the prompt field is empty the report server will create the parameter but (and I checked this after deploying) the checkbox 'Prompt user' for the parameter in question in unchecked.

I hope this helps you to

Greetz

sql

Hidden Parameters in SQL Server 2000 Reporting Services.

Hi all,

I am having a problem. I know of hidden parameters in SQL 2005 RS, but I need to have this functionality as well for SQL 2000 RS. I read on the Net that MS SQL 2000 RS Service Pack 1 adds this functionality. I have installed SP4 for SQL 2000, then I installed RS SP1 on my laptop, but I don't see that functionality in VS 2003 Enterprise Architect. I even installed RS SP2 on my other machine, but still no joy. Am I missing something here or is Microsoft lying about this functionality? My client will be upgrading to SQL 2005 sometime in the near future (if they don't change their minds again), but I need to implement this kind of functionality now. I can't wait for them to upgrade to SQL 2005. This parameter I need to hide in the reports is necessary to ensure the reports show data by specific department. I'll implement it in such a way that when they call the report from the web application, I'll pass the departmentID to the report via the query string.

P.S. It is not possible for me to achieve this using JOINs in the queries. The parameter lists themselves depend on this value.

Thanks a lot in advance for this

Ciao,
Hi there everyone.

I found the "solution" to this problem. You cannot set the hidden property of a parameter from within visual studio 2003 for SQL 2000 RS. You'll have to set it using the Report Manager. This is done in the "Properties" section under "Parameters" for the specific report. There is a checkbox for "Prompt user" which must be de-selected and the parameter will be invisible. A user must then select a default value for the parameter (which can be changed using the querystring when the parameter is called from an application). The query prompt must also be made to null.

This, to me, is very silly. But at least that is the solution.

Hope this helps you guys out there.

Eduard K.
|||

Hi Eduard,

I was experiencing the same problem. The solution as proposed using the Report Manager works indeed. However, I have to update my reports quit frequently and dont want to go to the Report Manager each time I deploy my reports. So here is the solution.

First remove the parameter from your report and deploy it. (This clears the parameter on the report server)

Then create the parameter again but leave the Prompt in VS2003 for the parameter empty. Deploy the report.

Because the prompt field is empty the report server will create the parameter but (and I checked this after deploying) the checkbox 'Prompt user' for the parameter in question in unchecked.

I hope this helps you to

Greetz

Monday, February 27, 2012

Help: SQL Server 2K draginng system down?

Hello, apologies if this is the wrong place to post this.
We've got a dev server which is supporting multiple services for
testing. It is primarily doing AD, DNS, and recently SQL Server 2000.
Although I cannot be certain, I believe since SQL Server 2000 was
installed these symptoms begain happening. The server it resides on
after a period of several days to a week becomes unresponsive. File
sharing throughput becomes slowed down, terminal services ceases
accepting connections, the server itself when logged into at the console
is very sluggish with responding to input. The mouse(USB) pointer is
lagged even. OS is Win2K Server.
The server is not under high load, as it is a development box but we are
concerned it may happen elsewhere if deployed.
Has anyone else had this happen and have they found a solution to it?
Thanks
JasonFirst question is do you have service pack 3 on the box? If not you may be
the recipient of the slammer.
--
Ray Higdon MCSE, MCDBA, CCNA
--
"Jason Coleman" <jcoleman2004@.comcast.net> wrote in message
news:MPG.19e8c1841bd78037989683@.news.microsoft.com...
> Hello, apologies if this is the wrong place to post this.
> We've got a dev server which is supporting multiple services for
> testing. It is primarily doing AD, DNS, and recently SQL Server 2000.
> Although I cannot be certain, I believe since SQL Server 2000 was
> installed these symptoms begain happening. The server it resides on
> after a period of several days to a week becomes unresponsive. File
> sharing throughput becomes slowed down, terminal services ceases
> accepting connections, the server itself when logged into at the console
> is very sluggish with responding to input. The mouse(USB) pointer is
> lagged even. OS is Win2K Server.
> The server is not under high load, as it is a development box but we are
> concerned it may happen elsewhere if deployed.
> Has anyone else had this happen and have they found a solution to it?
> Thanks
> Jason|||Yeah make sure you have SP3... I've got a small server at home, Active
Directory, Domain Controller, DNS, DHCP, Internet Portal, SQL Server, you
name it... - all fine for a limited number of users.
--
Wayne Snyder, MCDBA, SQL Server MVP
Computer Education Services Corporation (CESC), Charlotte, NC
www.computeredservices.com
(Please respond only to the newsgroups.)
I support the Professional Association of SQL Server (PASS) and it's
community of SQL Server professionals.
www.sqlpass.org
"Jason Coleman" <jcoleman2004@.comcast.net> wrote in message
news:MPG.19e8c1841bd78037989683@.news.microsoft.com...
> Hello, apologies if this is the wrong place to post this.
> We've got a dev server which is supporting multiple services for
> testing. It is primarily doing AD, DNS, and recently SQL Server 2000.
> Although I cannot be certain, I believe since SQL Server 2000 was
> installed these symptoms begain happening. The server it resides on
> after a period of several days to a week becomes unresponsive. File
> sharing throughput becomes slowed down, terminal services ceases
> accepting connections, the server itself when logged into at the console
> is very sluggish with responding to input. The mouse(USB) pointer is
> lagged even. OS is Win2K Server.
> The server is not under high load, as it is a development box but we are
> concerned it may happen elsewhere if deployed.
> Has anyone else had this happen and have they found a solution to it?
> Thanks
> Jason|||In article <#8QuHZriDHA.1940@.TK2MSFTNGP09.phx.gbl>,
rayhigdon@.higdonconsulting.com says...
> First question is do you have service pack 3 on the box? If not you may be
> the recipient of the slammer.
>
Sorry.
Yep, Windows is patched to SP4, SQL Server is patched to 3. Of course I
don't have any solid evidence that SQL Server is actually what caused
the problem either. I just suspect it is.
Thanks,
Jason

HELP: REPORTING SERVICES Pie Chart Point Label Formatting

I'm trying to complete a report with a few pie charts. these charts need to show the category, the associated revenue, and the % of total. I can get the first two but am having a problem with trying to add the % to the label. This is the only show-stopper for my report.

thanks

You can calculate the percentage by using an expression for the data point label. E.g. =Sum(Fields!Sales.Value) / Sum(Fields!Sales.Value, "ChartName")

See attached sample report.

-- Robert

==================================

<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2003/10/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
<RightMargin>1in</RightMargin>
<Body>
<ReportItems>
<Matrix Name="matrix1">
<Corner>
<ReportItems>
<Textbox Name="textbox1">
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<PaddingTop>2pt</PaddingTop>
<PaddingRight>2pt</PaddingRight>
</Style>
<ZIndex>4</ZIndex>
<rd:DefaultName>textbox1</rd:DefaultName>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</Corner>
<Height>0.5in</Height>
<ZIndex>1</ZIndex>
<Style />
<MatrixRows>
<MatrixRow>
<MatrixCells>
<MatrixCell>
<ReportItems>
<Textbox Name="Sales">
<Style>
<PaddingLeft>2pt</PaddingLeft>
<Format>C</Format>
<TextAlign>Right</TextAlign>
<PaddingBottom>2pt</PaddingBottom>
<PaddingTop>2pt</PaddingTop>
<PaddingRight>2pt</PaddingRight>
</Style>
<rd:DefaultName>Sales</rd:DefaultName>
<CanGrow>true</CanGrow>
<Value>=Sum(Fields!Sales.Value)</Value>
</Textbox>
</ReportItems>
</MatrixCell>
</MatrixCells>
<Height>0.25in</Height>
</MatrixRow>
</MatrixRows>
<MatrixColumns>
<MatrixColumn>
<Width>1.125in</Width>
</MatrixColumn>
</MatrixColumns>
<DataSetName>DataSet1</DataSetName>
<ColumnGroupings>
<ColumnGrouping>
<DynamicColumns>
<Grouping Name="matrix1_ProdCat">
<GroupExpressions>
<GroupExpression>=Fields!ProdCat.Value</GroupExpression>
</GroupExpressions>
</Grouping>
<ReportItems>
<Textbox Name="ProdCat">
<Style>
<PaddingLeft>2pt</PaddingLeft>
<TextAlign>Right</TextAlign>
<PaddingBottom>2pt</PaddingBottom>
<PaddingTop>2pt</PaddingTop>
<PaddingRight>2pt</PaddingRight>
</Style>
<ZIndex>3</ZIndex>
<rd:DefaultName>ProdCat</rd:DefaultName>
<CanGrow>true</CanGrow>
<Value>=Fields!ProdCat.Value</Value>
</Textbox>
</ReportItems>
</DynamicColumns>
<Height>0.25in</Height>
</ColumnGrouping>
</ColumnGroupings>
<Width>3.125in</Width>
<Top>4.5in</Top>
<RowGroupings>
<RowGrouping>
<DynamicRows>
<Grouping Name="matrix1_OrderYear">
<GroupExpressions>
<GroupExpression>=Fields!OrderYear.Value</GroupExpression>
</GroupExpressions>
</Grouping>
<ReportItems>
<Textbox Name="OrderYear">
<Style>
<PaddingLeft>2pt</PaddingLeft>
<TextAlign>Right</TextAlign>
<PaddingBottom>2pt</PaddingBottom>
<PaddingTop>2pt</PaddingTop>
<PaddingRight>2pt</PaddingRight>
</Style>
<ZIndex>2</ZIndex>
<rd:DefaultName>OrderYear</rd:DefaultName>
<CanGrow>true</CanGrow>
<Value>=Fields!OrderYear.Value</Value>
</Textbox>
</ReportItems>
</DynamicRows>
<Width>1in</Width>
</RowGrouping>
<RowGrouping>
<DynamicRows>
<Grouping Name="matrix1_OrderQtr">
<GroupExpressions>
<GroupExpression>=Fields!OrderQtr.Value</GroupExpression>
</GroupExpressions>
</Grouping>
<ReportItems>
<Textbox Name="OrderQtr">
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<PaddingTop>2pt</PaddingTop>
<PaddingRight>2pt</PaddingRight>
</Style>
<ZIndex>1</ZIndex>
<rd:DefaultName>OrderQtr</rd:DefaultName>
<CanGrow>true</CanGrow>
<Value>=Fields!OrderQtr.Value</Value>
</Textbox>
</ReportItems>
</DynamicRows>
<Width>1in</Width>
</RowGrouping>
</RowGroupings>
</Matrix>
<Chart Name="SalesChart">
<ThreeDProperties>
<Rotation>30</Rotation>
<Inclination>30</Inclination>
<Shading>Simple</Shading>
<WallThickness>50</WallThickness>
</ThreeDProperties>
<Style />
<Legend>
<Visible>true</Visible>
<Style />
<Position>BottomCenter</Position>
<Layout>Table</Layout>
</Legend>
<Palette>Default</Palette>
<ChartData>
<ChartSeries>
<DataPoints>
<DataPoint>
<DataValues>
<DataValue>
<Value>=Sum(Fields!Sales.Value)</Value>
</DataValue>
</DataValues>
<DataLabel>
<Style>
<Format>P2</Format>
</Style>
<Value>=iif( Sum(Fields!Sales.Value)/Sum(Fields!Sales.Value,"SalesChart") &lt; 0.03, " ", Sum(Fields!Sales.Value)/Sum(Fields!Sales.Value,"SalesChart"))</Value>
<Position>Top</Position>
<Visible>true</Visible>
</DataLabel>
<Style>
<BorderWidth>
<Default>=iif( Sum(Fields!Sales.Value)/Sum(Fields!Sales.Value,"SalesChart") &lt; 0.03, "0.5 pt", "1 pt")</Default>
</BorderWidth>
<BorderStyle>
<Default>Solid</Default>
</BorderStyle>
</Style>
<Marker>
<Size>6pt</Size>
</Marker>
</DataPoint>
</DataPoints>
</ChartSeries>
</ChartData>
<CategoryAxis>
<Axis>
<Title>
<Style />
</Title>
<Style />
<MajorGridLines>
<ShowGridLines>true</ShowGridLines>
<Style />
</MajorGridLines>
<MinorGridLines>
<Style />
</MinorGridLines>
<Margin>true</Margin>
<Visible>true</Visible>
</Axis>
</CategoryAxis>
<DataSetName>DataSet1</DataSetName>
<PointWidth>0</PointWidth>
<Type>Pie</Type>
<Title>
<Style />
</Title>
<CategoryGroupings>
<CategoryGrouping>
<DynamicCategories>
<Grouping Name="newChart1_CategoryGroup1">
<GroupExpressions>
<GroupExpression>=Fields!ProdCat.Value</GroupExpression>
</GroupExpressions>
</Grouping>
<Label>=Fields!ProdCat.Value</Label>
</DynamicCategories>
</CategoryGrouping>
<CategoryGrouping>
<DynamicCategories>
<Grouping Name="newChart1_CategoryGroup2">
<GroupExpressions>
<GroupExpression>=Fields!OrderYear.Value</GroupExpression>
</GroupExpressions>
</Grouping>
<Label />
</DynamicCategories>
</CategoryGrouping>
</CategoryGroupings>
<Height>4.375in</Height>
<Subtype>Plain</Subtype>
<PlotArea>
<Style />
</PlotArea>
<ValueAxis>
<Axis>
<Title>
<Style />
</Title>
<Style />
<MajorGridLines>
<ShowGridLines>true</ShowGridLines>
<Style />
</MajorGridLines>
<MinorGridLines>
<Style />
</MinorGridLines>
<Scalar>true</Scalar>
</Axis>
</ValueAxis>
</Chart>
</ReportItems>
<Style />
<Height>5.5in</Height>
</Body>
<TopMargin>1in</TopMargin>
<DataSources>
<DataSource Name="AdventureWorks2000">
<rd:DataSourceID>78faf15d-b746-4b6a-8f10-86ed6ddf1787</rd:DataSourceID>
<ConnectionProperties>
<DataProvider>SQL</DataProvider>
<ConnectString>data source=(local);initial catalog=AdventureWorks2000</ConnectString>
<IntegratedSecurity>true</IntegratedSecurity>
</ConnectionProperties>
</DataSource>
</DataSources>
<Width>7in</Width>
<DataSets>
<DataSet Name="DataSet1">
<Fields>
<Field Name="ProdCat">
<DataField>ProdCat</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="SubCat">
<DataField>SubCat</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="OrderYear">
<DataField>OrderYear</DataField>
<rd:TypeName>System.Int32</rd:TypeName>
</Field>
<Field Name="OrderQtr">
<DataField>OrderQtr</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="Sales">
<DataField>Sales</DataField>
<rd:TypeName>System.Decimal</rd:TypeName>
</Field>
</Fields>
<Query>
<DataSourceName>AdventureWorks2000</DataSourceName>
<CommandText>SELECT ProductCategory.Name AS ProdCat, ProductSubCategory.Name AS SubCat, DATEPART(yy, SalesOrderHeader.OrderDate) AS OrderYear,
'Q' + DATENAME(qq, SalesOrderHeader.OrderDate) AS OrderQtr, SUM(SalesOrderDetail.UnitPrice * SalesOrderDetail.OrderQty) AS Sales
FROM ProductSubCategory INNER JOIN
SalesOrderHeader INNER JOIN
SalesOrderDetail ON SalesOrderHeader.SalesOrderID = SalesOrderDetail.SalesOrderID INNER JOIN
Product ON SalesOrderDetail.ProductID = Product.ProductID ON
ProductSubCategory.ProductSubCategoryID = Product.ProductSubCategoryID INNER JOIN
ProductCategory ON ProductSubCategory.ProductCategoryID = ProductCategory.ProductCategoryID
WHERE (SalesOrderHeader.OrderDate BETWEEN '1/1/2002' AND '12/31/2003')
GROUP BY DATEPART(yy, SalesOrderHeader.OrderDate), ProductCategory.Name, ProductSubCategory.Name, 'Q' + DATENAME(qq,
SalesOrderHeader.OrderDate), ProductSubCategory.ProductSubCategoryID</CommandText>
<Timeout>30</Timeout>
</Query>
</DataSet>
</DataSets>
<LeftMargin>1in</LeftMargin>
<rd:SnapToGrid>true</rd:SnapToGrid>
<rd:DrawGrid>true</rd:DrawGrid>
<rd:ReportID>9059fe01-2a5d-4d68-bfd9-2a49ccc184e6</rd:ReportID>
<BottomMargin>1in</BottomMargin>
</Report>

|||Robert, thanks for the input. will use immediately.|||

Thanks Robert

Its work for me too

HELP: REPORTING SERVICES Pie Chart Point Label Formatting

I'm trying to complete a report with a few pie charts. these charts need to show the category, the associated revenue, and the % of total. I can get the first two but am having a problem with trying to add the % to the label. This is the only show-stopper for my report.

thanks

You can calculate the percentage by using an expression for the data point label. E.g. =Sum(Fields!Sales.Value) / Sum(Fields!Sales.Value, "ChartName")

See attached sample report.

-- Robert

==================================

<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2003/10/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
<RightMargin>1in</RightMargin>
<Body>
<ReportItems>
<Matrix Name="matrix1">
<Corner>
<ReportItems>
<Textbox Name="textbox1">
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<PaddingTop>2pt</PaddingTop>
<PaddingRight>2pt</PaddingRight>
</Style>
<ZIndex>4</ZIndex>
<rd:DefaultName>textbox1</rd:DefaultName>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</Corner>
<Height>0.5in</Height>
<ZIndex>1</ZIndex>
<Style />
<MatrixRows>
<MatrixRow>
<MatrixCells>
<MatrixCell>
<ReportItems>
<Textbox Name="Sales">
<Style>
<PaddingLeft>2pt</PaddingLeft>
<Format>C</Format>
<TextAlign>Right</TextAlign>
<PaddingBottom>2pt</PaddingBottom>
<PaddingTop>2pt</PaddingTop>
<PaddingRight>2pt</PaddingRight>
</Style>
<rd:DefaultName>Sales</rd:DefaultName>
<CanGrow>true</CanGrow>
<Value>=Sum(Fields!Sales.Value)</Value>
</Textbox>
</ReportItems>
</MatrixCell>
</MatrixCells>
<Height>0.25in</Height>
</MatrixRow>
</MatrixRows>
<MatrixColumns>
<MatrixColumn>
<Width>1.125in</Width>
</MatrixColumn>
</MatrixColumns>
<DataSetName>DataSet1</DataSetName>
<ColumnGroupings>
<ColumnGrouping>
<DynamicColumns>
<Grouping Name="matrix1_ProdCat">
<GroupExpressions>
<GroupExpression>=Fields!ProdCat.Value</GroupExpression>
</GroupExpressions>
</Grouping>
<ReportItems>
<Textbox Name="ProdCat">
<Style>
<PaddingLeft>2pt</PaddingLeft>
<TextAlign>Right</TextAlign>
<PaddingBottom>2pt</PaddingBottom>
<PaddingTop>2pt</PaddingTop>
<PaddingRight>2pt</PaddingRight>
</Style>
<ZIndex>3</ZIndex>
<rd:DefaultName>ProdCat</rd:DefaultName>
<CanGrow>true</CanGrow>
<Value>=Fields!ProdCat.Value</Value>
</Textbox>
</ReportItems>
</DynamicColumns>
<Height>0.25in</Height>
</ColumnGrouping>
</ColumnGroupings>
<Width>3.125in</Width>
<Top>4.5in</Top>
<RowGroupings>
<RowGrouping>
<DynamicRows>
<Grouping Name="matrix1_OrderYear">
<GroupExpressions>
<GroupExpression>=Fields!OrderYear.Value</GroupExpression>
</GroupExpressions>
</Grouping>
<ReportItems>
<Textbox Name="OrderYear">
<Style>
<PaddingLeft>2pt</PaddingLeft>
<TextAlign>Right</TextAlign>
<PaddingBottom>2pt</PaddingBottom>
<PaddingTop>2pt</PaddingTop>
<PaddingRight>2pt</PaddingRight>
</Style>
<ZIndex>2</ZIndex>
<rd:DefaultName>OrderYear</rd:DefaultName>
<CanGrow>true</CanGrow>
<Value>=Fields!OrderYear.Value</Value>
</Textbox>
</ReportItems>
</DynamicRows>
<Width>1in</Width>
</RowGrouping>
<RowGrouping>
<DynamicRows>
<Grouping Name="matrix1_OrderQtr">
<GroupExpressions>
<GroupExpression>=Fields!OrderQtr.Value</GroupExpression>
</GroupExpressions>
</Grouping>
<ReportItems>
<Textbox Name="OrderQtr">
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<PaddingTop>2pt</PaddingTop>
<PaddingRight>2pt</PaddingRight>
</Style>
<ZIndex>1</ZIndex>
<rd:DefaultName>OrderQtr</rd:DefaultName>
<CanGrow>true</CanGrow>
<Value>=Fields!OrderQtr.Value</Value>
</Textbox>
</ReportItems>
</DynamicRows>
<Width>1in</Width>
</RowGrouping>
</RowGroupings>
</Matrix>
<Chart Name="SalesChart">
<ThreeDProperties>
<Rotation>30</Rotation>
<Inclination>30</Inclination>
<Shading>Simple</Shading>
<WallThickness>50</WallThickness>
</ThreeDProperties>
<Style />
<Legend>
<Visible>true</Visible>
<Style />
<Position>BottomCenter</Position>
<Layout>Table</Layout>
</Legend>
<Palette>Default</Palette>
<ChartData>
<ChartSeries>
<DataPoints>
<DataPoint>
<DataValues>
<DataValue>
<Value>=Sum(Fields!Sales.Value)</Value>
</DataValue>
</DataValues>
<DataLabel>
<Style>
<Format>P2</Format>
</Style>
<Value>=iif( Sum(Fields!Sales.Value)/Sum(Fields!Sales.Value,"SalesChart") &lt; 0.03, " ", Sum(Fields!Sales.Value)/Sum(Fields!Sales.Value,"SalesChart"))</Value>
<Position>Top</Position>
<Visible>true</Visible>
</DataLabel>
<Style>
<BorderWidth>
<Default>=iif( Sum(Fields!Sales.Value)/Sum(Fields!Sales.Value,"SalesChart") &lt; 0.03, "0.5 pt", "1 pt")</Default>
</BorderWidth>
<BorderStyle>
<Default>Solid</Default>
</BorderStyle>
</Style>
<Marker>
<Size>6pt</Size>
</Marker>
</DataPoint>
</DataPoints>
</ChartSeries>
</ChartData>
<CategoryAxis>
<Axis>
<Title>
<Style />
</Title>
<Style />
<MajorGridLines>
<ShowGridLines>true</ShowGridLines>
<Style />
</MajorGridLines>
<MinorGridLines>
<Style />
</MinorGridLines>
<Margin>true</Margin>
<Visible>true</Visible>
</Axis>
</CategoryAxis>
<DataSetName>DataSet1</DataSetName>
<PointWidth>0</PointWidth>
<Type>Pie</Type>
<Title>
<Style />
</Title>
<CategoryGroupings>
<CategoryGrouping>
<DynamicCategories>
<Grouping Name="newChart1_CategoryGroup1">
<GroupExpressions>
<GroupExpression>=Fields!ProdCat.Value</GroupExpression>
</GroupExpressions>
</Grouping>
<Label>=Fields!ProdCat.Value</Label>
</DynamicCategories>
</CategoryGrouping>
<CategoryGrouping>
<DynamicCategories>
<Grouping Name="newChart1_CategoryGroup2">
<GroupExpressions>
<GroupExpression>=Fields!OrderYear.Value</GroupExpression>
</GroupExpressions>
</Grouping>
<Label />
</DynamicCategories>
</CategoryGrouping>
</CategoryGroupings>
<Height>4.375in</Height>
<Subtype>Plain</Subtype>
<PlotArea>
<Style />
</PlotArea>
<ValueAxis>
<Axis>
<Title>
<Style />
</Title>
<Style />
<MajorGridLines>
<ShowGridLines>true</ShowGridLines>
<Style />
</MajorGridLines>
<MinorGridLines>
<Style />
</MinorGridLines>
<Scalar>true</Scalar>
</Axis>
</ValueAxis>
</Chart>
</ReportItems>
<Style />
<Height>5.5in</Height>
</Body>
<TopMargin>1in</TopMargin>
<DataSources>
<DataSource Name="AdventureWorks2000">
<rd:DataSourceID>78faf15d-b746-4b6a-8f10-86ed6ddf1787</rd:DataSourceID>
<ConnectionProperties>
<DataProvider>SQL</DataProvider>
<ConnectString>data source=(local);initial catalog=AdventureWorks2000</ConnectString>
<IntegratedSecurity>true</IntegratedSecurity>
</ConnectionProperties>
</DataSource>
</DataSources>
<Width>7in</Width>
<DataSets>
<DataSet Name="DataSet1">
<Fields>
<Field Name="ProdCat">
<DataField>ProdCat</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="SubCat">
<DataField>SubCat</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="OrderYear">
<DataField>OrderYear</DataField>
<rd:TypeName>System.Int32</rd:TypeName>
</Field>
<Field Name="OrderQtr">
<DataField>OrderQtr</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="Sales">
<DataField>Sales</DataField>
<rd:TypeName>System.Decimal</rd:TypeName>
</Field>
</Fields>
<Query>
<DataSourceName>AdventureWorks2000</DataSourceName>
<CommandText>SELECT ProductCategory.Name AS ProdCat, ProductSubCategory.Name AS SubCat, DATEPART(yy, SalesOrderHeader.OrderDate) AS OrderYear,
'Q' + DATENAME(qq, SalesOrderHeader.OrderDate) AS OrderQtr, SUM(SalesOrderDetail.UnitPrice * SalesOrderDetail.OrderQty) AS Sales
FROM ProductSubCategory INNER JOIN
SalesOrderHeader INNER JOIN
SalesOrderDetail ON SalesOrderHeader.SalesOrderID = SalesOrderDetail.SalesOrderID INNER JOIN
Product ON SalesOrderDetail.ProductID = Product.ProductID ON
ProductSubCategory.ProductSubCategoryID = Product.ProductSubCategoryID INNER JOIN
ProductCategory ON ProductSubCategory.ProductCategoryID = ProductCategory.ProductCategoryID
WHERE (SalesOrderHeader.OrderDate BETWEEN '1/1/2002' AND '12/31/2003')
GROUP BY DATEPART(yy, SalesOrderHeader.OrderDate), ProductCategory.Name, ProductSubCategory.Name, 'Q' + DATENAME(qq,
SalesOrderHeader.OrderDate), ProductSubCategory.ProductSubCategoryID</CommandText>
<Timeout>30</Timeout>
</Query>
</DataSet>
</DataSets>
<LeftMargin>1in</LeftMargin>
<rd:SnapToGrid>true</rd:SnapToGrid>
<rd:DrawGrid>true</rd:DrawGrid>
<rd:ReportID>9059fe01-2a5d-4d68-bfd9-2a49ccc184e6</rd:ReportID>
<BottomMargin>1in</BottomMargin>
</Report>

|||Robert, thanks for the input. will use immediately.|||

Thanks Robert

Its work for me too

Friday, February 24, 2012

Help: I can open my database in Management Studio, but can't connect it in Integration Services

Received error tip:

An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

I'm using the Evaluation Edition of SQL Server 2005, Windows XP SP2 Home Edition.

I have disabled the firewall.

You need to enable remote connections:

http://www.sqlserver2005.de/Sharedfiles/remoteconnection.jpg

HTH, Jens Suessmeyer.


http://www.sqlserver2005.de

|||

Yes, I have enable remote connections, but still wrong.

Can the Home Edition of Windows XP support SQL Server?

|||

Hi, only the developer edition and the express edition are supposed to work on Windows XP Home (as of the offical system requirements, didn′t tested that out yet). Let me hear some feedback if that worked for you.

HTH, Jens Suessmeyer.


http://www.sqlserver2005.de

|||I have installed SQL Server Evaluation Edition on Windows XP Home Edition. It can work. In the Management Studio, the database can be opened and executed. The only one problem is that in the reporting services, the database can't be connetcted.

HELP: How to do batch PDF printing using reporting services?

HELP: How to do batch PDF printing using reporting services?
Any advice greatly appreciated.
cheers,
jordan.WHat a subscription to push out the Report as a report PDF File or write
your own program to trigger the WEBAPI to write the Report in a configurable
(in your application) folder.
HTH, Jens Süßmeyer.
--
http://www.sqlserver2005.de
--
"Jordan Tan" <jordantan@.msn.com> schrieb im Newsbeitrag
news:urdQHFjRFHA.204@.TK2MSFTNGP15.phx.gbl...
> HELP: How to do batch PDF printing using reporting services?
> Any advice greatly appreciated.
> cheers,
> jordan.
>

HELP: How to delete a user from Reporting Services?

I have the following problem.
The system setup is as follows.
IIS and sqlserver are on the same server and I'm using windows integrated
security.
I initially created a windows login user (userA).
I then in the reporting services(RS) admin area, set the security permissions
for a directory(Dir1). The permissions were, userA is a member of the
browser role and the directory was set to the browser role.
Everything worked as it should at that point.
I then wanted to delete userA from the server. So i delete userA from the
'local users and groups' admin area in the control panel on the server.
This is when I started to have problems.
When I go back into RS to administor permissions, I tried to ammend the
'browser role' permissions for Dir1. When I try to save the changes the
following error is displayed.
'The user or group name 'userA' is not recognized. (rsUnknownUserName) '
Its seems that userA is still registered in RS.
Logically I understand why, I've only deleted userA from windows, not from RS.
My question is , How do I completely delete userA from RS.
I noticed a users table in the RS database but there are numerous other
tables which could have entries refering to userA.
Is there a way to be sure all references to userA are deleted.
The only way I could get round this was to re-generate userA as a windows
user and disable it.
This is not an ideal solution as I do not wish to have numerous disabled
windows login users.
Any suggestions would be gratefully received.
--
Message posted via http://www.sqlmonster.comSounds like you would have to delete userA from the folders on RS, then
delete the user profile. If possible, use a security group instead of
assigning individually.
"Stewart Waddell via SQLMonster.com" wrote:
> I have the following problem.
> The system setup is as follows.
> IIS and sqlserver are on the same server and I'm using windows integrated
> security.
> I initially created a windows login user (userA).
> I then in the reporting services(RS) admin area, set the security permissions
> for a directory(Dir1). The permissions were, userA is a member of the
> browser role and the directory was set to the browser role.
> Everything worked as it should at that point.
> I then wanted to delete userA from the server. So i delete userA from the
> 'local users and groups' admin area in the control panel on the server.
> This is when I started to have problems.
> When I go back into RS to administor permissions, I tried to ammend the
> 'browser role' permissions for Dir1. When I try to save the changes the
> following error is displayed.
> 'The user or group name 'userA' is not recognized. (rsUnknownUserName) '
> Its seems that userA is still registered in RS.
> Logically I understand why, I've only deleted userA from windows, not from RS.
>
> My question is , How do I completely delete userA from RS.
> I noticed a users table in the RS database but there are numerous other
> tables which could have entries refering to userA.
> Is there a way to be sure all references to userA are deleted.
> The only way I could get round this was to re-generate userA as a windows
> user and disable it.
> This is not an ideal solution as I do not wish to have numerous disabled
> windows login users.
> Any suggestions would be gratefully received.
>
> --
> Message posted via http://www.sqlmonster.com
>|||I almost never assign individual users to a role. I create a local group and
then add users (in my case domain users) to the group. I then assign a role
to that local group.
Bruce Loehle-Conger
MVP SQL Server Reporting Services
"Stewart Waddell via SQLMonster.com" <forum@.SQLMonster.com> wrote in message
news:53C43C9C93255@.SQLMonster.com...
>I have the following problem.
> The system setup is as follows.
> IIS and sqlserver are on the same server and I'm using windows integrated
> security.
> I initially created a windows login user (userA).
> I then in the reporting services(RS) admin area, set the security
> permissions
> for a directory(Dir1). The permissions were, userA is a member of the
> browser role and the directory was set to the browser role.
> Everything worked as it should at that point.
> I then wanted to delete userA from the server. So i delete userA from the
> 'local users and groups' admin area in the control panel on the server.
> This is when I started to have problems.
> When I go back into RS to administor permissions, I tried to ammend the
> 'browser role' permissions for Dir1. When I try to save the changes the
> following error is displayed.
> 'The user or group name 'userA' is not recognized. (rsUnknownUserName) '
> Its seems that userA is still registered in RS.
> Logically I understand why, I've only deleted userA from windows, not from
> RS.
>
> My question is , How do I completely delete userA from RS.
> I noticed a users table in the RS database but there are numerous other
> tables which could have entries refering to userA.
> Is there a way to be sure all references to userA are deleted.
> The only way I could get round this was to re-generate userA as a windows
> user and disable it.
> This is not an ideal solution as I do not wish to have numerous disabled
> windows login users.
> Any suggestions would be gratefully received.
>
> --
> Message posted via http://www.sqlmonster.com