我正在研究创建自定义报表生成器和数据工具以替换ssrs报表生成器的想法。
我想要更像是查询构建器和数据导出工具,而不是报告。
我想要使用的是报告模型。我希望用户从报表模型中选择字段,渲染sql,然后执行sql并返回数据。
报表生成器如何使用报表模型? 它只是提供架构,报表生成器是否生成实际的sql? 如何生成sql,服务器或客户端。
我如何向用户提供可用字段以及如何获取用户选择的字段的SQL?
答案 0 :(得分:4)
我同意罗布。我认为这种努力不值得。
说,我可以提供一些部分信息。使用Report Builder 2.0创建报表时,会在数据集中创建一个可以针对报表模型执行的语义查询。
从高级别开始,报表模型中的查询如下所示:
<SemanticQuery xmlns="http://schemas.microsoft.com/sqlserver/2004/10/semanticmodeling" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rb="http://schemas.microsoft.com/sqlserver/2004/11/reportbuilder" xmlns:qd="http://schemas.microsoft.com/sqlserver/2004/11/semanticquerydesign">
<Hierarchies>
<Hierarchy>
<BaseEntity>
</BaseEntity>
<Groupings>
</Groupings>
<Filter>
</Filter>
</Hierarchy>
</Hierarchies>
</SemanticQuery>
由于可以将根据报表模型报表创建的报表保存到报表服务器,因此可以假定在报表服务器上处理报表模型。然后在报告服务服务中生成SQL。
答案 1 :(得分:3)
我真的认为这不值得做。升级到SQL 2008并使用Report Builder 2.0会更好。
但是......您可以非常轻松地使用SSRS提供的Web服务来获取XML以获取报告模型,然后您可以将其用作ORM的一种形式,以便能够获得LINQ-环境正在发生。
我认为这不值得。