2010-03-02 3 views
2

특정 데이터에 대한 보고서를 생성하기 위해 asp.net 애플리케이션을 작성했습니다. 처음에는 보고서를 생성하기 위해 로컬 보고서 (.rdlc)를 만들었습니다. 각 rdlc에 대해 별도의 .xsd를 만들고 보고서를 디자인했습니다. 프로그래밍 방식으로 데이터 집합을 빌드하고이를 rdlc에 바인딩합니다. 나는 보고서에 데이터 소스를 바인딩 다음 코드를 사용 - 프로그래밍 방식으로 보고서 서버의 rdl에 데이터 소스 바인딩 - SSRS

rptMyReport.LocalReport.ReportPath = Server.MapPath(srdlcName); 
rptMyReport.LocalReport.DataSources.Add(rds); 

지금 내가 this msdn article을 다음 RDL하는 모든 RDLC을 변환하고 i는 보고서 서버에 보고서를 발표했습니다.

rptMyReport.ServerReport.ReportServerUrl = new System.Uri("http://ReportServer/ReportServer"); 
rptMyReport.ServerReport.ReportPath = "/ReportFolder/ReportName"; 

어떻게 데이터 소스를 프로그래밍 방식으로 보고서에 설정할 수 있습니까?

답변

3

이 작품은 불가능합니다. rdl 보고서에 데이터 원본을 만들어야합니다. 보고서 데이터 수집을 위해 필요한 쿼리를 작성해야합니다. 이 쿼리를 텍스트 또는 저장 프로 시저로 사용할 수 있습니다. 이 쿼리에 매개 변수를 전달하고 쿼리 출력을 필터링 할 수 있습니다. 에만이 같은 RDL 보고서에 매개 변수를 전달할 수 있습니다 :

ReportParameter[] Params = new ReportParameter[1]; 
Params[0] = "Parameter Value"; 
ReportViewerControl.ServerReport.SetParameters(Params); 
+0

감사합니다. 그랬어! – NLV

0

무엇을하려하십니까? 나는 데이터 소스가 .RDL 파일 자체 내에 언급되어 있다고 생각한다. 예 : BIDS를 사용하여 보고서를 만들 때 데이터 소스를 지정할 수 있습니다. 이것은 .RDL 파일에 추가됩니다. 같은 개념이 여기에서도 마찬가지입니다.

+0

. 테이블에서 데이터를 필터링하고이를 rdlc에 할당합니다. 그러면 어떻게해야합니까? – NLV

0

이 불가능하지 않다, 그러나 이것은 당신이 무엇을 원하는 경우 약간의 노력이 걸릴 수 있습니다. 당신이 당신의 보고서 서버의 공유 데이터 소스를 만드는 경우 수동으로 RDLObjectModel을 사용하여 추가 할 수 있습니다

  1. :
    당신은 몇 가지 옵션이있다. 보고서 서버에서 공유 데이터 원본 이름과 GUID를 가져와 보고서에 추가 할 수 있습니다.

    예 :

    'create the datasource for the report 
    Dim dataSrcRFoo = New RdlObjectModel.DataSource 
    dataSrcRFoo.Name = "DataSourceName" 
    dataSrcRFoo.DataSourceReference = "/path/to/DataSource" 
    dataSrcRFoo.IsShared = True 
    dataSrcRFoo.SecurityType = 2 ' RdlObjectModel.SecurityTypeEnum.DataBase 
    dataSrcRFoo.DataSourceID = New Guid("shareddatasourceguid") 
    
    'add data source to report 
    rdlRpt.DataSources.Add(dataSrcRFoo) 
    
  2. 또 다른 옵션이 내장 된 공유 (또는 보고서 수준)가 서버 데이터 소스에 템플릿을 사용하는 것입니다

    내가있어 사용자의 선택을 기반으로