电竞比分网-中国电竞赛事及体育赛事平台

分享

巧用VFP的Grid表格控件

 fnxyy 2011-09-14

巧用VFP的Grid表格控件

時間:2011-04-23 14:07:29  來源:科技小論文  作者:秩名

論文導(dǎo)讀:很多VFP初學(xué)者采取使用BROWSE命令或在文件夾下雙擊數(shù)據(jù)表文件的方法對數(shù)據(jù)表進(jìn)行瀏覽、查詢和修改數(shù)據(jù),但BROWSE命令操作界面呆板、不能脫離VFP的主窗口執(zhí)行、容易出錯(比如操作時不小心按了空格鍵,光標(biāo)所在處的內(nèi)容就被空格代替了)。設(shè)置表格的數(shù)據(jù)源類型recordsourcetype屬性為1(別名),數(shù)據(jù)源recordsource屬性為xsb,列數(shù)columncount屬性為xsb表的字段數(shù)16,刪除標(biāo)記deletemark屬性為.f.(不顯示刪除標(biāo)記),只讀屬性readonly為.t.(不允許用戶在表格中修改數(shù)據(jù)),并將列標(biāo)題用漢字描述(即表1中備注內(nèi)容),如column1.header1.caption值為“報到情況”等。
關(guān)鍵詞:VFP,Grid控件,屬性,設(shè)置技巧

  很多VFP初學(xué)者采取使用BROWSE命令或在文件夾下雙擊數(shù)據(jù)表文件的方法對數(shù)據(jù)表進(jìn)行瀏覽、查詢和修改數(shù)據(jù),但BROWSE命令操作界面呆板、不能脫離VFP的主窗口執(zhí)行、容易出錯(比如操作時不小心按了空格鍵,光標(biāo)所在處的內(nèi)容就被空格代替了)。Grid表格控件是VFP表單的常用控件之一,能夠進(jìn)行再次編程,不僅操作界面美觀,而且方便靈活、效率高。本文以新生報到管理為例,介紹幾則Grid表格控件使用技巧。
  設(shè)有學(xué)生表(xsb.dbf),表結(jié)構(gòu)如表1所示,建立表單文件,主要包括以下控件:1個表格控件(Grid1)、1個文本框、3個命令按鈕(查詢、報到、退出)等。發(fā)表論文。
  1.設(shè)置表格基本屬性
  設(shè)置表格的數(shù)據(jù)源類型recordsourcetype屬性為1(別名),數(shù)據(jù)源recordsource屬性為xsb,列數(shù)columncount屬性為xsb表的字段數(shù)16,刪除標(biāo)記deletemark屬性為.f.(不顯示刪除標(biāo)記),只讀屬性readonly為.t.(不允許用戶在表格中修改數(shù)據(jù)),并將列標(biāo)題用漢字描述(即表1中備注內(nèi)容),如column1.header1.caption值為“報到情況”等。
  2.設(shè)置表格顯示顏色
  為表格的行、列等內(nèi)容設(shè)置不同顏色,清晰、直觀,減少了操作失誤。
  2.1設(shè)置表格列顯示顏色
  為了區(qū)分不同列或重要列,方便用戶查看數(shù)據(jù),可以對不同列設(shè)置不同顏色以示區(qū)分。例如,對表格(grid1)的第1列、第6列進(jìn)行不同顏色區(qū)分,可在表格的初始化事件(init)中設(shè)置如下代碼:
  thisform.grid1.column1.backcolor=rgb(128,128,128)
  thisform.grid1.column1.forecolor=rgb(255,255,255)
  thisform.grid1.column6.backcolor=rgb(255,0,0)
  thisform.grid1.column6.forecolor=rgb(255,255,255)
  2.2設(shè)置表格行顯示顏色
  根據(jù)記錄的奇偶性,設(shè)置記錄隔行顯示顏色,在表單的初始化事件(init)事件中設(shè)置如下代碼:
  thisform.grid1.setall("DynamicBackColor","iif(mod(recn(),2)=0,rgb(255,255,0),rgb(255,255,255))")
  thisform.grid1.setall("DynamicForeColor","iif(mod(recn(),2)=0,rgb(255,0,0),rgb(0,0,0))")
  2.3設(shè)置選定記錄顏色
  對表格中選定數(shù)據(jù)設(shè)置不同背景顏色和前景顏色,以區(qū)分選中的記錄和非選中記錄。在表格的afterrowcolchange事件中設(shè)置如下代碼:
  a1=allt(str(recn()))
  this.setall("DynamicBackColor","iif(recn()=&a1,rgb(255,255,0),rgb(255,255,255))")
  this.setall("DynamicForeColor","iif(recn()=&a1,rgb(255,0,0),rgb(0,0,0))")
  thisform.refresh
  3.改變表格顯示順序
  由于已經(jīng)向xsb.dbf設(shè)置索引,故分別在表格控件相應(yīng)的列標(biāo)題中添加單擊(click)代碼,代碼內(nèi)容為改變xsb的索引文件,可以實(shí)現(xiàn)按指定標(biāo)題排序。以表格的考生號列為例,其列表題單擊事件(click)代碼如下:
  set orde to ksh
  thisform.refresh
  4.拆分顯示表格
  有時為了固定顯示表格中的一列或多列,可以拆分顯示表格,表格的partition屬性能實(shí)現(xiàn)這一功能。發(fā)表論文。當(dāng)partition的值為0時,即表格不拆分,當(dāng)partition大于0或指定具體值(如partition=150)時,表格拆分為左右兩個面板,左面板寬度為設(shè)定值。發(fā)表論文。
  5、用程序代碼改變表的數(shù)據(jù)
  本例采用用程序代碼來實(shí)現(xiàn)登記學(xué)生報到情況和報到時間兩項(xiàng)數(shù)據(jù)(即報到命令按鈕的單擊事件)。報到命令按鈕單擊事件(click)代碼如下:
  if bdqk='已報到'
  =messagebox('此生已登記報到!',48,'警告')
  else
  if messagebox('考生號:'+ksh+' 姓名:'+xm+' 性別:'+xbdm+chr(13)+chr(13);
  +'省市:'+ss+' 畢業(yè)學(xué)校:'+zxmc+' 錄取專業(yè):'+lqzymc+chr(13)+chr(13);
  +'是否登記此生報到?',36,'詢問')=6
  repl bdqk with '已報到',bdsj with datetime()
  endi
  endi
  thisform.grid1.setfocus
  thisform.refresh
  以上程序在VFP6.0中運(yùn)行通過。

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多