【正文】
中應用的不同技術個別予以介紹: 學籍管理界面的設計 學籍 管理模塊主要實現(xiàn)對學生學籍的管理,包括錄入與查詢,用戶可以根據(jù)自己的需要進行選擇,進入不同的窗體。首先介紹錄入基本資料窗體,該窗體并不用數(shù)據(jù)窗口控件來完成的而是應用窗口控件的單行文本編輯器、下拉列表、單選按鈕、命令按鈕以及靜態(tài)文本來完成的。主要是應用代碼來實現(xiàn)的。其中確定按鈕的代碼為: long ll_id,ll_i,ll_shenfen,ll_luqu date ld_birthday,ld_luqu string ls_name,ls_nation,ls_sex,ls_home,ls_tel,ls_party,ls_school,ls_nian,ls_fang,ls_xz,ls_ban,ls_ //數(shù)據(jù)格式檢驗 if =or isnull()then messagebox(缺少數(shù)據(jù) ,請輸入學號 ) () return elseif =or isnull()then messagebox(缺少數(shù)據(jù) ,請輸入學生姓名 ) () 29 return end if if and not isnull(sle_birthday)then if isdate()then ld_birthday=date() else messagebox(輸入數(shù)據(jù)錯誤 ,請使用 39。年 月 日 39。的日期格式 ) () return end if end if if and not isnull(sle_luqu)then if isdate()then ld_luqu=date() else messagebox(輸入數(shù)據(jù)錯誤 ,請使用 39。年 月 日 39。的日期格式 ) () return end if end if ll_id=long() if =true then ls_party= else if =true then ls_party= else ls_party= end if end if if =true then ls_sex= else if =true then ls_sex= end if end if if =nonethen ls_nation= else ls_nation=trim() end if if =nonethen ls_nian= 30 else ls_nian=trim() end if if =nonethen ls_xz= else ls_xz=trim() end if if =none then ls_ban= else ls_ban=trim() end if if =nonethen ls_fang= else ls_fang=trim() end if select into :ll_i from jiben1 where =:ll_id。 if ll_i0 then messagebox(錯誤信息 ,學號第 +string(ll_i)+號重號!請改正。 ) () return end if ls_name=trim() ll_shenfen=long() ll_luqu=long() ls_school=trim() ls_=trim() ls_home=trim() ls_tel=trim() insert into jiben1 (xuehao,xingming,xingbie,shengri,minzu,zzmm,jiguan,shenfenzheng,luquhao,nianji,banji,banming,fangxiang,luqushijian,gerenjianli,biezhu,yuanbiyexuexiao,dianhua,) values (:ll_id,:ls_name,:ls_sex,:ld_birthday,:ls_nation,:ls_party,:ls_home,:ll_shenfen,:ll_luqu,:ls_nian,:ls_xz,:ls_ban,:ls_fang,:ld_luqu,:mle_,:,:ls_school,:ls_tel,:ls_)。 31 = = = = = = = = = = = = () 這里主要應用了 insert 語句來實現(xiàn)表的信息錄入。其中應用到了單行文本框、單選按鈕、下拉列表、命令按鈕等控件的使用。下面是窗口的界面 注: (1)通過該窗體用戶可以添 加學生的基本信息 ( 2)用戶可以點擊確認后保存,重置將不保存,退出將關閉窗口。 學籍查詢窗體設計 當你點擊“基本情況查詢”或者相應的工具欄上的圖標可以打開學生信息查詢的窗口,在這里主要應用了 tab 控件來完成的,信息查詢多樣化適合不同用戶的查詢需求。其中查詢是通過 ”setfilter” 語句來完成的。還有精確查詢部分和模糊查詢部分,通過模糊查詢用戶可以輸入相關的字節(jié)來得到想要得信息。 32 在這里主要是用數(shù)據(jù)窗口控件來實現(xiàn)數(shù)據(jù)窗口與窗口來連接的,其實現(xiàn)方法簡單,易懂,從而用少量的工作時間來完成較大的工作量。在其 他的窗口的設計之中也應用了數(shù)據(jù)窗口控件的強大的功能。由于數(shù)據(jù)的需求風格是千差萬別的,所 以 要 求 數(shù) 據(jù) 的 顯 示 風 格 就 不 同 , 這 就 要 求 從 建 立 數(shù) 據(jù) 窗 口 的freeform ,grid ,label,Nup,graph,ole, richtext,crosstab 等幾中風格中選擇合適的方便用戶的使用。例如在設計成績統(tǒng)計時我使用了 Group 風格的方式,可以使一個學生的多科成績的群組顯示,方便、直觀。在大量的信息顯示時用 Grid 風格可以顯示多條信息,便于相互間的比較。在錄入信息中多采用Freeform 的風格來錄入單條的信息。 下圖為學生基本信息的查詢窗口: 上圖即為按性別“男”查詢的信息。這種設計方法適合于一般的操作用戶,只要點擊一個條件即可查詢要的信息,方便易用。其中在按家庭住址一項中你可以輸入一個簡單的字符或字符串即可的到包含該條件的相關記錄,十分方便。下面是在地址欄里輸入“遼寧”得到的相關信息: 注:( 1)該窗口介紹了所有學生的信息,你可以按標簽依次按不同的條件查詢信息。其中包括姓名、性別、出生日期、家庭住址等信息。 33 ( 2)用戶可以單擊“打印”、“打印預覽”、“還原預覽”、完成需要的操作。按“退出”按鈕則 關閉該窗體。 學籍修改窗體的設計 學生的信息不是一成不變的,有些信息要改變就需要修改,那么通過數(shù)據(jù)窗口控件就可以完成此功能,你可以方便的修改以注冊學生的信息。單擊“學籍修改”或相應的工具欄圖標可出現(xiàn)“學籍修改窗體”如圖 : 注: (1) 通過該窗口用戶可以找到學生的信息,從而來修改,操作起來很方便。 ( 2)用戶可以根據(jù)“上一條”,“下一條”來滾動信息,也可查找來動態(tài)的查找而修改記錄。另外,可以通過“添加”按鈕來添加記錄。單擊“更新”按鈕即保存修改,又可以用刪除按鈕來刪除當前記錄。按“退出”則關閉 該窗體。 學生有些時候需要調(diào)換班級或轉學這就需要記錄信息,并更改基本數(shù)據(jù)數(shù)據(jù)的信息,應用 sql 語句的強大功能,借助 inset 語句實現(xiàn)了數(shù)據(jù)的存儲與更改。其部分語句如下: string ls_id,ls_name,ls_fang,ls_ban,ls_xfang,ls_xban,ls_zt date ld_shijian ls_name=trim() 34 ls_id=trim() ls_fang=trim() ls_ban=trim() ls_xfang=trim() ls_xban=trim() if =true then ls_zt= else if =true then ls_zt= end if end if if and not isnull(sle_5)then if isdate()then ld_shijian=date() else messagebox(輸入數(shù)據(jù)錯誤 ,請使用 39。年 月 日 39。的日期格式 ) () return end if end if insert into bian (xuehao,xingming,banming,fangxiang,xfangxiang,xbanming,yuanyin,shijian,beizhu,zhuangtai) values (:ls_id,:ls_name,:ls_ban,:ls_fang,:ls_xfang,:ls_xban,:,:ld_shijian,:,:ls_zt)。 UPDATE jiben1 SET fangxiang = :, banming = : WHERE jiben1.xuehao = :aa messagebox(更新成功! ,您的信息已經(jīng)更新成功 ) = = = = = = 界面設計如下: 35 組合查詢窗體的設計 應不同用戶的需求單單的簡單查詢是遠遠不夠的,在此我設計了一個通過數(shù)據(jù)窗口控件動態(tài)的隨用戶需求而生成 sql 語句,來完成組合查詢的目的。并且在其中可將查詢到的記錄保存成 txt 文件,以便于編輯使用,這可以完成十分強大的查詢功能。是本次開發(fā)我自己的滿意之處。下面是組合查詢的界面設計。 該功能實現(xiàn) 的“開始統(tǒng)計”按鈕的代碼如下: string ls_xb,ls_zhi,ls_fh,ls_yu,aaa,ls_csny date ld_jzsj,ld_gzny,ld_xb 36 int ll_rows,a,b,i ll_rows=() if ll_rows0 then a=long(ll_rows) ls_xb=trim([1,1]) ls_fh=trim([1,2]) ls_zhi=trim([1,3]) aaa=string(+trim(ls_xb)+)+trim(ls_fh)+39。+trim(ls_zhi)+39。 if string(ls_xb)=39。csny39。or string(ls_xb)=39。jzsj39。 or string(ls_xb)=39。gzsj39。then aaa=+ls_xb++trim(ls_fh)++ls_zhi+ end if if ll_rows=1 then (+aaa+) () (sqlca) () else for i=2 to a ls_xb=trim([i,1]) ls_fh=trim([i,2]) ls_zhi=trim([i,3]) b=i 1 ls_yu=trim([b,4]) if string(ls_xb)=39。csny39。or string(ls_xb)=39。jzsj39。 or string(ls_xb)=39。gzsj39。then aaa=(+aaa+) + +trim(ls_yu)+ + +ls_xb++trim(ls_fh)++ls_zhi+ else aaa=(+aaa+) + +trim(ls_yu)+ + string(+trim(ls_xb)+)+trim(ls_fh)+39。+trim(ls_zhi)+39。 end if end for i=i+1 (+aaa+) () (sqlca) () end if else messagebox(錯誤提示 ,請點擊增加查詢條件! ) end if int ll_row ll_row=() 37 if ll_row=0 then messagebox(提示窗口 ,沒有符合