[摘 要]在商場中,有關客戶的優惠卡、證件、證書,打印輸出程序設計思路及主要程序
[關鍵詞] 優惠卡 單一卡證 打印輸出 程序代碼
一、需求分析:
在商店日常管理中,常常需要發放有關優惠卡、證書、證件。通常情況多數單位是用電子表格等軟件完成輸入、編輯。但在打印輸出時不很方便,每次只一個一個的編輯好,然后在一個一個輸出,經常出現錯位的現象。本人給一家商店用Visual Foxpro6.0編寫了一個優惠卡等證件、證書打印輸出程序。在使用過程中,用戶很滿意,使用方便。現在我把這個程序設計思路、源程序寫出來與大家交流。
二、設計思路:
首先 設計一個把每個客戶的有關要往優惠卡等證件、證書打印的信息都輸到一個VFP數據表中,還可進行編輯、校對客戶信息的程序。以保證客戶信息的準確無誤。
其次 設計一個能查找定位要輸出的記錄位置程序,并顯示這個客戶的信息,再設計該記錄在表中有效性,唯一性的程序。這樣才能為下一步準確打印輸出做好準備。
最后 報表設計。報表設計在系統軟件的報表設計項目設計的“標題、頁標頭” 項目設計中進行設計,不能到細節中設計,否則就不能實現了優惠卡、證的單一打印輸出了。
三、程序設計
1.部分客戶資料如下:
2.根據客戶資料設計了如下表結構
表結構:
字段 字段名 類型寬度
1 編號字符型20
2 性別字符型2
3 出生年月 日期型8
4 聯系電話 字符型11
5 通信地址 字符型30
6 發卡時間 日期型8
3.根據以上表結構設計如下操作表單
這個表單操作如下:先通過“查詢記錄”按鈕,輸入用戶要打印的記錄,然后再用“指定打印記錄”按鈕指定要打印的記錄,最后通過點擊“打印一頁”按鈕按提示打開打印機,并把證書放入打印機,確認即可完成打印輸出證書了。
4.這每個按鈕的程序設計源代碼如下:
(1)“查詢記錄”源代碼不是本文說明的重點,且查詢記錄方法有很多種,讀者可自行設計,這里不多介紹。
(2)“指定打印記錄”源代碼如下:
DO FORM 指定記錄 TO DQJL (CR) THISFORM.COMMAND1.ENABLED=.T. (CR) thisform.refresh
執行“指定打印記錄”之后將出現“指定記錄”表單主要按鈕如下:
①“當前記錄”源代碼如下
ledqjl=recno() (CR) thisform.rease
②“下一個記錄”源代碼如下
if eof() (CR) count to aaa (CR ) dqjl=aaa (CR) messagebox('已到最后一個記錄,不能再移動了!',0,'注意') (CR) else (CR) skip (CR) dqjl=recno() (CR) endif (CR)thisform.release
③“上一個記錄”源代碼如下
if bof() (CR) dqjl=1 (CR) messagebox('已到第一個記錄,不能再移動了!!',0,'注意') (CR) else (CR) skip -1(CR) dqjl=recno() (CR) endif (CR) thisform.release
④“第一個記錄”源代碼如下
go 1 (CR) dqjl=1 (CR) thisform.release (CR)
⑤“最后一個記錄”源代碼如下
go bott (CR) dqjl=recno() (CR) thisform.release
(3 ) “打印一頁”源代碼如下
set filter to RECNO()=DQJL(CR) report form bb1 prev(CR) THISFORM.COMMAND2.ENABLED=.T.
(4)“打印二頁”源代碼如下
set filter to RECNO()=DQJL(CR) report form bb2 preview (CR)
THISFORM.COMMAND1.ENABLED=.f.(CR)THISFORM.COMMAND2.ENABLED=.f.
(5)“退出”源代碼如下
close all(CR) thisform.release
(5)報表設計如下圖
圖中本人只列舉了一項,其它項目讀者可自行增加。注意!我設計時是在VFP報表設計系統中的“標題”項目中進行的。讀者在試用時注意。
參考文獻:
[1]《數據庫應用技術----Visual FoxPro 6.0》魏茂林 主編 電子工業出版社
[2]秦愛明 “淺談商品進銷存信息管理系統”,《商場現代化》2010年第33期
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文