城鎮(zhèn)天氣預(yù)報(bào)編報(bào)發(fā)報(bào)系統(tǒng)建構(gòu)研究
時(shí)間:
徐歡 劉春風(fēng) 柳宏英 1由 分享
摘要《城鎮(zhèn)天氣預(yù)報(bào)編報(bào)發(fā)報(bào)系統(tǒng)》以菜單方式進(jìn)行集中控制,以排班表為主控線索,以文件方式存儲(chǔ)各類數(shù)據(jù),綜合應(yīng)用了通信技術(shù)、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和軟件開發(fā)技術(shù),采用PowerScript語言在PowerBuilder7.0開發(fā)環(huán)境下編制而成,為各級(jí)天氣預(yù)報(bào)員提供了編輯和發(fā)送短期(24、48、72h)、短時(shí)(08~14、14~20、20~08h)和中期天氣預(yù)報(bào)報(bào)文的平臺(tái)。該系統(tǒng)具有系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、用戶界面友好、系統(tǒng)性能穩(wěn)定、易操作、易維護(hù)等特征。在編發(fā)報(bào)過程中自糾錯(cuò)能力強(qiáng),有相應(yīng)提示,有各單行復(fù)制、多行復(fù)制、列復(fù)制與調(diào)入上次報(bào)文的功能。
關(guān)鍵詞城鎮(zhèn)天氣預(yù)報(bào);編報(bào);發(fā)報(bào)
自2001年9月以來,新疆氣象局各州(地)級(jí)氣象臺(tái)開始使用中國氣象局下發(fā)的天氣預(yù)報(bào)編發(fā)報(bào)程序(云南編報(bào))進(jìn)行城鎮(zhèn)天氣預(yù)報(bào)編報(bào),然后利用各自的發(fā)報(bào)軟件進(jìn)行發(fā)報(bào)。由于目前業(yè)務(wù)項(xiàng)目的增加和業(yè)務(wù)管理的改變,該軟件已不能滿足預(yù)報(bào)工作的實(shí)際需要,主要存在以下6個(gè)方面問題:①不能對(duì)個(gè)人評(píng)分報(bào)文進(jìn)行控制,即氣象臺(tái)每天必發(fā)集體報(bào)(D報(bào)),可發(fā)可不發(fā)個(gè)人評(píng)分報(bào)(GD報(bào)),導(dǎo)致GD報(bào)的評(píng)分遠(yuǎn)遠(yuǎn)高于D報(bào)的評(píng)分,以及預(yù)報(bào)員之間的評(píng)分不統(tǒng)一。②預(yù)報(bào)評(píng)分報(bào)文中天氣現(xiàn)象的選取存在部分不合理的現(xiàn)象。③不能進(jìn)行最高氣溫應(yīng)高于最低氣溫的自動(dòng)判識(shí)。④某日是否該發(fā)中期預(yù)報(bào),需要預(yù)報(bào)員記憶,不能進(jìn)行自動(dòng)判識(shí);天氣的起始日應(yīng)小于等于結(jié)束日,且最多只能跨越3d,這些均不能進(jìn)行自動(dòng)判識(shí)。⑤僅能編制24、48h的預(yù)報(bào)報(bào)文,不能編制72h的預(yù)報(bào)報(bào)文。不能編制短時(shí)預(yù)報(bào)報(bào)文。
針對(duì)這一現(xiàn)狀,新疆氣象局于2004年3月在新疆氣象局立項(xiàng),開發(fā)研制《城鎮(zhèn)天氣預(yù)報(bào)編報(bào)發(fā)報(bào)系統(tǒng)》。該系統(tǒng)研制成功后,由于其操作簡(jiǎn)便快捷、運(yùn)行穩(wěn)定、易維護(hù),在天氣預(yù)報(bào)編、發(fā)報(bào)方面具有全國通用性,因此于2004年8月在昌吉、克州、和田、巴州、哈密、克拉瑪依和吐魯番等地州市氣象臺(tái)得到推廣應(yīng)用,2004年10月通過新疆氣象局驗(yàn)收;2004年12月獲得新疆氣象局2004年度科學(xué)研究與技術(shù)開發(fā)二等獎(jiǎng)。
1總體設(shè)計(jì)
1.1數(shù)據(jù)存儲(chǔ)方式
首先,城鎮(zhèn)天氣預(yù)報(bào)編報(bào)、發(fā)報(bào)操作過程的主要矛盾不是原始報(bào)文大量而長(zhǎng)期保存及實(shí)現(xiàn)快速查詢,而是如何能實(shí)現(xiàn)快速編報(bào)、發(fā)報(bào),減少操作步驟,降低誤操作率[1]。其次,數(shù)據(jù)庫應(yīng)用軟件在推廣應(yīng)用時(shí)難度較大,需要相關(guān)知識(shí)較多,因此,《城鎮(zhèn)天氣預(yù)報(bào)編報(bào)發(fā)報(bào)系統(tǒng)》沒有采用數(shù)據(jù)庫方式存儲(chǔ)各種數(shù)據(jù),而是以文件方式來存儲(chǔ)各種數(shù)據(jù)。
1.2開發(fā)環(huán)境與語言
作為一門可視化、面向?qū)ο蟮目焖匍_發(fā)(RAD)工具,PowerBuilder已被廣大數(shù)據(jù)庫應(yīng)用開發(fā)人員所使用,并獲得好評(píng)。PowerScript語言是PowerBuilder為開發(fā)人員提供的功能強(qiáng)大的結(jié)構(gòu)化高級(jí)編程語言,它使用函數(shù)和事件處理程序,非常方便和靈活。因此,《城鎮(zhèn)天氣預(yù)報(bào)編報(bào)發(fā)報(bào)系統(tǒng)》選取Windows2000為操作平臺(tái),PowerBuilder7.0為開發(fā)環(huán)境,PowerScript語言為編程語言。
1.3配置文件結(jié)構(gòu)
《城鎮(zhèn)天氣預(yù)報(bào)編報(bào)發(fā)報(bào)系統(tǒng)》符合綠色軟件標(biāo)準(zhǔn)(不改動(dòng)注冊(cè)表),系統(tǒng)運(yùn)行的所有參數(shù)均存放在配置文件中,配置文件由以下8節(jié)組成:“站名”節(jié)中的區(qū)站號(hào)為5字節(jié),臺(tái)站名最多為20字節(jié);“預(yù)報(bào)員”節(jié)中的預(yù)報(bào)員編號(hào)為5字節(jié),預(yù)報(bào)員名最多為20字節(jié);“重要天氣”節(jié)中的重要天氣編號(hào)為1字節(jié);“天空狀況”節(jié)中的天空狀況編號(hào)為1字節(jié);“天氣現(xiàn)象”節(jié)中的天氣現(xiàn)象編號(hào)為2字節(jié),天氣現(xiàn)象序號(hào)為2字節(jié);“風(fēng)向”節(jié)中的風(fēng)向編號(hào)為1字節(jié);“風(fēng)速”節(jié)中的風(fēng)速編號(hào)為1字節(jié);“其他”節(jié)中的每個(gè)項(xiàng)目名都是固定的。
1.4主控線索與采用技術(shù)
《城鎮(zhèn)天氣預(yù)報(bào)編報(bào)發(fā)報(bào)系統(tǒng)》以下拉菜單方式進(jìn)行集中控制,各菜單項(xiàng)分別與相應(yīng)程序模塊相關(guān)聯(lián);以排班表為主控線索,綜合應(yīng)用靜態(tài)文本框、列表框、下拉列表框、單行編輯框、命令按鈕、選項(xiàng)卡、數(shù)據(jù)窗口(外部數(shù)據(jù)源)與FTP命令在PB中的調(diào)用、微軟CHM幫助文件的制作與其在PB中的調(diào)用等技術(shù)編制而成,可在Windows 95以上的操作系統(tǒng)上運(yùn)行。
2技術(shù)實(shí)現(xiàn)
2.1設(shè)計(jì)排班表為系統(tǒng)主控線索
為了在程序中實(shí)現(xiàn)對(duì)個(gè)人評(píng)分報(bào)(GD報(bào))的集中控制,為系統(tǒng)編制了值班安排和發(fā)報(bào)控制程序模塊,設(shè)計(jì)排班表作為該系統(tǒng)的主控線索,嚴(yán)格按照排班表編、發(fā)GD報(bào)。用戶打開編制個(gè)人報(bào)窗口時(shí),系統(tǒng)將某日排班表中所有預(yù)報(bào)員姓名調(diào)入該窗口的預(yù)報(bào)員下拉列表框中,當(dāng)用戶每編制并保存完一位預(yù)報(bào)員的GD報(bào)后,系統(tǒng)就將該預(yù)報(bào)員從該窗口的預(yù)報(bào)員下拉列表框中刪除,直到將預(yù)報(bào)員下拉列表框中所有預(yù)報(bào)員的GD報(bào)編制并保存完畢后,才可發(fā)送FN報(bào),即“發(fā)送FN報(bào)”菜單項(xiàng)才可用。
2.2采用選項(xiàng)卡與數(shù)據(jù)窗口等技術(shù)
為了使系統(tǒng)集成度高、操作簡(jiǎn)便快捷、竭力提高編報(bào)速度,系統(tǒng)在編制集體報(bào)、個(gè)人報(bào)和更正報(bào)窗口中普遍采用選項(xiàng)卡技術(shù),在所有的編報(bào)窗口中采用數(shù)據(jù)窗口(外部數(shù)據(jù)源)[3,4]、數(shù)據(jù)窗口中的下拉列表框[5]等技術(shù),設(shè)置單行復(fù)制、多行復(fù)制和列復(fù)制功能,設(shè)置調(diào)入上次預(yù)報(bào)的命令按鈕,為第1條記錄設(shè)置默認(rèn)值。為了使該系統(tǒng)有利于移植和推廣,系統(tǒng)采用FTP命令、Windows函數(shù)在PB中的調(diào)用、微軟CHM幫助文件的制作與其在PB中的調(diào)用等技術(shù),編制配制維護(hù)、規(guī)則維護(hù)、密碼設(shè)置等程序模塊。
2.3設(shè)置系統(tǒng)提示
系統(tǒng)為所有的程序模塊設(shè)置執(zhí)行成功與出錯(cuò)的相應(yīng)提示,實(shí)現(xiàn)對(duì)所編報(bào)文項(xiàng)目進(jìn)行原則性差錯(cuò)的自動(dòng)判識(shí),為每個(gè)編報(bào)窗口設(shè)置報(bào)文瀏覽選項(xiàng)卡和列表框,用于顯示編制的各種報(bào)文,便于即時(shí)核對(duì),以便達(dá)到降低在編、發(fā)報(bào)過程中的誤操作率,有效地提高編、發(fā)報(bào)的速度。
2.4判識(shí)中期預(yù)報(bào)日
在系統(tǒng)中定義一個(gè)特殊的全局變量月末日,并在系統(tǒng)啟動(dòng)時(shí)進(jìn)行月末日自動(dòng)判識(shí)。旬末日必須編、發(fā)中期預(yù)報(bào),非旬末日無須編、發(fā)中期預(yù)報(bào)。上、中旬的旬末日分別為10與20,下旬的旬末日就是月末日。每至旬末日北京時(shí)間12時(shí)以后,編制集體會(huì)商結(jié)論報(bào)窗口中的中期選項(xiàng)卡方可使用,其余時(shí)間均為不可用,這樣就使系統(tǒng)具有自動(dòng)判識(shí)中期預(yù)報(bào)日的功能。
3目錄結(jié)構(gòu)與文件
《城鎮(zhèn)天氣預(yù)報(bào)編報(bào)發(fā)報(bào)系統(tǒng)》主目錄為FORECAST,包含程序、報(bào)文、回執(zhí)3個(gè)子目錄。其中報(bào)文目錄用于存放編制好的報(bào)文文件;回執(zhí)目錄用于存放發(fā)出報(bào)文的回執(zhí)文件;程序目錄用于存放可執(zhí)行程序、配置文件、文本文件和相應(yīng)的動(dòng)態(tài)庫文件,具體如下:①libjcc.dll、pbdwe70.dll、pbvm70.dll、pbwei70.dll和forecastcode.dll分別為4個(gè)PB可執(zhí)行程序所需的動(dòng)態(tài)庫文件和《城鎮(zhèn)天氣預(yù)報(bào)編報(bào)發(fā)報(bào)系統(tǒng)》的動(dòng)態(tài)庫文件;②forecastcode.exe、FTP.EXE 2個(gè)可執(zhí)行程序;③forecastc-ode.chm系統(tǒng)幫助文件;④排班表.ini存放當(dāng)月排班數(shù)據(jù)的文件;⑤短期預(yù)報(bào).txt存放集體報(bào)或更正報(bào)的文件,包括中期預(yù)報(bào)日的中期報(bào)內(nèi)容;⑥短時(shí)預(yù)報(bào)08.txt存放08時(shí)短時(shí)報(bào)文件;⑦短時(shí)預(yù)報(bào)14.txt存放14時(shí)短時(shí)報(bào)文件;⑧短時(shí)預(yù)報(bào)20.txt存放20時(shí)短時(shí)報(bào)文件;⑨forecast.ini配置文件。
4系統(tǒng)功能
《城鎮(zhèn)天氣預(yù)報(bào)編報(bào)發(fā)報(bào)系統(tǒng)》可用于編制和發(fā)送6、12h短時(shí)報(bào);24、48、72h短期FP報(bào)、更正FP報(bào)、集體FN報(bào)(D報(bào))、個(gè)人FN報(bào)(GD報(bào))和中期報(bào)。它由配制維護(hù)、規(guī)則維護(hù)、密碼設(shè)置、值班安排、排班表、集體報(bào)、個(gè)人報(bào)、短時(shí)報(bào)、更正報(bào)、發(fā)送FP報(bào)、發(fā)送FN報(bào)、發(fā)送短時(shí)報(bào)和系統(tǒng)幫助共13個(gè)主要功能模塊組成。調(diào)用配制維護(hù)、規(guī)則維護(hù)、密碼設(shè)置、值班安排等模塊,均需輸入系統(tǒng)密碼。
(1)配制維護(hù)。用于對(duì)配置文件的“站名”、“預(yù)報(bào)員”和“其他”3個(gè)節(jié)中的參數(shù)進(jìn)行維護(hù)。調(diào)用該模塊,可增加、修改或刪除預(yù)報(bào)員、臺(tái)站,可修改“其他”節(jié)中的參數(shù)。
(2)規(guī)則維護(hù)。用于對(duì)配置文件的“重要天氣”、“天空狀況”、“天氣現(xiàn)象”、“風(fēng)向”和“風(fēng)速”5個(gè)節(jié)中的參數(shù)進(jìn)行維護(hù)。調(diào)用該模塊,可增加、修改或刪除“重要天氣”、“天氣現(xiàn)象”兩節(jié)中的項(xiàng)目,可修改或刪除“天空狀況”、“風(fēng)向”和“風(fēng)速”3節(jié)中的項(xiàng)目。該模塊極少使用,因?yàn)樘鞖忸A(yù)報(bào)編報(bào)規(guī)則極少變動(dòng)。
(3)密碼設(shè)置。用于設(shè)置或更改系統(tǒng)密碼。調(diào)用該模塊,需輸入系統(tǒng)的原先密碼。
(4)值班安排。用于制作每月的排班表。每天至少安排1人值班,最多可安排5人值班。因此,在值班安排窗口中,每天預(yù)報(bào)員1不能為空,預(yù)報(bào)員2~5均可為空。
(5)排班表。用于查閱每月的排班情況。
(6)集體報(bào)。用于編制集體會(huì)商結(jié)論預(yù)報(bào)。調(diào)用集體報(bào)模塊時(shí),系統(tǒng)調(diào)出編制集體會(huì)商結(jié)論報(bào)窗口。該窗口預(yù)報(bào)員下拉列表框中僅有一項(xiàng),是排班表中某日預(yù)報(bào)員1的內(nèi)容。為了提高編報(bào)速度,該窗口中24、48和72h選項(xiàng)卡的第1條記錄均設(shè)有默認(rèn)值;設(shè)有復(fù)制、粘貼一條記錄、多條記錄和某一列的功能;設(shè)有調(diào)入上次命令按鈕,其功能是將上次集體會(huì)商結(jié)論或更正報(bào)編碼調(diào)入該窗口相應(yīng)選項(xiàng)卡中,預(yù)報(bào)員可在此基礎(chǔ)上進(jìn)行修改。
(7)個(gè)人報(bào)。用于編制個(gè)人報(bào)。調(diào)用個(gè)人報(bào)模塊時(shí),系統(tǒng)調(diào)出編制個(gè)人預(yù)報(bào)窗口。該窗口預(yù)報(bào)員下拉列表框中最少有1項(xiàng),最多有5項(xiàng),是排班表中某日預(yù)報(bào)員1~5的全部?jī)?nèi)容。該窗口其余內(nèi)容設(shè)置與編制集體會(huì)商結(jié)論報(bào)窗口相同。
(8)短時(shí)報(bào)。用于編制短時(shí)報(bào)。調(diào)用短時(shí)報(bào)模塊時(shí),系統(tǒng)調(diào)出編制短時(shí)報(bào)窗口。該窗口和編制集體會(huì)商結(jié)論報(bào)窗口一樣,第一條記錄設(shè)有默認(rèn)值,且設(shè)有單行復(fù)制、多行復(fù)制、列復(fù)制和調(diào)入上次等功能。
(9)更正報(bào)。用于編制集體會(huì)商更正報(bào),最多可編、發(fā)4次更正報(bào)。調(diào)用更正報(bào)模塊時(shí),系統(tǒng)調(diào)出編制集體會(huì)商更正報(bào)窗口。該窗口預(yù)報(bào)員下拉列表框中僅有1項(xiàng),是排班表中某日預(yù)報(bào)員1的內(nèi)容。該窗口其余內(nèi)容設(shè)置與編制集體會(huì)商結(jié)論報(bào)窗口相同。該模塊僅在向中央臺(tái)發(fā)更正報(bào)時(shí)使用。
(10)發(fā)送FP報(bào)。用于發(fā)送FP報(bào)。北京時(shí)間12時(shí)以前可發(fā)05時(shí)FP報(bào),12時(shí)以后可發(fā)14時(shí)FP報(bào)。發(fā)送FP報(bào)時(shí),系統(tǒng)自動(dòng)在報(bào)文目錄中尋找最后編輯并保存的那份FP報(bào)(流水號(hào)為1~5),將其發(fā)出,再將其調(diào)回存入回執(zhí)目錄。
(11)發(fā)送FN報(bào)。用于發(fā)送FN報(bào)。只有將某日排班表中所有預(yù)報(bào)員的個(gè)人評(píng)分報(bào)(FN報(bào))編制并保存完畢后,才可發(fā)送FN報(bào)。北京時(shí)間12時(shí)以前可發(fā)05時(shí)FN報(bào),12時(shí)以后可發(fā)14時(shí)FN報(bào)。發(fā)送FN報(bào)時(shí),系統(tǒng)自動(dòng)在報(bào)文目錄中尋找最后編輯并保存的那份FN報(bào)(流水號(hào)為1~7)將其發(fā)出,再將其調(diào)回存入回執(zhí)目錄。
(12)發(fā)送短時(shí)報(bào)。用于發(fā)送短時(shí)報(bào)。只有將短時(shí)報(bào)編制完畢后,才可發(fā)送短時(shí)報(bào)。發(fā)送短時(shí)報(bào)時(shí),系統(tǒng)自動(dòng)在報(bào)文目錄中尋找當(dāng)時(shí)編輯并保存的那份短時(shí)報(bào),將其發(fā)出,再將其調(diào)回存入回執(zhí)目錄。
(13)系統(tǒng)幫助。用于調(diào)用系統(tǒng)幫助文件,是當(dāng)今較先進(jìn)的CHM文件類型。
5參考文獻(xiàn)
[1] 施伯樂,丁寶康,樓榮生.數(shù)據(jù)庫系統(tǒng)導(dǎo)論[M].北京:高等教育出版社,1994.
[2] 何軍,曲煒,郭立.PowerScript語言、事件與函數(shù)大全[M].北京:電子工業(yè)出版社,2000.
[3] 王蓉等.PowerBuilder7.0應(yīng)用開發(fā)技術(shù)祥解[M].北京:電子工業(yè)出版社,2000.
[4] 胡存生.PowerBuilder7.0高級(jí)開發(fā)是實(shí)例與技巧[M].北京:電子工業(yè)出版社,2001.
[5] 劉增進(jìn).PowerBuilder7.0數(shù)據(jù)窗口技術(shù)祥解[M].北京:電子工業(yè)出版社,2000.
關(guān)鍵詞城鎮(zhèn)天氣預(yù)報(bào);編報(bào);發(fā)報(bào)
自2001年9月以來,新疆氣象局各州(地)級(jí)氣象臺(tái)開始使用中國氣象局下發(fā)的天氣預(yù)報(bào)編發(fā)報(bào)程序(云南編報(bào))進(jìn)行城鎮(zhèn)天氣預(yù)報(bào)編報(bào),然后利用各自的發(fā)報(bào)軟件進(jìn)行發(fā)報(bào)。由于目前業(yè)務(wù)項(xiàng)目的增加和業(yè)務(wù)管理的改變,該軟件已不能滿足預(yù)報(bào)工作的實(shí)際需要,主要存在以下6個(gè)方面問題:①不能對(duì)個(gè)人評(píng)分報(bào)文進(jìn)行控制,即氣象臺(tái)每天必發(fā)集體報(bào)(D報(bào)),可發(fā)可不發(fā)個(gè)人評(píng)分報(bào)(GD報(bào)),導(dǎo)致GD報(bào)的評(píng)分遠(yuǎn)遠(yuǎn)高于D報(bào)的評(píng)分,以及預(yù)報(bào)員之間的評(píng)分不統(tǒng)一。②預(yù)報(bào)評(píng)分報(bào)文中天氣現(xiàn)象的選取存在部分不合理的現(xiàn)象。③不能進(jìn)行最高氣溫應(yīng)高于最低氣溫的自動(dòng)判識(shí)。④某日是否該發(fā)中期預(yù)報(bào),需要預(yù)報(bào)員記憶,不能進(jìn)行自動(dòng)判識(shí);天氣的起始日應(yīng)小于等于結(jié)束日,且最多只能跨越3d,這些均不能進(jìn)行自動(dòng)判識(shí)。⑤僅能編制24、48h的預(yù)報(bào)報(bào)文,不能編制72h的預(yù)報(bào)報(bào)文。不能編制短時(shí)預(yù)報(bào)報(bào)文。
針對(duì)這一現(xiàn)狀,新疆氣象局于2004年3月在新疆氣象局立項(xiàng),開發(fā)研制《城鎮(zhèn)天氣預(yù)報(bào)編報(bào)發(fā)報(bào)系統(tǒng)》。該系統(tǒng)研制成功后,由于其操作簡(jiǎn)便快捷、運(yùn)行穩(wěn)定、易維護(hù),在天氣預(yù)報(bào)編、發(fā)報(bào)方面具有全國通用性,因此于2004年8月在昌吉、克州、和田、巴州、哈密、克拉瑪依和吐魯番等地州市氣象臺(tái)得到推廣應(yīng)用,2004年10月通過新疆氣象局驗(yàn)收;2004年12月獲得新疆氣象局2004年度科學(xué)研究與技術(shù)開發(fā)二等獎(jiǎng)。
1總體設(shè)計(jì)
1.1數(shù)據(jù)存儲(chǔ)方式
首先,城鎮(zhèn)天氣預(yù)報(bào)編報(bào)、發(fā)報(bào)操作過程的主要矛盾不是原始報(bào)文大量而長(zhǎng)期保存及實(shí)現(xiàn)快速查詢,而是如何能實(shí)現(xiàn)快速編報(bào)、發(fā)報(bào),減少操作步驟,降低誤操作率[1]。其次,數(shù)據(jù)庫應(yīng)用軟件在推廣應(yīng)用時(shí)難度較大,需要相關(guān)知識(shí)較多,因此,《城鎮(zhèn)天氣預(yù)報(bào)編報(bào)發(fā)報(bào)系統(tǒng)》沒有采用數(shù)據(jù)庫方式存儲(chǔ)各種數(shù)據(jù),而是以文件方式來存儲(chǔ)各種數(shù)據(jù)。
1.2開發(fā)環(huán)境與語言
作為一門可視化、面向?qū)ο蟮目焖匍_發(fā)(RAD)工具,PowerBuilder已被廣大數(shù)據(jù)庫應(yīng)用開發(fā)人員所使用,并獲得好評(píng)。PowerScript語言是PowerBuilder為開發(fā)人員提供的功能強(qiáng)大的結(jié)構(gòu)化高級(jí)編程語言,它使用函數(shù)和事件處理程序,非常方便和靈活。因此,《城鎮(zhèn)天氣預(yù)報(bào)編報(bào)發(fā)報(bào)系統(tǒng)》選取Windows2000為操作平臺(tái),PowerBuilder7.0為開發(fā)環(huán)境,PowerScript語言為編程語言。
1.3配置文件結(jié)構(gòu)
《城鎮(zhèn)天氣預(yù)報(bào)編報(bào)發(fā)報(bào)系統(tǒng)》符合綠色軟件標(biāo)準(zhǔn)(不改動(dòng)注冊(cè)表),系統(tǒng)運(yùn)行的所有參數(shù)均存放在配置文件中,配置文件由以下8節(jié)組成:“站名”節(jié)中的區(qū)站號(hào)為5字節(jié),臺(tái)站名最多為20字節(jié);“預(yù)報(bào)員”節(jié)中的預(yù)報(bào)員編號(hào)為5字節(jié),預(yù)報(bào)員名最多為20字節(jié);“重要天氣”節(jié)中的重要天氣編號(hào)為1字節(jié);“天空狀況”節(jié)中的天空狀況編號(hào)為1字節(jié);“天氣現(xiàn)象”節(jié)中的天氣現(xiàn)象編號(hào)為2字節(jié),天氣現(xiàn)象序號(hào)為2字節(jié);“風(fēng)向”節(jié)中的風(fēng)向編號(hào)為1字節(jié);“風(fēng)速”節(jié)中的風(fēng)速編號(hào)為1字節(jié);“其他”節(jié)中的每個(gè)項(xiàng)目名都是固定的。
1.4主控線索與采用技術(shù)
《城鎮(zhèn)天氣預(yù)報(bào)編報(bào)發(fā)報(bào)系統(tǒng)》以下拉菜單方式進(jìn)行集中控制,各菜單項(xiàng)分別與相應(yīng)程序模塊相關(guān)聯(lián);以排班表為主控線索,綜合應(yīng)用靜態(tài)文本框、列表框、下拉列表框、單行編輯框、命令按鈕、選項(xiàng)卡、數(shù)據(jù)窗口(外部數(shù)據(jù)源)與FTP命令在PB中的調(diào)用、微軟CHM幫助文件的制作與其在PB中的調(diào)用等技術(shù)編制而成,可在Windows 95以上的操作系統(tǒng)上運(yùn)行。
2技術(shù)實(shí)現(xiàn)
2.1設(shè)計(jì)排班表為系統(tǒng)主控線索
為了在程序中實(shí)現(xiàn)對(duì)個(gè)人評(píng)分報(bào)(GD報(bào))的集中控制,為系統(tǒng)編制了值班安排和發(fā)報(bào)控制程序模塊,設(shè)計(jì)排班表作為該系統(tǒng)的主控線索,嚴(yán)格按照排班表編、發(fā)GD報(bào)。用戶打開編制個(gè)人報(bào)窗口時(shí),系統(tǒng)將某日排班表中所有預(yù)報(bào)員姓名調(diào)入該窗口的預(yù)報(bào)員下拉列表框中,當(dāng)用戶每編制并保存完一位預(yù)報(bào)員的GD報(bào)后,系統(tǒng)就將該預(yù)報(bào)員從該窗口的預(yù)報(bào)員下拉列表框中刪除,直到將預(yù)報(bào)員下拉列表框中所有預(yù)報(bào)員的GD報(bào)編制并保存完畢后,才可發(fā)送FN報(bào),即“發(fā)送FN報(bào)”菜單項(xiàng)才可用。
2.2采用選項(xiàng)卡與數(shù)據(jù)窗口等技術(shù)
為了使系統(tǒng)集成度高、操作簡(jiǎn)便快捷、竭力提高編報(bào)速度,系統(tǒng)在編制集體報(bào)、個(gè)人報(bào)和更正報(bào)窗口中普遍采用選項(xiàng)卡技術(shù),在所有的編報(bào)窗口中采用數(shù)據(jù)窗口(外部數(shù)據(jù)源)[3,4]、數(shù)據(jù)窗口中的下拉列表框[5]等技術(shù),設(shè)置單行復(fù)制、多行復(fù)制和列復(fù)制功能,設(shè)置調(diào)入上次預(yù)報(bào)的命令按鈕,為第1條記錄設(shè)置默認(rèn)值。為了使該系統(tǒng)有利于移植和推廣,系統(tǒng)采用FTP命令、Windows函數(shù)在PB中的調(diào)用、微軟CHM幫助文件的制作與其在PB中的調(diào)用等技術(shù),編制配制維護(hù)、規(guī)則維護(hù)、密碼設(shè)置等程序模塊。
2.3設(shè)置系統(tǒng)提示
系統(tǒng)為所有的程序模塊設(shè)置執(zhí)行成功與出錯(cuò)的相應(yīng)提示,實(shí)現(xiàn)對(duì)所編報(bào)文項(xiàng)目進(jìn)行原則性差錯(cuò)的自動(dòng)判識(shí),為每個(gè)編報(bào)窗口設(shè)置報(bào)文瀏覽選項(xiàng)卡和列表框,用于顯示編制的各種報(bào)文,便于即時(shí)核對(duì),以便達(dá)到降低在編、發(fā)報(bào)過程中的誤操作率,有效地提高編、發(fā)報(bào)的速度。
2.4判識(shí)中期預(yù)報(bào)日
在系統(tǒng)中定義一個(gè)特殊的全局變量月末日,并在系統(tǒng)啟動(dòng)時(shí)進(jìn)行月末日自動(dòng)判識(shí)。旬末日必須編、發(fā)中期預(yù)報(bào),非旬末日無須編、發(fā)中期預(yù)報(bào)。上、中旬的旬末日分別為10與20,下旬的旬末日就是月末日。每至旬末日北京時(shí)間12時(shí)以后,編制集體會(huì)商結(jié)論報(bào)窗口中的中期選項(xiàng)卡方可使用,其余時(shí)間均為不可用,這樣就使系統(tǒng)具有自動(dòng)判識(shí)中期預(yù)報(bào)日的功能。
3目錄結(jié)構(gòu)與文件
《城鎮(zhèn)天氣預(yù)報(bào)編報(bào)發(fā)報(bào)系統(tǒng)》主目錄為FORECAST,包含程序、報(bào)文、回執(zhí)3個(gè)子目錄。其中報(bào)文目錄用于存放編制好的報(bào)文文件;回執(zhí)目錄用于存放發(fā)出報(bào)文的回執(zhí)文件;程序目錄用于存放可執(zhí)行程序、配置文件、文本文件和相應(yīng)的動(dòng)態(tài)庫文件,具體如下:①libjcc.dll、pbdwe70.dll、pbvm70.dll、pbwei70.dll和forecastcode.dll分別為4個(gè)PB可執(zhí)行程序所需的動(dòng)態(tài)庫文件和《城鎮(zhèn)天氣預(yù)報(bào)編報(bào)發(fā)報(bào)系統(tǒng)》的動(dòng)態(tài)庫文件;②forecastcode.exe、FTP.EXE 2個(gè)可執(zhí)行程序;③forecastc-ode.chm系統(tǒng)幫助文件;④排班表.ini存放當(dāng)月排班數(shù)據(jù)的文件;⑤短期預(yù)報(bào).txt存放集體報(bào)或更正報(bào)的文件,包括中期預(yù)報(bào)日的中期報(bào)內(nèi)容;⑥短時(shí)預(yù)報(bào)08.txt存放08時(shí)短時(shí)報(bào)文件;⑦短時(shí)預(yù)報(bào)14.txt存放14時(shí)短時(shí)報(bào)文件;⑧短時(shí)預(yù)報(bào)20.txt存放20時(shí)短時(shí)報(bào)文件;⑨forecast.ini配置文件。
4系統(tǒng)功能
《城鎮(zhèn)天氣預(yù)報(bào)編報(bào)發(fā)報(bào)系統(tǒng)》可用于編制和發(fā)送6、12h短時(shí)報(bào);24、48、72h短期FP報(bào)、更正FP報(bào)、集體FN報(bào)(D報(bào))、個(gè)人FN報(bào)(GD報(bào))和中期報(bào)。它由配制維護(hù)、規(guī)則維護(hù)、密碼設(shè)置、值班安排、排班表、集體報(bào)、個(gè)人報(bào)、短時(shí)報(bào)、更正報(bào)、發(fā)送FP報(bào)、發(fā)送FN報(bào)、發(fā)送短時(shí)報(bào)和系統(tǒng)幫助共13個(gè)主要功能模塊組成。調(diào)用配制維護(hù)、規(guī)則維護(hù)、密碼設(shè)置、值班安排等模塊,均需輸入系統(tǒng)密碼。
(1)配制維護(hù)。用于對(duì)配置文件的“站名”、“預(yù)報(bào)員”和“其他”3個(gè)節(jié)中的參數(shù)進(jìn)行維護(hù)。調(diào)用該模塊,可增加、修改或刪除預(yù)報(bào)員、臺(tái)站,可修改“其他”節(jié)中的參數(shù)。
(2)規(guī)則維護(hù)。用于對(duì)配置文件的“重要天氣”、“天空狀況”、“天氣現(xiàn)象”、“風(fēng)向”和“風(fēng)速”5個(gè)節(jié)中的參數(shù)進(jìn)行維護(hù)。調(diào)用該模塊,可增加、修改或刪除“重要天氣”、“天氣現(xiàn)象”兩節(jié)中的項(xiàng)目,可修改或刪除“天空狀況”、“風(fēng)向”和“風(fēng)速”3節(jié)中的項(xiàng)目。該模塊極少使用,因?yàn)樘鞖忸A(yù)報(bào)編報(bào)規(guī)則極少變動(dòng)。
(3)密碼設(shè)置。用于設(shè)置或更改系統(tǒng)密碼。調(diào)用該模塊,需輸入系統(tǒng)的原先密碼。
(4)值班安排。用于制作每月的排班表。每天至少安排1人值班,最多可安排5人值班。因此,在值班安排窗口中,每天預(yù)報(bào)員1不能為空,預(yù)報(bào)員2~5均可為空。
(5)排班表。用于查閱每月的排班情況。
(6)集體報(bào)。用于編制集體會(huì)商結(jié)論預(yù)報(bào)。調(diào)用集體報(bào)模塊時(shí),系統(tǒng)調(diào)出編制集體會(huì)商結(jié)論報(bào)窗口。該窗口預(yù)報(bào)員下拉列表框中僅有一項(xiàng),是排班表中某日預(yù)報(bào)員1的內(nèi)容。為了提高編報(bào)速度,該窗口中24、48和72h選項(xiàng)卡的第1條記錄均設(shè)有默認(rèn)值;設(shè)有復(fù)制、粘貼一條記錄、多條記錄和某一列的功能;設(shè)有調(diào)入上次命令按鈕,其功能是將上次集體會(huì)商結(jié)論或更正報(bào)編碼調(diào)入該窗口相應(yīng)選項(xiàng)卡中,預(yù)報(bào)員可在此基礎(chǔ)上進(jìn)行修改。
(7)個(gè)人報(bào)。用于編制個(gè)人報(bào)。調(diào)用個(gè)人報(bào)模塊時(shí),系統(tǒng)調(diào)出編制個(gè)人預(yù)報(bào)窗口。該窗口預(yù)報(bào)員下拉列表框中最少有1項(xiàng),最多有5項(xiàng),是排班表中某日預(yù)報(bào)員1~5的全部?jī)?nèi)容。該窗口其余內(nèi)容設(shè)置與編制集體會(huì)商結(jié)論報(bào)窗口相同。
(8)短時(shí)報(bào)。用于編制短時(shí)報(bào)。調(diào)用短時(shí)報(bào)模塊時(shí),系統(tǒng)調(diào)出編制短時(shí)報(bào)窗口。該窗口和編制集體會(huì)商結(jié)論報(bào)窗口一樣,第一條記錄設(shè)有默認(rèn)值,且設(shè)有單行復(fù)制、多行復(fù)制、列復(fù)制和調(diào)入上次等功能。
(9)更正報(bào)。用于編制集體會(huì)商更正報(bào),最多可編、發(fā)4次更正報(bào)。調(diào)用更正報(bào)模塊時(shí),系統(tǒng)調(diào)出編制集體會(huì)商更正報(bào)窗口。該窗口預(yù)報(bào)員下拉列表框中僅有1項(xiàng),是排班表中某日預(yù)報(bào)員1的內(nèi)容。該窗口其余內(nèi)容設(shè)置與編制集體會(huì)商結(jié)論報(bào)窗口相同。該模塊僅在向中央臺(tái)發(fā)更正報(bào)時(shí)使用。
(10)發(fā)送FP報(bào)。用于發(fā)送FP報(bào)。北京時(shí)間12時(shí)以前可發(fā)05時(shí)FP報(bào),12時(shí)以后可發(fā)14時(shí)FP報(bào)。發(fā)送FP報(bào)時(shí),系統(tǒng)自動(dòng)在報(bào)文目錄中尋找最后編輯并保存的那份FP報(bào)(流水號(hào)為1~5),將其發(fā)出,再將其調(diào)回存入回執(zhí)目錄。
(11)發(fā)送FN報(bào)。用于發(fā)送FN報(bào)。只有將某日排班表中所有預(yù)報(bào)員的個(gè)人評(píng)分報(bào)(FN報(bào))編制并保存完畢后,才可發(fā)送FN報(bào)。北京時(shí)間12時(shí)以前可發(fā)05時(shí)FN報(bào),12時(shí)以后可發(fā)14時(shí)FN報(bào)。發(fā)送FN報(bào)時(shí),系統(tǒng)自動(dòng)在報(bào)文目錄中尋找最后編輯并保存的那份FN報(bào)(流水號(hào)為1~7)將其發(fā)出,再將其調(diào)回存入回執(zhí)目錄。
(12)發(fā)送短時(shí)報(bào)。用于發(fā)送短時(shí)報(bào)。只有將短時(shí)報(bào)編制完畢后,才可發(fā)送短時(shí)報(bào)。發(fā)送短時(shí)報(bào)時(shí),系統(tǒng)自動(dòng)在報(bào)文目錄中尋找當(dāng)時(shí)編輯并保存的那份短時(shí)報(bào),將其發(fā)出,再將其調(diào)回存入回執(zhí)目錄。
(13)系統(tǒng)幫助。用于調(diào)用系統(tǒng)幫助文件,是當(dāng)今較先進(jìn)的CHM文件類型。
5參考文獻(xiàn)
[1] 施伯樂,丁寶康,樓榮生.數(shù)據(jù)庫系統(tǒng)導(dǎo)論[M].北京:高等教育出版社,1994.
[2] 何軍,曲煒,郭立.PowerScript語言、事件與函數(shù)大全[M].北京:電子工業(yè)出版社,2000.
[3] 王蓉等.PowerBuilder7.0應(yīng)用開發(fā)技術(shù)祥解[M].北京:電子工業(yè)出版社,2000.
[4] 胡存生.PowerBuilder7.0高級(jí)開發(fā)是實(shí)例與技巧[M].北京:電子工業(yè)出版社,2001.
[5] 劉增進(jìn).PowerBuilder7.0數(shù)據(jù)窗口技術(shù)祥解[M].北京:電子工業(yè)出版社,2000.