(转)VS2010结合水晶报表做条码标签打印功能

本文转载自:http://blog.sina.com.cn/s/blog_552ca1400100y6dd.html

先来个功能效果图:

大家都知道VS2005和VS2008软件本身是包含水晶报表插件的,而新版本的VS2010去掉了SAP水晶报表的插件,想要在VS2010中使用水晶报表首先要下载SAP的插件CRforVS_13_0.exe,我这下载的是13版本的。

  下载完成后安装,现在就可以在VS2010里面使用了,哈哈。

1、准备工作,条码实现                                   

  具体如何实现条码,这里不再赘述,详细请参考:http://www.cnblogs.com/qidian10/archive/2011/07/16/2108144.html

  我这里准备好生成图片的地址:http://localhost:5950/CodeBar.aspx?code={0}

2、在VS2010中创建一个水晶报表                              

  文件-新建-项目-CrystalRepost应用程序

你可根据向导自己添加必要的数据源等信息,或者建立空白的报表,后面再添加一样的。
  
  我这里新建的水晶报表名称为:FLCodeBar.rpt

  报表数据库字段配置中,添加一个表,用到简单的5个测试字段(就一句sql)
select top 10 SMSITE,SMITNO,SMALSU,SMPUPR,SMREMK from PSMINF

3、在水晶报表中设置页面格式,5cm*5cm                           

  条码标签的大小是5cm*5cm的,所以首先设置页面:右键报表空白区域--->设置---->页面

4、拖入显示字段,从节点专家中隐藏报表头、页眉、报表尾部、页脚,只保留详细资料        
  从数据库字段中拖入需要显示到标签中的字段,排版

5、水晶报表中显示图片,条码图片                  

  首先右键报表空白区域--->插入---->图片(先找一个本机的图片)

  调整图片的大小为合适的大小

  由于我们的条码是动态的,所以我们这里还要给图片动态的路径

  右键图片--->设置对象格式--->图片标签--->单击最下面,图形位置右侧的按钮,弹出公式工作室

我们在右下角的编辑框中输入如下内容"http://localhost:5950/CodeBar.aspx?code="&{PSMINF.SMITNO}

  这个地址就是我们第一步实现产生条码图的地址,最后的PSMINF.SMITNO的参数代表绑定数据库的那个字段。

  还有一个不得不提的是,这里的图片路径不能写成死的,因为发布到IIS后,域名localhost:5950肯定会变的,所以这里需要用参数来代替(蓝色框),然后参数由调用程序提供。

  如何创建参数,见下面。

6、水晶报表中建立参数,供程序调用                 
  在字段资源管理器中,邮件参数字段,新建一个静态参数,如下图,然后我们才能在第5步骤中,成功保存图片路径

7、万事具备,只欠东风在Web中使用我们的水晶报表                  

  我们需要动态绑定报表的数据源。

  新建一个web应用程序,将做好的数据报表rpt文件拷贝到网站的合适目录。

  创建好web后,需要引用水晶报表的dll,如下:

我们在Default.aspx中拖入CrystalReportViewer控件

  并设定相关属性,去掉不必显示的东西。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %><%@ Register assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" namespace="CrystalDecisions.Web" tagprefix="CR" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title></head><body> <form id="form1" runat="server"> <div>  <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="true" HasCrystalLogo="False" HasSearchButton="False" HasToggleGroupTreeButton="False" ToolPanelView="None" HasToggleParameterPanelButton="False" />  </div> </form></body></html>  

复制代码

8、在Web的Default.aspx页面写入调用方法
                      

protected void Page_Load(object sender, EventArgs e){CJ.CJ_DevelopHelper.SqlConn_Str = "server=localhost;uid=sa;pwd=ovenjackchain;database=plmass;";CJ.CJ_DevelopHelper.SqlStr = "select top 10 SMSITE,SMITNO,SMALSU,SMPUPR,SMREMK from PSMINF";DataTable dt = CJ.CJ_DevelopHelper.SQL_ReturnDateTable;//获取数据源ReportDocument rpt = new ReportDocument();rpt.Load(Server.MapPath("/FLCodeBar.rpt"));rpt.SetDataSource(dt);ParameterFields t = new ParameterFields();AddParameter("PlmWebIp", "localhost:5950", t); //PlmWebIp是报表中的参数名字,即图片的Domain,这可以灵活设置(暂时写死)CrystalReportViewer1.ParameterFieldInfo = t;//添加参数CrystalReportViewer1.ReportSource = rpt;}//msdn给水晶报表添加参数的方法 private ParameterFields AddParameter(string paramName, string paramValue,ParameterFields paramFields){ParameterField paramField = new ParameterField();ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();ParameterValues paramValues = new ParameterValues();paramField.ParameterFieldName = paramName;paramDiscreteValue.Value = paramValue;paramValues.Add(paramDiscreteValue);paramField.CurrentValues = paramValues;paramFields.Add(paramField); return paramFields;} 

复制代码

  

9、收工,回顾                                  

  案例中主要用到一下知识点:

  1.VS2010集成水晶报表

  2.水晶报表页面设置

  3.水晶报表图片设置

  4.水晶报表图片的动态url设置

  5.水晶报表参数设置,和程序动态赋值等

  6.水晶报表的动态数据源绑定

PS:条码生成的程序已上传至我的微云->演示程序

时间: 2024-10-22 01:26:26

(转)VS2010结合水晶报表做条码标签打印功能的相关文章

用水晶报表做条码打印

不知道各位有没有直接在WORD或EXCEL里直接设置过条码,然后打印出来? 如果直接把内容设置为条码字体,打印出来后是扫描枪是无法读取的. 我们都知道要在内容前后加上"*"(这里和""只起引用,实际不用). 当然,这种只是39码的起始字符. 但在实际应用途中,39码往往不能够满足要求,需要打印成CODE128码,但这时候就不能简单的在打印内容前后加入"*"后设置为CODE128字体就可以了. 这需要通过算法添加不同的起始符. 下面结合我在实际的应

关于vs2010下水晶报表的使用入门

关于vs2010下使用水晶报表了解情况记录如下: 1.首先vs2010不再自带水晶报表控件了,需要下载安装vs2010配套的水晶报表控件:CRforVS_13_0.这个控件安装很简单,基本上都选择默认设置就可以了. 2.安装之后,再在vs2010中添加新项,选中reporting,下面就有CrystalReports的选项了,这个就是水晶报表文件. 3.新建一个CrystalReports文件,vs2010会弹出一个水晶报表模版生成向导,可以根据向导指示,一步一步的生成自己需要的报表文件.这里我

VS2010与水晶报表V13的打包集成小结

感谢孟子E章提供的技术咨询. 系统配置: Windows 7 + VS2010 , WinForm + DotNet4 + 水晶报表 这里说的打包集成,指的用VS2010的制作的安装包,在安装的时候可以顺带安装水晶报表V13,有这么三种方法: 一.使用水晶报表V13合并模块 举例:CRRuntime_13_0_1.msm 具体步骤请参考官方文档,网址如下: http://wiki.sdn.sap.com/wiki/display/BOBJ/Using+Crystal+Reports+for+Vi

水晶报表 如何设置水晶报表 crystal reports 的字段自动换行

在做报价系统时候水晶报表做最后报表的产出.由于规格字数较长,用户在预览报表时无法看全规格,规格多出部分会导致重叠现象. 百度文库提供一个解决方案: 1.如何设置水晶报表(crystal reports)的字段自动换行 水晶报表从数据库中读取的数据,当字段内容比较长时,很影响美观,需要设置它为自动换行来显示. 影响美观的没有自动换行的报表图示: OK,看了图示,觉得实在太难看了,好,我们来设置它自动换行吧: 1.打开字段的格式化字段属性,将其公用标签下的可以扩大(CANGROW)属性选上,如图:

水晶报表制作甘特图实例

最近两周一直在用水晶报表做图表,像柱状图.折线图.甘特图.饼图等,原以为采用推模式用存储过程把数据推给图表就行了.但在实际操作过程中遇到了不少的细节问题. 1)图例标签文本 如图所示,默认情况下图例中的是 数据库的字段,如果是sum则是  数据库字段+"的和",这显然不是我们想要的,而且在vs集成版本里面这个标签文本是无法修改的. 如果是独立版本的话则可以在预览时点击相应的图例项然后编辑轴标签 但是如果采用推模式的话预览的时候没有数据看不到图表,也就无法进行设置了. 2)折线图线条的粗

WinForm 水晶报表的简单使用

今天需要做出一个水晶报表, 以前在学校的时候就看过一点点,有些印象, 但没有具体的了解过,今天百度了一下,发现这个东西相当的方便简单. 还很完美. 开发工具是VS2010,水晶报表没有内置.需要自己下载. 网上有很多,结尾处的参考文章地址中也有. 需要注意的有两点: 1VS2010运行环境默认为.NET FRAMEWORK 4.0 CLINET PROFILE,要改为.NET FRAMEWORK 4,选中项目右键属性就可以更改了: 2.在项目中加一个APP.CONFIG(这是针对WINFORM项

水晶报表制作甘特图教程

最近两周一直在用水晶报表做图表,像柱状图.折线图.甘特图.饼图等,原以为采用推模式用存储过程把数据推给图表就行了.但在实际操作过程中遇到了不少的细节问题. 1)图例标签文本 如图所示,默认情况下图例中的是 数据库的字段,如果是sum则是  数据库字段+“的和”,这显然不是我们想要的,而且在vs集成版本里面这个标签文本是无法修改的. 如果是独立版本的话则可以在预览时点击相应的图例项然后编辑轴标签 但是如果采用推模式的话预览的时候没有数据看不到图表,也就无法进行设置了. 2)折线图线条的粗细 做了一

水晶报表工具栏不显示图标或者干脆水晶报表不显示

折腾了大半天,所有的方法都试了,一开始工具栏不显示图标. 后来装了vs2010和水晶报表2010,调完之后,水晶报表干脆不显示了 纠结+无奈 最后从网上查到可能网站的默认目录改了,也就是C盘下C:\Inetpub\wwwroot这个目录 后来在IIS下新建一个网站,默认目录设置C:\Inetpub\wwwroot,然后把自己的程序加上去.测试,OK! 从开始有问题到完全弄好折腾了两周,只想说三个字  TMD

VS.NET2010水晶报表安装部署[VS2010]

水晶报表VS2010版IDE安装标准版SAP Crystal Reports, version for Visual Studio 2010 - Standard: 下载地址: http://downloads.businessobjects.com/akdlm/cr4vs2010/CRforVS_13_0_1.exe 下载安装后打开VS2010就可以在左边工具栏中看到CRYSTALREPORTVIEWER,并且可以新建水晶报表了: 用法跟以前版本的用法类似:  不过要注意下面几点: a. 运行