VFP6.0第2章VisualFoxPro基礎(chǔ).ppt_第1頁
VFP6.0第2章VisualFoxPro基礎(chǔ).ppt_第2頁
VFP6.0第2章VisualFoxPro基礎(chǔ).ppt_第3頁
VFP6.0第2章VisualFoxPro基礎(chǔ).ppt_第4頁
VFP6.0第2章VisualFoxPro基礎(chǔ).ppt_第5頁
已閱讀5頁,還剩73頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1,第二章 Visual Foxpro基礎(chǔ),VFP有以下3種命令執(zhí)行方式: 單命令執(zhí)行方式:在“命令”窗口輸入命令,按“回車”鍵,執(zhí)行命令輸出結(jié)果。 程序執(zhí)行方式:編寫程序,成批執(zhí)行命令。 菜單命令執(zhí)行方式:單擊菜單選項(xiàng),執(zhí)行相應(yīng)命令。,2,2.1 Visual FoxPro系統(tǒng)概述 2.1.1 歷史沿革 Foxpro是美國Fox Software公司的產(chǎn)品,1989年推出1.0版,1991年推出2.0版,1993年推出2.5版。 1995年9月,Mricosoft推出新一代Foxpro產(chǎn)品Foxpro For Windows 3.0 并將其更名為Visual Foxpro。1997年推出Visual Foxpro 5.0版,1998年推出Visual Foxpro 6.0,如今Visual Foxpro 8.0已經(jīng)問世。,3,2.1.2 Visual FoxPro的特點(diǎn) 1.數(shù)據(jù)庫方面 2.數(shù)據(jù)操作方面 3.程序設(shè)計(jì)方面 4.操作使用方面 5.使用技術(shù)方面,4,2.2 Visual Foxpro的安裝與啟動(dòng) 2.2.1 Visual FoxPro 6.0的安裝 1.運(yùn)行環(huán)境 2.Visual Foxpro 6.0的安裝 3.Visual Foxpro 6.0的啟動(dòng)和退出,5,2.3 Visual Foxpro 6.0的用戶界面 Visual FoxPro 6.0操作界面大量使用窗口(Windows)、圖標(biāo)(Icons)和菜單(Menus)等可視化技術(shù),主要通過以鼠標(biāo)為代表的指點(diǎn)式設(shè)備(Pointing device)來操作。所以常稱為WIMP界面。 Visual Foxpro 6.0窗口通常由標(biāo)題欄、菜單欄、工具欄、主窗口和命令窗口5個(gè)部分組成。,6,7,2.3.2 Visual Foxpro 配置 1.使用“選項(xiàng)”對(duì)話框進(jìn)行環(huán)境配置 “工具”“選項(xiàng)” 2.使用SET命令配置VFP,8,項(xiàng)目管理器 在數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)過程中,將會(huì)產(chǎn)生各種類型文件,包括:數(shù)據(jù)庫文件、表文件、表單文件、報(bào)表文件和程序文件等。項(xiàng)目管理器(Project Manager)是管理、控制這些文件的主要組織工具。 項(xiàng)目管理器的內(nèi)容保存在帶有.PJX擴(kuò)展名的文件中。項(xiàng)目管理器并不保存各種文件的具體內(nèi)容,其只記錄各種文件的文件名、文件類型、路徑,以及編輯、修改或執(zhí)行這些文件的方法。,9,1.打開和關(guān)閉項(xiàng)目管理器 打開項(xiàng)目管理器有菜單操作和命令兩種。 (1)菜單操作 建立新項(xiàng)目文件:【文件】菜單【新建】命令出現(xiàn)【新建】對(duì)話框選擇【項(xiàng)目】按鈕按【新建文件】按鈕在出現(xiàn)【創(chuàng)建】對(duì)話框時(shí),在“項(xiàng)目文件”文本框輸入文件名按【保存】按鈕打開新項(xiàng)目項(xiàng)目管理器。 打開已有項(xiàng)目文件:【文件】菜單【打開】命令出現(xiàn)下圖所示【打開】對(duì)話框在“文件類型”下拉列表框選定“項(xiàng)目(*.pjx;*.fpc;*.cat)”后,在文件列表框選定已有項(xiàng)目文件,或在“文件名”文本框輸入項(xiàng)目文件名按【確定】按鈕打開已有項(xiàng)目的項(xiàng)目管理器。,10,(2)命令操作 使用modify project 命令可以打開項(xiàng)目管理器,用于創(chuàng)建(若項(xiàng)目文件不存在)或修改(若項(xiàng)目文件已經(jīng)存在)指定文件名的項(xiàng)目文件。 例如,modify project exam。擴(kuò)展名.pjx可省略。 使用modify project ?命令,命令中的?為可選項(xiàng)。不論帶或不帶?符號(hào),系統(tǒng)將顯示【打開】對(duì)話框,選定已有項(xiàng)目文件,按【確定】按鈕打開已有項(xiàng)目的項(xiàng)目管理器。,11,2.項(xiàng)目管理器的功能特性 (1)采用目錄樹管理內(nèi)容 項(xiàng)目管理器采用了目錄樹結(jié)構(gòu)進(jìn)行管理,其內(nèi)容可詳(目錄樹展開時(shí))可略(目錄樹折疊時(shí)),12,(2)使用方便的功能按鈕 新建按鈕:用于建立新的數(shù)據(jù)庫、表、查詢或程序等。 添加按鈕:添加按鈕可以在打開對(duì)話框中將已經(jīng)建立 好的數(shù)據(jù)庫、表、查詢或程序等添加到項(xiàng)目中。 修改按鈕:修改按鈕可打開相應(yīng)的設(shè)計(jì)器或編輯窗口 修改選定數(shù)據(jù)庫、表、查詢或程序。 打開、關(guān)閉、瀏覽或運(yùn)行按鈕:當(dāng)選定數(shù)據(jù)庫時(shí),會(huì) 變?yōu)榇蜷_或關(guān)閉功能;當(dāng)選定表時(shí),會(huì)變?yōu)闉g覽功能;當(dāng)選定查詢或程序時(shí),會(huì)變?yōu)檫\(yùn)行功能。 移去按鈕:將對(duì)話框中選定的數(shù)據(jù)庫、表、查詢或程序從項(xiàng)目管理器中刪除。 連編按鈕:用于訪問連編的選項(xiàng),可以連編一個(gè)項(xiàng)目 或應(yīng)用程序。,13,2.4 Visual FoxPro 向?qū)?、設(shè)計(jì)器、生成器簡介,2.4.1 Visual FoxPro的向?qū)?向?qū)且环N快捷設(shè)計(jì)工具。通過一組對(duì)話框依次與用戶對(duì)話,引導(dǎo)用戶分步完成Visual FoxPro的某項(xiàng)任務(wù),例如創(chuàng)建表單、表、創(chuàng)建查詢和創(chuàng)建報(bào)表。 1.啟動(dòng)向?qū)?(1)通過項(xiàng)目管理器 (2)選擇“文件”菜單中的“新建” (3)選擇“工具”菜單中的“向?qū)А?(4)單擊工具欄中的“向?qū)А卑粹o,14,2.4.2 設(shè)計(jì)器 設(shè)計(jì)器可以用來創(chuàng)建或修改應(yīng)用程序所需要的組件 1.設(shè)計(jì)器分類 2.打開設(shè)計(jì)器 (1)在“項(xiàng)目管理器”中打開 (2)菜單方式打開 (3)從“顯示”菜單中打開 2.4.3 生成器 生成器是帶有選項(xiàng)卡的對(duì)話框,用于簡化對(duì)表單、復(fù)雜控件和參照完整性代碼的創(chuàng)建和修改過程。每個(gè)生成器顯示一系列選項(xiàng)卡,用于設(shè)置選中對(duì)象的屬性。,15,數(shù)據(jù)類型,類型就是對(duì)數(shù)據(jù)的允許取值以及值的范圍進(jìn)行的說明。數(shù)據(jù)類型這一概念的主要特征為: 數(shù)據(jù)類型確定了常量所屬值的集合,確定變量、表達(dá)式所能取值的集合,也確定了運(yùn)算和函數(shù)(過程)所能生成的值的集合。 任何數(shù)據(jù)所表示值的類型,如能從其說明或靜態(tài)形式即可推知,這種類型稱為基本數(shù)據(jù)類型。 每一運(yùn)算符號(hào)或過程都要求有固定類型的變量或參數(shù),并產(chǎn)生固定類型的結(jié)果;如果一運(yùn)算符允許幾種類型的變量,則結(jié)果類型可由特定的規(guī)則確定。,16,下面討論每種數(shù)據(jù)類型的特點(diǎn): (1) 字符型(Character) 在Visual FoxPro 6.0中,一個(gè)字符型的數(shù)據(jù)最多可由254個(gè)字符組成,通常把字符型簡稱或簡寫為C型,使用時(shí)必須用定界符雙引號(hào)(“”)或單引號(hào)()或方括號(hào)()括起來定界。 例如:“ABCD”,1234,數(shù)據(jù)庫,17,(2) 貨幣型 用來保存貨幣值。在貨幣表達(dá)式中如果小數(shù)位超過4位,則VFP將在處理表達(dá)式之前自動(dòng)把它按四舍五入到4位。占用8個(gè)字節(jié)。若要使用貨幣數(shù)據(jù)類型,請(qǐng)?jiān)跀?shù)字前加美元符($)。 例如:將123.017657表示為 $123.0177,18,(3) 數(shù)值型(Number) 用來表示數(shù)量。它包括整數(shù)和小數(shù)兩種數(shù)值,組成數(shù)值型的數(shù)據(jù)由09這10個(gè)數(shù)字、小數(shù)點(diǎn)(圓點(diǎn))、正負(fù)號(hào)(+、-)組成,在輸出時(shí)可按習(xí)慣插入分節(jié)號(hào)(逗號(hào),)。 (4) 浮點(diǎn)型(Float) 用來存放浮點(diǎn)數(shù)值數(shù)據(jù)。,19,(5) 日期型(Date) 這種數(shù)據(jù)類型只反映日期情況,固定為8個(gè)字節(jié),其中表示月份和日期的各占2個(gè)字節(jié),年份占有4個(gè)字節(jié)。日期值的格式取決于SET DATE,SET MARK和SET CENTURY等設(shè)置。 mmdd(yy)yy美國格式 ddmm(yy)yy歐洲格式 在大部分計(jì)算機(jī)系統(tǒng)中,都采用美國格式,01202000則表示2000年1月20日。日期型也稱D型。,20,(6) 日期時(shí)間型(Date time)。 保存日期、時(shí)間或兩者兼有時(shí),請(qǐng)使用日期時(shí)間數(shù)據(jù)類型。日期時(shí)間值存儲(chǔ)在8個(gè)字節(jié)中,前4個(gè)字節(jié)保存日期,剩下的4個(gè)字節(jié)保存時(shí)間。時(shí)間從午夜起計(jì)算,以1/100秒為最小計(jì)時(shí)單位, 日期時(shí)間值可以包含完整的日期和時(shí)間,也可以只包含兩者之一。若用戶沒有指明日期值,系統(tǒng)默認(rèn)值1999年12月30日填入;若用戶沒有指明時(shí)間值,用默認(rèn)的午夜時(shí)間填入。 日期時(shí)間值中,日期部分的格式取決于SET DATE,SET MARK和SET CENTURY等設(shè)置,時(shí)間部分的格式取決于SET HOURS和SET SECONDS設(shè)置。,21,(7) 雙精度型 當(dāng)表中需要存儲(chǔ)精度較高、位數(shù)固定的數(shù)值,或者存儲(chǔ)真正的浮點(diǎn)數(shù)值時(shí),請(qǐng)使用雙精度型數(shù)據(jù)代替數(shù)值型數(shù)據(jù)。與數(shù)值型數(shù)據(jù)不同,在表中輸入雙精度數(shù)值時(shí),由用戶決定小數(shù)點(diǎn)的位置。 (8) 整型(Integer) 存放整數(shù),占用4個(gè)字節(jié)的空間。,22,(9) 邏輯型(Logical) 邏輯型為二值類型,即非真即假,由表示“真”、“假”值的單個(gè)字母組成。用于像“男性/女性”、“失敗/成功”、“開/關(guān)”這類兩者中必取且僅取其一的情況。在Visual FoxPro中,用.T.表示真值,用.F.表示假值。其值域固定寬度為1,通常簡稱L型。,23,(10) 備注型(Memory) 用于把數(shù)據(jù)中較大的文本塊以固定格式存放在此類型的字段中。該類型數(shù)據(jù)長度(字符個(gè)數(shù))僅受硬盤空間的限制,因而可彌補(bǔ)字符型數(shù)據(jù)長度不能超過254個(gè)字符的限制。但如果某存儲(chǔ)的字符長度少于254個(gè)字符的話,則應(yīng)定義為字符類型,這樣在查詢或顯示時(shí)可直觀地表示出來。此數(shù)據(jù)類型通常記為M類型。 (11) 通用型(General) 用于表示OLE對(duì)象數(shù)據(jù)。OLE對(duì)象包括電子表格、字處理文檔、聲音、圖像或其他多媒體對(duì)象。,24,(12) 二進(jìn)制字符型(Character Binary) 二進(jìn)制字符型用于表示不需要系統(tǒng)代碼維護(hù)的字符數(shù)據(jù),其他特性同字符型。 (13) 二進(jìn)制備注型(Memo Binary) 二進(jìn)制備注型用于表示不需要系統(tǒng)代碼維護(hù)的備注型數(shù)據(jù)。 以上列出13種數(shù)據(jù)類型,有的只能用于字段,而不能用于內(nèi)存變量。,25,2.5 常量與變量,1.常量 常量是指在程序執(zhí)行的過程中其值不變的量,又稱常數(shù)。Visual FoxPro 6.0中定義了6種類型的常量: (1) 數(shù)值型常量。 數(shù)值型常量可以是整數(shù)或?qū)崝?shù)。例如:86,125,16,-256.75等。 (2) 字符型常量。 字符型常量是用定界符括起來的由字符、漢字、空格或數(shù)字所組成的字符串。例如“ABCD”,“How Do You Do?”,李福貴等。當(dāng)某一種定界符本身是字符型常量的組成部分時(shí),應(yīng)選用另一定界符來表示該字符串。,26,(3) 邏輯型常量。 邏輯型常量只有兩個(gè)值:“真”、“假”,用.T.(或.t.)、.Y.(或.y.)表示“真”,用.F.(或.f.)、.N.(或.n.)表示“假”。 (4) 日期型常量。 日期型常量用來表示一個(gè)日期,它必須用花括號(hào)括起來,例如:2005-03-28等。 (5) 日期時(shí)間型常量 日期時(shí)間型常包括日期和時(shí)間的合成。同樣以花括號(hào)為定界符。例如:2005/03/28 8:15 a等。 (6)貨幣型常量 貨幣型常量在存儲(chǔ)和計(jì)算時(shí)采用4位小數(shù),并且沒有科學(xué)計(jì)數(shù)法表示。,27,VFP支持的日期型、日期時(shí)間型常量的格式有兩種:傳統(tǒng)格式和嚴(yán)格格式。傳統(tǒng)的日期格式的常量要受到SET DATE、SET CENTURY命令的影響,其默認(rèn)格式為美國日期格式。 輸入日期時(shí)間常量: yyyy/mm/dd hh:mm:ss AM|PM 例如:2005-03-28和2005-03-28 18:30 輸出的日期時(shí)間常量: Mm/dd/yy hh:mm:ss AM|PM 例如:03/28/05 03/28/05 06:30:00 PM,28,2.5.2 變量,變量是指在命令操作或程序運(yùn)行期間,其值可以改變的量。Visual FoxPro 6.0的變量有字段變量和內(nèi)存變量兩種。 (1)字段變量 字段變量就是表中的字段名,它是表中最基本的數(shù)據(jù)單元。字段變量的命名、類型、長度是在設(shè)計(jì)表結(jié)構(gòu)時(shí)完成的,字段變量的值就是表中當(dāng)前記錄對(duì)應(yīng)的字段的值。,29,(2) 內(nèi)存變量 內(nèi)存變量是一種獨(dú)立于表文件而存在的變量,或者說是一種臨時(shí)工作單元。它分為用戶根據(jù)需要定義的內(nèi)存變量和系統(tǒng)內(nèi)存變量。系統(tǒng)內(nèi)存變量是Visual FoxPro 6.0自帶的變量,由系統(tǒng)命名創(chuàng)建并維護(hù)。用于控制VFP的輸出和顯示信息的格式。系統(tǒng)內(nèi)存變量名字以“_”開頭。例如“_PEJECT”用于設(shè)置打印輸出時(shí)的走紙方式。,30,用戶定義的內(nèi)存變量在使用之前時(shí),需要為它命名。內(nèi)存變量命名規(guī)則如下: 以字母、漢字或下劃線開頭; 由字母、漢字、下劃線或數(shù)字組成; 長度不超過254個(gè)字符。 例如:x1,姓名、性別、Name, Student_no 等都是合法的內(nèi)存變量名,而1xy, x%y等則為非法的內(nèi)存變量名。,31,當(dāng)內(nèi)存變量名與字段變量名同名時(shí),系統(tǒng)優(yōu)先引用字段變量,如果一定要引用內(nèi)存變量,可以在內(nèi)存變量名前加前綴“M.”以示區(qū)別。 例如: ? M.姓名 &顯示“姓名”這一內(nèi)存變量的值 ? 姓名 &如果打開一個(gè)含有“姓名”字段的表,則顯示“姓名”這一字段變量值. 用戶定義的內(nèi)存變量常用于存放初值、中間結(jié)果和最終結(jié)果,也可以用作控制變量,控制應(yīng)用程序的運(yùn)行。內(nèi)存變量中存放什么樣類型的數(shù)據(jù),則該變量就具有什么類型。用戶通過賦值語句來改變內(nèi)存變量的類型。,32,Visual FoxPro 6.0中內(nèi)存變量有如下幾種數(shù)據(jù)類型:字符型(C),日期型(D),邏輯型(L),數(shù)值型(N),日期時(shí)間型(T),貨幣符號(hào)型(Y)。 在Visual FoxPro 6.0程序中,內(nèi)存變量只能在一個(gè)程序(過程)中起作用,除非用戶特別說明它是公共的,否則,一旦某一程序運(yùn)行結(jié)束,其定義的內(nèi)存變量便失去了意義??墒褂肔OCAL,PRIVATE,和PUBLIC命令指定內(nèi)存變量的作用域。,33,2.5.3 內(nèi)存變量常用命令 1.賦值命令 格式1:STORE表達(dá)式TO變量名表 格式2:內(nèi)存變量名=表達(dá)式 功能:計(jì)算表達(dá)式并將表達(dá)式值賦給一個(gè)或多個(gè)內(nèi)存變量,格式2只能給一個(gè)變量賦值。 2.變量及表達(dá)式值的輸出命令 格式1:?表達(dá)式表 格式2:?表達(dá)式表 功能:計(jì)算表達(dá)式表中的各表達(dá)式并輸出各表達(dá)式值。 不管有沒有指定表達(dá)式表,格式1都會(huì)輸出一個(gè)回車換行符。如果指定了表達(dá)式表,各表達(dá)式值將在下一行的起始處輸出。 格式2不會(huì)輸出一個(gè)回車換行符,各表達(dá)式值在當(dāng)前行的光標(biāo)所在處直接輸出。,34,3. 內(nèi)存變量的顯示 格式1:LIST MEMORY LIKE通配符TO PRINTER|TO FILE 格式2:DISPLAY MEMORY LIKE通配符TO PRINTER|TO FILE文件名 功能:顯示內(nèi)存變量的當(dāng)前信息,包括變量名、作用域、類型、取值。 說明:選用LIKE短語只顯示與通配符相匹配的內(nèi)存變量。通配符包括*和?,*表示任意多個(gè)字符,?表示任意一個(gè)字符。 可選子句TO PRINTER或TO FILE文件名用于在顯示的同時(shí)送往打印機(jī),或者存入給定文件名的文本文件中,文件的擴(kuò)展名為.txt。,35,LIST MEMORY一次顯示與通配符匹配的所有內(nèi)存變量,如果內(nèi)存變量多,一屏顯示不下,則自動(dòng)向上滾動(dòng)。DISPLAY MEMORY分屏顯示與通配符匹配的所有內(nèi)存變量,如果內(nèi)存變量多,顯示一屏后暫停,按任意鍵之后再繼續(xù)顯示下一屏。 4.釋放內(nèi)存變量命令 格式1:CLEAR MEMORY 格式2:RELEASE內(nèi)存變量名表 功能:格式1清除所有內(nèi)存變量。 格式2清除指定的內(nèi)存變量。,36,數(shù)組 數(shù)組是一組按一定順序排列的由單個(gè)變量名引用的有序數(shù)據(jù)集合。數(shù)組中的各個(gè)元素在數(shù)組中排列的位置由下標(biāo)表示,下標(biāo)的個(gè)數(shù)稱為數(shù)組的維數(shù)。例如:一維數(shù)組X及數(shù)組元素X(1),X(2),二維數(shù)組B及數(shù)組元素B(1,1),B(2,1),一般情況下,數(shù)組必須先定義后使用。 數(shù)組的定義 格式:DIMENSION數(shù)組名1(數(shù)值1,數(shù)值2) ,數(shù)組名2(數(shù)值3,數(shù)值4) 或 DECLARE數(shù)組名1(數(shù)值1,數(shù)值2),數(shù)組名2(數(shù)值3,數(shù)值4) 功能:定義一維或二維數(shù)組,37, 數(shù)組的賦值。數(shù)組中各數(shù)組元素的取值類型可以互不相同,數(shù)組一定義,系統(tǒng)自動(dòng)給每個(gè)數(shù)組元素賦以邏輯值.F. 用賦值命令可為數(shù)組元素賦值,也可以為數(shù)組的各元素賦一相同值。 例如:A(4)=3, B(2,1)= “a b c” STORE 10 TO A &A數(shù)組中每個(gè)元素被賦值10,38,2.6 運(yùn)算符與表達(dá)式,運(yùn)算符是對(duì)操作對(duì)象進(jìn)行操作運(yùn)算的符號(hào)。表達(dá)式則是由常量、變量、函數(shù)用運(yùn)算符按一定規(guī)則連結(jié)而成的有意義的式子。 1.運(yùn)算符 根據(jù)運(yùn)算符的不同功能劃分為4類:算術(shù)運(yùn)算符、字符運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符。,39,(1) 算術(shù)運(yùn)算符 () 分組優(yōu)先運(yùn)算符(括號(hào)) * 或 乘方運(yùn)算符 *,/ 乘、除運(yùn)算符 % 模(取余)運(yùn)算符 +, 加減或單目運(yùn)算符 算術(shù)運(yùn)算符主要用于數(shù)值數(shù)據(jù)間的運(yùn)算,運(yùn)算結(jié)果也是數(shù)值數(shù)據(jù)。運(yùn)算符的優(yōu)先級(jí)順序?yàn)椋?()單目(取正、負(fù)號(hào))*,/,-,40,(2) 字符運(yùn)算符 字符運(yùn)算符用于字符串連接操作,有以下兩種: 指兩個(gè)字符串原封不動(dòng)地連接成一個(gè)新串。 將兩個(gè)字符串連接起來,與“”連接不同的是,將第一個(gè)字符串尾部的空格移到結(jié)果的尾部。 $ 包含與 a=“abc ” b=“def” c=“gh” ?a+b+c abc defgh ?ab+c abcdef gh &abc后面的空格移到整個(gè)字符串a(chǎn)-b結(jié)果的后面。 ?“章”$“章旭升” .,41,(3) 關(guān)系運(yùn)算符 關(guān)系運(yùn)算符用于比較運(yùn)算。即比較同類型操作對(duì)象的值,如使關(guān)系成立,比較運(yùn)算結(jié)果取值為“真”,否則,取值為“假”。Visual FoxPro 6.0提供以下關(guān)系運(yùn)算符。各關(guān)系運(yùn)算符的優(yōu)先級(jí)相同。 小于 大于 等于 字符串全等比較 小于或等于 大于或等于 ,!= 不等于 例如: ? “ABCD”“ ABCD ” &必須全等,等號(hào)右邊的字符串中有空格 .F. ?“ABC”=“AB” 當(dāng)設(shè)置SET EXACT ON 為假 當(dāng)設(shè)置SET EXACT OFF 為真,42,() 邏輯運(yùn)算符 用于邏輯運(yùn)算。參與運(yùn)算的數(shù)據(jù)均為邏輯型。運(yùn)算結(jié)果也是邏輯值。 vfp中提供下列邏輯運(yùn)算符,其運(yùn)算優(yōu)先級(jí)次序?yàn)椋?. . . .或!(邏輯非,取其右邊邏輯值的相反值) .(邏輯與,兩邊的邏輯值都是真時(shí)結(jié)果才得真) .(邏輯或,兩邊的邏輯值都是假時(shí)結(jié)果才得假),43,2. 表達(dá)式,表達(dá)式是Visual FoxPro 6.0命令和函數(shù)的重要組成部分,表達(dá)式通過運(yùn)算得出表達(dá)式的值。由于操作對(duì)象數(shù)據(jù)類型的不同,運(yùn)算符類型各異,在組成表達(dá)式時(shí)要嚴(yán)格遵守相應(yīng)的規(guī)定,否則難以得到我們期望的結(jié)果。Visual FoxPro 6.0中定義了下列幾種表達(dá)式:,44,(1)數(shù)值型表達(dá)式 數(shù)值型表達(dá)式由數(shù)值型常量、變量、函數(shù)和算術(shù)運(yùn)算符構(gòu)成,運(yùn)算結(jié)果仍為數(shù)值型數(shù)據(jù)。例如: a=6 ?(8+a)/2 &顯示結(jié)果為7.0000 ? 20% 3 &顯示顯示結(jié)果為:2,45,(2)字符型表達(dá)式 字符型表達(dá)式由字符型常量、變量、字符型函數(shù)和字符運(yùn)算符構(gòu)成。運(yùn)算結(jié)果仍為字符型數(shù)據(jù)。例如: ?“科學(xué) ”+“技術(shù)” 結(jié)果為:科學(xué) 技術(shù) ?“科學(xué) ”-“技術(shù)” 結(jié)果為:科學(xué)技術(shù) ,其尾部有空格。,46,(3)日期表達(dá)式 日期型表達(dá)式由日期型(或日期時(shí)間型)常量、變量、函數(shù)通過算術(shù)運(yùn)算符“+”、“-”構(gòu)成。運(yùn)算結(jié)果為日期型(或日期時(shí)間型)或數(shù)值型數(shù)據(jù)。 格式1: 日期n 返回日期 日期時(shí)間n 返回日期時(shí)間 格式2:日期-日期 返回?cái)?shù)值 日期時(shí)間一日期時(shí)間 返回秒數(shù),47,例如: ?2001/4/12+30 &結(jié)果為日期型2001/5/12 ?2001/4/12 -30 &結(jié)果為日期型:2001/3/13 ?2001/4/12 - 2001/4/7 結(jié)果為5, 是兩個(gè)日期相隔的天數(shù) ?2004/08/18 09:17 - 2005/03/18 08:19:20 結(jié)果為-18313340,48,(4) 關(guān)系表達(dá)式 關(guān)系表達(dá)式由關(guān)系運(yùn)算符和字符表達(dá)式、數(shù)值表達(dá)式、日期表達(dá)式組成,關(guān)系運(yùn)算符左右兩側(cè)數(shù)據(jù)類型必須一致,運(yùn)算結(jié)果為邏輯值。 例如: ?35 結(jié)果為.,49,(5) 邏輯表達(dá)式 邏輯表達(dá)式由邏輯運(yùn)算符和邏輯常量、變量、函數(shù)及關(guān)系表達(dá)式組成,其結(jié)果仍是邏輯值。例如: ?NOT(56) .T. ?(65).AND.abcabc .F. ?(35) or (53) .T.,50,2.7 常用函數(shù),函數(shù)的一般形式為: 函數(shù)名(參數(shù)1,參數(shù)2) 注意下面3點(diǎn): 準(zhǔn)確地掌握函數(shù)功能。 函數(shù)對(duì)自變量的類型有確定要求,否則會(huì)產(chǎn)生類型不匹配的語法錯(cuò)誤。 函數(shù)的返回值也有確定的類型,注意在組成表達(dá)式時(shí)的類型匹配。,51,例如:Max(128,86)是一個(gè)求128和86之中最大值的函數(shù),其結(jié)果為128。 函數(shù)名后緊接括號(hào)、括號(hào)內(nèi)為參數(shù)(即自變量),有的函數(shù)沒有參數(shù),沒有參數(shù)的函數(shù)稱為無參函數(shù)。函數(shù)都有返回值。函數(shù)名,參數(shù)和返回值為函數(shù)的三要素。以下舉例說明部分函數(shù)。,52,2.7.1 數(shù)值函數(shù),數(shù)值函數(shù)主要用于通用的數(shù)學(xué)運(yùn)算,其參數(shù)和返回的函數(shù)值,都是數(shù)值型。 1.絕對(duì)值函數(shù) 格式:ABS(N) 求數(shù)值表達(dá)式N的絕對(duì)值 例2.1 ?ABS(-46) 46 ?ABS(-2*15.2) 30.4 2.取整函數(shù) 格式: INT(N) 取數(shù)值表達(dá)式N的整數(shù)部分 例2.2 ?INT(10.3) 10 ?INT(-10.8) -10,53,3.符號(hào)函數(shù) 格式 SIGN(N) 判斷表達(dá)式N的符號(hào),該數(shù)值為正、零、負(fù)數(shù)時(shí)返回1、0、-1 例2.3 ?SIGN(20) 1 ?SIGN(-36.5) -1 ?SIGN(0) 0 4.自然指數(shù)函數(shù) 格式: EXP(N) 求eN的值 例2.4 ?EXP(1) 2.72 ?EXP(0) 1.00 5.對(duì)數(shù)函數(shù) (1)自然對(duì)數(shù) 格式:LOG(N) (2)常用對(duì)數(shù) 格式:LOG10,54,例2.5 ?LOG(2.72) 1.00 ?LOG10(100) 2.00 6.平方根函數(shù) 格式: SQRT(N) 取數(shù)值表達(dá)式N的平方根 例2.6 ?SQRT(2),SQRT(16) 1.41 4.00 7.四舍五入函數(shù) 格式: ROUND(N1, N2) 對(duì)N1四舍五入,保留的小數(shù)位數(shù)由N2決定。 例2.7 ?ROUND(65.3476,3),ROUND(52.35,0),ROUND(32.653,-1) 65.348 52 30,55,8.最大值函數(shù) 格式: MAX(M1, M2,M3) 取表達(dá)式M1,M2,M3,中的最大值 例2.8 ?MAX(96,80) 96 ?MAX(1999/10/20,1980/5/15) 10/20/99 9.最小值函數(shù) 格式:MIN(M1, M2,M3) 取表達(dá)式M1,M2,M3,中的最小值,56,10.求余函數(shù) 格式: MOD(N1, N2) 取數(shù)值表達(dá)式N1除以N2所得的余數(shù),其正負(fù)號(hào)與N2相同 例2.10 ?MOD(17,5) 2 11.隨機(jī)數(shù)函數(shù) 格式:RAND(N) 功能:返回0到1之間的隨機(jī)數(shù)。,57,2.7.2 字符函數(shù) 字符函數(shù)的處理對(duì)象均為字符型數(shù)據(jù),但其返回值類型卻各異。 1.字符串長度函數(shù) 格式:LEN(C) 返回字符串C的長度(字符個(gè)數(shù))??兆址拈L度為0。函數(shù)值為N型。 例2.11 ?LEN(“visual foxpro 6.0) 17 ?LEN(“奧運(yùn)會(huì)”) 6 2.空格函數(shù) 格式:SPACE(N) 生成且返回一個(gè)由N個(gè)空格組成的字符串。函數(shù)值是字符型。 例2.12 ?”中國”+space(2)+”安徽” 中國 安徽,58,3.刪除空格函數(shù) 格式:ALLTRIM(C) 刪除字符串C中前后空格TRIM(C)、 RTRIM(C) 刪除字符串C尾部空格。 LTRIM(C) 刪除字符串C前導(dǎo)空格。 函數(shù)值是字符型 例2.13 ?“AB CD “+“EF“ AB CD EF ?trim(“ AB CD “)+“EF “ AB ADEF ?alltrim(“ AB CD “)+“EF“ AB CDEF ?ltrim(“AB CD “)+“EF“ AB CD EF 4.取子串函數(shù) 格式:SUBSTR(C,N1,N2) 返回一個(gè)子字符串。該子字符串在C中從N1位置開始,共N2個(gè)字符(如N2省略,則從N1開始至串尾)。,59,例2.14 ?substr(“ABCDEF“,3,2) CD ?substr(“中國首都”,5) 首都 5.左取字符,右取字符函數(shù) 格式:LEFT(C,N)返回一個(gè)子字符串,該字符串在C中從最左端開始,取N個(gè)字符。 RIGHT(C,N)返回一個(gè)子字符串,該字符串在C中從最右端開始,取N個(gè)字符。 例2.16 ?left(“ABCDEFG“,4)+right(“XYZ“,2) ABCDYZ 6.復(fù)制字符函數(shù) 格式:REPLICATE(C,N) 功能:將指定的C串重復(fù)N次,返回值是所形成的字符串。,60,例2.16 ?replicate(“*“,5) * 7.求子串位置函數(shù) 格式1:AT(C1,C2,n) ATC(C1,C2,n) 功能:確定字符串C1在字符串C2中的開始位置。返回值N型,如C1不在C2中,則返回值為0,n為C1在C2中第幾次出現(xiàn)。 ATC()在子串比較時(shí)不區(qū)分字母大小寫。 例2.17 store “I am a Chinese.“ to x ?at(“chinese“,x) 0 ?atc(“chinese“,x) 8 ?at(“a“,x,2) 6,61,2.7.3 日期和時(shí)間函數(shù) 日期函數(shù)主要用于對(duì)日期型參數(shù)進(jìn)行操作,設(shè)置或提取系統(tǒng)日期或日期的年月日星期等,常用的有: 1.系統(tǒng)日期函數(shù) 格式: DATE() 格式: 返回系統(tǒng)當(dāng)前日期。函數(shù)值為日期型D,62,例2.18 ?date() 08/31/08 set century on ?date() 08/31/2008 2.系統(tǒng)時(shí)間函數(shù) 格式:TIME() 功能:返回系統(tǒng)當(dāng)前時(shí)間,函數(shù)值為字符型C。 3.系統(tǒng)日期時(shí)間函數(shù) 格式:DATETIME() 功能:返回系統(tǒng)當(dāng)前日期、時(shí)間。函數(shù)值為日期時(shí)間型T,63,4.年函數(shù) 格式:YEAR(D) 功能:返回D的年份值(4位,N型)。 ?year(date() 2008 5.月函數(shù) 格式: MONTH(D) 功能:返回D的月份值(N型) ?month(date() 9 6.日函數(shù) 格式: DAY(D) 功能:返回D日期值(N型) ?day(date(),64,2.7.4 數(shù)據(jù)類型轉(zhuǎn)換函數(shù) 轉(zhuǎn)換函數(shù)的功能是將某一種類型的數(shù)據(jù)轉(zhuǎn)換為另一種類型的數(shù)據(jù)。 1.數(shù)值轉(zhuǎn)換成字符串函數(shù) 格式:STR(N1,N2,N3) 功能:將數(shù)值N1轉(zhuǎn)換成字符串。N2表示串的最大長度,N3表示保留小數(shù)點(diǎn)位數(shù)。函數(shù)值為字符型。若N2小于N1的整數(shù)位數(shù),則函數(shù)值為由“*”組成的字符串,若省略N3,則認(rèn)為小數(shù)位數(shù)為0,若省略N2和N3,則整數(shù)位數(shù)默認(rèn)為10。,65,例2.24 ?STR (896.5682,8,4) 結(jié)果:896.5682 ? STR(896.5682,8) 結(jié)果: 897 ? STR(896.5682) 結(jié)果: 897 ? STR(896.5682,2) 結(jié)果:* ? STR(896.5682,3) 結(jié)果:897 2.字符串轉(zhuǎn)換成數(shù)值函數(shù) 格式:VAL(C) 功能:將字符串轉(zhuǎn)換成相應(yīng)的數(shù)值型數(shù)據(jù)。 轉(zhuǎn)換從字符串最左邊字符開始,如果第一個(gè)字符為非數(shù)字字符,則函數(shù)值為0;若為數(shù)字字符,則一直到非數(shù)字字符為止。函數(shù)值為N型。,66,例2.25 ?val(“28.612”)+10 結(jié)果:38.61 ?val(“51ABC”) 結(jié)果:51.00 ?val(“ABC51”) 結(jié)果:0.00 ?val(“2.8E+5”) 結(jié)果:280000.00 3.字符轉(zhuǎn)換ASCII碼函數(shù) 格式:ASC(C) 功能:返回C中第一個(gè)字符的ASCII碼。函數(shù)值為N型。 例2.26 ?asc(“ABC“+“DEF“) 65,67,4.ASCII碼轉(zhuǎn)換字符函數(shù) 格式:CHR(N) 功能:將十進(jìn)制數(shù)N轉(zhuǎn)換成相應(yīng)的ASCII碼字符。函數(shù)值為C型。 例2.27 ?chr(33*2) B 5.字符型轉(zhuǎn)換為日期型函數(shù) 格式:CTOD(C) 功能:把日期格式書寫的字符串轉(zhuǎn)換成日期型數(shù)據(jù)。 ?ctod(“10/20/99”) 10/20/99 6.日期型轉(zhuǎn)換為字符型 格式: DTOC(D ,1) 功能: 把日期型數(shù)據(jù)D轉(zhuǎn)換成字符串形式。,68,例2.29 rq=1999.10.20 ?dtoc(rq),rq 10/20/99 10/20/99 ?dtoc(rq,1),rq 19991020 10/20/99 7.字符型轉(zhuǎn)換為日期時(shí)間型函數(shù) 格式:CTOT(c

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論