1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > [原创]Devexpress XtraReports 系列 10 创建标签报表

[原创]Devexpress XtraReports 系列 10 创建标签报表

时间:2021-11-26 01:45:23

相关推荐

[原创]Devexpress XtraReports 系列 10 创建标签报表

今天这篇是Dx Reports 基础初级系列的最后一篇了。以后如果有什么高级的应用,应该另开一个中级使用系列。

昨天发表了Devexpress XtraReports系列第九篇[原创]Devexpress XtraReports 系列 9 创建邮件合并报表,今天我们继续。

今天的主题是创建标签报表。

至于什么是标签报表呢?我也具体说不上来。

我只是个人觉得它可以用在打印产品信息(需要附图)的报表。

假如我有很多产品,老板想要看到这些产品的编号,产品的名称,还有产品的图片等信息,我们可以利用标签报表轻松地实现。

下面我展示的是以部门为例。

首先我们来看看最后实现的效果。Demo最后附上。

接下来开始讲解如何一步一步做出这个报表:

第一步

创建如上窗体,拉入控件SimpleButton,DocumentViewer,SplitContainerControl,LabelControl,TextEdit,GroupControl,简单布局我就不多说了,跟上篇一样的布局 ,详见:/lhmlyx2723356/p/3286101.html

第二步

a,新创建一个报表文件。点击如图:

b,在弹出的窗体中,选择标签报表。如图:

然后一直下一步就OK了。

c,添加需要绑定的字段。如图:

第三步

我们利用数据库做一张简单的表并输入一些测试值。如图:

第四步

数据库表,布局都做好了,接下来我们就来处理相对应的事件了。输入文本框的值,点击按钮把查询出来的数据源绑定到报表

a,修改报表文件的构造函数,让它在实例化的时候可以接收数据源。

public LabelRpt(DataSet ds)

{

InitializeComponent();

this.DataSource = ds;

this.xrLabel2.DataBindings.Add("Text", ds, "dept_id");

this.xrLabel3.DataBindings.Add("Text", ds, "dept_name");

}

//为了让XRRichText控件中承载的XRPictureBox控件显示出数据库中测试数据中的jpg图片,其实这些图片是存放在程序运行目录下,如图:

那如何让图片显示出来呢?

我们应该处理XRPictureBox控件的BeforePrint 事件。

private void xrPictureBox1_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)

{

string path = System.Environment.CurrentDirectory + "\\" + GetCurrentColumnValue("pictureurl");

xrPictureBox1.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;

((XRPictureBox)sender).Image = Image.FromFile(path);

}

b,获取数据源

private DataSet BindRpt()

{

DataSet ds = new DataSet();

try

{

SqlConnection con = new SqlConnection("Data Source=(local);Integrated Security=SSPI;Initial Catalog=ReportDeom");

SqlDataAdapter adapter;

con.Open();

SqlCommand cmd = new SqlCommand("SELECT * FROM Dept where dept_name=@name OR @name='' ", con);

SqlParameter[] paras = new SqlParameter[]{

new SqlParameter("@name",txtName.Text.Trim())

};

cmd.Parameters.AddRange(paras);

adapter = new SqlDataAdapter(cmd);

adapter.Fill(ds, "LabelRpt"); ;

con.Close();

}

catch (Exception ex)

{

throw ex;

}

return ds;

}

c,单击按钮,绑定数据到报表中

private void btnShowReport_Click(object sender, EventArgs e)

{

DataSet ds = BindRpt();

LabelRpt Rpt = new LabelRpt(ds);

this.documentViewer1.DocumentSource = Rpt;

Rpt.CreateDocument();

}

到此,标签报表就完成了。

Demo地址:/QXhqJfuPK5bpt 访问密码 0e22

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。