2011-03-11

《OpenOffice Base》使用Base表單直接套印『郵政劃撥支票』的教學範例

OSS首頁》《文章分類列表》《Base》《Calc》《Draw》《Impress》《Writer

OpenOffice 或 LibreOffice在標籤列印上,提供了非常簡便、易用的功能,但是對於需要直接列印到多個特定欄位位置的套印,並不適用。

以下使用『郵政劃撥支票』的套印為例,說明如何在Base表單上,建立一個簡單的資料表格及表單,透過表單內的控制項屬性設定,來決定是不是可列印、資料要用哪一種格式來顯示?達成套印支票的目的。

首先建立一個資料表,包含以下資料欄位:

  1. 支票號碼:做為輸入支票號碼用,並設定這個欄位為『主鍵』
  2. 開票日期:日期[Date]的資料型態。
  3. 到期日期:日期[Date]的資料型態。這個欄位的資料,會透過格式化的控制項,分別顯示:年、月、日,顯示在控制項上,並且可以列印出來。
  4. 支票抬頭:做為輸入存放受款人資料的欄位。
  5. 票據金額:整數[Integer]的資料型態。
這個資料表命名為『開票紀錄』。

接著建立一個表單,並將這個表單命名為『支票紀錄及列印』。
相關控制項的說明如下詳述:
(1)新增一個圖式控制項,並作如下的設定:
將此控制項命名為:支票圖。
可列印:設定為『否』。
依照原支票的大小尺寸,輸入:寬度、高度。
指定支票圖檔的所在位置。
顯示比例:設定為『保持比例』

為確保接下來所建立的套印控制項,能準確的列印到指定的位置,先設定一下,這個表單頁面的上方留白、左側留白為零。
格式(O)→頁面(P):『頁』頁籤
頁面邊距,向左:0cm,向上:0cm
PS.以上的邊距設定,根據印表機的不同,有的印表機可能需要先精確的設定自訂紙張大小等設定,請依照實際狀況調整。

(2)建立一個『表格控制項』,做為輸入、查詢、修改支票紀錄的用途。

在拖曳建立表格控制項前,請先確認表單控制項的『精靈』功能是開啟的。
拖曳建立表格控制項時,精靈的功能會輔助您,建立這個表格控制項的資料欄位,不再多做說明。

將這個表格控制項,命名為:支票表格。
可列印:設定為『否』。

如要進一步設定每個資料欄位的屬性,先點選表格控制項的個別資料欄,即可進行特性(屬性)的設定。

(3)建立一個『文字方塊』
將這個文字方塊拖曳至『憑票支付』的右側。
將這個文字方塊所對應的資料欄位,指定為『支票抬頭』。

將這個文字方塊命名為:支票抬頭。
可列印:是。
字型:選擇字型、設定字體大小...。
邊界顏色:白色(不要有邊界)。

(4)建立三個要顯示票據到期日期:年、月、日的格式化欄位。
先將這三個格式化欄位分別拖曳至年、月、日的右側。
這三個格式化欄位所對應的資料欄位,都指定為『到期日期』。資料顯示時,會透過格式化分別指定只顯示:年、月、日。

將這三個格式化的欄位,分別命名為:到期年、到期月、到期日。
唯讀:如要將資料的輸入、修正,統一由表格控制項處理,可以將唯讀設為『是』。
可列印:是。
格式化,如以下說明。
字型:使用預設,也可以根據需求調整一下。
對齊:中。
垂直對齊:置中。
邊界顏色:白色(不要有邊界)。


到期年、到期月、到期日的格式化欄位內容說明

到期年:在格式碼中輸入『EE』,不管系統有沒有自動轉換為[~ROC]YYYY,民國百年都可以正常顯示。

到期月:在格式碼中輸入『MM』。

到期日:在格式碼中輸入『DD』。

(5)建立兩個要顯示票據金額的格式化欄位:
將這兩個新增的格式化欄位,拖曳到新台幣、NT$的右邊。
這兩個格式化欄位所要對應的資料欄位,都指定到『票據金額』。

將這兩個格式化欄位,分別命名為:中文金額、數字金額。
唯讀:如要將資料的輸入、修正,統一由表格控制項處理,可以將唯讀設為『是』。
可列印:是。
格式化,如以下說明。
字型:使用預設,也可以根據需求調整一下。
對齊:中。
垂直對齊:置中。
邊界顏色:白色(不要有邊界)。

中文金額、數字金額的格式化欄位內容說明

中文金額:
在格式碼中輸入[DBNum2]General"元整"
系統可能會轉換為[NatNum5]General"元整"

數字金額:
格式碼:#,###".-"
千位分隔符:勾選。
小數點位數:0
前置零:0

完成後效果呈現:

6 則留言:

php玩偶 提到...

在這裏留言可能不太妥當…但有些問題想請問您:
是這樣的我想要將一堆考生的資料在base中產生考場座次報表,報表呈現的方式要依考證序號依欄排序就像以下的方式:
01 06 11 16
02 07 12 17
03 08 13 18
04 09 14 19
05 10 15 20
這樣的安排式在base報表中可行嗎?謝謝

Hannibal 提到...

不是很完整的了解你的需求,所以無法很精確的回覆。
如果要用Base的報表來呈現上述的效果,也許可以先用SQL定義一個查詢,將資料轉換成所要的格式,再透過Base報表來呈現。
但我建議可以用writer合併列印的功能取得BASE的資料,應該很容易達到需求。

php玩偶 提到...

謝謝您的回應

隨心小筆 提到...

小弟有個問題想請教Hannibal先進

小弟想做一個類似圖片的資料庫,BASE有辦法做成嗎?

Hannibal 提到...

建議可以參考:ANDREW PITONYAK的 Andrew Learns OOo Base: Andrew's ramblins on using macros with OOo Base,網址:http://www.pitonyak.org/database/AndrewBase.odt,其中有一章節:Storing images(binary data) in Base。

Hannibal 提到...

Hi,隨心小筆,介紹一個比較簡單更貼近你的需求的作法:如何使用OpenOffice / LibreOffice Base儲存管理圖片影像?(1)~(4),http://blog.bod.idv.tw/2012/06/openoffice-libreoffice-base1.html