VFP中記錄指針定位和數(shù)據(jù)排序

字號(hào):

一.轉(zhuǎn)到記錄:
    格式一:go top|bottom|n
    格式二:skip n
    說明:(1)"|"為“或”的意思
    (2).格式1為絕對(duì)記錄定位。即不管當(dāng)前記錄在哪兒,使用格式1都可到達(dá)指定記錄。其中,top為表中第一條記錄,bottom為表中最后一條記錄。"n"為要定位的記錄號(hào)。
    (3).格式2為相對(duì)記錄定位,是指相對(duì)于當(dāng)前記錄移動(dòng)n條記錄。n>0時(shí)為上移,n<0為下移。省略n,則默認(rèn)為向下移動(dòng)1條記錄。
    (4).剛打開的表,指針自動(dòng)定位于第1條記錄
    (5).eof()函數(shù)用于判斷指針是否超過表的最后1條記錄,若是,則值為.t.,否則為.f.
    例:
    use 職工檔案
    ?recno() && "?"為顯示命令,recno()為測(cè)試當(dāng)前記錄號(hào)函數(shù)。此命令執(zhí)行結(jié)果,在主窗口輸出1。
    skip
    ?recno() &&顯示2
    go bottom
    ?recno()
    skip
    ?eof() &&顯示.t.
    二.記錄定位:
    格式1:locate [范圍][For 條件]
    格式2:continue
    說明:locate命令定位到滿足條件的第1條記錄,如果沒定位到,eof()為.t.。continue命令按locate的條件定位下一條記錄。
    例:use 職工檔案
    locate for 職稱=“講師”
    display
    continue
    display
    use
    三.條件記錄過濾:
    格式:set filter to [過濾條件]
    功能:設(shè)置條件過濾后,只有滿足條件的記錄才會(huì)顯示。該命令不帶任何選項(xiàng),則清除過濾條件,不再對(duì)記錄過濾。
    :use 職工檔案
    set filter to 性別=“女”
    browse
    set filter to
    browse
    use
    四.表數(shù)據(jù)排序:在向新建的表輸入數(shù)據(jù)時(shí),表中記錄的順序是按其輸入的先后順序而定的,我們稱之為物理順序。但有時(shí)我們需要按某種要求重新安排記錄的順序。重新安排記錄順序的方法有兩種:一種為排序,是從物理上重新組織并生成新的表文件;另一種為索引,它通常按照表中某些關(guān)鍵字的值來建立原數(shù)據(jù)文件的索引文件,達(dá)到在使用中將記錄按順序排列的目的,使用索引的方法排序不從物理上重新組織文件,即不會(huì)生成新表。本節(jié)先介紹排序,索引將在下節(jié)學(xué)習(xí)。
    排序又稱分類,即按照表中的某些字段值的大小重新排列記錄順序,這樣的字段稱為關(guān)鍵字。按關(guān)鍵字的值排序,從小到大稱為升序,從大到小稱為降序。
    注意:備注型及通用型字段不能用作排序關(guān)鍵字,其它類型的字段都可以。
    命令格式:sort to 新表名 on 排序關(guān)鍵字 [/a][/d][For 條件][Fields 字段名表]
    說明:(1)."/a"表示升序,"/d"表示降序。
    (2).for 條件:指定參加排序的記錄條件
    (3).fields 字段名表:指定排序后生成的新表中包含的字段
    例:對(duì)“工資情況”表,要求按工資由高到低重新排序,并將排序結(jié)果存放在“工資情況2.dbf"中。在命令窗口中依次執(zhí)行以下命令:
    use 工資情況
    list
    sort to 工資情況2 on 工資/d
    use 工資情況2
    list
    use