1. 程式人生 > >單據類報表的製作

單據類報表的製作

在銀行、財務、銷售等系統中,常常會看到這樣一類報表,它們一般是從原來的手工報表年代沿襲而來,需要列印在固定大小的紙張上,有著固定的樣式要求。具體的形式包括各種登記本冊和單據等。

在沒有報表工具之前,這類報表大部分使用 Excel 進行製作,費時費力還不易維護,每次都獨自加班到很晚(一首涼涼送給自己)。今天,我要帶一帶新的節奏,展現一下神操作來製作這類單據報表。

這次我們拿公積金單據來進行具體操作演示。下圖就是公積金管理中心為各單位提供的繳納單據,一般要求單據的每一頁上方都有單位資訊,中間填寫單位工作人員的具體公積金繳納明細,最下面是合計和簽章資訊。一個手工年代的懷舊特點是,每頁只顯示 7 條資料,多了填到下一頁,一頁不夠 7 行也要補上空行,而且要和紙質單據格式大小完全對應上:

好吧,為了按時下班,讓我們用潤乾報表趕緊開始吧:

首先,根據效果圖繪製報表樣式和框架,如下圖: 【實用小技巧】因為單據類報表基本都需要列印在固定格式的單據上,也就是俗稱的“套打”,所以在設計報表的時候就需要根據實際的單據來設計。具體做法是:用掃描器掃描單據圖片,然後把圖片調好大小,設定為報表背景圖(報表屬性–> 其他–> 背景圖),這樣就可以比著圖片的邊框來調整報表的單元格。

接著,設計固定資料區域:

根據業務需求,要求第 1 行到第 8 行、第 11 行到 14 行的內容每頁都顯示,那麼我們需要通過行屬性設定實現此效果:

1-8 行需要設計為分組表頭。11 行到 14 行設定為報表尾。

設定完後如下圖所示:然後,明細資料關聯計算

業務要求按照流水號分組顯示明細,所以我們新增上對應單元格表示式,並做資料關聯 其中,

A1:=hnszgrkhdjqc.group(流水號; 流水號:1),合併單元格後前八行資料都跟隨流水號動態取數顯示記錄,D4、D5 單元格如需從資料集取數,直接用取值表示式即可 B9:=hnszgrkhdjqc.select(id),並設定左主格為 A1,表示跟隨流水號動態取數 C9:=&B9,並設定左主格為 B9,為序號實現方式的固定用法 D9 之後的單元格表示式我們可以直接使用取值表示式,即:資料集. 欄位名稱最後,完美實現空行效果

實現每頁固定顯示 7 條明細資料,且不足 7 行時進行行補足,這需要分成兩步:

1. 補足空行:

我們在第 10 行位置插入一行,編輯補足空行表示式 C10:=to((hnszgrkhdjqc.count()%7)+1,7),根據記錄數判斷是否補足,這裡是需要跟隨流水號進行判斷的,所以需要設定 A10 的左主格為 A1。

特殊的,當記錄數夠 7 行的時候,也會進行擴充套件,這個時候需要將多餘擴充套件行隱藏掉,具體實現方法如下圖所示(利用隱藏行表示式):

2. 對於每頁固定 7 行的效果,我們可以通過行後分頁 + 按紙分頁效果實現: <1> 在報表屬性–》分頁中設定為按紙分頁,紙張大小根據實際業務需求進行設定 <2> 在 C10 單元格右側單元格屬性中找到“行後分頁”屬性配置,並增加表示式:if(D1%7==0,TRUE,FALSE),表示如果分組內的資料記錄數能被 7 整除,那麼就隱藏,否則就顯示擴充套件後的資料

好了,一個完美的單據類報表就完成了,我們來回顧一下其中遇到的問題和解決的技巧:

1. 每頁的固定表頭表尾顯示

【技巧】設定行屬性為分組表頭和報表尾

2. 補足空白行,保證每頁固定條數明細資料

【技巧】使用 to() 函式和動態隱藏行實現補足空白行,使用行後分頁功能實現固定行數分頁效果

至此,單據類報表製作就完成了,我們僅僅使用了潤乾報表的左主格和行後分頁功能就做好了單據報表,這一波操作 6 不 6?神馬銀行匯款單、開戶單、倉庫出入庫單·····都 so easy,快來加入潤乾大家庭,從此和加班 say byebye。