(轉)VS2010結合水晶報表做條碼標籤列印功能

來源:互聯網
上載者:User

標籤:

本文轉載自: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:條碼產生的程式已上傳至我的微雲->示範程式

(轉)VS2010結合水晶報表做條碼標籤列印功能

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.