席彤 雷強(qiáng)
摘 要:面對大量數(shù)據(jù),關(guān)聯(lián)是一種行之有效的方法。由于VFP語言簡單易學(xué),有廣大的用戶群,非常適合普及。這就使得非計(jì)算機(jī)人員也可以方便的掌握關(guān)聯(lián)這種方法。經(jīng)過幾年的應(yīng)用,我們在利用用戶別名來分清當(dāng)前工作區(qū)、關(guān)聯(lián)時(shí)索引關(guān)鍵字必須結(jié)構(gòu)一致、多對一表的關(guān)聯(lián)方法、關(guān)聯(lián)產(chǎn)生循環(huán)的處理方法等方面總結(jié)出一些經(jīng)驗(yàn)。關(guān)鍵詞: VFP;用戶別名;當(dāng)前工作區(qū);聯(lián)訪;關(guān)聯(lián);應(yīng)用;經(jīng)驗(yàn)中圖分類號:TP319? 文獻(xiàn)標(biāo)識碼:A? 文章編號:1671-7988(2020)02-64-06
Abstract: Facing a great deal of data, the connection is a kind of to go of valid method.Because the language of VFP is in brief easy to learn, there are large customers, very in keeping with universality.This make non- calculator personnel also can with convenient control connection this kind of method. Through several years of application, we at make use of the customer nickname to peg out the current work area, connection the index key word must the structure is consistent, an a the processing method etc. of the connection method, connection creation circulation of the form tallies up a some experience.Keywords: VFP; The customer nickname; Current work area; Joint visit; Connection; Application; ExperienceCLC NO.: TP319? Document Code: A? Article ID: 1671-7988(2020)02-64-06
前言
據(jù)統(tǒng)計(jì),全世界80%以上的計(jì)算機(jī)主要從事事務(wù)處理工作。在進(jìn)行事務(wù)處理時(shí),不要求復(fù)雜的科學(xué)計(jì)算,主要是要求從大量有關(guān)數(shù)據(jù)中提取信息。為了有效的使用存放在計(jì)算機(jī)系統(tǒng)中的大量有關(guān)數(shù)據(jù),必須采用一整套嚴(yán)密合理的方法來對數(shù)據(jù)進(jìn)行操作。由于VFP語言簡單易學(xué),擁有廣大的用戶群,便于我們學(xué)習(xí)掌握和推廣。面對大量數(shù)據(jù),運(yùn)用手工方法顯然不能解決問題時(shí),利用VFP語言是一種首選。而我們也會常常遇到多個(gè)數(shù)據(jù)表之間的信息需要相互對應(yīng)交換的問題,這時(shí)就需要一種行之有效的方法—關(guān)聯(lián)。
1 關(guān)聯(lián)的兩個(gè)關(guān)鍵點(diǎn)
1.1 第一個(gè)關(guān)鍵點(diǎn)—工作區(qū)
在關(guān)聯(lián)中,利用用戶別名分清當(dāng)前工作區(qū)是非常重要的。
用戶別名—當(dāng)用戶在某工作區(qū)打開一個(gè)表文件時(shí),也同時(shí)為此工作區(qū)自行定義的那個(gè)別名就稱為用戶別名。其實(shí)系統(tǒng)也為可每個(gè)工作區(qū)規(guī)定了一個(gè)固定別名,叫系統(tǒng)別名。1號工作區(qū)也稱為A工作區(qū),它的系統(tǒng)別名為W1;2號工作區(qū)也稱為B工作區(qū),它的系統(tǒng)別名為W2;以此類推。但是我們不推薦使用系統(tǒng)別名。
格式:
USE〈表文件名〉[ALIAS〈別名〉][NOUPDATE]
其中有ALIAS選擇項(xiàng)時(shí),〈別名〉就是用戶為當(dāng)前工作區(qū)規(guī)定的用戶別名;無ALIAS選擇項(xiàng)時(shí),打開的表文件名就是當(dāng)前工作區(qū)的用戶別名。在VFP中關(guān)鍵字的頭四個(gè)字母就可代表該關(guān)鍵字。但是,當(dāng)用戶指定的別名中包含有不支持的字符時(shí),系統(tǒng)將自動為該工作區(qū)創(chuàng)建一個(gè)別名,例如A—J不能作為用戶別名。當(dāng)有NOUPDATE項(xiàng)時(shí),不允許修改打開表文件的結(jié)構(gòu)。
1.1.1 舉例幫助理解工作區(qū)
例1:下述命令是打開CPXX表(即產(chǎn)品信息表),并且定義別名為CP:
USE CPXX ALIA CP
經(jīng)驗(yàn):
工作區(qū)的別名是程序員區(qū)別當(dāng)前工作區(qū)的重要標(biāo)識。一般情況下,別名就選用用戶別名,并且最好寓于每個(gè)別名以含意,可取的方法有,將用戶別名定義為對應(yīng)的數(shù)據(jù)表名的漢語首位字母的縮寫或簡稱,不要簡單的選用系統(tǒng)別名,否則打開的工作區(qū)一多,容易引起混亂。
當(dāng)前工作區(qū)—用戶正在對表文件進(jìn)行操作的工作區(qū)就稱為當(dāng)前工作區(qū)。在當(dāng)前工作區(qū)中打開的表文件稱為當(dāng)前打開表文件,簡稱當(dāng)前表文件。用戶可以選擇任意工作區(qū)為當(dāng)前工作區(qū)。每個(gè)工作區(qū)都有自己的標(biāo)號和別名。用戶利用工作區(qū)的標(biāo)號和別名來選擇、更改當(dāng)前工作區(qū)。
格式:
SELECT〈工作區(qū)號〉∕〈工作區(qū)別名〉
執(zhí)行后,命令中規(guī)定的工作區(qū)即為新的當(dāng)前工作區(qū)。選用的工作區(qū)號、該工作區(qū)的系統(tǒng)別名、用戶別名(若存在)都是等價(jià)的。
例2:下述三種命令選擇的都是同一工作區(qū)。
SELECT 2
USE CPXX ALIA CP
SELE CP
SELECT B
1.2 第二個(gè)關(guān)鍵點(diǎn)—聯(lián)訪
聯(lián)訪—是一種調(diào)用當(dāng)前表文件數(shù)據(jù)的方法。聯(lián)訪是多表文件操作的基礎(chǔ)??梢哉f,所有的多表文件操作都是通過聯(lián)訪來完成的。
格式1:
〈工作區(qū)別名〉.〈字段名〉
格式2:
〈工作區(qū)別名〉->〈字段名〉
1.2.1 舉例幫助理解聯(lián)訪
例3:下述指的都是別名為CPXX表的產(chǎn)品編號這個(gè)字段。
CPXX.產(chǎn)品編號
CPXX->產(chǎn)品編號
但是聯(lián)訪不改變被訪非當(dāng)前表文件的內(nèi)容,也不改變被訪非當(dāng)前表文件中記錄指針的指向。所以它一般不單獨(dú)應(yīng)用,只是作為一種調(diào)用的手段。要想有能夠根據(jù)當(dāng)前表文件記錄指針的指向而自動移動這個(gè)功能,就要用到關(guān)聯(lián)了。
2 利用工作區(qū)和聯(lián)防建立多表數(shù)據(jù)關(guān)聯(lián)
關(guān)聯(lián)—是當(dāng)當(dāng)前工作區(qū)和另一工作區(qū)建立聯(lián)系后,每當(dāng)當(dāng)前工作區(qū)的記錄指針移動時(shí),被關(guān)聯(lián)工作區(qū)的記錄指針也將自動相應(yīng)移動的一種命令。它常用于處理大量多表數(shù)據(jù)。
格式:
SET RELATION TO〈表達(dá)式〉INTO〈別名〉∕〈工作區(qū)號〉[ADDITIVE]
該命令使〈別名〉工作區(qū)(或〈工作區(qū)號〉指定工作區(qū))中的表文件與當(dāng)前表文件建立關(guān)聯(lián)。當(dāng)前表文件為主動表文件,也稱父表文件,被關(guān)聯(lián)表文件稱為子表表文件。一般的子表文件以此〈表達(dá)式〉為索引關(guān)鍵字的索引文件必須已打開,并要成為主控索引。每當(dāng)當(dāng)前表文件記錄指針移動時(shí),子表文件的記錄指針,也將根據(jù)此主控索引,指向與之匹配的第一條記錄。若找不到匹配記錄,則指針指向子表文件尾后,EOF()為.T.。
2.1 舉例幫助理解關(guān)聯(lián)
例4:下面的是一段應(yīng)用關(guān)聯(lián)的小例子。它是通過關(guān)聯(lián),實(shí)現(xiàn)把產(chǎn)品信息表中的計(jì)劃價(jià)帶入到盤點(diǎn)表中。
*關(guān)閉所有數(shù)據(jù)庫,即所有表也隨之關(guān)閉
clos data
*定義默認(rèn)路徑為F:\應(yīng)用\盤點(diǎn)\2\
set defa to F:\應(yīng)用\盤點(diǎn)\2\
*選擇1工作區(qū)為當(dāng)前工作區(qū)
sele 1
*打開cpxx表,并且定義別名為cp
use cpxx alia cp
*以索引關(guān)鍵字cpbh創(chuàng)建索引文件1
inde on cpbh to 1
*這里選擇B工作區(qū)為當(dāng)前工作區(qū),其實(shí)就是選擇2工作區(qū)為當(dāng)前工作區(qū)
sele B
*打開tmp_kcyj表,并且定義別名為kc
use tmp_kcyj alia kc
*以索引關(guān)鍵字cpbh創(chuàng)建索引文件2
inde on cpbh to 2
*使別名為cp的子表文件與當(dāng)前別名為kc的父表文件建立關(guān)聯(lián),并且索引文件1成為主控索引,索引關(guān)鍵字為cpbh
set rela to cpbh into cp
*原jhj清零
repl all jhj with 0
*替換計(jì)劃價(jià)
repl all jhj with cp.jhj for !”JJ”$cpbh.and.kc.cpbh=cp.cpbh
*替換進(jìn)口價(jià)
repl all jhj with cp.jkj for “JJ”$cpbh.and.kc.cpbh=cp.cpbh
*關(guān)閉tmp_kcyj表
use
*選擇1工作區(qū)為當(dāng)前工作區(qū)
sele 1
*關(guān)閉cpxx表
use
關(guān)鍵點(diǎn):兩個(gè)表的索引關(guān)鍵字可以不同名,但結(jié)構(gòu)必須完全一致。
若〈表達(dá)式〉為數(shù)值型,子表文件可以不索引;但〈表達(dá)式〉為字符型或日期型,且子表文件未索引,則將顯示出錯(cuò)提示:
“table has no index order set”
若命令中未選用ADDITIVE選擇項(xiàng),命令還將取消當(dāng)前工作區(qū)原有的關(guān)聯(lián);若選用了此選擇項(xiàng),則保留當(dāng)前工作區(qū)原有的關(guān)聯(lián),且增加一個(gè)新關(guān)聯(lián)。由此可見,一個(gè)當(dāng)前工作區(qū)可同時(shí)與多個(gè)非當(dāng)前工作區(qū)建立關(guān)聯(lián)。
3 取消關(guān)聯(lián)
若兩個(gè)表已建立關(guān)聯(lián)關(guān)系,再次和第三張表建立關(guān)聯(lián)關(guān)系易發(fā)生循環(huán),從而較難建立與第三張表的關(guān)聯(lián)關(guān)系,有種簡單的方法可以實(shí)現(xiàn)重新建立關(guān)聯(lián),即:取消關(guān)聯(lián),也就是可以先取消原先兩張表的關(guān)聯(lián)關(guān)系,再重新建立新表與原表的關(guān)聯(lián)。
3.1 取消當(dāng)前工作區(qū)與原有工作區(qū)關(guān)聯(lián)
(1)在建立新關(guān)聯(lián)時(shí),不選用ADDITIVE選擇項(xiàng),將取消當(dāng)前工作區(qū)與非當(dāng)前工作區(qū)之間原有的所有關(guān)聯(lián)。
(2)用命令,此命令將取消當(dāng)前工作區(qū)與所有非當(dāng)前工作區(qū)之間的一切原有關(guān)聯(lián)。
格式:
SET RELATION TO
3.1.1 舉例幫助理解取消當(dāng)前工作區(qū)與原有工作區(qū)關(guān)聯(lián)
例5:隨著單機(jī)版工藝路線的結(jié)束,PDM系統(tǒng)的廣泛的應(yīng)用,我們因?yàn)榧夹g(shù)需要,要求我們內(nèi)部從PDM系統(tǒng)查得的產(chǎn)品信息不光需要計(jì)劃員信息,還需要廠家信息。下面就是一個(gè)以單個(gè)計(jì)劃員為例,要求列出這個(gè)計(jì)劃員采購零件涉及的所有廠家。
*關(guān)閉提示信息
set safe off
close data
set defa to E:\
sele 1
*打開臨時(shí)表
use 臨時(shí)庫.dbf alia lsk
*清空表
Zap
*追加帶有廠家信息的數(shù)據(jù)表紀(jì)錄
appe from zs
inde on 物料編碼 to 1
sele 2
*打開以計(jì)劃員張三名字命名的數(shù)據(jù)表
use 張三.dbf alia cj
inde on th to 2
*建立張三表與臨時(shí)表之間的關(guān)聯(lián)
set rela to th into lsk
*將字段sczt確立為標(biāo)記字段
repl all sczt with ""
repl all sczt with "*" for cj.th=lsk.物料編碼
repl all cjbh1 with ""
repl all cjbh1 with lsk.cjbh for cj.th=lsk.物料編碼
*張三表的第一個(gè)廠家清空
repl all cjmc1 with ""
*替換張三表的第一個(gè)廠家
repl all cjmc1 with lsk.廠家名稱 for cj.th=lsk.物料編碼
*取消所有關(guān)聯(lián)
set rela to
sele 1
*建立臨時(shí)表和張三表之間的關(guān)聯(lián)
set rela to 物料編碼 into cj
*臨時(shí)表的標(biāo)記清空
repl all bj with ""
*將張三表替換了第一個(gè)廠家的記錄打上標(biāo)記
repl all bj with "*" for lsk.物料編碼=cj.th.and.lsk.cjbh= cj.cjbh1
*取消所有關(guān)聯(lián)
set rela to
*將臨時(shí)庫中打上標(biāo)記的紀(jì)錄徹底刪除
dele for bj="*"
pack
inde on 物料編碼 to 1
sele 2
inde on th to 2
set rela to th into lsk
repl all sczt with ""
repl all sczt with "*" for cj.th=lsk.物料編碼
repl all cjbh2 with ""
repl all cjbh2 with lsk.cjbh for cj.th=lsk.物料編碼
*張三表的第二個(gè)廠家清空
repl all cjmc2 with ""
*替換張三表的第二個(gè)廠家
repl all cjmc2 with lsk.廠家名稱 for cj.th=lsk.物料編碼
set rela to
sele 1
set rela to 物料編碼 into cj
repl all bj with ""
*將張三表替換了第二個(gè)廠家的記錄打上標(biāo)記
repl all bj with "*" for lsk.物料編碼=cj.th.and.lsk.cjbh= cj.cjbh2
set rela to
*將臨時(shí)庫中打上標(biāo)記的紀(jì)錄徹底刪除
dele for bj="*"
pack
inde on 物料編碼 to 1
sele 2
inde on th to 2
set rela to th into lsk
repl all sczt with ""
repl all sczt with "*" for cj.th=lsk.物料編碼
repl all cjbh3 with ""
repl all cjbh3 with lsk.cjbh for cj.th=lsk.物料編碼
*張三表的第三個(gè)廠家清空
repl all cjmc3 with ""
*將張三表替換了第三個(gè)廠家的記錄打上標(biāo)記
repl all cjmc3 with lsk.廠家名稱 for cj.th=lsk.物料編碼
set rela to
sele 1
set rela to 物料編碼 into cj
repl all bj with ""
repl all bj with "*" for lsk.物料編碼=cj.th.and.lsk.cjbh= cj.cjbh3
set rela to
*將臨時(shí)庫中打上標(biāo)記的紀(jì)錄徹底刪除
dele for bj="*"
pack
inde on 物料編碼 to 1
sele 2
inde on th to 2
set rela to th into lsk
repl all sczt with ""
repl all sczt with "*" for cj.th=lsk.物料編碼
repl all cjbh4 with ""
repl all cjbh4 with lsk.cjbh for cj.th=lsk.物料編碼
*張三表的第四個(gè)廠家清空
repl all cjmc4 with ""
*將張三表替換了第四個(gè)廠家的記錄打上標(biāo)記
repl all cjmc4 with lsk.廠家名稱 for cj.th=lsk.物料編碼
set rela to
sele 1
set rela to 物料編碼 into cj
repl all bj with ""
repl all bj with "*" for lsk.物料編碼=cj.th.and.lsk.cjbh= cj.cjbh4
set rela to
*將臨時(shí)庫中打上標(biāo)記的紀(jì)錄徹底刪除
dele for bj="*"
pack
inde on 物料編碼 to 1
sele 2
inde on th to 2
set rela to th into lsk
repl all sczt with ""
repl all sczt with "*" for cj.th=lsk.物料編碼
repl all cjbh5 with ""
repl all cjbh5 with lsk.cjbh for cj.th=lsk.物料編碼
*張三表的第五個(gè)廠家清空
repl all cjmc5 with ""
*將張三表替換了第五個(gè)廠家的記錄打上標(biāo)記
repl all cjmc5 with lsk.廠家名稱 for cj.th=lsk.物料編碼
set rela to
sele 1
set rela to 物料編碼 into cj
repl all bj with ""
repl all bj with "*" for lsk.物料編碼=cj.th.and.lsk.cjbh= cj.cjbh5
set rela to
*將臨時(shí)庫中打上標(biāo)記的紀(jì)錄徹底刪除
dele for bj="*"
pack
inde on 物料編碼 to 1
sele 2
inde on th to 2
set rela to th into lsk
repl all sczt with ""
repl all sczt with "*" for cj.th=lsk.物料編碼
repl all cjbh6 with ""
repl all cjbh6 with lsk.cjbh for cj.th=lsk.物料編碼
*張三表的第六個(gè)廠家清空
repl all cjmc6 with ""
*將張三表替換了第六個(gè)廠家的記錄打上標(biāo)記
repl all cjmc6 with lsk.廠家名稱 for cj.th=lsk.物料編碼
set rela to
sele 1
set rela to 物料編碼 into cj
repl all bj with ""
repl all bj with "*" for lsk.物料編碼=cj.th.and.lsk.cjbh= cj.cjbh6
set rela to
*將臨時(shí)庫中打上標(biāo)記的紀(jì)錄徹底刪除
dele for bj="*"
pack
inde on 物料編碼 to 1
經(jīng)驗(yàn):在多對一的情況下,若當(dāng)前表文件中有多個(gè)記錄在關(guān)鍵字段上取得同一值時(shí),則只更改其中第一個(gè)記錄的有關(guān)字段值。上面就是這樣一個(gè)例子。因?yàn)橐罅谐鰪埲@個(gè)計(jì)劃員采購零件涉及的所有廠家,而一個(gè)零件可能會有多個(gè)廠家供應(yīng),所以這里需要建立一個(gè)臨時(shí)庫,把帶有廠家信息的庫追加進(jìn)去,當(dāng)計(jì)劃員表代上第一個(gè)廠家后,將臨時(shí)庫中代過廠家的零件刪掉,這樣臨時(shí)庫中排在第二的廠家就變?yōu)榈谝粋€(gè)廠家了,就可以依照第一個(gè)廠家的代法替換上廠家了。如此反復(fù)操作,直到最后一個(gè)廠家全部為空,就說明這個(gè)計(jì)劃員涉及的所有廠家均已代上。
3.2 取消當(dāng)前工作區(qū)與指定工作區(qū)關(guān)聯(lián)
用命令,此命令僅取消當(dāng)前工作區(qū)與命令中指定工作區(qū)之間的關(guān)聯(lián),當(dāng)前工作區(qū)與其他工作區(qū)之間的關(guān)聯(lián)仍保留。
格式:
SET RELATION OFF INTO〈別名〉∕〈工作區(qū)號〉
3.2.1 舉例幫助理解取消當(dāng)前工作區(qū)與指定工作區(qū)關(guān)聯(lián)
例6:在K3系統(tǒng)和ERP系統(tǒng)切換之初,雙系統(tǒng)并列運(yùn)行時(shí),兩個(gè)系統(tǒng)月結(jié)后,需要對照差異。下面就是算盤贏盤虧中的一部分代碼。
set defa to D:\xt\驗(yàn)證\
clos data
set safe off
sele 1
*打開庫存月結(jié)表
use tmp_ kcyj alia kc
inde on cpbh to 1
sele 2
*打開實(shí)盤表
use pds alia pd
inde on cpbh to 2
sele 3
*打開產(chǎn)品信息表
use cpxx alia cp
inde on cpbh to 3
sele 1
set rela to cpbh into cp
*庫存月結(jié)表中的計(jì)劃價(jià)清零
repl all jhj with 0
*替換計(jì)劃價(jià)
repl all jhj with cp.jhj for kc.cpbh=cp.cpbh.and.cp.pjlb="汽配件"
*替換進(jìn)口價(jià)
repl all jhj with cp.jkj for kc.cpbh=cp.cpbh.and.cp.pjlb="進(jìn)口件".and.kc.jhj=0
*只取消庫存月結(jié)表和產(chǎn)品信息表之間的關(guān)聯(lián)
set rela off into cp
*建立庫存月結(jié)表和實(shí)盤表之間的關(guān)聯(lián)
set rela to cpbh into pd
*庫存月結(jié)表中的實(shí)盤數(shù)清零
repl all sps with 0
*將庫存月結(jié)表的實(shí)盤數(shù)替換成實(shí)盤表的實(shí)盤數(shù)
repl all sps with pd.sps for kc.cpbh=pd.cpbh
repl all kgy_pd with ""
repl all kgy_pd with pd.kgy for kc.cpbh=pd.cpbh
*標(biāo)記清空
repl all bj with ""
*將替換過實(shí)盤數(shù)的記錄打上標(biāo)記
repl all bj with "*" for kc.cpbh=pd.cpbh
sele 2
*建立實(shí)盤表和產(chǎn)品信息表之間的關(guān)聯(lián)
set rela to cpbh into cp
repl all jhj with 0
repl all jhj with cp.jhj for pd.cpbh=cp.cpbh.and.cp.pjlb="汽配件"
repl all jhj with cp.jkj for pd.cpbh=cp.cpbh.and.cp.pjlb="進(jìn)口件".and.pd.jhj=0
*因?yàn)榇藭r(shí)實(shí)盤表只和產(chǎn)品信息表建立了關(guān)聯(lián),下面的一句代碼與set rela to在這里實(shí)際等價(jià),它是取消實(shí)盤表和產(chǎn)品信息表之間的關(guān)聯(lián)。
set rela off into 3
*set rela to
sele 1
*因?yàn)榇藭r(shí)庫存月結(jié)表和實(shí)盤表間已建立了關(guān)聯(lián),所以只需使用聯(lián)訪即可實(shí)現(xiàn)數(shù)據(jù)間的替換。
repl all pd.kc with 0
repl all pd.kc with kc.qm_sl for kc.cpbh=pd.cpbh
repl all pd.kgy_kc with ""
repl all pd.kgy_kc with kc.kgy for kc.cpbh=pd.cpbh
repl all pd.kczj with 0
repl all pd.kczj with jhj*kc
repl all pd.spzj with 0
repl all pd.spzj with jhj*sps
repl all pd.bj with ""
repl all pd.bj with "*" for kc.cpbh=pd.cpbh
use
sele 2
use
sele 3
use
經(jīng)驗(yàn):因SET RELATION OFF INTO〈別名〉∕〈工作區(qū)號〉語句易引起關(guān)聯(lián)循環(huán),故應(yīng)用較少。一旦發(fā)生循環(huán),就選擇與之發(fā)生循環(huán)的工作區(qū)為當(dāng)前工作區(qū),采用聯(lián)訪的方式操作既可。
4 總結(jié)
現(xiàn)在大量普通非IT業(yè)務(wù)人員,只能簡單應(yīng)用EXCEL表格處理數(shù)據(jù),在處理百條級數(shù)據(jù)還好,一旦上升為千條數(shù)據(jù),尤其涉及多表調(diào)用,EXCEL的效率低,易出錯(cuò),且機(jī)子經(jīng)常死機(jī)的問題就凸顯出來。所以,學(xué)習(xí)一些簡單實(shí)用的數(shù)據(jù)庫代碼,能夠大幅提升工作效率和準(zhǔn)確率,筆者非常看好這方面的應(yīng)用前景。
隨著計(jì)算機(jī)的普及,要求我們處理大量數(shù)據(jù)的能力也大大提高。所以VFP的使用已不再只是以前那種專業(yè)計(jì)算機(jī)人員的事情了。隨著VFP的大量應(yīng)用,一些可行的數(shù)據(jù)方法也隨之被推廣。在這其中,關(guān)聯(lián)由于其實(shí)用性,被廣泛應(yīng)用。我們可以看到,大量的多表數(shù)據(jù)替換問題都采用了關(guān)聯(lián),這樣可以使問題簡化,許多問題便迎刃而解,這大大提高了我們的工作效率。在當(dāng)初ERP系統(tǒng)上線之前,我們需要手工對照K3系統(tǒng)和ERP系統(tǒng)的數(shù)據(jù)差異,為了提高效率,我們編寫了許多采用關(guān)聯(lián)解決問題的實(shí)用小程序,使原來的對照時(shí)間縮短了一半以上,這為ERP的及時(shí)上線也起到了重要作用。由于它的簡單易學(xué),它在許多的非專業(yè)計(jì)算機(jī)人員中非常普及?,F(xiàn)在,對于許多后臺數(shù)據(jù),我們?nèi)匀淮罅坎捎藐P(guān)聯(lián)編寫的代碼,它的應(yīng)用前景依然十分廣闊。
參考文獻(xiàn)
[1] 郭盈發(fā).張紅娟.趙偉華.Visual FoxPro 6.0及其程序設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,2001.
[2] 郭盈發(fā).FoxPro 2.5、2.6及其程序設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,1995.
[3] 胡克杰等.中文Visual FoxPro 6.0屬性 設(shè)計(jì) 控件及方法[M].北京:北京航空航天大學(xué)出版社,1999.
[4] 吳迪,曲蒙.Visual FoxPro 6.0命令手冊[M].北京:清華大學(xué)出版社, 1999.