2014-07-17 3 views
1

원격 서버에 이미지 목록이 있으므로 기존 보고서에 이러한 이미지 중 일부를 표시해야합니다. 나는 rdlc에 이미지 컨트롤을 떨어 뜨리려고했는데 그것은 하나의 이미지로 작동한다.RDLC가 동적으로 보고서에 이미지 추가

하지만 고정 된 수가없는 이미지가 두 개 이상 표시되어야합니다.

내가 게시물 아래에 언급, 그러나 아무도는 분명하지 : 그렇다면

C# - Add List of images to report viewer

Insert unknown number of Images to the report at runtime using reportviewer

내가이 요청에 대한 가능한 중복이있을 수 있습니다 알고

http://www.c-sharpcorner.com/blogs/6194/display-image-in-rdlc-report-microsoft-report-viewer.aspx%27

, 나를 인도 해주십시오.

+1

두 번째 게시물은 매우 분명해 보입니다. 그것에 대해 이해가되지 않는 것은 무엇입니까? – TheNorthWes

+0

@AdmiralAdama : 글은 간단한 아이디어를 제공합니다. 나는 실제 사례를 찾고있었습니다. 언젠가는 이것에 대해 보냈고 실제로 예제를 만들었습니다. 어쨌든 감사드립니다. – prvn

답변

2

위의 게시물 에서처럼 기존 보고서에 표를 추가하여 시작한 다음 불필요한 열을 제거한 다음 rdlc 디자인의 왼쪽 셀에 이미지를 추가했습니다. 이미지 속성에서이 데이터 집합 태그를 검색 한 이미지와 함께 새 테이블에 대한 새 데이터 집합을 추가

set the source to "External"

지금 XML 뷰에서 RDLC을 열려면 "외부"소스를 설정

<DataSet Name="DataSet1"> 
    <Fields> 
    <Field Name="filepath"> 
     <DataField>track_file_id_pk</DataField> 
     <rd:TypeName>System.string</rd:TypeName> 
    </Field> 
    </Field> 
    </Fields> 
    <Query> 
    <DataSourceName>xxxt</DataSourceName> 
    <CommandText>/* Local Query */</CommandText> 
    </Query> 
    <rd:DataSetInfo> 
    <rd:DataSetName>xxx</rd:DataSetName> 
    ... 
    </rd:DataSetInfo> 
</DataSet> 
, RDLC의 디자인보기 이미지 속성에 가서 다시

<Tablix Name="Tablix2"> 
    .... 
    </TablixRowHierarchy> 
    <DataSetName>ImgDataSet</DataSetName> 

이동 아래와 같이

지금 새 테이블에 이미지 목록의 데이터 집합을 추가하여 "사용 설정 이 이미지 이미지가 다음 을 파일 경로 기존 데이터 소스 아래에보고 할 데이터 소스를 추가하여 행을 추가, "파일 경로"코드에서 필드

set the "use this image" field

뒤에 한 열이있는 DataTable을 만듭니다. "

DataTable dtable = new DataTable(); 
DataColumn dcol = new DataColumn("filepath"); 
dtable.Columns.Add(dcol); 

DataRow drow = dtable.NewRow(); 
string pat = new Uri(Server.MapPath("~/Content/DSC_019.jpg")).AbsoluteUri; 
drow["track_file_uuidName"] = pat; 
dtable.Rows.Add(drow); 
... 

ReportViewer1.LocalReport.EnableExternalImages = true; 

... 
ReportViewer1.LocalReport.DataSources.Clear(); 
ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("rptDataSet", objCommonreport.ReportTable)); 
ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", dtable)); 
0

매트릭스에서 알 수없는 항목 수의 이미지 목록을 표시하기 위해 다음을 수행했습니다.

먼저 하나의 필드 만있는 데이터 세트를 만들면 원하는 파일 이름을 "파일 경로"로, 데이터 세트 이름을 "DataSet5"로 지정할 수 있습니다. 이름을 변경하여 적절하게 사용할 수 있습니다.

그런 다음 테이블을 추가하고 불필요한 행과 열을 삭제하여 하나의 열과 행 (1x1) 행렬 만 남겨 두어야합니다. 해당 열에 이미지를 삽입하고 속성을 설정하십시오. 이미지 소스는 EXTERNAL이어야합니다.

보고서의 aspx.cs 파일에서 데이터베이스의 이미지 경로를 가져 와서 이제는 절대 경로를 얻고 "file : ///"을 첨부하십시오. 보고서에는 파일이 필요합니다. 아래와 같이 데이터 세트에

string rel_Path = HttpContext.Current.Server.MapPath("~"); 
if (_articleOrders.Any()) 
     { 
      foreach (ArticleOrder order in _articleOrders) 
      { 
       if (!string.IsNullOrEmpty(order.ArticleImage)) 
       { 
        if (File.Exists(rel_Path + "\\" + order.ArticleImage)) 
        { 
         var AIpath = "file:///" + rel_Path + "\\" + order.ArticleImage; 
         articleImagesList.Add(AIpath); 
        } 
       } 
      } 
      CreateDatasetForImages(articleImagesList); 
     } 
다음

내가 추가 데이터 : :이 좋아했다

private void CreateDatasetForImages(List<string> articleImagesList) 
    { 
     DataTable table = new DataTable(); 
     table.Columns.Add("filepath", typeof(string)); 

     foreach (string articleImage in articleImagesList) 
     { 
      DataRow drow = table.NewRow(); 
      string pat = articleImage; 
      drow["filepath"] = pat; 
      table.Rows.Add(drow); 
     } 
     FlowerBookingReportViewer.LocalReport.DataSources.Add(new ReportDataSource("DataSet5", table)); 
    } 

이제 다시 이미지 속성으로 이동하고 [파일 경로]에 "이 이미지를 사용하여"설정 그것의 이름으로 이미지의 경로를 유지하는 데이터 세트의 열입니다. 그것이 누군가를 위해 일하기를 바란다!

관련 문제