初學c#,因最近公司客戶要求原出貨標簽需實現條碼化,練手的機會來了,遂動手做這個程序,開始都是一些增刪改查操作一直很順利,但到RDLC報表將條碼顯示到報表上犯難了,因為初學未接觸過報表,上網查資料均一無所獲,折騰了一天帶一晚上,偶然看到一篇文章的一個byte[]數組和image互轉的方法來實現RDLC報表顯示圖片的方法。有了思路,開始想怎么做,貼上代碼,第一次寫能實現我自己都很欣慰了,大神勿噴。
客戶要求標簽模板
我做的思路是:不使用數據庫存儲image的byte[]數據,而是首先將所有需要的條碼數據保存到一個數據庫表中,然后在需要將條碼顯示到RDLC報表中時,取得表中的條碼數據,然后創建數據集(用於存儲報表中需要用到的所有數據),再將每條條碼數據用barcodelib.dll生成條碼對象,返回image對象,再使用下面方法將返回的image對象轉換為byte[]數組存入新建的數據集中。
其他代碼就不貼了,太長了。
1 //image對象轉byte數組 2 public static byte[] ImageToBytes(Image img) 3 { 4 ImageConverter imgconv = new ImageConverter(); 5 byte[] b = (byte[])imgconv.ConvertTo(img, typeof(byte[])); 6 return b; 7 }
然后在RDLC中創建模板,添加數據源為剛剛創建的數據集,插入圖片對象,圖像源選擇數據庫,”使用此字段“ 輸入 System.Convert.ToBase64String(Fields!存儲image對象的byte[]列名.Value)
RDLC報表模板!
看看實際效果