rdlc動的挿入ピクチャの実現
6697 ワード
1、rdclを作成してTablixコントロールを入れて、Tablixの頭と尾を削除して、detialだけを残して、
2、Textboxをdetialに入れます.レポート・データ・ソース(ピクチャ・パスを含むフィールド)を設定します.
3、TablixのdatasetName(画像を含むデータソースのパス)を設定する
4、Textboxの背景式を設定する(ファイルボックス-》属性-』塗り-』式=Fields!path.Value)
5、データソースコードのロードとレポートのロード
2、Textboxをdetialに入れます.レポート・データ・ソース(ピクチャ・パスを含むフィールド)を設定します.
3、TablixのdatasetName(画像を含むデータソースのパス)を設定する
4、Textboxの背景式を設定する(ファイルボックス-》属性-』塗り-』式=Fields!path.Value)
5、データソースコードのロードとレポートのロード
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using Microsoft.Reporting.WinForms;
namespace Demo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private string ff = @"d:\\ ";
private void Form1_Load(object sender, EventArgs e)
{
//
this.reportViewer1.LocalReport.EnableExternalImages = true;
List<PicPath> list1 = new List<PicPath>();
List<PicPath> list2 = new List<PicPath>();
string[] pics = Directory.GetFiles(@"d:\\ ", "*.jpg");
// for (int i = 0; i < pics.Length; i++)
// for (int i = 0; i <400; i++)
for (int i =53; i < 55; i++)
{
//PicPath p = new PicPath();
//p.path = @"file:///" + pics[i];
//list1.Add(p);
if (i % 2 == 0)
{
PicPath p = new PicPath();
p.path = @"file:///" + pics[i];
list1.Add(p);
}
else
{
PicPath p = new PicPath();
p.path = @"file:///" + pics[i];
list2.Add(p);
}
}
this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", list1));
this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet2", list2));
using (MemoryStream ms =
new MemoryStream(Demo.Properties.Resources.Report1)
)
{
this.reportViewer1.LocalReport.LoadReportDefinition(ms);
}
this.reportViewer1.RefreshReport();
}
}
}