版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、PB PB編碼規(guī)范PB-PB編碼規(guī)范2010-12-07 15:10*綜述*編程對(duì)象的分類(lèi)以PowerBuilder作為前臺(tái)開(kāi)發(fā)工具,進(jìn)行軟件開(kāi)發(fā)的過(guò)程中,所涉及的編程對(duì)象如下所示序號(hào)類(lèi)別1源代碼2可執(zhí)行代碼3資源文件(如pbr,bmp,ico文件)4配置文件(如ini文件)5其他*編程對(duì)象的組織使用PowerBuilder開(kāi)發(fā)工具產(chǎn)生的對(duì)象,可以按照設(shè)計(jì)(正在編寫(xiě)和調(diào)試)和運(yùn)行(調(diào)試、編譯結(jié)束,可以接受測(cè)試和運(yùn)行)中的狀態(tài)進(jìn)行編程對(duì)象的組織規(guī)劃,重點(diǎn)是目錄結(jié)構(gòu)的劃分,具體目錄的相對(duì)關(guān)系如下所示類(lèi)別目錄說(shuō)明源代碼SrcCode可按子系統(tǒng)再劃分子目錄(如pbl等文件夾)可執(zhí)行代碼Program或
2、項(xiàng)目名稱(chēng)可按子系統(tǒng)再劃分子目錄圖片文件Images或pic等包含應(yīng)用圖標(biāo)ICO文件、BMP/JPG/GIF文件配置文件Ini其他Other*版本說(shuō)明a.軟件版本號(hào)標(biāo)準(zhǔn)為A.B,其中A和B為0到99之間的數(shù)字。b.當(dāng)A大于1并且B為奇數(shù)時(shí),表示當(dāng)前版本為處于開(kāi)發(fā)、測(cè)試階段的版本,定義為開(kāi)發(fā)版;當(dāng)B為偶數(shù)時(shí),表示當(dāng)前版本為穩(wěn)定的、可實(shí)際運(yùn)行的版本,定義為穩(wěn)定版。c.當(dāng)軟件開(kāi)始開(kāi)發(fā)時(shí),確定版本號(hào)為0.1;隨著軟件開(kāi)發(fā)的進(jìn)度,版本號(hào)隨著每一次主要功能的完善而變化,最高達(dá)到0.99。d.軟件初步開(kāi)發(fā)完成后,經(jīng)過(guò)軟件開(kāi)發(fā)小組內(nèi)部測(cè)試,初步能夠完成軟件需求提出的業(yè)務(wù)規(guī)范和技術(shù)要求,軟件基本能正常運(yùn)行,此時(shí),
3、確定該軟件版本號(hào)為1.0 Beta X,這意味著軟件可以投入實(shí)際應(yīng)用測(cè)試,其中X代表測(cè)試的次數(shù)。e.當(dāng)軟件的1.0 Beta X版本推出并經(jīng)過(guò)用戶(hù)實(shí)際應(yīng)用或者試運(yùn)行測(cè)試后,此時(shí),確定該軟件版本號(hào)為1.0 RC。這意味著軟件可以投入實(shí)際應(yīng)用運(yùn)行。f.當(dāng)軟件的1.0 RC版本投入實(shí)際應(yīng)用運(yùn)行達(dá)到某一時(shí)限后,則認(rèn)為該版本已經(jīng)穩(wěn)定,可以完全正常地使用了,這時(shí),確定軟件的版本號(hào)為1.0,這意味著軟件開(kāi)發(fā)完成,可以投入實(shí)際應(yīng)用和推廣。g.當(dāng)軟件進(jìn)行升級(jí)時(shí),如果功能變化不大,則次版本號(hào)變化;如果軟件功能發(fā)生重大變化時(shí),主版本號(hào)變化。*對(duì)象命名規(guī)范*命名約定a.部件名稱(chēng)可以達(dá)到40個(gè)字符,組成方式為A_B。b
4、.A部分表示前綴,表示部件的類(lèi)型。c.緊跟著一條下劃線(xiàn)_。d.B部分描述此部件的名稱(chēng)??梢愿鶕?jù)情況具體決定B的構(gòu)成。推薦將B部分分解成兩部分:功能代碼_功能描述。e.在重要變量后面寫(xiě)注解表示此變量的用途。比如,常用的幾種對(duì)象命名是窗口的命名:w_功能代碼_功能描述。數(shù)據(jù)窗口控件的命名:dw_功能代碼_功能描述。數(shù)據(jù)窗口對(duì)象的命名:d_功能代碼_功能描述。菜單命名:m_功能代碼_功能描述。用戶(hù)對(duì)象:uo_功能代碼_功能描述。*具體命名規(guī)則1.函數(shù)的命名規(guī)則函數(shù)名=函數(shù)適用范圍代碼+f+_+函數(shù)功能描述,其中函數(shù)的適用范圍代碼和意義如下:g全局函數(shù);w窗口函數(shù);m菜單函數(shù);u用戶(hù)對(duì)象函數(shù)。例:檢查
5、SQL語(yǔ)句執(zhí)行結(jié)果的全局用戶(hù)函數(shù)命名如下:gf_checksql()。2.應(yīng)用應(yīng)用的命名應(yīng)使用與該應(yīng)用的意義相關(guān)聯(lián)的英文字母,例如,app_si表示社會(huì)保險(xiǎn)應(yīng)用系統(tǒng)。3.PBL庫(kù)PBL庫(kù)組織的好壞很重要,它會(huì)影響應(yīng)用開(kāi)發(fā)和維護(hù)的容易程度以及應(yīng)用的性能。Library的組織應(yīng)遵循以下原則:a.Library的大小。PowerBuilder對(duì)Library的大小沒(méi)有限制,但最好使之小于1MB,Library太大,PowerBuilder要花更多的時(shí)間去打開(kāi)和存儲(chǔ)對(duì)象,這會(huì)影響開(kāi)發(fā)的效率。b.Library的數(shù)量。盡量用最少的Library數(shù)量。應(yīng)在Library的數(shù)量和每個(gè)Library中對(duì)象數(shù)量
6、之間找到平衡點(diǎn),如果Library數(shù)量太多而每個(gè)Library中對(duì)象數(shù)量太少,搜索路徑會(huì)太長(zhǎng),影響運(yùn)行效率。c.Library的優(yōu)化。要在Library畫(huà)筆中經(jīng)常對(duì)Library進(jìn)行優(yōu)化。隨著時(shí)間的推移,Library會(huì)被分段,會(huì)使Library的存儲(chǔ)變得不連續(xù),影響運(yùn)行效率。d.Library的分類(lèi)組織。PBL庫(kù)可按子系統(tǒng)或功能組織,一般應(yīng)用都包含公共PBL庫(kù)。每個(gè)PBL庫(kù)文件命名應(yīng)該與該文件作用相關(guān)聯(lián),例如報(bào)表PBL庫(kù)文件命名為report.pbl。每個(gè)PBL庫(kù)文件應(yīng)該包含詳細(xì)注釋?zhuān)谐鲈揚(yáng)BL文件包含哪些對(duì)象,對(duì)應(yīng)哪個(gè)子系統(tǒng),與其他PBL(調(diào)用)關(guān)系等信息。為了有效地進(jìn)行團(tuán)隊(duì)開(kāi)發(fā),實(shí)現(xiàn)對(duì)
7、PB源碼的管理,要求基于對(duì)各方因素(如應(yīng)用代碼的執(zhí)行效率和所占存儲(chǔ)空間)和維護(hù)上的全面考慮,對(duì)PB源碼實(shí)行分類(lèi)的原則。PowerBuilder的Library的分類(lèi)原則有兩種方式:(1)制定對(duì)象分類(lèi)法根據(jù)所制定的不同類(lèi)的對(duì)象進(jìn)行分類(lèi)。例:將所有的窗口放在一個(gè)Library中。(2)功能模塊分類(lèi)法根據(jù)系統(tǒng)的功能模塊的不同,將屬于不同類(lèi)的制定對(duì)象放在一個(gè)Library中。這是一種更為有效的方式。4.初始化配置文件初始化配置文件的命名必須與應(yīng)用的名稱(chēng)一致,擴(kuò)展名為.ini,例如:si.ini。用戶(hù)的可變環(huán)境信息都應(yīng)該保存在該文件中,關(guān)鍵信息加密保存,并且提供管理工具,而不是手工修改該文件。5.資源文
8、件資源文件的命名必須與應(yīng)用的名稱(chēng)一致,擴(kuò)展名為.pbr,例如:si.pbr。6.窗口窗口的命名必須以w(Window的首字符)開(kāi)頭,加下劃線(xiàn)(_),其后緊接與窗口意義相關(guān)聯(lián)的英文字母(總長(zhǎng)不得超過(guò)PowerBuilder的40個(gè)字符限制),并且在注釋(Comments)框內(nèi)寫(xiě)出該窗口的作用(中文或英文),如下所示。序號(hào)窗口名稱(chēng)Comments 1w_about關(guān)于本系統(tǒng)的版權(quán)信息2 w_system_error系統(tǒng)出錯(cuò)提示3 w_main系統(tǒng)主界面4 w_report_sheet報(bào)表輸出7.數(shù)據(jù)窗口普通數(shù)據(jù)窗口的命名必須以dW(DataWindow縮寫(xiě))開(kāi)頭,代碼表下拉式子數(shù)據(jù)窗口必須以ddd
9、w(DropDownDataWindow縮寫(xiě))開(kāi)頭,加下劃線(xiàn)(_),其后緊接與數(shù)據(jù)窗口意義相關(guān)聯(lián)的英文字母(總長(zhǎng)不得超過(guò)PowerBuilder的40個(gè)字符限制),并且在Comments框內(nèi)寫(xiě)出該數(shù)據(jù)窗口的作用(中文或英文),如下所示。序號(hào)數(shù)據(jù)窗口名稱(chēng)Comments 1d_system_error顯示系統(tǒng)錯(cuò)誤,被w_System_Error窗口調(diào)用2 d_categories對(duì)產(chǎn)品分類(lèi),被w_Report_Sheet窗口調(diào)用3 d_detail_parts Parts of Products Described in Detail 4d_detail_function Products Fu
10、nction Described in Detail 5dddw_sex性別代碼表8.菜單菜單的命名必須以m(Menu縮寫(xiě))開(kāi)頭,加下劃線(xiàn)(_),其后緊接與菜單意義相關(guān)聯(lián)的英文字母(總長(zhǎng)不得超過(guò)PowerBuilder的40個(gè)字符限制),并且在Comments框內(nèi)寫(xiě)出該菜單的作用(中文或英文),如下所示。序號(hào)菜單名稱(chēng)Comments 1m_main Front End Main Menu 2m_report Report Subsystem Menu 3m_main_pop主界面的彈出菜單9.函數(shù)函數(shù)的命名必須符合類(lèi)型f_subsystemname_detailname或lf_detailna
11、me格式,其中g(shù)f表示是全局函數(shù),subsystemname是子系統(tǒng)的英文縮寫(xiě),detailname是與函數(shù)意義相關(guān)聯(lián)的英文字母(總長(zhǎng)不得超過(guò)PowerBuilder的40個(gè)字符限制),對(duì)于全局函數(shù)應(yīng)該在Comments框內(nèi)簡(jiǎn)短寫(xiě)出該函數(shù)的作用(中文或英文),如下所示。序號(hào)函數(shù)名稱(chēng)Comments 1gf_help_index幫助子系統(tǒng)索引全局函數(shù)2 lf_get_user_info獲取用戶(hù)信息局部函數(shù)3 gf_query_sortbyname查詢(xún)子系統(tǒng)名排序全局函數(shù)10.用戶(hù)對(duì)象用戶(hù)對(duì)象的命名必須以u(píng)o(UserObject縮寫(xiě))開(kāi)頭,加下劃線(xiàn)(_),其后緊接與用戶(hù)對(duì)象意義相關(guān)聯(lián)的英文字母(
12、總長(zhǎng)不得超過(guò)PowerBuilder的40個(gè)字符限制),并且在Comments框內(nèi)寫(xiě)出該用戶(hù)對(duì)象的作用(中文或英文),如下所示序號(hào)用戶(hù)對(duì)象名稱(chēng)Comments 1uo_external_function Cross platform user object ancestor 2uo_report_structure User Object as astructure For report 11.控件控件的命名必須以控件名稱(chēng)縮寫(xiě)開(kāi)頭,加下劃線(xiàn)(_),其后緊接與控件作用相關(guān)聯(lián)的英文字母(總長(zhǎng)不得超過(guò)PowerBuilder的40個(gè)字符限制),如下所示序號(hào)控件名稱(chēng)控件縮寫(xiě)控件命名范例1 Comman
13、dButton cb cb_ok 2PictureButton pb pb_thank_info 3CheckBox cbx cbx_age_show 4RadioButton rb rb_typical_setup 5StaticText st st_user_id 6Picture pp_user_photo 7GroupBox gb gb_detail_info 8Line ln ln_h_separator 9Oval oval oval_used_flag 10 Rectangle rr_photo_frame 11 RoundRectangle rr rr_companyflag
14、12 SingleLineEdit sle sle_user_name 13 MultiLineEdit mle mle_book_comments 14 RichTextEdit rte rte_student_answer 15 EditMask em em_telephone_no 16 HScrollBar hsb hsb_time_set 17 VScrollBar vsb vsb_money_set 18 DropDownListBox ddlb ddlb_your_favourite 19 DropDownPictureListBox ddplb ddplb_photo_prev
15、iew 20 ListBox lb lb_department_name 21 PictureListBox plb plb_user_identification 22 ListView lv lv_all_user 23 TreeView tv tv_customers 24 TabPage tpg tpg_ordinary_super 25 Tab tab tab_super 26 DataWindow dw dw_user_info_detail 27 Graph gr gr_month_report 28 Ole ole ole_word_doc*變量命名規(guī)范變量取名應(yīng)遵守命名規(guī)范,
16、對(duì)使用頻繁的或關(guān)鍵變量,為了便于閱讀和修改,在定義時(shí)應(yīng)加上注釋標(biāo)明其含義。例如:String ls_name/參保人員姓名變量命名規(guī)則為:變量范圍+變量數(shù)據(jù)類(lèi)型+_+含義代碼*變量數(shù)據(jù)類(lèi)型約定數(shù)據(jù)類(lèi)型前綴Any a_ Blob bb_ Boolean b_ Character c_ Date d_ DateTime dt_ Decimal dec_ Double db_ Integer i_ Long l_ String s_ Time t_ UnsignedInteger ui_ UnsignedLong ul_ DataWindow dw_ DataWindowChild dwc_ Mai
17、lSession ms_ Menu m_ Structure str_ Transacttion trans_ Window w_ UserObject uo_*變量范圍命名約定范圍字首描述Global g?_全局變量將在整個(gè)應(yīng)用中有效。它們可能從其他對(duì)象面板中定義,但它們將在整個(gè)應(yīng)用中有效Shared s?_共享變量在一個(gè)對(duì)象及其實(shí)例中有效Instance i?_實(shí)例變量?jī)H在一個(gè)對(duì)象的實(shí)例中有效。相應(yīng)對(duì)象的不同實(shí)例中的變量保存各自的值Local l?_局部變量?jī)H在一段子程序或在script開(kāi)始和結(jié)束時(shí)生效由值傳遞的變量v?_在定義函數(shù)時(shí),參數(shù)僅傳遞值,不會(huì)被函數(shù)(僅適用于函數(shù)變量)改變,定義
18、為value,例:vdw_datawindow由引用傳遞的變量r?_在定義函數(shù)時(shí),參數(shù)將被此函數(shù)改變,(僅適用于函數(shù)變量)定義為reference,例:rl_long注意:?表示相應(yīng)數(shù)據(jù)類(lèi)型,如i,c,l,s等數(shù)據(jù)類(lèi)型前綴。對(duì)于上述的內(nèi)容做如下說(shuō)明。a.全局變量的命名必須符合gT_subsystemname_detailname格式,其中g(shù)表示是全局變量(Globe),T是數(shù)據(jù)類(lèi)型(DataType)的簡(jiǎn)寫(xiě)。subsystename是子系統(tǒng)的英文簡(jiǎn)寫(xiě)。detailname是有具體意義的英文字母。例如:gs_query_user_info,即為查詢(xún)子系統(tǒng)定義了一個(gè)字符串型全局變量。b.局部變量的
19、命名必須符合lT_detailname格式,其中l(wèi)表示是局部變量(Local),T是數(shù)據(jù)類(lèi)型(DataType)的簡(jiǎn)寫(xiě)。例如:li_user_salary,即定義了一個(gè)整數(shù)型局部變量。c.實(shí)例變量的命名必須符合iT_detailname格式,其中i表示是實(shí)例變量(Instance),T是數(shù)據(jù)類(lèi)型(DataType)的簡(jiǎn)寫(xiě)。Detailname是有具體意義的英文字母。例如:is_product_name,即定義了一個(gè)字符串型實(shí)例變量。*編程規(guī)范*書(shū)寫(xiě)格式a.用分層縮進(jìn)的寫(xiě)法顯示嵌套結(jié)構(gòu)的層次。b.在注釋段與程序段,以及不同邏輯的程序段之間插入空行。c.每行只寫(xiě)一條語(yǔ)句,當(dāng)需要滾動(dòng)顯示時(shí)應(yīng)該分行書(shū)
20、寫(xiě)。*流控制流控制首先應(yīng)遵守PowerBuilder語(yǔ)法規(guī)范,且用分層縮進(jìn)的寫(xiě)法突出顯示嵌套的層次結(jié)構(gòu),例如:For i=1 To 100 For j=1 To 50 For k=1 To 200 Matrixi,j,k=1 Next Next Next*注釋及格式要求注釋總是加在程序中需要概括性說(shuō)明或不易令人理解或容易令人理解錯(cuò)的地方。注釋語(yǔ)言應(yīng)簡(jiǎn)練、易懂而又準(zhǔn)確,所采用的語(yǔ)種首選是中文,如有輸入困難或特殊需求也可采用英文。注釋原則:a.函數(shù)或過(guò)程的注釋(1)在函數(shù)頭部必須說(shuō)明函數(shù)的功能和參數(shù)(值參、變參);(2)在函數(shù)的主體部分,如算法復(fù)雜時(shí),應(yīng)以注釋的方式對(duì)其算法結(jié)構(gòu)做出說(shuō)明;(3)函數(shù)
21、申請(qǐng)過(guò)全局資源且有可能導(dǎo)致資源緊張應(yīng)加以注明(如內(nèi)存和文件柄等);(4)函數(shù)有副作用一定以十分醒目的方式(如加!號(hào)等)注明。b.語(yǔ)句的注釋(1)應(yīng)對(duì)不易理解的分支條件表達(dá)式加注釋?zhuān)?2)不易理解的循環(huán),應(yīng)說(shuō)明出口條件(有GOTO的程序還應(yīng)說(shuō)明入口條件);(3)過(guò)長(zhǎng)的函數(shù)實(shí)現(xiàn),應(yīng)將其語(yǔ)句按實(shí)現(xiàn)的功能分段加以概括性說(shuō)明。c.常量和變量的注釋在常量名聲明后應(yīng)對(duì)該名做適當(dāng)?shù)淖⑨專(zhuān)⑨屨f(shuō)明的要點(diǎn)是:(1)被保存值的含義(必須);(2)合法取值的范圍(可選);(3)全局量需要對(duì)以上逐點(diǎn)做充分的說(shuō)明。d.制定對(duì)象的注釋每個(gè)開(kāi)發(fā)人員針對(duì)自己所制定的窗口、菜單、數(shù)據(jù)窗口、數(shù)據(jù)管道和用戶(hù)對(duì)象等添加注釋?zhuān)c(diǎn)是:(
22、1)標(biāo)注對(duì)象的用途;(2)標(biāo)注對(duì)象的制定人員;(3)標(biāo)注時(shí)間或者修改時(shí)間。具體格式要求如下:1.在窗口Open事件前應(yīng)說(shuō)明/*=*/窗口中英文名稱(chēng):/窗口作用:/作者:/日期:/*=*/2.在事件腳本(Script)之前應(yīng)說(shuō)明/*=*/腳本作用:/輸入?yún)?shù)及數(shù)據(jù)類(lèi)型:/返回參數(shù)及數(shù)據(jù)類(lèi)型:/全局函數(shù)及其用途:/全局變量及其用途:/作者:/日期:/修改人的姓名:/修改日期:/修改原因:/*=*/若有多人修改,每個(gè)人均加上自己的注釋?zhuān)荒芨乃说男彰?、日期、原因,?duì)要修改的腳本,只能注釋不能刪除,并且在修改的地方加上修改人名、日期和Beginning Modification.,Ending M
23、odification字樣。3.腳本中的注釋單行腳本程序注釋?zhuān)?注釋文本腳本的程序段注釋?zhuān)?*=*/注釋文本/*=*/變量的注釋如下:數(shù)據(jù)類(lèi)型變量名/注釋4.在函數(shù)、存儲(chǔ)過(guò)程等腳本(Script)之前應(yīng)說(shuō)明/*=*/函數(shù)名稱(chēng):/參數(shù)解釋?zhuān)?功能描述:/調(diào)用舉例:/最初作者:/編寫(xiě)日期:/返回值:/變量情況:/修改人:/修改日期:/修改原因:/*=*/*Powerbuilder腳本編程規(guī)范1.Powerbuilder編程注意事項(xiàng)a.不要在子應(yīng)用中聲明全局變量!如必須聲明全局變量,則應(yīng)事先向項(xiàng)目負(fù)責(zé)人申請(qǐng)。b.供別的文件或函數(shù)調(diào)用的函數(shù),絕不應(yīng)使用全局變量交換數(shù)據(jù)。c.所有SQL語(yǔ)句均需判斷返回結(jié)
24、果(包括SELECT,COMMIT語(yǔ)句)。例:If sqlca.sqlcode=-1 Then錯(cuò)誤處理程序跳出Else正常End If d.缺省SQLCA的連接語(yǔ)句connect,在應(yīng)用Open事件中完成,其disconnect在主應(yīng)用的Close事件中完成,其余任何pbl中均不能有disconnect語(yǔ)句。e.由于要連接多個(gè)數(shù)據(jù)庫(kù),需要用Create創(chuàng)建對(duì)象,比如:SQLSYB,則用connect using SQLSYB,處理完畢后用disconnect using SQLSYB,并且用destroy SQLSYB釋放資源。2.編碼標(biāo)準(zhǔn)(1)在代碼塊前后留一個(gè)空行。例子如下:If cond
25、ition1 Then statementblock End If For varname=start To End Step increment statement_block Next(2)把單行注釋與當(dāng)前script程序的縮進(jìn)位置對(duì)齊:/This is acomment For condition1 If condition1 Then/This is acomment For condition2 If condition2 Then/This is acomment For action1 action1 End If End If(3)縮進(jìn)應(yīng)以Tab鍵實(shí)現(xiàn),不得采用空格。(4)變量
26、采用小寫(xiě)格式。注意:變量全部用小寫(xiě);一個(gè)變量一行,每個(gè)變量必須注釋?zhuān)煌ǔG闆r下,變量的后半部分盡量用數(shù)據(jù)庫(kù)字段名;變量聲明全部在腳本之前聲明完畢;所有變量聲明時(shí)按代碼功能段+變量類(lèi)型進(jìn)行排序。例如:Long ll_quantity String ls_name對(duì)象名采用小寫(xiě),屬性、關(guān)鍵字、保留字和內(nèi)置函數(shù)均用首字母大寫(xiě)格式:w_cont_de.Visible=True m_mdi.m_數(shù)據(jù)窗口控制的函數(shù)加上修飾,而不以數(shù)據(jù)窗口對(duì)象作為參數(shù):dw_main.SetTransObject(sqlca)dw_main.SetRowFocusIndicator(Hand!)dw_main.Retrie
27、ve()(5)當(dāng)連接起來(lái)的字符串超過(guò)了兩行的長(zhǎng)度時(shí),使用+符作為下行的第一個(gè)字符,每次均采用縮進(jìn)格式。字符串的隨后部分應(yīng)該再次縮進(jìn)。例如:ls_msg=連接數(shù)據(jù)庫(kù)失敗!錯(cuò)誤信息為:rn&+Sqlca.SqlErrText&+請(qǐng)與系統(tǒng)管理員聯(lián)系(6)PowerBuilder保留字(關(guān)鍵字)首字母大寫(xiě)其余小寫(xiě),這樣看起來(lái)層次清晰,如:This,Parent,ParentWindow,True,F(xiàn)alse,Return,Halt與Close。(7)PowerBuilder內(nèi)部函數(shù)及屬性每個(gè)字首字母大寫(xiě)其余小寫(xiě),這樣看起來(lái)層次清晰,如:sle_user.Text,dw_1.SetTransObject
28、(Sqlca),Sqlca.SqlErrText。(8)SQL語(yǔ)句按如下格式書(shū)寫(xiě):SELECT name,sex,dept_id INTO:ls_name,:ls_sex,:ls_dept_id FROM employee WHERE emp_id=:ls_emp_id;(9)程序中應(yīng)避免出現(xiàn)goto跳轉(zhuǎn)語(yǔ)句。3.腳本中一些常用功能模塊的編程約定(1)光標(biāo)操作過(guò)程的編程約定如下:Declare Cursorname Cursor for Select語(yǔ)句Open Cursorname;fetch Cursorname into variables Do While Sqlca.Sqlcode=
29、0 statementblock fetch Cursorname into variables Loop Close Cursorname光標(biāo)命名規(guī)則:Cur+_+名稱(chēng)。(2)調(diào)用數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程的編程約定如下:declare Procedurename procedure For StoredProcedureName:Value1,:Value2.;execute Procedurename;fetch Procedurename into variables;close Procedurename;commit;存儲(chǔ)過(guò)程命名規(guī)則:Pro+_+名稱(chēng)。有些系統(tǒng)存儲(chǔ)過(guò)程(例如:sp_dropl
30、ogin)不能當(dāng)做一個(gè)事務(wù)提交,為了執(zhí)行它,就必須先置事物對(duì)象的AutoCommit屬性為T(mén)rue,當(dāng)存儲(chǔ)過(guò)程執(zhí)行完畢后再將事務(wù)對(duì)象的AutoCommit屬性置為False。(3)在每一個(gè)SQL語(yǔ)句之后必須判斷SQL語(yǔ)句執(zhí)行成功與否,成功則繼續(xù),不成功則做相應(yīng)處理并給出一條提示信息。If Sqlca.SqlCode 0Then Rollback;MessageBox(錯(cuò)誤信息,操作失??!)Else Commit;MessageBox(提示信息,操作成功!)End If(4)所有操作符(包括等號(hào))前后應(yīng)留一空格,使程序看起來(lái)更清晰。例如:ls_msg=ls_title+ls_error(5)僅當(dāng)
31、絕對(duì)需要時(shí)才在循環(huán)結(jié)構(gòu)體中使用函數(shù)調(diào)用,也就是說(shuō),僅當(dāng)函數(shù)的返回值依賴(lài)于循環(huán)迭代的值時(shí)才使用函數(shù)調(diào)用。使用如下方法:Long ll_num_selected ll_num_selected=lb_devctg.TotalSelected()For i=1 To num_selectedNext不使用下述方法:For i=1 To lb_1.TotalSelected()Next 4.PB中的任何一個(gè)窗口都要有注釋說(shuō)明一般在窗口的Open事件中對(duì)窗口的功能進(jìn)行全面的介紹,以便維護(hù)人員可以很清楚地知道窗口的功能和維護(hù)要點(diǎn)。其格式可參見(jiàn)前面的說(shuō)明。5.表的操作在程序中涉及多個(gè)表的操作時(shí),需嚴(yán)格按照各
32、項(xiàng)目組表操作順序一覽表規(guī)定的順序?qū)Ρ磉M(jìn)行操作,以防發(fā)生鎖表現(xiàn)象。*控件編程規(guī)范*公共部分a.應(yīng)盡量為所有控件使用有意義的名稱(chēng),重要控件不允許使用pb_1之類(lèi)無(wú)明確意義的名稱(chēng)。b.大號(hào)字體:各窗口控件字體為Arial,字號(hào)為12號(hào),字色為黑色。小號(hào)字體:各窗口控件字體為宋體,字號(hào)為9號(hào),字色為黑色。c.顯示控件和輸入控件底色分開(kāi),顯示控件為灰色(窗口顏色),輸入控件為白色。d.輸入?yún)^(qū)和顯示區(qū)分別放置。e.按鈕排列緊湊,在窗口右側(cè)縱向排列時(shí)靠上放置;在窗口下方排列時(shí)靠右放置,因?yàn)樽笃沧硬僮髡弋吘故巧贁?shù)。f.各字符類(lèi)控件對(duì)齊方式為左對(duì)齊;數(shù)字類(lèi)控件為右對(duì)齊,且必須按所需格式設(shè)置Format屬性;日期
33、控件必須保證能完整顯示所需日期格式,應(yīng)用yyyy-mm-dd風(fēng)格。及有前導(dǎo)0的形式(避免2000年問(wèn)題),可采用左對(duì)齊或中對(duì)齊。g.CommandButton控件的推薦高度為104。*控件細(xì)則1.靜態(tài)文本框靜態(tài)文本框命名規(guī)則:st+_+名稱(chēng)(若為label可不改名)。外觀規(guī)定如下:背景色:buttonface;前景色:黑色;邊框:無(wú);高度:72。建議在其后加上全角冒號(hào)(:)。2.單行編輯框單行編輯框命名規(guī)則:sle+_+名稱(chēng)。(1)外觀背景色:白色;前景色:黑色;邊框:3D Lowered;高度:72。(2)程序說(shuō)明a.響應(yīng)事件建議自定義Keydown事件,盡量不要用Modify事件。b.當(dāng)獲
34、得焦點(diǎn)時(shí)控件背景變?yōu)樯钏{(lán)色,字體顏色變?yōu)辄S色,失去焦點(diǎn)時(shí)還原缺省顏色。3.命令按鈕命令按鈕命名規(guī)則:cb+_+名稱(chēng)(1)外觀高度:對(duì)于小號(hào)字體(宋體9號(hào))為92;對(duì)于大號(hào)字體(Arial 12號(hào))為108。寬度:對(duì)于小號(hào)字體(宋體9號(hào))為325;對(duì)于大號(hào)字體(Arial 12號(hào))為402。(2)說(shuō)明命令按鈕控件不要使用cb_1之類(lèi)無(wú)明確意義的名稱(chēng)(尤其在窗口中這類(lèi)控件比較多時(shí),可能令人分不清各個(gè)控件的作用)。4.圖像按鈕盡量不用圖形按鈕,而用命令按鈕。圖像按鈕命名規(guī)則:pb+_+名稱(chēng)。外觀規(guī)定如下:尺寸:用圖像原始尺寸;圖像:按鈕的有效與無(wú)效采用不同的bmp圖像以示區(qū)別。5.復(fù)選框復(fù)選框命名規(guī)
35、則:cbx+_+名稱(chēng)外觀規(guī)定如下:背景色:buttonface;前景色:黑色;邊框:3D Lowered;高度:92;位置:標(biāo)簽在右。6.單選按鈕單選按鈕命名規(guī)則:rb+_+名稱(chēng)。(1)外觀背景色:buttonface;前景色:黑色;邊框:3D Lowered;高度:92;位置:標(biāo)簽在右。(2)程序說(shuō)明單選按鈕最好與組框配合使用。7.組框組框命名規(guī)則:gb+_+名稱(chēng)。外觀規(guī)定如下:背景色:buttonface;前景色:黑色;邊框:3D Lowered。8.屏蔽編輯框屏蔽編輯框命名規(guī)則:em+_+名稱(chēng)。(1)外觀背景色:白色;前景色:黑色;邊框:3D Lowered。(2)程序說(shuō)明a.響應(yīng)事件建
36、議用自定義Keydown事件,盡量不要用Modify事件。b.當(dāng)獲得焦點(diǎn)時(shí)控件背景變?yōu)樯钏{(lán)色,字體顏色變?yōu)辄S色,失去焦點(diǎn)時(shí)還原缺省顏色。9.下拉列表框下拉列表框命名規(guī)則:ddlb+_+名稱(chēng)。外觀規(guī)定如下:背景色:白色;前景色:黑色;邊框:3D Lowered。10.應(yīng)用應(yīng)用命名規(guī)則:app+_+應(yīng)用名。為應(yīng)用選擇一個(gè)圖標(biāo),以便在運(yùn)行時(shí)標(biāo)識(shí)應(yīng)用。在Open事件中聲明SQLCA全局變量和打開(kāi)應(yīng)用主窗口。在Closequery事件中編寫(xiě)退出應(yīng)用之前的處理程序。在SystemError事件中編寫(xiě)系統(tǒng)出錯(cuò)的處理程序。11.窗口窗口命名規(guī)則:w+_+窗口名。主窗口采用main窗口類(lèi)型,子窗口一般采用Pop
37、up窗口類(lèi)型,無(wú)控制菜單,無(wú)最大化最小化按鈕,不可改變大小。若為一般性提示窗口,用response窗口類(lèi)型。窗口以buttonface顏色為背景顏色。重要的菜單選項(xiàng)設(shè)置Toolbar功能。窗口上下左右四周應(yīng)至少留出兩個(gè)網(wǎng)格,而不得將對(duì)象填滿(mǎn)整個(gè)窗口!12.菜單菜單命名規(guī)則:m+_+菜單名。菜單項(xiàng)MenuItem的名稱(chēng)以該菜單項(xiàng)在整個(gè)菜單中的物理位置分層次命名。例:若MenuItem位于整個(gè)菜單的第三列第二行,則命名為m_32?;蛭募藛蜗碌年P(guān)閉菜單項(xiàng),則命名為m_。13.數(shù)據(jù)窗口對(duì)象數(shù)據(jù)窗口對(duì)象命名規(guī)則:d+_+功能含義。打印用數(shù)據(jù)窗口背景色為白色,題目為16號(hào)字,內(nèi)容為11號(hào)字,顯示比例為75%。顯示用數(shù)據(jù)窗口背景色原則上為buttonface,可視窗口制作是否美觀的實(shí)際情況使用白色數(shù)據(jù)窗口各列顯示框高度為72。Tabular和Grid風(fēng)格數(shù)據(jù)窗口,無(wú)表頭時(shí)列名文本邊框?yàn)?D Raised。Detail區(qū)為3D Lowered,背景色原則上為白色。Grid風(fēng)格數(shù)據(jù)窗口一般不出現(xiàn)線(xiàn)條。14.數(shù)據(jù)窗口控件數(shù)據(jù)窗口控件命名規(guī)則:dw+_+功能含義。數(shù)據(jù)窗口邊框原則上
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度快餐連鎖加盟合同協(xié)議書(shū)3篇
- 西南石油大學(xué)《體育課程標(biāo)準(zhǔn)及教學(xué)研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年智慧交通管理系統(tǒng)經(jīng)濟(jì)合同2篇
- 武漢鐵路橋梁職業(yè)學(xué)院《影視特效處理(AE)》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度酒店行業(yè)勞動(dòng)合同與客戶(hù)信息保密協(xié)議3篇
- 2025年度城市基礎(chǔ)設(shè)施建設(shè)PPP合作合同范本3篇
- 2025年屋頂光伏發(fā)電系統(tǒng)組件供應(yīng)合同2篇
- 2024房產(chǎn)中介服務(wù)合同
- 買(mǎi)賣(mài)雙方商業(yè)合作詳細(xì)合同范本版B版
- 蘇州工藝美術(shù)職業(yè)技術(shù)學(xué)院《當(dāng)代西方倫理學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年VB程序設(shè)計(jì):從入門(mén)到精通
- 2024年故宮文化展覽計(jì)劃:課件創(chuàng)意與呈現(xiàn)
- 公共交通乘客投訴管理制度
- 不銹鋼伸縮縫安裝施工合同
- 水土保持監(jiān)理總結(jié)報(bào)告
- Android移動(dòng)開(kāi)發(fā)基礎(chǔ)案例教程(第2版)完整全套教學(xué)課件
- 醫(yī)保DRGDIP付費(fèi)基礎(chǔ)知識(shí)醫(yī)院內(nèi)培訓(xùn)課件
- 專(zhuān)題12 工藝流程綜合題- 三年(2022-2024)高考化學(xué)真題分類(lèi)匯編(全國(guó)版)
- DB32T-經(jīng)成人中心靜脈通路裝置采血技術(shù)規(guī)范
- TDALN 033-2024 學(xué)生飲用奶安全規(guī)范入校管理標(biāo)準(zhǔn)
- 物流無(wú)人機(jī)垂直起降場(chǎng)選址與建設(shè)規(guī)范
評(píng)論
0/150
提交評(píng)論