Showing posts with label type. Show all posts
Showing posts with label type. Show all posts

Friday, March 30, 2012

pre-execute failure

I just started getting this error.

[DTS.Pipeline] Error: component "User Type" (377) failed the pre-execute phase and returned error code 0x8007000E.

It wasn't happening before. Does anyone know what it means?

Hi Jim,
Without more information it is probably impossible to say.

What type of component is it?
What are you using it for?
How have you configured it?
When do you get the error - when the package starts or when the data-flow starts?
What inputs does it take?

etc...etc...

Regards
Jamie|||

Excelent questions.
This s a dataflow component. All of it's input is from a table. It seems like just rearranging the dataflow components in the work flow eliminates the problem. Since it isn't happening any longer, I can't do a better job answering your questions.

I don't understand it.

|||Incidentally, that error is Out Of Memory, so there could have been some transient cause.... Please let us know if you do come across a repro.sql

Wednesday, March 28, 2012

Precision on Money data type

How do I set the precision on the money data type in SQL Server. I want it to display only 2 decimal places and get rid of any more than that id someone tries to insert more without throwing an error.

Example:

i input 10.5432

It makes it 10.54
automatically.

If this is not possible, can I at least put in an amount like 10.56 and not have the database automatically turn this into 10.5600

Please help::How do I set the precision on the money data type in SQL Server.

Tried the documentation? Mean, this is so obvious that I would look there first.

Let me quote from "money data type / overview":

::Monetary data values from -2^63 (-922,337,203,685,477.5808) through
::2^63 - 1 (+922,337,203,685,477.5807), with accuracy to a ten-thousandth of a monetary
::unit. Storage size is 8 bytes.

::I want it to display only 2 decimal places and get rid of any more than that id someone
::tries to insert more without throwing an error.

Welcome to programming. YOu have to do so in your input layer.

::If this is not possible, can I at least put in an amount like 10.56 and not have the database
::automatically turn this into 10.5600

You can us an insert / update trigger to round the values. I would normally handle this i n the business objects :-)|||Use decimal instead of money. You can exactly specify the precision and scale|||Thanks Dutch,... I appreciate that

Monday, March 12, 2012

Possibly extremely simple SQL Query

Right, I'm no SQL programmer. As I type this, I have roughly the third the hair I had at 5 o'clock last night. I even lost sleep over it.

I'm trying to return a list of records from a database holding organisation names. As I've built a table to hold record versions, the key fields (with sample data) from a View I created to display this is as follows:

record_id--org_id--live--version
====== ===== === =====
1----1----0----1
2----2----0----1
3----1----1----2
4----2----0----2

as you can see the record id will always be unique. record 3 is a newer version of record 1, and 4 of 2. the issue is thus: i only want to return unique organisations. if a version of the organisation record is live on the system (in this case record id 3), i want to return the live version with its unique record id. i'm assuming for this i can perform a simple "SELECT WHERE live = 1" query.

however, some organisations will have no live versions (see org with id 2). i still wish to return a record for this organisation, but in this case the most recent version ie version 2 (and again - its unique record id)

in actual fact, it seems so much clearer when laid out like this. however, i feel it's not going to happen this end, and so any help would be greatly appreciated.

many thanks in advance,

philtry self joining subquery:

select a.*
from table_name a
where a.live = 1 or
(a.live = 0 and a.version = (select max(b.version) from table_name b where a.org_id = b.org_id ))|||spot on. told you it was simple. cheers!

Possible Type Conversion Defect

Seem to be getting these consistantly in certain portions of our application.
Works fine with the older JDBC driver (2000) but under the 2005 driver we
see...
com.microsoft.sqlserver.jdbc.SQLServerException: Unsupported conversion from
108 to INTEGER
at com.microsoft.sqlserver.jdbc.SQLServerStatement.ge tRowsetField(Unknown
Source)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.ge tInt(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.ge tInt(Unknown Source)
and
com.microsoft.sqlserver.jdbc.SQLServerException: Unsupported conversion from
38 to SMALLINT
at com.microsoft.sqlserver.jdbc.SQLServerStatement.ge tRowsetField(Unknown
Source)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.ge tShort(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.ge tShort(Unknown Source)
I'm looking at the SQL and the code but I'd think 38 is a valid SMALLINT and
that 108 is a valid INTEGER.
I believe I solved my own problem.
Instead of returning a short from the table I was hard coding the parameter.
eg:
select firstname, lastname, userid=0, middlename from dbo.user
So it looks like the driver isn't sure what type userid is, hence the
conversion error. However I'd hope that the driver would be smart enough to
figure it out.
"Eric Molitor" wrote:

> Seem to be getting these consistantly in certain portions of our application.
> Works fine with the older JDBC driver (2000) but under the 2005 driver we
> see...
> com.microsoft.sqlserver.jdbc.SQLServerException: Unsupported conversion from
> 108 to INTEGER
> at com.microsoft.sqlserver.jdbc.SQLServerStatement.ge tRowsetField(Unknown
> Source)
> at com.microsoft.sqlserver.jdbc.SQLServerResultSet.ge tInt(Unknown Source)
> at com.microsoft.sqlserver.jdbc.SQLServerResultSet.ge tInt(Unknown Source)
> and
> com.microsoft.sqlserver.jdbc.SQLServerException: Unsupported conversion from
> 38 to SMALLINT
> at com.microsoft.sqlserver.jdbc.SQLServerStatement.ge tRowsetField(Unknown
> Source)
> at com.microsoft.sqlserver.jdbc.SQLServerResultSet.ge tShort(Unknown Source)
> at com.microsoft.sqlserver.jdbc.SQLServerResultSet.ge tShort(Unknown Source)
> I'm looking at the SQL and the code but I'd think 38 is a valid SMALLINT and
> that 108 is a valid INTEGER.
>
|||We wanted to be very explicit with our data coercion story and as far as we
have been able we are not going to allow getting a type from the server that
would require a downcast to the client and possible loss of data. This
strategy has the advantage of high predictability with limited chance of
data loss, but it is very restrictive.
Quite frankly I was expecting to see a lot more people commenting on these.
In your case 108 is of type NUMERIC, a 38bit precission decimal and you are
trying to shove it into an INTEGER. Type 38 is an INTEGER which does not fit
on a SMALLINT.
We only have two choices here that don't involve data loss (something we are
definitelly not going to allow),
1) We can NEVER allow a conversion from a type if _the type you are trying
to convert_ does not fit into the type that you are trying to coerce it
into. This is the behavior that we have opted for in the 2005 JDBC driver.
2) We can allow a conversion from a type that does not fit into the coreced
type _only_ when the current value that you are asking for can be coerced
into the type that you are asking for. This is the behavior of the 2000 JDBC
driver.
Let's say that you have a NUMERIC column that has a value of 5, when you
call getInt on this we will throw an exception if following (1) but the
coercion will work on a driver that supports (2) since 5 does fit into an
INTEGER type. When you have a driver that provides the (1) functionality you
will realize the first time you run your code that a NUMERIC column will not
always fit into an int and change your code accordingly. When working with a
driver of the (2) type you will test and deploy your application with
getInt. When the value of the NUMERIC column goes over what an INTEGER can
handle you will get a runtime exception and you will have to go service your
deployed application.
We realize that it can be inconvenient to have this kind of issues surfaced
early, but we feel it is better to let you know up front about possible data
coercion issues, if you really wanted to get an integer from the server you
would have defined your table accordingly, or you could have requested an
integer in your query with the CONVERT function.
I think that this is going to be a common question, I am going to convert
this post into a blog and post it into the http://blogs.msdn.com/dataaccess/
with a complete data coercion table to help make this design clearer, of
course comments/suggestions are welcome.
Angel Saenz-Badillos [MS] DataWorks
This posting is provided "AS IS", with no warranties, and confers no
rights.Please do not send email directly to this alias.
This alias is for newsgroup purposes only.
I am now blogging: http://weblogs.asp.net/angelsb/
"Eric Molitor" <EricMolitor@.discussions.microsoft.com> wrote in message
news:237EAB6D-63BA-4DB2-AB0C-7EB8D98B3E2D@.microsoft.com...
> Seem to be getting these consistantly in certain portions of our
> application.
> Works fine with the older JDBC driver (2000) but under the 2005 driver we
> see...
> com.microsoft.sqlserver.jdbc.SQLServerException: Unsupported conversion
> from
> 108 to INTEGER
> at com.microsoft.sqlserver.jdbc.SQLServerStatement.ge tRowsetField(Unknown
> Source)
> at com.microsoft.sqlserver.jdbc.SQLServerResultSet.ge tInt(Unknown Source)
> at com.microsoft.sqlserver.jdbc.SQLServerResultSet.ge tInt(Unknown Source)
> and
> com.microsoft.sqlserver.jdbc.SQLServerException: Unsupported conversion
> from
> 38 to SMALLINT
> at com.microsoft.sqlserver.jdbc.SQLServerStatement.ge tRowsetField(Unknown
> Source)
> at com.microsoft.sqlserver.jdbc.SQLServerResultSet.ge tShort(Unknown
> Source)
> at com.microsoft.sqlserver.jdbc.SQLServerResultSet.ge tShort(Unknown
> Source)
> I'm looking at the SQL and the code but I'd think 38 is a valid SMALLINT
> and
> that 108 is a valid INTEGER.
>
|||Right, I dug into this and was able to solve the problems both with
conversions and by fixing some bad practices in our SQL...
In several places after executing an insert we would simply...
select @.@.IDENTITY as identityValue
and then retrieve the value from the result set in java. Obviously we should
have been using SCOPE_IDENTITY() for one but also we should have been using
an out put parameter...
So the proc becomes
CREATE PROCEDURE spTestProc
(
@.username varchar(8),
@.firstname varchar(255),
@.lastname varchar(255),
@.UserID int OUTPUT
) as
INSERT INTO User (username, firstname, lastname)
VALUES (@.username, @.firstname, @.lastname)
SELECT @.UserID = SCOPE_IDENTITY()
and in the code we just fetch the value as an output parameter...
So once all of this shakes out I do think it will be a positive change,
however I'm sure lots of people will have some SQL and Java to cleanup.
Cheers,
Eric
"Angel Saenz-Badillos[MS]" wrote:

> We wanted to be very explicit with our data coercion story and as far as we
> have been able we are not going to allow getting a type from the server that
> would require a downcast to the client and possible loss of data. This
> strategy has the advantage of high predictability with limited chance of
> data loss, but it is very restrictive.
> Quite frankly I was expecting to see a lot more people commenting on these.
> In your case 108 is of type NUMERIC, a 38bit precission decimal and you are
> trying to shove it into an INTEGER. Type 38 is an INTEGER which does not fit
> on a SMALLINT.
> We only have two choices here that don't involve data loss (something we are
> definitelly not going to allow),
> 1) We can NEVER allow a conversion from a type if _the type you are trying
> to convert_ does not fit into the type that you are trying to coerce it
> into. This is the behavior that we have opted for in the 2005 JDBC driver.
> 2) We can allow a conversion from a type that does not fit into the coreced
> type _only_ when the current value that you are asking for can be coerced
> into the type that you are asking for. This is the behavior of the 2000 JDBC
> driver.
> Let's say that you have a NUMERIC column that has a value of 5, when you
> call getInt on this we will throw an exception if following (1) but the
> coercion will work on a driver that supports (2) since 5 does fit into an
> INTEGER type. When you have a driver that provides the (1) functionality you
> will realize the first time you run your code that a NUMERIC column will not
> always fit into an int and change your code accordingly. When working with a
> driver of the (2) type you will test and deploy your application with
> getInt. When the value of the NUMERIC column goes over what an INTEGER can
> handle you will get a runtime exception and you will have to go service your
> deployed application.
> We realize that it can be inconvenient to have this kind of issues surfaced
> early, but we feel it is better to let you know up front about possible data
> coercion issues, if you really wanted to get an integer from the server you
> would have defined your table accordingly, or you could have requested an
> integer in your query with the CONVERT function.
> I think that this is going to be a common question, I am going to convert
> this post into a blog and post it into the http://blogs.msdn.com/dataaccess/
> with a complete data coercion table to help make this design clearer, of
> course comments/suggestions are welcome.
> --
> Angel Saenz-Badillos [MS] DataWorks
> This posting is provided "AS IS", with no warranties, and confers no
> rights.Please do not send email directly to this alias.
> This alias is for newsgroup purposes only.
> I am now blogging: http://weblogs.asp.net/angelsb/
>
>
> "Eric Molitor" <EricMolitor@.discussions.microsoft.com> wrote in message
> news:237EAB6D-63BA-4DB2-AB0C-7EB8D98B3E2D@.microsoft.com...
>
>
|||Thank you for your feedback, as you mention this is going to impact existing
code and we are nervous to see how specific areas are affecting customers.
We believe that this is the right story going forward but we may have to
bend it a little for specific customer scenarios. We have already received
some pushback on getObject for uniqueIdentifiers (currently returns a byte
array which is how the server stores it but is not particularily usefull)
and supporting getLong on a Numeric(Decimal) type. If you have any other
suggestions be sure to post them here or file them as bug in the msdn
product feedback site :
http://lab.msdn.microsoft.com/produc...k/default.aspx
There is still time to integrate customer feedback into this data coercion
story, but it is running out fast.
Angel Saenz-Badillos [MS] DataWorks
This posting is provided "AS IS", with no warranties, and confers no
rights.Please do not send email directly to this alias.
This alias is for newsgroup purposes only.
I am now blogging: http://weblogs.asp.net/angelsb/
"Eric Molitor" <EricMolitor@.discussions.microsoft.com> wrote in message
news:3D094877-F2AC-4E91-9FDB-324FBB29BCD5@.microsoft.com...[vbcol=seagreen]
> Right, I dug into this and was able to solve the problems both with
> conversions and by fixing some bad practices in our SQL...
> In several places after executing an insert we would simply...
> select @.@.IDENTITY as identityValue
> and then retrieve the value from the result set in java. Obviously we
> should
> have been using SCOPE_IDENTITY() for one but also we should have been
> using
> an out put parameter...
> So the proc becomes
> CREATE PROCEDURE spTestProc
> (
> @.username varchar(8),
> @.firstname varchar(255),
> @.lastname varchar(255),
> @.UserID int OUTPUT
> ) as
> INSERT INTO User (username, firstname, lastname)
> VALUES (@.username, @.firstname, @.lastname)
> SELECT @.UserID = SCOPE_IDENTITY()
> and in the code we just fetch the value as an output parameter...
> So once all of this shakes out I do think it will be a positive change,
> however I'm sure lots of people will have some SQL and Java to cleanup.
> Cheers,
> Eric
>
> "Angel Saenz-Badillos[MS]" wrote:

Possible to use a Sharepoint List as a Datasource?

In Reporting Services 2005, is it possible to create a data connection to a sharepoint list? If so, what connection type and connection string do i use for this?It is possible using the Xml Data processing extension. Sharepoint exposes a Lists.asmx webservice, which can be queried using the Xml data processing extension.

Connection String:
http://<YourServerName>/sites/sitename/_vti_bin/Lists.asmx

Xml Query:

<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap/" Name="GetList">
</Method>
<ElementPath IgnoreNamspaces="true">GetListResponse{}/GetListResult{}/List/Fields/Field</ElementPath>
</Query>

Dataset Parameter:
Name: listName, Value: The name of the list you want from the site.

Notes:
You may need to play with the ElementPath to get what you need. See this page for more information: http://msdn2.microsoft.com/en-us/library/ms365158.aspx|||

This is good as I have this exact requirement, but get

TITLE: Microsoft Report Designer

An error occurred while executing the query.
Failed to execute web request for the specified URL.


ADDITIONAL INFORMATION:

Failed to execute web request for the specified URL. (Microsoft.ReportingServices.DataExtensions)

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Exception of type Microsoft.SharePoint.SoapServer.SoapServerException was thrown.</faultstring>
<detail>
<errorstring xmlns="http://schemas.microsoft.com/sharepoint/soap/">Value cannot be null.</errorstring>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>


BUTTONS:

OK

Any ideas

|||

I would suggest that you use the informations provided by Teun Duynstee in this link:

http://www.teuntostring.net/blog/2005/09/reporting-over-sharepoint-lists-with.html

Cheers
Markus

|||The error that you are getting for the GetList method is most likely caused by not using the correct name of the list. The listName must be either the title or the GUID for the list.

For more info on this method http://msdn.microsoft.com/library/default.asp?url=/library/en-us/spptsdk/html/soapmListsGetList_SV01034346.asp

|||

Hi,

In case you are interested we are selling a reporting services (both 2000 and 2005 version) data extension for sharepoint.

This extension makes it possible to build report using sharepoint lists (including libraries).

Several lists may be joined using SQL-like operators.

Reports parameters may be used with the query string.

An evaluation version is available on our site at http://www.enesyssoftware.com/Default.aspx?tabid=56

If you prefer to do it by yourself, the article from Teun Duynstee is the way to go.

Frdric LATOUR

http://www.enesyssoftware.com

|||

Hi,

I have the same requirement of getting the data from List in SharePoint 2007. It exposed the method GetList(). I am using the same code which you have mentioned. But is not working.

Reporting Service SP 2 provide XML DataSource

Can you please rectify where i am going wrong. I have a List by name say: Announcements

How to Specify List Name and Where? I am unable to undertand your Dataset Parameter.

Dataset Parameter:
Name: listName, Value: The name of the list you want from the site.

I tried few combinations.

<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap" Name="GetList">
</Method>
<ElementPath IgnoreNamespaces="True">GetListResponse{}/GetListResult{}/List/Fields/Field</ElementPath>
</Query>

<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap" Name="GetList">
</Method>
<ElementPath IgnoreNamespaces="True">GetListResponse{}/GetListResult{}/Announcements</ElementPath>
</Query>

Please help. As this will save me from writing DATA Extensions for my reports integration with sharepoint 2007

|||There are two ways to specify parameters for an Xml Data Processing Extension query.

1. Use the Reporting Services Dataset query parameters collection.

Add a query parameter to the dataset with the name 'listName' and value 'Announcements'.

2. Add the parameters directly to the Xmlk query, using the Parameters Xml element, which is a child of the Method element.

Add the following Xml as the child element to the Method element in the query above.

<Parameters>
<Parameter Name="listName">
<DefaultValue>Announcements</DefaultValue>
</Parameter>
</Parameters>

Ian|||

Hi,

I tried as you said now my query is. Previoisly i was not in sharepoint integration mode. so i was giving another error. Now i am getting the error as "Error While reading XML reponse"

My Data Source is:
http://localhost/Docs/vti_bin/Lists.asmx

My Query is :
<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap" Name="GetList">
<Parameters>
<Parameter Name="listName" Type="String">
<DefaultValue>Announcements</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath>GetListResponse{}/GetListResult{}/List/Fields/Field</ElementPath>
</Query>

My Web Service is :

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<GetListResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<GetListResult>
<xsd:schema>schema</xsd:schema>xml</GetListResult>
</GetListResponse>
</soap12:Body>
</soap12:Envelope>

I have tried all combinations. 1) Isn't there any tool where i can construct this query 2) I am not able to view the dataset result in XML, so that i can map it with <ElementPath>. I am not able to test webservice with this "http://localhost/Docs/_vti_bin/Lists.asmx?op=GetList" URL, to view the dataset result.

|||
The exception you see being thrown is usually a wrapped exception that occurs in the call in the request/response phase, most likely a permissions issue. Check the log files for more information about this exception.

Also, regarding the ElementPath:

Try setting the IgnoreNamespaces attribute to true on the ElementPath element:

<ElementPath IgnoreNamespaces="true">

Answers to your questions:

1. Unfortunately, no, there is no tool at this time.
2. After you set the attribute mentioned above, try making the ElementPath less restrictive and to return the Xml as is. For example, this will return one field containing the raw Xml of the GetListResult element. You can use this to information see what the elements are in the GetListResult.

<ElementPath IgnoreNamespaces="true">GetListResponse{GetListResult(XML)}</ElementPath>

Ian|||

Hi,

This time i tried all below combionations bit its still not working. I have wasted lot of effots on this and this is very important for me to get it solved.

ERROR its Gives in Log is
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><soap:Fault><faultcode>soap:Server</faultcode><faultstring>Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was thrown.</faultstring><detail><errorstring xmlns="http://schemas.microsoft.com/sharepoint/soap/">Value cannot be null.</errorstring></detail></soap:Fault></soap:Body></soap:Envelope>

http://localhost/_vti_bin/Lists.asmx

GUID
<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Name="GetList" Namespace= "http://schemas.microsoft.com/sharepoint/soap">
<Parameters>
<Parameter Name="listName">
<DefaultValue>21CF03AF-3A7E-479C-98E0-CBE0F16A594A</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath IgnoreNamespaces="true">GetListResponse{GetListResult(XML)}</ElementPath>
</Query>

WithOut GUID
<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Name="GetList" Namespace= "http://schemas.microsoft.com/sharepoint/soap">
<Parameters>
<Parameter Name="listName">
<DefaultValue>Contacts</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath IgnoreNamespaces="true">GetListResponse{GetListResult(XML)}</ElementPath>
</Query>

GUID
<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap" Name="GetList">
<Parameters>
<Parameter Name="listName">
<DefaultValue>21CF03AF-3A7E-479C-98E0-CBE0F16A594A</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath IgnoreNamespaces="True">GetListResponse{}/GetListResult{}/List/Fields/Field</ElementPath>
</Query>


WithOut GUID
<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap" Name="GetList">
<Parameters>
<Parameter Name="listName">
<DefaultValue>Contacts</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath IgnoreNamespaces="True">GetListResponse{}/GetListResult{}/List/Fields/Field</ElementPath>
</Query>

Please Help!!!

|||Ok, I tracked down the culprit. The Method element in your tests and the example I provided above differ very slightly. The namespace for the web service ends with a '/', which was mssing from in your query. This caused the method portion of the soap request sent to the server to exist in a different namespace than was expected, which caused it to be interpreted as null.

To reslove this issue, append a '/' to end of the Namespace attribute value in the Method element.

Ian|||

Thanks a lot it worked.

Working Query is

<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap/" Name="GetList">
<Parameters>
<Parameter Name="listName">
<DefaultValue>Announcements</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath IgnoreNamespaces="True">GetListResponse{}/GetListResult{}/List/Fields/Field</ElementPath>
</Query>

Possible to use a Sharepoint List as a Datasource?

In Reporting Services 2005, is it possible to create a data connection to a sharepoint list? If so, what connection type and connection string do i use for this?It is possible using the Xml Data processing extension. Sharepoint exposes a Lists.asmx webservice, which can be queried using the Xml data processing extension.

Connection String:
http://<YourServerName>/sites/sitename/_vti_bin/Lists.asmx

Xml Query:

<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap/" Name="GetList">
</Method>
<ElementPath IgnoreNamspaces="true">GetListResponse{}/GetListResult{}/List/Fields/Field</ElementPath>
</Query>

Dataset Parameter:
Name: listName, Value: The name of the list you want from the site.

Notes:
You may need to play with the ElementPath to get what you need. See this page for more information: http://msdn2.microsoft.com/en-us/library/ms365158.aspx|||

This is good as I have this exact requirement, but get

TITLE: Microsoft Report Designer

An error occurred while executing the query.
Failed to execute web request for the specified URL.


ADDITIONAL INFORMATION:

Failed to execute web request for the specified URL. (Microsoft.ReportingServices.DataExtensions)

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Exception of type Microsoft.SharePoint.SoapServer.SoapServerException was thrown.</faultstring>
<detail>
<errorstring xmlns="http://schemas.microsoft.com/sharepoint/soap/">Value cannot be null.</errorstring>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>


BUTTONS:

OK

Any ideas

|||

I would suggest that you use the informations provided by Teun Duynstee in this link:

http://www.teuntostring.net/blog/2005/09/reporting-over-sharepoint-lists-with.html

Cheers
Markus

|||The

error that you are getting for the GetList method is most likely caused

by not using the correct name of the list. The listName must be either the

title or the GUID for the list.

For more info on this method http://msdn.microsoft.com/library/default.asp?url=/library/en-us/spptsdk/html/soapmListsGetList_SV01034346.asp

|||

Hi,

In case you are interested we are selling a reporting services (both 2000 and 2005 version) data extension for sharepoint.

This extension makes it possible to build report using sharepoint lists (including libraries).

Several lists may be joined using SQL-like operators.

Reports parameters may be used with the query string.

An evaluation version is available on our site at http://www.enesyssoftware.com/Default.aspx?tabid=56

If you prefer to do it by yourself, the article from Teun Duynstee is the way to go.

Frdric LATOUR

http://www.enesyssoftware.com

|||

Hi,

I have the same requirement of getting the data from List in SharePoint 2007. It exposed the method GetList(). I am using the same code which you have mentioned. But is not working.

Reporting Service SP 2 provide XML DataSource

Can you please rectify where i am going wrong. I have a List by name say: Announcements

How to Specify List Name and Where? I am unable to undertand your Dataset Parameter.

Dataset Parameter:
Name: listName, Value: The name of the list you want from the site.

I tried few combinations.

<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap" Name="GetList">
</Method>
<ElementPath IgnoreNamespaces="True">GetListResponse{}/GetListResult{}/List/Fields/Field</ElementPath>
</Query>

<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap" Name="GetList">
</Method>
<ElementPath IgnoreNamespaces="True">GetListResponse{}/GetListResult{}/Announcements</ElementPath>
</Query>

Please help. As this will save me from writing DATA Extensions for my reports integration with sharepoint 2007

|||There are two ways to specify parameters for an Xml Data Processing Extension query.

1. Use the Reporting Services Dataset query parameters collection.

Add a query parameter to the dataset with the name 'listName' and value 'Announcements'.

2. Add the parameters directly to the Xmlk query, using the Parameters Xml element, which is a child of the Method element.

Add the following Xml as the child element to the Method element in the query above.

<Parameters>
<Parameter Name="listName">
<DefaultValue>Announcements</DefaultValue>
</Parameter>
</Parameters>

Ian|||

Hi,

I tried as you said now my query is. Previoisly i was not in sharepoint integration mode. so i was giving another error. Now i am getting the error as "Error While reading XML reponse"

My Data Source is:
http://localhost/Docs/vti_bin/Lists.asmx

My Query is :
<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap" Name="GetList">
<Parameters>
<Parameter Name="listName" Type="String">
<DefaultValue>Announcements</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath>GetListResponse{}/GetListResult{}/List/Fields/Field</ElementPath>
</Query>

My Web Service is :

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<GetListResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<GetListResult>
<xsd:schema>schema</xsd:schema>xml</GetListResult>
</GetListResponse>
</soap12:Body>
</soap12:Envelope>

I have tried all combinations. 1) Isn't there any tool where i can construct this query 2) I am not able to view the dataset result in XML, so that i can map it with <ElementPath>. I am not able to test webservice with this "http://localhost/Docs/_vti_bin/Lists.asmx?op=GetList" URL, to view the dataset result.

|||
The exception you see being thrown is usually a wrapped exception that occurs in the call in the request/response phase, most likely a permissions issue. Check the log files for more information about this exception.

Also, regarding the ElementPath:

Try setting the IgnoreNamespaces attribute to true on the ElementPath element:

<ElementPath IgnoreNamespaces="true">

Answers to your questions:

1. Unfortunately, no, there is no tool at this time.
2. After you set the attribute mentioned above, try making the ElementPath less restrictive and to return the Xml as is. For example, this will return one field containing the raw Xml of the GetListResult element. You can use this to information see what the elements are in the GetListResult.

<ElementPath IgnoreNamespaces="true">GetListResponse{GetListResult(XML)}</ElementPath>

Ian|||

Hi,

This time i tried all below combionations bit its still not working. I have wasted lot of effots on this and this is very important for me to get it solved.

ERROR its Gives in Log is
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><soap:Fault><faultcode>soap:Server</faultcode><faultstring>Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was thrown.</faultstring><detail><errorstring xmlns="http://schemas.microsoft.com/sharepoint/soap/">Value cannot be null.</errorstring></detail></soap:Fault></soap:Body></soap:Envelope>

http://localhost/_vti_bin/Lists.asmx

GUID
<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Name="GetList" Namespace= "http://schemas.microsoft.com/sharepoint/soap">
<Parameters>
<Parameter Name="listName">
<DefaultValue>21CF03AF-3A7E-479C-98E0-CBE0F16A594A</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath IgnoreNamespaces="true">GetListResponse{GetListResult(XML)}</ElementPath>
</Query>

WithOut GUID
<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Name="GetList" Namespace= "http://schemas.microsoft.com/sharepoint/soap">
<Parameters>
<Parameter Name="listName">
<DefaultValue>Contacts</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath IgnoreNamespaces="true">GetListResponse{GetListResult(XML)}</ElementPath>
</Query>

GUID
<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap" Name="GetList">
<Parameters>
<Parameter Name="listName">
<DefaultValue>21CF03AF-3A7E-479C-98E0-CBE0F16A594A</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath IgnoreNamespaces="True">GetListResponse{}/GetListResult{}/List/Fields/Field</ElementPath>
</Query>


WithOut GUID
<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap" Name="GetList">
<Parameters>
<Parameter Name="listName">
<DefaultValue>Contacts</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath IgnoreNamespaces="True">GetListResponse{}/GetListResult{}/List/Fields/Field</ElementPath>
</Query>

Please Help!!!

|||Ok, I tracked down the culprit. The Method element in your tests and the example I provided above differ very slightly. The namespace for the web service ends with a '/', which was mssing from in your query. This caused the method portion of the soap request sent to the server to exist in a different namespace than was expected, which caused it to be interpreted as null.

To reslove this issue, append a '/' to end of the Namespace attribute value in the Method element.

Ian|||

Thanks a lot it worked.

Working Query is

<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap/" Name="GetList">
<Parameters>
<Parameter Name="listName">
<DefaultValue>Announcements</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath IgnoreNamespaces="True">GetListResponse{}/GetListResult{}/List/Fields/Field</ElementPath>
</Query>

Possible to use a Sharepoint List as a Datasource?

In Reporting Services 2005, is it possible to create a data connection to a sharepoint list? If so, what connection type and connection string do i use for this?It is possible using the Xml Data processing extension. Sharepoint exposes a Lists.asmx webservice, which can be queried using the Xml data processing extension.

Connection String:
http://<YourServerName>/sites/sitename/_vti_bin/Lists.asmx

Xml Query:

<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap/" Name="GetList">
</Method>
<ElementPath IgnoreNamspaces="true">GetListResponse{}/GetListResult{}/List/Fields/Field</ElementPath>
</Query>

Dataset Parameter:
Name: listName, Value: The name of the list you want from the site.

Notes:
You may need to play with the ElementPath to get what you need. See this page for more information: http://msdn2.microsoft.com/en-us/library/ms365158.aspx|||

This is good as I have this exact requirement, but get

TITLE: Microsoft Report Designer

An error occurred while executing the query.
Failed to execute web request for the specified URL.


ADDITIONAL INFORMATION:

Failed to execute web request for the specified URL. (Microsoft.ReportingServices.DataExtensions)

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Exception of type Microsoft.SharePoint.SoapServer.SoapServerException was thrown.</faultstring>
<detail>
<errorstring xmlns="http://schemas.microsoft.com/sharepoint/soap/">Value cannot be null.</errorstring>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>


BUTTONS:

OK

Any ideas

|||

I would suggest that you use the informations provided by Teun Duynstee in this link:

http://www.teuntostring.net/blog/2005/09/reporting-over-sharepoint-lists-with.html

Cheers
Markus

|||The

error that you are getting for the GetList method is most likely caused

by not using the correct name of the list. The listName must be either the

title or the GUID for the list.

For more info on this method http://msdn.microsoft.com/library/default.asp?url=/library/en-us/spptsdk/html/soapmListsGetList_SV01034346.asp

|||

Hi,

In case you are interested we are selling a reporting services (both 2000 and 2005 version) data extension for sharepoint.

This extension makes it possible to build report using sharepoint lists (including libraries).

Several lists may be joined using SQL-like operators.

Reports parameters may be used with the query string.

An evaluation version is available on our site at http://www.enesyssoftware.com/Default.aspx?tabid=56

If you prefer to do it by yourself, the article from Teun Duynstee is the way to go.

Frdric LATOUR

http://www.enesyssoftware.com

|||

Hi,

I have the same requirement of getting the data from List in SharePoint 2007. It exposed the method GetList(). I am using the same code which you have mentioned. But is not working.

Reporting Service SP 2 provide XML DataSource

Can you please rectify where i am going wrong. I have a List by name say: Announcements

How to Specify List Name and Where? I am unable to undertand your Dataset Parameter.

Dataset Parameter:
Name: listName, Value: The name of the list you want from the site.

I tried few combinations.

<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap" Name="GetList">
</Method>
<ElementPath IgnoreNamespaces="True">GetListResponse{}/GetListResult{}/List/Fields/Field</ElementPath>
</Query>

<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap" Name="GetList">
</Method>
<ElementPath IgnoreNamespaces="True">GetListResponse{}/GetListResult{}/Announcements</ElementPath>
</Query>

Please help. As this will save me from writing DATA Extensions for my reports integration with sharepoint 2007

|||There are two ways to specify parameters for an Xml Data Processing Extension query.

1. Use the Reporting Services Dataset query parameters collection.

Add a query parameter to the dataset with the name 'listName' and value 'Announcements'.

2. Add the parameters directly to the Xmlk query, using the Parameters Xml element, which is a child of the Method element.

Add the following Xml as the child element to the Method element in the query above.

<Parameters>
<Parameter Name="listName">
<DefaultValue>Announcements</DefaultValue>
</Parameter>
</Parameters>

Ian|||

Hi,

I tried as you said now my query is. Previoisly i was not in sharepoint integration mode. so i was giving another error. Now i am getting the error as "Error While reading XML reponse"

My Data Source is:
http://localhost/Docs/vti_bin/Lists.asmx

My Query is :
<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap" Name="GetList">
<Parameters>
<Parameter Name="listName" Type="String">
<DefaultValue>Announcements</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath>GetListResponse{}/GetListResult{}/List/Fields/Field</ElementPath>
</Query>

My Web Service is :

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<GetListResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<GetListResult>
<xsd:schema>schema</xsd:schema>xml</GetListResult>
</GetListResponse>
</soap12:Body>
</soap12:Envelope>

I have tried all combinations. 1) Isn't there any tool where i can construct this query 2) I am not able to view the dataset result in XML, so that i can map it with <ElementPath>. I am not able to test webservice with this "http://localhost/Docs/_vti_bin/Lists.asmx?op=GetList" URL, to view the dataset result.

|||
The exception you see being thrown is usually a wrapped exception that occurs in the call in the request/response phase, most likely a permissions issue. Check the log files for more information about this exception.

Also, regarding the ElementPath:

Try setting the IgnoreNamespaces attribute to true on the ElementPath element:

<ElementPath IgnoreNamespaces="true">

Answers to your questions:

1. Unfortunately, no, there is no tool at this time.
2. After you set the attribute mentioned above, try making the ElementPath less restrictive and to return the Xml as is. For example, this will return one field containing the raw Xml of the GetListResult element. You can use this to information see what the elements are in the GetListResult.

<ElementPath IgnoreNamespaces="true">GetListResponse{GetListResult(XML)}</ElementPath>

Ian|||

Hi,

This time i tried all below combionations bit its still not working. I have wasted lot of effots on this and this is very important for me to get it solved.

ERROR its Gives in Log is
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><soap:Fault><faultcode>soap:Server</faultcode><faultstring>Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was thrown.</faultstring><detail><errorstring xmlns="http://schemas.microsoft.com/sharepoint/soap/">Value cannot be null.</errorstring></detail></soap:Fault></soap:Body></soap:Envelope>

http://localhost/_vti_bin/Lists.asmx

GUID
<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Name="GetList" Namespace= "http://schemas.microsoft.com/sharepoint/soap">
<Parameters>
<Parameter Name="listName">
<DefaultValue>21CF03AF-3A7E-479C-98E0-CBE0F16A594A</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath IgnoreNamespaces="true">GetListResponse{GetListResult(XML)}</ElementPath>
</Query>

WithOut GUID
<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Name="GetList" Namespace= "http://schemas.microsoft.com/sharepoint/soap">
<Parameters>
<Parameter Name="listName">
<DefaultValue>Contacts</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath IgnoreNamespaces="true">GetListResponse{GetListResult(XML)}</ElementPath>
</Query>

GUID
<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap" Name="GetList">
<Parameters>
<Parameter Name="listName">
<DefaultValue>21CF03AF-3A7E-479C-98E0-CBE0F16A594A</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath IgnoreNamespaces="True">GetListResponse{}/GetListResult{}/List/Fields/Field</ElementPath>
</Query>


WithOut GUID
<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap" Name="GetList">
<Parameters>
<Parameter Name="listName">
<DefaultValue>Contacts</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath IgnoreNamespaces="True">GetListResponse{}/GetListResult{}/List/Fields/Field</ElementPath>
</Query>

Please Help!!!

|||Ok, I tracked down the culprit. The Method element in your tests and the example I provided above differ very slightly. The namespace for the web service ends with a '/', which was mssing from in your query. This caused the method portion of the soap request sent to the server to exist in a different namespace than was expected, which caused it to be interpreted as null.

To reslove this issue, append a '/' to end of the Namespace attribute value in the Method element.

Ian|||

Thanks a lot it worked.

Working Query is

<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetList</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap/" Name="GetList">
<Parameters>
<Parameter Name="listName">
<DefaultValue>Announcements</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath IgnoreNamespaces="True">GetListResponse{}/GetListResult{}/List/Fields/Field</ElementPath>
</Query>

Monday, February 20, 2012

Positioning Tables and Graphs On A Page using Rectangles (or anything!)

I am creating a report that contains several tables and graphs. The report should fit on one page. It is a dashboard type of report that gives a quick look at key information.I have several sections that have related objects - a table and a graph for the same subject. I grouped the subjects into rectangles so that I could have a nice border around each section. However, when the report is rendered in IE, the rectangles do not stay together, and I have white space between them. I tried putting a background color on the body, but the background color does not show when the report is rendered in IE.

I tried a work-around using lines, not rectangles, to separate sections. The spacing seems to be working, but again the background color is not showing on the rendered report, so that is not a viable option.

As a work-around for my work-around, I put the objects within one rectangle, again using lines to separate sections. However, the spacing of the objects within the rectangle is not working - I am left with large blank spaces again.

Has anyone run into the same problems?

TIA,

eBeth

I haven't used rectangles, but I have had luck using the table control. Even when I only needed a label and textbox, I found adding these to a table kept my data where I wanted it. This might be an option for you as well. For the report where this was the most useful I had a main table across the top, in the middle I have 3 more tables (small, 2 are single lines) spaced appropriately, and the bottom of the report has yet another table similar to the main table. I know its hard to visualize, but all the objects remain in the correct position.

Simone

|||

Hi, eBeth,

See if this helps: Rendering Considerations for Automatic Sizing and Positioning .

In short, the position of report items in relation to each other influences how they behave when the report is rendered. Also, the white space on the background of the report design surface is preserved, so check that the rectangle border you create around the table & graph is not pushing the rendered report over the page boundary, and eliminate any of the white surface past the edges of your report items.

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

New: Search scoped to just SQL Server Books OnLine: http://search.live.com/macros/sql_server_user_education/booksonline

|||

Hi,

Well, the answer seems to be trial and error with tables and other graphical elements. I have the page looking "OK," and am in the process of putting more information in tables. I now have section headings in the first table of the section, and am using tranparent rows in tables to space elements. It is not the best solution, but there it is. I read the online references; they didn't help very much. One of the main problems is that it has to look good on the web and when downloaded to Excel or PDF.

Thanks,

eBeth

Positioning Tables and Graphs On A Page using Rectangles (or anything!)

I am creating a report that contains several tables and graphs. The report should fit on one page. It is a dashboard type of report that gives a quick look at key information.I have several sections that have related objects - a table and a graph for the same subject. I grouped the subjects into rectangles so that I could have a nice border around each section. However, when the report is rendered in IE, the rectangles do not stay together, and I have white space between them. I tried putting a background color on the body, but the background color does not show when the report is rendered in IE.

I tried a work-around using lines, not rectangles, to separate sections. The spacing seems to be working, but again the background color is not showing on the rendered report, so that is not a viable option.

As a work-around for my work-around, I put the objects within one rectangle, again using lines to separate sections. However, the spacing of the objects within the rectangle is not working - I am left with large blank spaces again.

Has anyone run into the same problems?

TIA,

eBeth

I haven't used rectangles, but I have had luck using the table control. Even when I only needed a label and textbox, I found adding these to a table kept my data where I wanted it. This might be an option for you as well. For the report where this was the most useful I had a main table across the top, in the middle I have 3 more tables (small, 2 are single lines) spaced appropriately, and the bottom of the report has yet another table similar to the main table. I know its hard to visualize, but all the objects remain in the correct position.

Simone

|||

Hi, eBeth,

See if this helps: Rendering Considerations for Automatic Sizing and Positioning .

In short, the position of report items in relation to each other influences how they behave when the report is rendered. Also, the white space on the background of the report design surface is preserved, so check that the rectangle border you create around the table & graph is not pushing the rendered report over the page boundary, and eliminate any of the white surface past the edges of your report items.

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

New: Search scoped to just SQL Server Books OnLine: http://search.live.com/macros/sql_server_user_education/booksonline

|||

Hi,

Well, the answer seems to be trial and error with tables and other graphical elements. I have the page looking "OK," and am in the process of putting more information in tables. I now have section headings in the first table of the section, and am using tranparent rows in tables to space elements. It is not the best solution, but there it is. I read the online references; they didn't help very much. One of the main problems is that it has to look good on the web and when downloaded to Excel or PDF.

Thanks,

eBeth