日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RDL/RDLC批量单据打印 [转]

發(fā)布時間:2025/3/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RDL/RDLC批量单据打印 [转] 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

RDL/RDLC批量單據(jù)打印

使用RDL或RDLC進(jìn)行單據(jù)打印時,單張單據(jù)打印比較直觀簡單,無需說明。下面我們來談一下批量單據(jù)打印的實(shí)現(xiàn)方法。以下以RDL的ReportBuilder設(shè)計環(huán)境為例進(jìn)行講解,RDLC、VS設(shè)計環(huán)境同理。實(shí)現(xiàn)效果如下。

一、 基本思路

數(shù)據(jù)集:將單據(jù)表頭、表體合并為一個數(shù)據(jù)集。例如將以下兩個表合并為一個DataSet查詢:單據(jù)號碼、客戶代碼、部門、貨品代碼、貨品名稱、倉庫、數(shù)量、單價、金額等。

  • 表頭字段:單據(jù)號碼、客戶代碼、部門等;
  • 表體字段:項(xiàng)次、貨品代碼、貨品名稱、倉庫、數(shù)量、單價、金額等字段;

控件:列表、矩形、文本框、表。使用“列表”控件作為單據(jù)的邊界,并在列表中設(shè)置一個“單號”分組,實(shí)現(xiàn)分頁,在“列表”中設(shè)計單據(jù)表頭及明細(xì)表體。

二、 詳細(xì)步驟

1. 建立列表

在主體中插入一個列表,并指定其數(shù)據(jù)源。

選擇列表,在行組中用鼠標(biāo)右鍵選擇詳細(xì)信息,選擇 組屬性 ,設(shè)置“單據(jù)號碼”分組,為了明了,修改組名稱為 “單據(jù)號碼”。排序選項(xiàng)根據(jù)需要設(shè)定。

在分頁符選項(xiàng)卡上設(shè)置分頁,這樣可以實(shí)現(xiàn)一張單據(jù)分頁的效果。

此時得到了一個單據(jù)容器,用以容納我們即將要設(shè)計的單據(jù)。

2. 單據(jù)明細(xì)信息:列表與矩形

細(xì)心一點(diǎn)你會發(fā)現(xiàn),在我們剛才插入的“列表”控件中,還有嵌套了一個“矩形”(Rectangle)控件,這是布局所需要的。如果沒有矩形的話,我們拖進(jìn)列表中的字段,將會成為列表本身的值。所以不管是列表、表或矩陣,如果想在Tablix表格之中再進(jìn)行布局,則先鋪一個矩形是非常必要的。

因?yàn)橛芯匦蔚拇嬖?#xff0c;所以我們可以像普通報表一樣,在列表中布置表頭文本框,和表體詳細(xì)數(shù)據(jù)。需要注意的是一些設(shè)計細(xì)節(jié),比如表頭居中,表體數(shù)量型字段需要居右,其他字段居左,小數(shù)位數(shù)的取舍等等。

表頭的設(shè)計推薦兩種方式:

1)表頭信息可以使用下圖中的“文本框”控件,設(shè)計空間比較自由。

?

2)也可以在詳細(xì)數(shù)據(jù)表第一行之上再添加一個數(shù)據(jù)行,合并整行后插入個矩形控件,再插入一個無邊框的數(shù)據(jù)表用來作為表頭,這樣比較整齊

3. 頁眉頁腳

將每頁都有重復(fù)顯示的東西放在頁眉和頁腳。當(dāng)然還有表格的表頭也要設(shè)置為在每頁中重復(fù)。方法是先選中“表”,進(jìn)入高級模式,在行組中選擇作為表頭的“靜態(tài)”行,在屬性中將RepeatOnNewPage設(shè)置為True。

如果有些信息需要在每頁中都要顯示,但因?yàn)獒樖酱蛴≈写嬖趽Q頁切紙問題,所以把一些重要信息設(shè)置在表中,也可以通過設(shè)置RepeatOnNewPage屬性,在每頁中顯示。

4. 單據(jù)分頁

在第一步中已經(jīng)設(shè)置了單據(jù)分頁,需要注意的是,這個列表空間與“頁腳”之間不能存在空隙,否則單據(jù)最后一頁就總會有一個空白頁。

其實(shí)實(shí)現(xiàn)單據(jù)分頁有很多種方法,不拘泥于這一種。大家自行摸索。

三、 其他細(xì)節(jié)

1. 大寫金額

在報表空白處右擊鼠標(biāo),選擇報表屬性,將下面的通過網(wǎng)絡(luò)搜集的代碼粘貼進(jìn)去,在表中表達(dá)式中引用此函數(shù)即可。

=code.CNMoney(Sum(Fields!金額.Value))

?

1 '############################################################################# 2 3 '貨幣轉(zhuǎn)換為中文漢字表述 4 5 '函數(shù)名稱:CNMoney 6 7 '參數(shù):ls 8 9 '返回值:轉(zhuǎn)換后的字符串 10 11 '整理人:阿泰 12 13 '版本歷史 14 15 '本文函數(shù)來源于 feng442624978,原帖地址: 16 17 'http://topic.csdn.net/u/20100303/15/0f0ceca7-d29d-4269-b0f5-17ea09d0f139.html 18 19 '############################################################################# 20 21 Shared Function CNMoney(ls As Double) As String 22 23 Dim dx_sz As String 24 25 Dim dx_dw As String 26 27 Dim str_int As String 28 29 Dim str_dec As String 30 31 Dim dx_str As String 32 33 Dim fu As String 34 35 Dim a As String 36 37 Dim b As String 38 39 Dim c As String 40 41 Dim d As String 42 43 Dim b2 As String 44 45 Dim num_int As Long 46 47 Dim num_dec As Long 48 49 Dim len_int As Long 50 51 Dim i As Long 52 53 Dim a_int As Long 54 55 Dim pp As Long 56 57 dx_sz = "零壹貳叁肆伍陸柒捌玖" 58 59 dx_dw = "萬仟佰拾億仟佰拾萬仟佰拾圓" 60 61 If ls = 0 Then 62 63 CNMoney = "零圓整" 64 65 Exit Function 66 67 End If 68 69 If ls < 0 Then 70 71 ls = Abs(ls) 72 73 fu = "負(fù)" 74 75 Else 76 77 fu = "" 78 79 End If 80 81 dx_str = CStr(ls) 82 83 dx_str = Replace(dx_str, "", "") 84 85 dx_str = Replace(dx_str, ",", "") 86 87 If (ls >= 0) And (ls < 1) Then dx_str = "0" + dx_str 88 89 pp = InStr(dx_str, ".") 90 91 If pp > 0 Then 92 93 str_int = Mid(dx_str, 1, InStr(dx_str, ".") - 1) 94 95 Else 96 97 str_int = dx_str 98 99

轉(zhuǎn)載于:https://www.cnblogs.com/bluedy1229/p/7266046.html

總結(jié)

以上是生活随笔為你收集整理的RDL/RDLC批量单据打印 [转]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。