數(shù)據(jù)錄入方法
【專利摘要】本發(fā)明提供一種數(shù)據(jù)錄入方法,用于客戶端和服務器之間的數(shù)據(jù)交互,服務器包括數(shù)據(jù)庫,該數(shù)據(jù)錄入方法包括:用戶登錄步驟;生成界面步驟;獲取業(yè)務數(shù)據(jù)步驟:所述客戶端從服務器數(shù)據(jù)庫獲取配置表,并從配置表獲取所述用戶界面對應的數(shù)據(jù)庫業(yè)務表,從數(shù)據(jù)庫業(yè)務表獲取業(yè)務數(shù)據(jù)并填充所述用戶界面;編輯業(yè)務數(shù)據(jù)步驟:所述客戶端基于用戶輸入,判斷是否需要更改行數(shù)據(jù),如果需要更改行數(shù)據(jù),針對編輯態(tài)數(shù)據(jù),從數(shù)據(jù)庫配置表中獲得各字段的取數(shù)邏輯、限制值、和別的字段的對照關系,并附加給各字段作為限制條件,使用戶在該限制條件下編輯數(shù)據(jù);保存數(shù)據(jù)步驟。提高了數(shù)據(jù)錄入效率,降低了出錯率。
【專利說明】數(shù)據(jù)錄入方法
【技術領域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理領域,尤其涉及一種數(shù)據(jù)錄入方法。
【背景技術】
[0002] 在信息系統(tǒng)初始化的時候,往往需要收集整理大量的基礎數(shù)據(jù),經(jīng)過校驗無誤,再 導入系統(tǒng)。
[0003] 傳統(tǒng)方法是使用Excel制作模板,根據(jù)數(shù)據(jù)的邏輯關系,串行的進行數(shù)據(jù)收集。這 種數(shù)據(jù)處理模式效率低,出錯率高。
【發(fā)明內容】
[0004] 本發(fā)明要解決的技術問題是,針對現(xiàn)有技術的不足,提供一種數(shù)據(jù)錄入方法,提高 數(shù)據(jù)錄入效率。
[0005] 根據(jù)本發(fā)明一個方面,提供一種數(shù)據(jù)錄入方法,用于大批量數(shù)據(jù)的錄入和整理,采 用客戶端-服務器模式實現(xiàn),服務器包括數(shù)據(jù)庫,該數(shù)據(jù)錄入方法包括:用戶登錄步驟:所 述客戶端接收用戶名和密碼,并將其與從所述服務器獲取的數(shù)據(jù)庫權限表中的數(shù)據(jù)對比, 檢驗用戶名和密碼是否正確;生成界面步驟:所述客戶端根據(jù)用戶名從所述數(shù)據(jù)庫權限表 讀取該用戶所能操作的業(yè)務權限,并且根據(jù)該業(yè)務權限生成用戶界面;獲取業(yè)務數(shù)據(jù)步驟: 所述客戶端從服務器數(shù)據(jù)庫獲取配置表,并從配置表獲取所述用戶界面對應的數(shù)據(jù)庫業(yè)務 表,從數(shù)據(jù)庫業(yè)務表獲取業(yè)務數(shù)據(jù)并填充所述用戶界面;編輯業(yè)務數(shù)據(jù)步驟:所述客戶端 基于用戶輸入,判斷是否需要更改行數(shù)據(jù),如果需要更改行數(shù)據(jù),針對編輯態(tài)數(shù)據(jù),從數(shù)據(jù) 庫配置表中獲得各字段的取數(shù)邏輯、限制值、和別的字段的對照關系,并附加給各字段作為 限制條件,使用戶在該限制條件下編輯數(shù)據(jù);保存數(shù)據(jù)步驟:所述客戶端基于用戶輸入,判 斷是否需要保存數(shù)據(jù),如果需要保存數(shù)據(jù),把編輯過的數(shù)據(jù)同步到所述數(shù)據(jù)庫中。其中,對 照關系就是指作為公式參數(shù)。
[0006] 與現(xiàn)有技術相比,本發(fā)明處理效率高,出錯率低。
【專利附圖】
【附圖說明】
[0007] 圖1是根據(jù)本發(fā)明一個實施例提供的數(shù)據(jù)錄入系統(tǒng)的結構層次示意圖;
[0008] 圖2是根據(jù)本發(fā)明一個實施例提供的數(shù)據(jù)錄入系統(tǒng)的服務器端和客戶端狀態(tài)對 應和變遷的關系圖;和
[0009] 圖3是根據(jù)本發(fā)明一個實施例提供的數(shù)據(jù)錄入方法的方法流程圖。
【具體實施方式】
[0010] 為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖,對本發(fā)明進 一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本 發(fā)明。
[0011] 發(fā)明人經(jīng)研究發(fā)現(xiàn):微軟公司在.Net開發(fā)工具中集成了 VST0專門針對Office開 發(fā),使得把Excel和數(shù)據(jù)庫集成變得簡單。通過VST0編程,使用Excel作為客戶端,數(shù)據(jù)庫 作為共享數(shù)據(jù)的存儲,通過用戶權限分離數(shù)據(jù)的可見和讀寫,可方便快捷的實現(xiàn)數(shù)據(jù)的并 行處理和校驗。大大提高數(shù)據(jù)處理效率和準確率。
[0012] 基于上述發(fā)現(xiàn),根據(jù)本發(fā)明一個實施例,提供一種數(shù)據(jù)錄入系統(tǒng)。如圖1所示,系 統(tǒng)包括三個層次,分別是Excel客戶端層、數(shù)據(jù)庫連接層(一般位于客戶端)和數(shù)據(jù)庫層 (圖中顯示為DB,一般位于服務器)。客戶端層負責用戶接口、數(shù)據(jù)邏輯校驗、公式運算等; 數(shù)據(jù)庫連接層負責溝通客戶端和中心數(shù)據(jù)庫,是橋梁;數(shù)據(jù)庫層負責數(shù)據(jù)的存儲共享。
[0013] 其中Excel客戶端層又包含邏輯控制和數(shù)據(jù)處理兩部分,其中,邏輯控制負責判 斷取數(shù)邏輯和數(shù)據(jù)校驗,數(shù)據(jù)處理負責公式運算等。需要說明的是,公式運算主要是指如果 某一字段和別的字段之間可以通過邏輯或計算關系得到,那么本字段就可以通過使用別的 字段作為參數(shù)而建立公式得到,不需要輸入(只要別的字段輸入了,該字段會自動得到)。
[0014] 該系統(tǒng)是一個分型系統(tǒng),本身可使用自身系統(tǒng)來操作維護自身,使自身變得更完 善,不需要修改數(shù)據(jù)庫架構。
[0015] 所謂分型系統(tǒng),是指:系統(tǒng)在初始化之后,根據(jù)權限不同,可以通過自身擴充功能。 在系統(tǒng)中主要有兩種用戶,一種是超級用戶,有權編輯配置表和權限表(保存在圖中數(shù)據(jù) 庫DB內);普通用戶只能編輯業(yè)務表(保存在圖中數(shù)據(jù)庫DB內)。而超級用戶和普通戶使 用的是同一套邏輯,只不過根據(jù)權限來判斷界面的生成。在一個更高的層次(超級用戶) 上看,配置數(shù)據(jù)和權限數(shù)據(jù)也是一種業(yè)務數(shù)據(jù),此謂分型思想。
[0016] 繼續(xù)參考圖1,在系統(tǒng)中服務器端的數(shù)據(jù)庫中存放著三種數(shù)據(jù):權限數(shù)據(jù)、配置數(shù) 據(jù)、業(yè)務數(shù)據(jù);分別對應數(shù)據(jù)庫中的權限表、配置表和業(yè)務表。其中權限數(shù)據(jù)里面存放用戶 有權處理的業(yè)務模塊,配置數(shù)據(jù)存放的是業(yè)務數(shù)據(jù)的邏輯和控制關系,業(yè)務數(shù)據(jù)存放的是 需要收集整理的具體數(shù)據(jù),而且每一行數(shù)據(jù)都有狀態(tài)信息,默認狀態(tài)為自由態(tài),如果有用戶 正在編輯該條記錄,則狀態(tài)變?yōu)殒i定態(tài),保存后恢復自由態(tài)。
[0017] 具體的,行狀態(tài)定義如下:每一行記錄在服務器端數(shù)據(jù)庫和客戶端都是有行狀態(tài) 的。在數(shù)據(jù)庫中有兩種狀態(tài):自由態(tài)、鎖定態(tài)。在客戶端有三種狀態(tài):不可編輯態(tài)(非本用 戶或者屬于本用戶但是被別的客戶端鎖定)、可編輯態(tài)(屬于本用戶并且未被鎖定)、編輯 態(tài)(屬于本用戶并且被本用戶在本客戶端鎖定,即本用戶在別的客戶端登陸時該行狀態(tài)為 不可編輯態(tài))。
[0018] 進一步的,系統(tǒng)的服務器端和客戶端狀態(tài)對應和變遷的關系圖如圖2所示:
[0019] 客戶端獲取數(shù)據(jù)庫(位于服務器)對應業(yè)務表數(shù)據(jù)填充客戶端界面,針對屬于本 用戶的數(shù)據(jù),根據(jù)數(shù)據(jù)在數(shù)據(jù)庫中的行狀態(tài)來決定該行在客戶端對應的行狀態(tài)。如果該行 在數(shù)據(jù)庫中的行狀態(tài)是自由態(tài),則客戶端對應(映射)狀態(tài)可編輯態(tài);如果該行在數(shù)據(jù)庫中 的狀態(tài)為鎖定態(tài),則該行在客戶端對應(映射)的行狀態(tài)為不可編輯態(tài)。
[0020] 根據(jù)本發(fā)明一個實施例,業(yè)務表數(shù)據(jù)是指該數(shù)據(jù)庫表包含的所有數(shù)據(jù)行,獲取過 程是批量的,填充客戶端界面的時候,客戶端行狀態(tài)需要根據(jù)該行數(shù)據(jù)在服務器端數(shù)據(jù)庫 上對應的狀態(tài)來確定。
[0021] 針對可編輯態(tài)行,當用戶點擊編輯時,客戶端檢查此刻該行在數(shù)據(jù)庫中的行狀態(tài) (客戶端先從服務器獲取行狀態(tài)數(shù)據(jù)),如果此刻該行在數(shù)據(jù)庫中的行狀態(tài)為自由態(tài),則更 改該行在數(shù)據(jù)庫中的行狀態(tài)為鎖定態(tài),并把鎖定者設置為本機本用戶,同時更改該行在客 戶端的狀態(tài)為編輯態(tài);如果此刻該行在數(shù)據(jù)庫中的行狀態(tài)為鎖定態(tài),則更改該行在客戶端 的行狀態(tài)為不可編輯態(tài)。
[0022] 針對編輯態(tài)的行,當用戶編輯之后選擇保存時,客戶端將更改后的數(shù)據(jù)保存到數(shù) 據(jù)庫中,同時更改數(shù)據(jù)庫中該行的行狀態(tài)為自由態(tài)。
[0023] 根據(jù)本發(fā)明一個實施例,上述數(shù)據(jù)錄入系統(tǒng)的數(shù)據(jù)錄入過程包括:
[0024] 1、用戶登錄:用戶在登陸界面輸入用戶名和密碼,系統(tǒng)將用戶名和密碼和數(shù)據(jù)庫 權限表中的數(shù)據(jù)對比,如果數(shù)據(jù)庫中存在該用戶并且密碼正確,轉入下一步。否則返回,系 統(tǒng)根據(jù)情況分別提示用戶不存在或者密碼錯誤。
[0025] 2、獲取用戶權限并生成界面(例如Excel Sheet,當使用Excel作為客戶端,所以 界面對應就是Excel Sheet):系統(tǒng)根據(jù)用戶所擁有的業(yè)務權限生成用戶界面(從權限表取 得他所能操作的業(yè)務權限)。沒有權限的業(yè)務不生成界面。
[0026] 3、獲取業(yè)務數(shù)據(jù):系統(tǒng)找到用戶界面對應的業(yè)務表,從數(shù)據(jù)庫獲取數(shù)據(jù)并填充界 面。需要說明的是,非本用戶擁有的數(shù)據(jù)都為鎖定態(tài);本用戶所擁有的數(shù)據(jù),系統(tǒng)根據(jù)其行 狀態(tài)決定起是否可編輯。
[0027] 4、編輯業(yè)務數(shù)據(jù)
[0028] 當用戶點擊更改行數(shù)據(jù),系統(tǒng)判斷該行此刻在數(shù)據(jù)庫中的狀態(tài)是否為自由態(tài),如 果是系統(tǒng)更改該行在數(shù)據(jù)庫中的狀態(tài)為鎖定態(tài),并且把鎖定者設置為本機本用戶,進入下 一步,否則更改界面中該行狀態(tài)為不可編輯。
[0029] 本用戶所擁有并且行狀態(tài)為自由態(tài)的行是可編輯的。針對本用戶所擁有的不可編 輯的行,系統(tǒng)每5秒鐘檢查一下其在數(shù)據(jù)庫中的狀態(tài),如果發(fā)現(xiàn)該行在數(shù)據(jù)中狀態(tài)變?yōu)樽?由態(tài),則更改界面中改行狀態(tài)為可編輯。點擊編輯時重復步驟4。
[0030] 5、獲得字段邏輯
[0031] 針對可編輯的數(shù)據(jù),系統(tǒng)從數(shù)據(jù)庫配置表中獲得各字段的取數(shù)邏輯、限制值、和別 的字段的對照關系等,并附加給各字段作為限制條件。在該限制條件下編輯數(shù)據(jù)。
[0032] 6、保存數(shù)據(jù)
[0033] 系統(tǒng)把編輯過的數(shù)據(jù)同步到數(shù)據(jù)庫中,并更改各行數(shù)據(jù)狀態(tài)為自由態(tài)。其中只有 處于鎖定態(tài)并且鎖定者為本機本用戶的行記錄方可被保存。同一用戶在不同電腦同時登陸 鎖定的記錄,只能由對應的客戶端來更新保存。新數(shù)據(jù)可直接保存到數(shù)據(jù)庫,保存后為自由 態(tài)。
[0034] 數(shù)據(jù)錄入過程通過行級狀態(tài)轉換,實現(xiàn)了行級鎖。
[0035] 根據(jù)本發(fā)明一個實施例,在業(yè)務數(shù)據(jù)操作之前,還可以包括初始化步驟,包括:
[0036] (1)建立數(shù)據(jù)庫表,包括上述的權限表、配置表和業(yè)務表;
[0037] (2)初始化用戶權限表,增加超級用戶,使其擁有添加業(yè)務表、修改配置表和權限 表的權限;
[0038] (3)使用超級用戶登錄系統(tǒng),維護配置表中配置信息;
[0039] (4)向權限表中添加普通用戶,并維護其能操作的業(yè)務數(shù)據(jù)模塊;
[0040] 其中(3)和⑷步驟的操作過程和業(yè)務數(shù)據(jù)操作過程一樣,只不過初始化過程操 作的是基礎表(例如權限表、配置表)。
[0041] 基于上述系統(tǒng)工作過程,根據(jù)本發(fā)明一個實施例,提供一種數(shù)據(jù)錄入方法。如圖3 所示,該方法包括:
[0042] S11、用戶登錄步驟:客戶端接收用戶名和密碼,并將其與從服務器獲取的數(shù)據(jù)庫 權限表中的數(shù)據(jù)對比,如果不存在該用戶名或者密碼錯誤,提示用戶重新輸入;
[0043] S12、生成界面步驟:客戶端根據(jù)用戶名從權限表讀取該用戶所能操作的業(yè)務權 限,并且根據(jù)用戶所擁有的業(yè)務權限生成用戶界面;
[0044] S13、獲取業(yè)務數(shù)據(jù)步驟:客戶端從服務器數(shù)據(jù)庫獲取配置表,并從配置表獲取用 戶界面對應的業(yè)務表,從數(shù)據(jù)庫業(yè)務表獲取業(yè)務數(shù)據(jù)并填充界面;在填充過程中,客戶端行 狀態(tài)由該行所屬用戶和該行在數(shù)據(jù)庫中的行狀態(tài)決定;
[0045] 針對不屬于該用戶的行,客戶端行狀態(tài)為不可編輯態(tài);針對屬于該用戶的行,如果 其對應數(shù)據(jù)庫中行狀態(tài)為自由態(tài),則其客戶端行狀態(tài)為可編輯態(tài),否則客戶端行狀態(tài)為不 可編輯態(tài);
[0046] S14、編輯業(yè)務數(shù)據(jù)步驟:客戶端基于用戶輸入,判斷是否需要更改行數(shù)據(jù),如果需 要更改行數(shù)據(jù),參考圖2,根據(jù)該行在數(shù)據(jù)庫中的不同的行狀態(tài)進行如下操作:
[0047] (1)如果該行的狀態(tài)為自由態(tài):把該行在數(shù)據(jù)庫中的行狀態(tài)置為鎖定態(tài),鎖定者 為本機本用戶,并將該行在客戶端狀態(tài)設置為編輯態(tài);
[0048] (2)如果該行的狀態(tài)為鎖定態(tài):則該行客戶端狀態(tài)改為不可編輯態(tài);
[0049] 其中,該行在數(shù)據(jù)庫中的自由態(tài)變?yōu)殒i定態(tài)并且客戶端行狀態(tài)變?yōu)榫庉嫅B(tài),該過 程體現(xiàn)了行級狀態(tài)轉換;
[0050] (3)針對編輯態(tài)數(shù)據(jù),從數(shù)據(jù)庫配置表中獲得各字段的取數(shù)邏輯、限制值、和別的 字段的對照關系,并附加給各字段作為限制條件,使用戶在該限制條件下編輯數(shù)據(jù);
[0051] S15、保存數(shù)據(jù)步驟:客戶端基于用戶輸入,判斷是否需要保存數(shù)據(jù),如果需要保存 數(shù)據(jù),把編輯過的數(shù)據(jù)同步到數(shù)據(jù)庫(位于服務器)中,并更改各行數(shù)據(jù)狀態(tài)為自由態(tài)。
[0052] 本發(fā)明將原來通過文件傳遞數(shù)據(jù)通過數(shù)據(jù)庫共享的方式來傳遞數(shù)據(jù),數(shù)據(jù)隔離通 過用戶權限來控制,并且做到同一用戶可多處登陸,能做到行級權限控制(行級鎖),不僅 實現(xiàn)了多用戶并行操作,而且還能使同一用戶多處登陸并行操作而不沖突。
[0053] 應該注意到并理解,在不脫離后附的權利要求所要求的本發(fā)明的精神和范圍的情 況下,能夠對上述詳細描述的本發(fā)明做出各種修改和改進。因此,要求保護的技術方案的范 圍不受所給出的任何特定示范教導的限制。
【權利要求】
1. 一種數(shù)據(jù)錄入方法,用于大批量數(shù)據(jù)的錄入和整理,采用客戶端-服務器模式實現(xiàn), 服務器包括數(shù)據(jù)庫,該數(shù)據(jù)錄入方法包括: 用戶登錄步驟:所述客戶端接收用戶名和密碼,并將其與從所述服務器獲取的數(shù)據(jù)庫 權限表中的數(shù)據(jù)對比,檢驗用戶名和密碼是否正確; 生成界面步驟:所述客戶端根據(jù)用戶名從所述數(shù)據(jù)庫權限表讀取該用戶所能操作的業(yè) 務權限,并且根據(jù)該業(yè)務權限生成用戶界面; 獲取業(yè)務數(shù)據(jù)步驟:所述客戶端從服務器數(shù)據(jù)庫獲取配置表,并從配置表獲取所述用 戶界面對應的數(shù)據(jù)庫業(yè)務表,從數(shù)據(jù)庫業(yè)務表獲取業(yè)務數(shù)據(jù)并填充所述用戶界面; 編輯業(yè)務數(shù)據(jù)步驟:所述客戶端基于用戶輸入,判斷是否需要更改行數(shù)據(jù),如果需要更 改行數(shù)據(jù),針對編輯態(tài)數(shù)據(jù),從數(shù)據(jù)庫配置表中獲得各字段的取數(shù)邏輯、限制值、和別的字 段的對照關系,并附加給各字段作為限制條件,使用戶在該限制條件下編輯數(shù)據(jù); 保存數(shù)據(jù)步驟:所述客戶端基于用戶輸入,判斷是否需要保存數(shù)據(jù),如果需要保存數(shù) 據(jù),把編輯過的數(shù)據(jù)同步到所述數(shù)據(jù)庫中。
2. 根據(jù)權利要求1所述的數(shù)據(jù)錄入方法,其中,在服務器的數(shù)據(jù)庫中包括:權限數(shù)據(jù)、 配置數(shù)據(jù)、業(yè)務數(shù)據(jù),分別對應數(shù)據(jù)庫中的權限表、配置表和業(yè)務表; 其中,權限表存放用戶有權處理的業(yè)務模塊,配置表存放業(yè)務數(shù)據(jù)的邏輯和控制關系, 業(yè)務表存放需要收集整理的具體數(shù)據(jù); 其中,每一行數(shù)據(jù)都有狀態(tài)信息,默認狀態(tài)為自由態(tài),如果有用戶正在編輯該條記錄, 則狀態(tài)變?yōu)殒i定態(tài),保存后恢復自由態(tài)。
3. 根據(jù)權利要求2所述的數(shù)據(jù)錄入方法,其中,每一行記錄在服務器的數(shù)據(jù)庫和客戶 端都具有行狀態(tài)信息; 行狀態(tài)信息在數(shù)據(jù)庫中包括兩種狀態(tài):自由態(tài)、鎖定態(tài); 行狀態(tài)信息在客戶端包括三種狀態(tài):不可編輯態(tài),即非本用戶或者屬于本用戶但是被 別的客戶端鎖定;可編輯態(tài),即屬于本用戶并且未被鎖定;編輯態(tài),即屬于本用戶并且被本 用戶在本客戶端鎖定,即本用戶在別的客戶端登陸時該行狀態(tài)為不可編輯態(tài)。
4. 根據(jù)權利要求3所述的數(shù)據(jù)錄入方法,其中,所述獲取業(yè)務數(shù)據(jù)步驟包括: 客戶端獲取數(shù)據(jù)庫業(yè)務表數(shù)據(jù)填充客戶端界面,針對屬于本用戶的數(shù)據(jù),根據(jù)數(shù)據(jù)在 數(shù)據(jù)庫中的行狀態(tài)來決定該行在客戶端對應的行狀態(tài):如果該行在數(shù)據(jù)庫中的行狀態(tài)是自 由態(tài),則客戶端對應狀態(tài)可編輯態(tài);如果該行在數(shù)據(jù)庫中的狀態(tài)為鎖定態(tài),則該行在客戶端 對應的行狀態(tài)為不可編輯態(tài)。
5. 根據(jù)權利要求3所述的數(shù)據(jù)錄入方法,其中,所述編輯業(yè)務數(shù)據(jù)步驟包括: 所述客戶端基于用戶輸入,判斷是否需要更改行數(shù)據(jù),如果需要更改行數(shù)據(jù),根據(jù)該行 在數(shù)據(jù)庫中的不同的行狀態(tài)進行如下操作: 如果該行的狀態(tài)為自由態(tài):把該行在數(shù)據(jù)庫中的行狀態(tài)置為鎖定態(tài),鎖定者為本機本 用戶,并將該行在客戶端狀態(tài)設置為編輯態(tài); 如果該行的狀態(tài)為鎖定態(tài):則該行客戶端狀態(tài)改為不可編輯態(tài)。
6. 根據(jù)權利要求3所述的數(shù)據(jù)錄入方法,其中,在所述用戶登錄步驟之前還包括: 在服務器的數(shù)據(jù)庫中建立所述權限表、配置表和業(yè)務表; 初始化所述權限表,增加超級用戶,使其擁有添加業(yè)務表、修改配置表和權限表的權
【文檔編號】G06F17/24GK104050154SQ201410300712
【公開日】2014年9月17日 申請日期:2014年6月27日 優(yōu)先權日:2014年6月27日
【發(fā)明者】鐘金柱, 繆燕, 張學深, 李海, 劉紅超, 呂志來, 董明, 王春芳 申請人:國家電網(wǎng)公司, 北京許繼電氣有限公司