2011-08-11 97 views
0

我需要使报告查看器能够处理本地报告。 我得到了查询的RDL文件。是否有插入conenction串入 报告的XML代码,这样的报告可以从数据库中直接获取数据的方法吗?报表将在MS reportViewer中显示 。有没有办法将连接字符串硬编码为RDLC?

<?xml version="1.0" encoding="utf-8"?> 
<Report xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition"> 
    <DataSources> 
    <DataSource Name="BIA"> 
     <DataSourceReference>BIA</DataSourceReference> 
     <rd:DataSourceID>98fa74a9-d829-4196-be9d-49697ded5201</rd:DataSourceID> 
    </DataSource> 
    </DataSources> 
    <DataSets> 
    <DataSet Name="RelItems"> 
     <Fields> 
     <Field Name="RelItemID"> 
      <DataField>RelItemID</DataField> 
      <rd:TypeName>System.Int32</rd:TypeName> 
     </Field> 
     <Field Name="SSISPackageName"> 
      <DataField>SSISPackageName</DataField> 
      <rd:TypeName>System.String</rd:TypeName> 
     </Field> 
     </Fields> 
     <Query> 
     <DataSourceName>BIA</DataSourceName> 
     <CommandText>select b.ID as RelItemID, SSISPName --+ ' ('+s.Name + ' -&gt; ' + d.Name + ')' 
as SSISPackageName 
    from dbo.RelTypes_ProvTypes a 
    inner join dbo.RelItems b on a.RelTypeID = b.RelTypeID 
    inner join dbo.ObjItems s on b.ObjItemIDSource = s.ID and a.ObjTypeIDSource = s.ObjTypeID 
    inner join dbo.ObjItems d on b.ObjItemIDDest = d.ID and a.ObjTypeIDDest = d.ObjTypeID 
where SSISPName is not null 
order by 2</CommandText> 
     <rd:UseGenericDesigner>true</rd:UseGenericDesigner> 
     </Query> 
    </DataSet> 

... and so on 

这是我有的RDL。 欢迎任何其他提示或帮助,只需使其工作:)

回答

1

RDL文件包含的查询信息并未存储在使用ReportViewer控件的RDLC文件中。如果您想在ReportViewer中使用SSRS之外的RDL文件,那么您可以在本地模式下运行报告时从代码中设置数据源属性。这样,您可以将连接字符串设置为构建数据源时所需的任何内容。

ReportViewer1.Reset() 
ReportViewer1.LocalReport.DataSources.Clear() 
ReportViewer1.LocalReport.ReportPath = <yourfilepath> 
ReportViewer1.LocalReport.DataSources.Add(<yourdatasource>) 
ReportViewer1.LocalReport.Refresh() 

(显然这片段是VB)的响应

+0

TNX ... 的问题是,新的报告可以被添加到应用程序,所以我想用内部报告SQL。每次添加新报告时,添加所有数据集的代码是一项艰巨的任务。 我发现,在数据源可以添加连接字符串.. 但可以使用帮助我在做什么错。 <数据源名称= “XXX”> 98fa74a9-d829-4196-be9d-49697ded5201 <的DataProvider> SQL ... IntegratedSecurity> true DB我​​想连接的是MS SQL – Tom

+0

我可能是错的,但我不认为你想要做什么是可能的RDLC文件。连接字符串元素不在一个RDLC文件中使用这就是为什么它被设置成'/ *本地连接* /',这需要你设置在ReportViewer.LocalReport级的连接。 –

+0

我怕你是对的...因此,有没有办法,我可以读取databese数据之间没有任何的C#代码来报告直接? – Tom

相关问题