如何在VS.NET2003的报表中显示图片[子报表]
来源:互联网 发布:无线网络流量测试软件 编辑:程序博客网 时间:2024/04/29 23:50
上个月做项目遇到的问题,查了一些资料才搞定.可惜兄弟记性不好,忘记从哪学来的了.MMD都是美女给闹的
public static CRExamNoPrint crenp=new CRExamNoPrint();//报表文件
DataSet ds=new DataSet();
//一个按钮事件,这里会动态创建一个table,然后将内容显示在报表中
private void btnPrint_Click(object sender, System.EventArgs e)
{
try
{
string strCount="select count(xjh) from xs_ksxx where xjh='"+this.gXJH.Text.Trim()+"'";
LocalDb ldb=new LocalDb();//LocalDb是数据访问类
if(ldb.ExecScalar(strCount)==0)//不存在该学生
{
((CrystalDecisions.CrystalReports.Engine.TextObject)crenp.ReportDefinition.ReportObjects["TxtTitle"]).Text="打印考生"+this.gXM.Text.Trim()+"的准考证";
//建表
this.ds.Tables.Clear();
this.ds.Tables.Add("zkz");
// 添加两个字段
ds.Tables[0].Columns.Add("xjh", System.Type.GetType("System.String"));
ds.Tables[0].Columns.Add("zkzh", System.Type.GetType("System.String"));
ds.Tables[0].Columns.Add("xxdm", System.Type.GetType("System.String"));
ds.Tables[0].Columns.Add("xm", System.Type.GetType("System.String"));
ds.Tables[0].Columns.Add("xb", System.Type.GetType("System.String"));
ds.Tables[0].Columns.Add("zp", System.Type.GetType("System.Byte[]"));
ds.Tables[0].Columns.Add("kch", System.Type.GetType("System.Int32"));
ds.Tables[0].Columns.Add("kc", System.Type.GetType("System.String"));
ds.Tables[0].Columns.Add("zwh", System.Type.GetType("System.String"));
ds.Tables[0].Columns.Add("kssj", System.Type.GetType("System.String"));
ds.Tables[0].Columns.Add("jssj", System.Type.GetType("System.String"));
// 添加
AddImageRow(this.ds.Tables[0],this.gXJH.Text.Trim(),this.gZKZH.Text.Trim(),this.gKD.Text.Trim(),this.gXM.Text.Trim(),this.cbbXB.Text.Trim(),Application.StartupPath+"//Images//NoPhoto.jpg",Convert.ToInt32(this.gKCH.Text.Trim()),"",this.gZWH.Text.Trim(),this.dtpKSSJ.Value.ToString().Trim(),this.dtpJSSJ.ToString().Trim());
}
else
{
string str="select j.xjh,s.zkzh,j.xxdm,j.xm,j.xb,j.zp,s.kch,s.kc,s.zwh,k.kssj,k.jssj from(xs_ksxx s inner join xs_jbxx j on s.xjh=j.xjh) inner join ks_kcsj k on s.ksh=k.ksh and s.kc=k.kc where s.xjh='"+this.gXJH.Text.Trim()+"'";
ldb.Exec4DS(str,"zkz",out ds);
((CrystalDecisions.CrystalReports.Engine.TextObject)crenp.ReportDefinition.ReportObjects["TxtTitle"]).Text="打印考生"+ds.Tables[0].Rows[0]["xm"].ToString().Trim()+"的准考证";
}
crenp.SetDataSource(this.ds);
crenp.OpenSubreport("CRcg").SetDataSource(this.ds.Tables[0].Rows[0]["zp"]);//子报表CRcg显示图片
crenp.OpenSubreport("CRzkz").SetDataSource(this.ds.Tables[0].Rows[0]["zp"]);子报表CRzkz
crenp.Refresh();
FmExamNoPrint enp=new FmExamNoPrint();
enp.Show();//显示报表窗体
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
/// <summary>
/// 添加图片
/// </summary>
/// <param name="tbl"></param>
/// <param name="name"></param>
/// <param name="filename"></param>
private void AddImageRow(DataTable tbl,string xjh,string zkzh,string xxdm,string xm,string xb,string filename,int kch,string kc,string zwh,string kssj,string jssj)
{
FileStream fs = new FileStream(filename, FileMode.Open); // 创建文件流
BinaryReader br = new BinaryReader(fs); // 创建二进制读取器
DataRow row;
// 创建一个新的数据行
row = tbl.NewRow();
// 设置 country 字段和 image 字段
row["xjh"] = xjh;
row["zkzh"] = zkzh;
row["xxdm"] = xxdm;
row["xm"] = xm;
row["xb"] = xb;
row["zp"] = br.ReadBytes((int)br.BaseStream.Length);
row["kch"] = kch;
row["kc"] = kc;
row["zwh"] = zwh;
row["kssj"] = kssj;
row["jssj"]=jssj;
// 将数据行添加到表中
tbl.Rows.Add(row);
// 清除
br = null;
fs = null;
}
- 如何在VS.NET2003的报表中显示图片[子报表]
- TIPTOP GP5打印报表时如何在水晶报表中显示服务器上的图片
- 在水晶报表中动态显示任意格式的图片
- 如何将Cognos报表中所使用的的参数显示在报表中
- 在水晶报表中如何显示Checkbox的样式
- 水晶报表子报表的显示问题
- 在报表中插入子报表
- cognos报表中图片的显示
- 如何在点击子报表链接时不另外显示子报表
- 水晶报表 主报表和子报表的显示
- 水晶报表中如何动态加载图片时显示不了图片的可能原因之一
- CystalReport for VS 2013 中报表的显示问题
- 关于iReport制作报表在程序中导出html时的图片显示问题
- 永远值得记住的教训,水晶报表9.2与Vs.net2003的问题
- Access中以文字方式保存文件名的图片如何在报表中预览?
- Access中以文字方式保存文件名的图片如何在报表中预览
- 如何在报表中直接使用数据库中存储的图片
- Cognos报表如何动态显示图片
- ABAP--SAP的SYSTEM的函数列表和代码示例
- 用PowerBuilder6.0建立B/S结构应用程序
- 新华网的好文
- ABAP--在SAP中设计自动刷新的报表代码
- asp.net 2.0 网站上传后出错
- 如何在VS.NET2003的报表中显示图片[子报表]
- 换个角度思考问题
- 不完备库接口带来的隐患
- SD--利用RVV05ivb更新SD的单据索引器
- 柏拉图与苏格拉底的对话----爱情/婚姻/外遇/生活
- 想到那儿说到那儿之-------Statement/ResultSet
- 常用数据库建表操作SQL代码
- IT人的现状 调查报告
- SQL常用字符串函数