Wednesday, March 7, 2012

Custom Data Processing Extension

HI everyone,
i want to develop my own data processing extension.
But i'm struggeling with the following issue:
I want to enable a user to select my custom datasource, then make a
connection to central server, that hosts abstract "Business Objects".
After that the user should be able to use the report wizard in VS.NET to
retrieve a list of all Business Objects that are hosted on that central
server and select a specific output table of a method of a business object.
But how can i embed my own UI to support such a scenario?
Thanks in advance,
MarkusYou can specify the designer associated with your custom data-extension
via the following config file:
C:\Program Files\Microsoft SQL Server\80\Tools\Report
Designer\RSReportDesigner.config
You would need to modify the associated designer within the <Designer>
group. The default designer for SQL Server is:
Microsoft.ReportDesigner.Design.VDTQueryDesigner
To create a custom designer, you would need to derrive from:
Microsoft.ReportDesigner.Design.InternalQueryDesigner
...and implement your own custom controls for the designer.
However, after having said all this, I really havent had a need to
implement a custom designer so far. In most cases, I just set the
designer to: Microsoft.ReportDesigner.Design.GenericQueryDesigner
Then, I just intercept the CommandText and do whatever I need to with
my data extension. I have had success doing this with Xml and other
text as the CommandText instead of SQL. Obviously, this won't provide
the users with your list of all Business Objects available, but it
works.
Good luck.
Lance Hunt
http://www.lance-hunt.net/|||One other alternative is to have the business-object selection be a
per-datasource configuration instead of something driven thru the query
designers.
This approach would entail extending the connection-string editor
dialog and may be a bit simpler. (just guessing)|||Hi Lance,
thanks for your great first answer! I'm in the middle of building my own UI
for selecting business entites but am facing a very strange problem...:
I inherited "Microsoft.ReportDesigner.Design.InternalQueryDesigner" and
there is one member "DesignerQueryString" that is marked as internal and
abstract.
But i'm not able to override this member in my class... i tried everything,
it's really strange :-)
Any guess?
Greetings
Markus|||Sorry, I didnt notice that field was internal-abstract. Thats pretty
silly since MS marked the class as public abstract! :(
I guess your only choice is to create your designer based upon
Microsoft.ReportDesigner.Interfaces.IQueryDesigner instead of
InternalQueryDesigner. This just means that you will have to do a bit
more plumbing. Its a shame because InternalQueryDesigner would have
worked if it werent for that one field.
Good luck...|||it's working!!! :-)))))
One (hopefully) last question:
Why doesn't the QueryBuilder show up in the Repord Wizard Form? The "Edit"
Button is disabled. But if i select anoter data source (e.g. SQL) this button
is enabled.
Greetings
Markus
"Lance" wrote:
> Sorry, I didnt notice that field was internal-abstract. Thats pretty
> silly since MS marked the class as public abstract! :(
> I guess your only choice is to create your designer based upon
> Microsoft.ReportDesigner.Interfaces.IQueryDesigner instead of
> InternalQueryDesigner. This just means that you will have to do a bit
> more plumbing. Its a shame because InternalQueryDesigner would have
> worked if it werent for that one field.
> Good luck...
>|||Which "Edit" button is disabled? (there are several)
If you are basically saying your designer isnt wired-up (not visible):
Did you add your extension to the config file at:
C:\Program Files\Microsoft SQL Server\80\Tools\Report
Designer\RSReportDesigner.conf=ADig '
You should end up adding multiple nodes to this file:
The first is the \Configuration\Extensions\Data\Extension XML
Element, and the second is
the \Configuration\Extensions\\Data\Designer element. Make sure
the "name" attribute
matches in both nodes.
Please clarify...
Lance|||Sorry, I misread your post. You are referring to the "Report Wizard"
not the DataSet tab.
I'll take a look at this and see if I can figure it out...|||yes, i already added all the nodes to the .config file.
But the edit button is disabled. I mean the button on the very last dialog
at "Reports->Add New Report" right to the "Query String" TextBox.
"Lance" wrote:
> Which "Edit" button is disabled? (there are several)
> If you are basically saying your designer isnt wired-up (not visible):
> Did you add your extension to the config file at:
> C:\Program Files\Microsoft SQL Server\80\Tools\Report
> Designer\RSReportDesigner.conf­ig '
> You should end up adding multiple nodes to this file:
> The first is the \Configuration\Extensions\Data\Extension XML
> Element, and the second is
> the \Configuration\Extensions\\Data\Designer element. Make sure
> the "name" attribute
> matches in both nodes.
> Please clarify...
> Lance
>|||Unfortunately, you cannot enable this.
The wizard is hard-coded to only support the following DataExtensions:
"Microsoft.ReportingServices.DataExtensions.SqlConnectionWrapper"
"Microsoft.ReportingServices.DataExtensions.OleDbConnectionWrapper"
"Microsoft.ReportingServices.DataExtensions.AdoMdConnection"
"Microsoft.ReportingServices.DataExtensions.OdbcConnectionWrapper"
"Microsoft.ReportingServices.DataExtensions.OracleClientConnectionWrapper"
Therefore, unless you write your own wizard, you will be unable to
enable that Edit button.|||wow... that is real extensibility ;-)))
"Lance" wrote:
> Unfortunately, you cannot enable this.
> The wizard is hard-coded to only support the following DataExtensions:
> "Microsoft.ReportingServices.DataExtensions.SqlConnectionWrapper"
> "Microsoft.ReportingServices.DataExtensions.OleDbConnectionWrapper"
> "Microsoft.ReportingServices.DataExtensions.AdoMdConnection"
> "Microsoft.ReportingServices.DataExtensions.OdbcConnectionWrapper"
> "Microsoft.ReportingServices.DataExtensions.OracleClientConnectionWrapper"
> Therefore, unless you write your own wizard, you will be unable to
> enable that Edit button.
>|||Agreed. Its pretty sad. The funny part is that I see no legitimate
reason why they included that restriction. Had they simply followed
the same model used in the designer-integration it should have worked.
*shrugs*
I havent checked the new Reporting implementation in Sql Server 2005
yet, but it may be fixed in that version.

No comments:

Post a Comment