水晶报表不用数据集的动态加载图片.doc
文本预览下载声明
水晶报表一般情况下都是先生成数据集(后缀名是.xsd:方法是在资源管理器上右击添加——添加新相——选择数据集)。但有时候,在水晶报表的数据库专家(方法是:在水晶报表中——右击——数据库——数据库专家)上去添加不上去,或者需要添加数据库名称,用户和密码(这是最烦人的)。所以,我们想,可不可以不添加数据集,就可以向水晶报表添加动态的字段?
试了很多的方法,最后找到了一个方法:
现在自己的项目中添加一个类(在这我添加了一个类,叫Class1,其中有个字段path,print1,print2)
添加完类Class1后,重新生成项目(一定要重新生成,否则在之后的数据库专家中就看不见你要的Class1了)
2.添加一个数据集(后缀名为.xsd)如下图(2-1)
(2-1)
3.添加水晶报表
3.1在资源管理中右击——添加——添加新项
如下图(3-1),选择水晶报
(3-1)
3.2添加水晶报表后,出现如下图(3-2)的结果
(3-2)
3.3当单击确定后,出现如下图(3-3)
(3-3)
3.4在图(3-3)中右击,结果如下图(3-4)
(3-4)
3.5 导入数据库如图(3-5)
注意:当单击“”时,会弹出个框,“请选择文件”中找到刚才添加的数据集(DataSet1.xsd)文件。单击确定
(3-5)
3.6 添加数据字段,在水晶报表的右边有个“字段资源管理器”如图(3-6)
(3-6)
3.7 把字段拖拽到水晶报表中 如图(3-7),并保存水晶报表
(3-7)
4.1添加一个窗体Form2 如图(4-1),并添加控件CrystalReportViewer1,pageSetupDialog1,printDialog1,printDocument1(显示水晶报表,分页,打印)
(4-1)
4.2 在Form1窗体中添加一个Button1,双击后修改代码如图(4-2)
4.3 返回Form2,添加方法如图(4-3)
///主要的方法(因为图片放不下了,改用代码现敲了)
public ListClass1 getList()
{
ListClass1 lisapp = new ListClass1();
try
{
DataTable dt1 = getcheckreport();
if (dt1.Rows.Count 0)
{
string path1 = ;
string path2 = ;
for (int i = 0; i dt1.Rows.Count; i++)
{
Class1 c = new Class1();
c.Path = dt1.Rows[i][path].ToString();
if (c.Path == @D:\1.jpg)
{
path1 = @D:\1.jpg;
}
else if (c.Path == @D:\2.jpg)
{
path2 = @D:\2.jpg;
}
if (path1 != path2 != )
{
Changtoprint(ref c, path1, path2);
}
lisapp.Add(c);
}
}
}
catch
{ }
显示全部