乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      VFP查詢(xún)系統(tǒng)實(shí)現(xiàn)技巧六則

       悟靜 2009-04-25
      用VFP6.0編寫(xiě)完整的應(yīng)用程序時(shí)查詢(xún)系統(tǒng)往往是不可缺少的重要部分。而開(kāi)發(fā)一個(gè)優(yōu)秀的查詢(xún)系統(tǒng)需要很多的應(yīng)用技巧。由于工作原因,筆者經(jīng)常開(kāi)發(fā)查詢(xún)系統(tǒng)模塊,現(xiàn)將個(gè)人編程中總結(jié)的一些技巧介紹給大家,希望對(duì)讀者的應(yīng)用開(kāi)發(fā)有所幫助。

        任務(wù)進(jìn)度條的實(shí)現(xiàn)

        在查詢(xún)的過(guò)程中,如果數(shù)據(jù)較多,需要用戶(hù)等待時(shí),查詢(xún)系統(tǒng)中應(yīng)有進(jìn)度條加以顯示,才能使系統(tǒng)更加具有規(guī)范性。具體實(shí)現(xiàn)方法如下:

        1.選擇VFP的系統(tǒng)選單“工具”中“選項(xiàng)”條,彈出“選項(xiàng)”窗口,在窗口中點(diǎn)擊“ActiveX控件”欄,添加任務(wù)進(jìn)度欄控件Microsoft ProgressBar Control Version5.0(SP2)至ActiveX工具箱中。

        2.選定表單控件工具欄中“ActiveX控件”,添加控件Microsoft ProgressBar Control Version6.0至查詢(xún)的表單Form1中,并設(shè)置其屬性Max值為1000。

        3.將下列代碼添加到數(shù)據(jù)查詢(xún)程序代碼之后:

      for i=1 to 1000
      for j=1 to 2000
      j=j+1
      endfor
      thisform.olecontrol1.value=i
      i=i+1
      endfor
      messagebox('數(shù)據(jù)查詢(xún)完畢,OK!',0+64)
      thisform.release
      clear events
        通過(guò)這樣的設(shè)置,在查詢(xún)時(shí)如果時(shí)間較長(zhǎng),查詢(xún)進(jìn)度條會(huì)為用戶(hù)顯示查詢(xún)?nèi)蝿?wù)的運(yùn)行情況。

        應(yīng)用宏命令實(shí)現(xiàn)組合查詢(xún)

        在組合查詢(xún)中,需要查詢(xún)的組合項(xiàng)通常很多,如果每項(xiàng)都使用不同的變量,編程會(huì)非常煩瑣。筆者使用宏命令輕松實(shí)現(xiàn)查詢(xún)組合條件,具體實(shí)現(xiàn)的方法是在查詢(xún)按鈕里加入如下代碼:

      LOCAL cFilter,nCnt,cCondition
      FOR nCnt = 1 to THISFORM.ControlCount
      IF TYPE('THISFORM.Controls(nCnt).controlSource') <> "U" THEN
      IF !EMPTY(THISFORM.Controls(nCnt).ControlSource) AND ;
      TYPE('THISFORM.Controls(nCnt).value') <> "U" THEN cCondition=THIS.Parent.parseCondition(THISFORM.Controls(nCnt).value,THISFORM.Controls(nCnt).controlSource)
      IF !EMPTY(cCondition) THEN
      cFilter = cFilter + " AND " cCondition
      ENDIF
      ENDIF
      ENDIF
      ENDFOR
        通過(guò)這樣的設(shè)置,雖然有多個(gè)查詢(xún)條件,但查詢(xún)的組合條件為cFilter,以后的應(yīng)用只要對(duì)cFilter進(jìn)行處理即可。

        刪除查詢(xún)表中的空記錄

        使用類(lèi)查詢(xún)(_dataquery.vcx)時(shí),會(huì)在待查詢(xún)表中的最后自動(dòng)插入一條空記錄,而在實(shí)際的GRID表格顯示中,我們是不希望將空記錄顯示出來(lái)的。下面是解決此問(wèn)題的詳細(xì)步驟:

        1.在主程序或Form對(duì)象的Load事件輸入以下代碼:

        SET DELETE ON

        2.在查詢(xún)結(jié)束代碼后輸入以下代碼:

        Thisform.Refresh    

        &&&&刷新表單

        go bottom

        delete next 1   

        &&&&因?yàn)楫?dāng)前表被添加了一個(gè)空記錄,在實(shí)際應(yīng)用中應(yīng)刪除掉

        Thisform.Grid1.Column1.Setfocus

        go top

        Thisform.grid1.refresh   

        &&&&刪除一條記錄后,應(yīng)及時(shí)地刷新GRID表

        實(shí)現(xiàn)中英文自動(dòng)切換

        在用VFP6.0開(kāi)發(fā)查詢(xún)系統(tǒng)時(shí),文本框?qū)ο蠛徒M合框?qū)ο髴?yīng)用得較多,在文本框中進(jìn)行中英文的輸入時(shí),來(lái)回切換非常煩瑣,所以筆者借助自定義子類(lèi),來(lái)實(shí)現(xiàn)中英文輸入的自動(dòng)切換。具體實(shí)現(xiàn)的步驟如下:

        1.點(diǎn)擊VFP6系統(tǒng)選單欄“文件→新建→類(lèi)”,啟動(dòng)“新類(lèi)”對(duì)話(huà)框,填入類(lèi)名為gsTextBox,并設(shè)置父類(lèi)為T(mén)extBox,在“存儲(chǔ)于”欄處輸入存儲(chǔ)的位置和名稱(chēng),按“確定”鍵進(jìn)入類(lèi)設(shè)計(jì)器畫(huà)面。

        2.新增一個(gè)屬性,來(lái)作為對(duì)象是否啟動(dòng)中文輸入法的控制碼。通過(guò)系統(tǒng)選單欄“類(lèi)→新建屬性...”,啟動(dòng)“新建屬性”對(duì)話(huà)框,設(shè)置一些屬性,其中可視性設(shè)為public。

        3.最后設(shè)置GotFocus與LostFocus事件過(guò)程。Gotfocus Event事件過(guò)程如下:

        If thischinese

        &&&&中英文選擇,thischinese為邏輯量

          =imestatus(1)

          else

          =imestatus(0)

          endif

          Lostfocus Event事件過(guò)程如下:

          =imestatus(0)

        至此,類(lèi)已經(jīng)定義完成,以后只要在設(shè)計(jì)表單時(shí),通過(guò)表單控件“工具欄→查看類(lèi)→添加...”把自定義類(lèi)加入,并且設(shè)置“中英文選擇”屬性,即可實(shí)現(xiàn)中英文輸入的自動(dòng)切換。

        實(shí)現(xiàn)整條記錄突出顯示

        在用VFP設(shè)計(jì)一個(gè)查詢(xún)應(yīng)用系統(tǒng)時(shí),信息的瀏覽是相當(dāng)重要的功能之一,通常采用的實(shí)現(xiàn)方法是用Grid對(duì)象來(lái)顯示數(shù)據(jù)信息,但在使用過(guò)程中卻存在一些不足,就是當(dāng)使用者在記錄之間移動(dòng)時(shí),只有獲得焦點(diǎn)的那條記錄的某一字段可以以不同于Grid背景的顏色顯示,很不醒目。

        筆者利用Grid對(duì)象,成功實(shí)現(xiàn)了當(dāng)數(shù)據(jù)記錄移動(dòng)時(shí),整條記錄均用同一種顏色突出顯示,即當(dāng)數(shù)據(jù)記錄移動(dòng)時(shí),用顏色動(dòng)態(tài)變化顯示相對(duì)光標(biāo)所在的位置,設(shè)計(jì)步驟如下:

        首先定義一個(gè)Grid對(duì)象,并設(shè)置好其屬性,然后在其AfterRowColChange事件過(guò)程中添加如下代碼:

        LPARAMETERS nColIndex

        this.setall("dynamicbackcolor","iif(this.activerow〈〉recn(),rgb(255,255,255),rgb(0,0,255))","column")

        利用以上代碼,我們就能達(dá)到當(dāng)數(shù)據(jù)記錄移動(dòng)時(shí),其相對(duì)的Row顯示動(dòng)態(tài)顏色變化。

        在上面的設(shè)計(jì)中,我們首先使用了SetAll() 方法設(shè)定Grid中的Column層次的 DynamicBackColor(動(dòng)態(tài)背景顏色屬性),然后在第二個(gè)參數(shù)中使用了Grid 對(duì)象的ActiveRow反映相對(duì)的行數(shù),若不等于記錄編號(hào)時(shí),則通過(guò) RGB(255,255,255) 送出白色背景,若相對(duì)行等于記錄編號(hào)時(shí),則通過(guò) RGB(0,0,255)送出綠色背景色,而該顏色也可自行設(shè)定。

        用Grid模擬Browse窗口

        可以將Grid結(jié)合在Form對(duì)象中,模擬成一個(gè)Browse命令窗口,可以自由調(diào)整Form大小,而Grid對(duì)象也會(huì)自動(dòng)調(diào)整大小。實(shí)現(xiàn)方法如下:

        1.首先設(shè)定一個(gè)Form對(duì)象,該對(duì)象必須保留其BorderStyle為“3-可調(diào)邊框”,這樣可自由調(diào)整大小的邊線(xiàn)屬性,同時(shí)設(shè)定Resize事件程序如下:

        Thisform.Grid1.Width=this.width

        Thisform.Grid1.Height=this. Height

        2.設(shè)計(jì)一個(gè)Grid對(duì)象于Form對(duì)象中,并設(shè)定其屬性如下:

        Width=Thisform.Width

        Height=Thisform.Height

        RecordSource設(shè)為目前“數(shù)據(jù)環(huán)境”中所設(shè)定的工作區(qū)別名;

        Top與Left均設(shè)為0,表示該對(duì)象左上端坐標(biāo)為0,0。

        這樣,已經(jīng)設(shè)定好的Grid對(duì)象和Browse窗口一樣,當(dāng)對(duì)Form對(duì)象進(jìn)行大小調(diào)整時(shí),對(duì)象的高度與寬度就可以隨之調(diào)整

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多