


摘要:在很多行業,處理業務的時候。需要客戶預先填寫單據。例如傳統的銀行業務辦理,需要客戶在業務單里填寫個人的姓名、身份證號碼等個人信息,以及一些辦理業務的相關信息。傳統的手工填寫,費時費力,容易出錯。這就一定程度上降低了銀行業務辦理的效率。該次設計旨在通過計算機完成個人信息填寫,個人用戶信息從身份證中直接獲取,通過打印機自動輸出,方便快捷。
關鍵詞:自助填單;身份證;C#編程語言
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2019)36-0080-04
1背景
互聯網帶給我們的就是便捷、高效和低錯。在銀行、運營商、快遞、政府服務大廳等各種服務型企業,便捷高效的流程更是客戶對服務體驗最直接的體現,在進入這些機構大門辦事的第一步就是要填各種的單據,傳統的顧客自己手寫單據在生活節奏如此之快的當下顯得就很不合時宜了,由此結合現代互聯網技術的發展,自助填單系統尤其是在銀行業受到了廣泛的認可。
銀行是人們生活中躲不過的機構之一,當我們進入銀行辦事,首先要填寫申請單。在銀行辦理業務,首先需要填寫各種申請單據,而在各種單據中又有很多信息是必須填寫的。包括身份證號碼、姓名、性別等個人基本信息。客戶花費大量時間填寫單據基本信息,一則造成了個人的時間浪費,二來也是銀行處理業務效率低下,資源浪費的現象。因此急需要能夠自動讀取身份證上已有信息,自動填入單據的管理系統。
2系統總體設計
本系統設計主要是為了實現客戶自助預填單據,將填單系統與柜員業務系統形式分離,數據共享,既實現客戶便捷預填單打印,又方便柜員業務系統對數據調取,以新客戶身份證為憑證,實現一證通便捷的業務流程。自助填單系統是為了解決客戶手寫填單費時費力效率低以及錯誤率高的問題,綜合分析自助填單系統的功能需求,結合銀行業務特點,提出自助填單系統的技術應用方案,設計通過身份證閱讀儀器對身份證信息的讀取和識別,自動填寫到相應表單上,用戶可以迅速打印對應表單,同時用戶信息存入后臺數據庫,可以提供其他部門辦理同業務的不同流程使用。
本平臺的功能需求如圖1。
該系統有三種用戶類別,分別為管理員、銀行柜員和客戶。客戶為到銀行辦理存款、取款、開通網銀等業務的人員,一般需要預先填寫很多單據。柜員為銀行一般工作人員,直接面向顧客服務。管理員一般為信息系統管理人員,不具體面向顧客。在該系統中可以填寫、修改、刪除表單管理的業務模塊。
2.1身份證信息讀取
本功能主要實現對客戶身份證中的信息讀取功能,自動讀取省去客戶手動填寫信息操作,并且通過讀取身份證保證信息可靠準確。
2.2填寫表單
表單中一些身份證上沒有的信息,例如存款的金額、手工簽名等信息,通過電腦手工輸入。
2.3打印表單
信息填寫完整后,直接打印表單。此時系統將顧客填寫的信息保存的數據庫中。并打印出紙質表單信息。
2.4表單模板管理
辦理一項業務對應一個表單模板。可以添加模板也可以刪除模板。
2.5讀取表單信息
銀行柜員根據紙質表單上的流水號,自動讀取到顧客在自助機上填寫的信息。
3系統結構
系統結構主要是由客戶端程序和后臺數據庫服務器組成,客戶端采用帶觸摸屏計算機,外帶手寫筆,用于客戶簽名。身份證閱讀器iDR-210、打印機等通過USB口直接連接到客戶端計算機。
客戶首先選擇自己需要辦理的業務類型,將身份證放到身份證閱讀器上。在客戶端程序窗口相應位置會自動填寫上身份證上有的信息,例如身份證號碼、姓名、性別、出生日期、身份證有效期等用戶信息。然后手工輸入表單要填寫,但身份證上閱讀不到的信息,例如存款類型、存款金額、存款年限等信息。確認信息無誤后,用手寫筆在相應位置簽名。然后提交表單,在此過程中,客戶端將你填寫的信息保存的數據庫服務器,并完成表單的打印工作。至此,你就可以拿著打印好的表單,直接的柜臺辦理業務了。柜員通過表單上的流水號,查詢到在數據庫服務器上讀取查詢調用您剛剛提交的數據。如圖2系統結構圖所示。
4主要功能模塊的實現
4.1表單模板生成模塊
本功能需要接入掃描儀設備對用戶新表單進行掃描,并傳到界面中的PictureBox中作為管理員拖拽信息位置的參考背景,管理員可以對信息位置的精準把控,實現對應的打印。在點擊“讀取信息”按鈕時開始掃描功能,調用掃描儀。這里使用微軟wia組件,這個組件和其他微軟開發組件類似,都是com組件,在掃描進程結束后,返回一個ImageFile對象值,這個Image-File就是掃描后的圖像文件。在Click事件中添加主要代碼如下:
CommonDialogClass cd、= new WIA.CommonDialogClass();
try{imageFile=cdc.ShowAcquirelmage(WIA. WiaDeviceType.ScannerDeviceType, WIA. Wialmagelntent. Textlntent, WIA. Wialm-ageBias.
MaximizeQuality,
”{00000000-0000-0000-0000-000000000000}”, true, true,false);}catch (System. Runtime.lnterop-Services.COMException){imageFile= null;}
最后,通過PietureBoxl.Image=lmageFile.image語句將把ImageFile傳到PictureBox中。
掃描后將獲取的表單以圖片的形式存人數據庫中,并且將所獲的表單圖片存入當前操作設備存儲中,方便查看移動。主要代碼如下:
private void buttonl_Click(object sender, EventArgs e)
{string localFiIPath,fileNameExt;
saveFileDialogl.Filter=”圖片文件(*.jpg)l*.jpg”;
saveFileDialogl.Filterlndex=1;
saveFileDialogl.RestoreDirectory= true;
string strPath= saveFileDialogl.FileName;
if (saveFileDialogI.ShowDialog()==DialogResult.OK)
{if (saveFileDialogl.FileName!=””)
{localFilPath= saveFileDialogl.FileName.ToString();
fileNameExt= locaIFilPath. Substring(localFiIPath. Lastln-dexOf'(”//”)+1);
System.IO.FileStream fs=(System.IO.FileStream)saveFileDia-logl.OpenFile();
SaveFile();
fs.Cl(,se();}}
public void SaveFile()
{Image im= this.pictureBoxl.lmage;
Bitmap bit= new Bitmap(im);
bit.Save(Application.StartupPath+”\\hah.jpg”,
System.Drawing.Imaging.ImageFormat.Bmp);}
用戶將個人字段位置拖拽到對應的位置,系統記錄下每個標簽在模板中的位置,并將位置信息保存到數據庫中。
4.2信息獲取模塊
本系統采用精倫身份證閱讀器,型號為市面上流行的1DR210。通過身份證閱讀器獲取身份證中姓名、性別、出生日期、身份證號碼等個人信息。獲取的方法在C#語言中調用身份證讀取設備預留的dll文件中的函數,來完成對讀取設備工作流程以及獲取的信息進行控制。
iDR210提供一系列操作身份證的函數,詳見表l。
該系統中讀取身份證信息用的函數為ReadBaseInfosPhoto(char *Name,char*Gencler,char *Folk,char *BirthDay,char*Code,char *Address,char *Agency,char*ExpireStart,char *Ex-pireEnd,char *directory),該函數用于讀取身份證中基本信息,包括文字信息與圖像信息。文字信息以字符串格式輸出。圖像信息被解碼后存為directory指定目錄下照片。
先聲明其中所包含的參數對象,通過對dll文件中函數的調用,實現對設備連接端口的檢測,卡的認證,信息瀆取功能的實現,主要代碼如下:
private void buttonl_Click_l(object sender, EventArgse)
(
StringBuilder Name= new StringBuilder(31);
StringBuilder Gender= new StringBuilder(3);
StringBuilder Folk= new StringBuilder(10);
StringBuilder BirthDay= new StringBuilder(9);
StringBuilder Code= new StringBuilder(19);
StringBuilder Address= new StringBuilder(71);
StringBuilder Agency= new StringBuilder(3 1);
StringBuilder ExpireStart= new StringBuilder(9);
StringBuilder ExpireEnd= new StringBuilder(9);
byte[] pMsg= new byte[256];
string[]baseinfo= new string[9];
char[] param={\0};}
4.3簡單表單填單打印模塊
此模塊實現用戶對系統原有的表單的自動信息獲取和打印功能,添加輸入框以供用戶輸入其他信息。此功能實現的是對整個表單以及填人的信息進行全部打印,即在填寫表單界面的容器中所見的就是打印出來的效果,打印結果如下圖3所示。
此打印功能原理是通過將表單放在groupbox中,將獲取的個人信息填人對應的位置,通過Bitmap技術,實現對groupbox中的全部內容的存儲為圖像,圖像通過GraphiCs技術實現繪圖打印,對圖片的打印以實現想要實現的對簡單表單以及信息內容的全部打印。
實現主要代碼如下:
void —Document_PrintPage(object sender, PrintPageEven-tArgse)
(Bitmap_NewBitmap=new Bitmap(groupBoxl. Width, group-Boxl.Height);
groupBoxl. DrawToBitmap(_NewBitmap, new Rectangle(0,0,_NewBitmap.Wiclth,_NewBitmap.Height》;
e. Graphics. DrawImage(_NewBitmap, 30, 100,_NewBitmap.Wi(lth,_NewBitmap,Height);)
private void button2_Click(object sender, EventArgs e)
{PrintDocument _Document= new PrintDocument();
_DoCument. PrintPage+=new PrintPageEventHandler(_Doeu-ment_PrintPage);
PrintPreviewDialog _PrintShow= new PrintPreviewDialog();
_PrintShow.Document= _Document;
_PrintShow.ShowDialog0;)
4.4多文字表單填空打印模塊
我們在銀行辦理業務的時,很多時候是銀行柜臺提供已有的表單。我們在相應的位置填寫一些信息。此模塊就是為了適應這種需求,表單上的內容不是全部打印出來,只是對應位置打印我們需要填寫的內容。當我們在打印原有表單原件上文字較多,需填寫項目較少的時,系統將讀取的身份證相關信息調整到跟表單相適應的位置。該方法提高使用現場的打印效率,減輕現場打印機的負擔。
此模塊實現的打印功能與第一模塊略有不同,主要表現在上一模塊實現連同表單一同打印,只需將其存儲在同一張圖像中實施打印圖像即可,實現起來較為簡單。本模塊實現的是對已有紙質表單的打印,需要對紙張大小,各信息打印位置進行統一把控排列,才能保證將信息打印到其對應位置,打印效果如下圖4所示:
打印功能的實現主要是通過使用Graphics類進行畫圖,打印功能的實現與屏幕繪制類似,不同的是打印實質是在紙上進行畫圖,并且在紙上打印需要進行必要的換行、分頁等復雜計算。本設計中的打印功能通過StringReader讀取文本文件制定范圍內的字符,基于現有的流創建一個讀取器實現逐行的循環打印一頁,并在過程中確定打印的字體,邊距等打印屬性,通過行邊距和行數的計算,實現對各個信息行邊距的控制。打印實現主要代碼如下:
private void printDocumentl_PrintPage(objeet sender, Print-PageEventArgs e)
(
Graphics g=e.Graphics;float yposition= O;int count=0;
float lefmargin=e.MarginBounds. Left; float topmargin=e.MarginBounds.Top;
string line=””;new Font(”宋體”,10.5F,FontStyle.Bold,Graph-icsUnit.Point,《byte)(134》);
SolidBrush mybrush= new SolidBrush(Color.Black);
float linesperpage= e.MarginBounds.Height,printront.GetH-eight(g);
Point pointl= new Point(0,O);pointl.X= 228;
pointl.Y= (int)(301+i*(43);
g.FillEllipse(Brushes.Black, pointl.X, pointI.Y, 10, 10);
while (count< linesperpage&&((line= lineReader.ReadLine0》!=null)
{yposition= textBoxl.Top;
xposition= textBoxI.LP,ft;
g. DrawString(line, printFont, mybrush, xposition, yposition,new StringFormat0);
count++;}
}
通過line判斷是否打印完成,其中line不為空時,表示仍有未完成打印內容,此時將觸發下一次打印。在下一次打印開始,由于lineReader對象是本打印方法外的類成員,會自動讀取未完成打印的內容,記錄當前讀取的位置,所以最后要對所有的lineReader對象進行初始化操作,否則下次打印內容為空。
系統還提供了打印預覽功能,打印預覽可以是用戶提前看到相應的打印效果,很好地降低打印錯誤,節省出錯帶來的時間以及材料成本。
5結束語
利用二代身份證信息的采集技術開發的白助填單管理系統,實現對客戶身份證的信息讀取與白助填單,以及對不同情況下的現實場景應用實現不同打印功能,實現用戶方便快捷無差錯的自助填單。省去了以前需要人工輸入的工作量,大大提高了輸入工作的效率和準確率,該系統應用銀行業務的辦理工作中,大大減少了出現差錯的可能,為客戶提供良好的服務提供了技術保障。
參考文獻:
[1]郭紅,金玲,李俊香,等.部隊醫院實行軍人持卡就醫的問題與對策[J].現代生物醫學進展,2014(17):3341-3343.
[2]趙青山,徐荻秋,李健.高校實驗室綜合管理系統的開發[J].實驗技術與管理,實驗室建設與管理,2019(1):249-252,258.
[3]李福,陳思,李承俸,等.大學生在讀證明白助打印系統的設計與實現[J].現代信息科技,2018(8):132-133,136.
[4]金誠,占紅武.基于物聯網架構的白助終端運行平臺[J].機電工程,2017(10):1214-1219.
[5]子乾,余蜀宜,沙莉.可擴展自助打印服務系統設計[J].中國科技信息,2015(19):45-48.
[6]張毅,賈衛偉,孟玉蓮,等.醫學影像膠片及報告白助打印系統的設計與實施[J].中國醫學裝備,2019(2):140-141.
[7]孟德欣,謝二蓮.基于二代身份證的房屋產權交易代理系統研究[J].軟件工程師,2014(9):3 8-40.
[8]宋才華,藍源娟,王玨.基于WORDPRESS與JSON的電力營業廳易填單系統設計[J].自動化與儀器儀表,2017(1):174-176, 179.
[9]孫薇,徐向東.自助膠片打印機在我院的應用探討[J].影像研究與醫學應用,2019(4):249-250.
【通聯編輯:謝媛媛】
收稿日期:2019-10-29
作者簡介:王曄(1977-),男,江蘇漣水人,實驗師,碩士,研究方向為信息系統開發與測試。