《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 一種基于Web的層次編碼處理模塊設計
一種基于Web的層次編碼處理模塊設計
來源:微型機與應用2011年第7期
楊振東,何 宏,劉光霆
(后勤工程學院 基礎部,重慶 401311)
摘要: 針對目前大多數Web應用系統對層次編碼處理相對簡單導致用戶操作不便的問題,開發了一個基于Web的層次編碼處理模塊,詳細介紹了其設計與實現思想。其操作簡便,易實現,對開發B/S結構的管理信息系統在處理層次編碼時,提供了一個很好的解決方案。
Abstract:
Key words :

摘  要: 針對目前大多數Web應用系統層次編碼處理相對簡單導致用戶操作不便的問題,開發了一個基于Web的層次編碼處理模塊,詳細介紹了其設計與實現思想。其操作簡便,易實現,對開發B/S結構的管理信息系統在處理層次編碼時,提供了一個很好的解決方案。
關鍵詞: 層次編碼;Web;應用系統;Ajax

 在管理信息系統(MIS)中,經常涉及到對一些基本信息的管理。為了有效地組織、管理這些信息,開發者往往通過數據編碼來確保信息的檢索、分類、統計和便于控制,以提高信息的處理效率和利用價值[1]。編碼設計及其管理是信息系統中不可缺少的重要組成部分。在實際工作中,經常遇到一些數據之間具有從屬或上下級關系的情況,例如機構編制、物資分類信息等都具有明顯的上下級和從屬關系。這類數據的編碼就是一種層次編碼。相比較傳統的基于C/S的應用系統,基于B/S的Web應用系統靈活、易維護、成本低、使用方便、容易被用戶接受,已成為企業應用的首選[2]。本文以一種典型的層次編碼為例,設計并實現了一個基于Web的簡潔美觀、功能強大的單位編碼幫助模塊。該模塊界面如圖1所示。
1 單位編碼幫助模塊功能
 如圖1所示界面,左邊顯示上級單位的編碼和名稱,并用分隔符分開,右邊顯示左邊單位的直供單位或下級單位的編碼和名稱。下部是“返回上級”、“下級單位”、“確定”、“取消”按鈕。選中左邊某單位,然后單擊“下級單位”按鈕,界面顯示如圖2所示。

 

 

 左邊自動顯示所選單位的下級單位,右邊則是左邊默認選中單位的下級單位,這樣逐層展示每層的單位編碼和名稱,層次結構清晰,便于用戶查找。
2 模塊實現的主要技術
 用戶在操作某張頁面時,可能多個地方需調用幫助模塊,如果每次都提交后臺處理,則在服務器上的程序處理頁面并返回數據期間,用戶只能等待。這樣的Web應用程序因用戶得不到立即的反應,操作習慣和思路都會在每一次提交-等待中被打斷,交互性比較差,達不到桌面應用程序的效果。因而設計時主要考慮兩個問題:是利用Ajax技術異步調用數據,還是直接把數據下載到客戶端進行處理;如何按層次展示數據。Ajax使用XMLHttpRequest對象與Web服務器進行異步數據交換[3]。但當數據量比較大時,異步獲取數據需較長的等待時間,因此可以把數據一次性下載到客戶端再進行分層處理。
2.1 服務器端代碼
 首先,在數據庫中建一個Dwxx表,用dwbm和dwmc兩個字段對應存儲單位編碼與單位名稱,以Java平臺為例,首先可以新建一個POJO類Dwxx:
public class Dwxx implements java.io.Serializable {
    private String dwbm;
    private String dwmc;
        public void setDwbm(String dwbm){
        this.dwbm = dwbm;
        }
        public String getDwbm() {
        return dwbm;
   }
   ……
}
然后,定義一個DwxxService類來組裝數據,以ArrayList的形式返回客戶端進行處理:
public class DwxxService {//獲取所有單位信息
public ArrayList getDwxx () throws SQLException {
     ……
     ArrayList list = new ArrayList();
     String sql ="select dwbm,dwmc from sys_dwxx order            by dwbm";
     rs=mydb.executeQuery(sql);         
     while (rs.next()) {
         Dwxx dwxx = new Dwxx ();dwxx.setDwxxDwbm
            (rs.getString(“dwbm”));
        dwxx.setDwxxDwmc(rs.getString(“dwmc”));list.add
            (dwxx);
     }
……
     return list;
}
}
2.2 客戶端代碼
 客戶端處理代碼封裝成模塊且置入主界面(如index.htm)中。用戶登錄系統進入主界面后自動下載單位編碼并生成幫助系統隱藏在客戶端,載入其他需調用單位編碼幫助功能的頁面時就不必重復去后臺下載單位編碼,而是把已生成的模塊由隱藏變為可見,這樣大大提高層次編碼的處理速度。代碼以通用的JavaScirpt代碼為主,再輔以少量服務器端腳本。核心代碼如下:
 <SCRIPT LANGUAGE="JavaScript">
 /** 單位信息以三個層次為例,用三個數組分別存儲各層數據,提高了處理效率,更多層次情況做類似處理。**/
var dwxxarr1 = new Array(); var dwxxarr2 = new Array();var dwxxarr3 = new Array();
var listl=document.dwform.listl; var listr=document.dwform.listr
// listl,listr分別為左右邊下拉列表
function dwxx(dwbm, dwmc){//構造數據
    this.dwbm=dwbm;this. dwmc=dwmc;
}
function getDwxx(){<% //功能:接收單位編碼和名稱,根據
//編碼長度分別存入到三個數組
    Dwxx service=new DwxxService ();Dwxx dwxx=null;ArrayList list=new ArrayList();
    String dwbm="",dwmc="";list=service.getDwxx ();
    for(int i=0;i<list.size();i++){
        dwxx=(Dwxx)list.get(i);dwbm=dwxx.getDwbm();dwmc=dwxx.getDwmc();
        switch(dwbm.length()){ //假設單位編碼三位為一級
            case 3:
        %>  dwxxarr1[dwxxarr1.length]=new dwxx("<%=dwbm%>","<%=dwmc%>"); <%                break;
        ……case 6與case 9做類似處理
        }%>
    }
}
function nextdw(){//功能:處理下級單位
    var selectedvalue= listl.options[listl.selectedIndex].value
    switch (selectedvalue.length){
        case 3:
            removeOptions(document.dwform.listl);
//調用清除option選項函數
            for(i=0;i<dwxxarr2.length;i++)
            if(dwxxarr2[i].dwbm.substring(0,3)==selectedvalue)
            listl[listl.length]=new Option(dwxxarr2[i].        dwbm+"|"+dwxxarr2[i].dwmc,dwxxarr2[i].dwbm);
         listl.options[0].selected=true;
    addOptions(listl.options[listl.selectedIndex].value);
//調用增加option選項函數
        ……//case 6與case 9做類似處理
    }
}
function priordw(){//功能:處理上級單位
    var selectedvalue= listl.options[listl.selectedIndex].value
    switch (selectedvalue.length){
        case 6:
           removeOptions(listl);
//調用清除option選項函數
            for(i=0;i<dwxxarr1.length;i++){
                listl[listl.length]=new Option(dwxxarr1[i].                    dwbm+"|"+dwxxarr1[i].dwmc,dwxxarr1[i].dwbm);
               if(dwxxarr1[i].dwbm==selectedvalue.substring(0,3))            
              listl.options[listl.length-1].selected=true;
           }
           addOptions(listl.options[listl.selectedIndex].value);            
        ...... //case 9做類似處理
    }
}
</script>
 參照以上設計思路,可以實現如圖3所示的單位編碼維護模塊。由于篇幅所限,就不再給出處理代碼。
編碼處理是構建優秀、完善的管理信息系統的重要功能,其效率的高低直接關系到整個系統的性能。通過以上設計,完成了一個高效的層次編碼處理模塊。該模塊結構簡單,稍做修改就可以在.NET平臺下實現,相對于大部分系統只列出一個層次編碼的下拉框來說,更符合用戶使用習慣,突出特點是對大數據量層次編碼的處理也非常迅速,目前已在多個大型管理信息系統中采用,受到用戶一致好評。此外,本文所提出的開發思路對處理其他各種復雜的層次編碼也起著良好的借鑒作用,完全可以運用于供貨商編碼、地區編碼、油品編碼等處理。

參考文獻
[1] 康業娜,許勇,魏士偉.物流信息系統編碼模型研究[J].微計算機信息,2007,36(2):59-60.
[2] 郭曉峰,姚世軍,尹祖偉.基于.NET的Web應用框架的設計與應用[J].計算機工程與設計,2008,29(2):454-455.
[3] 季強,田薇,陳遠.基于Ajax技術的WebOS系統NixOS的構建[J].計算機工程與設計,2008,29(5):1198-1199.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲一区免费观看| 欧美成人免费全部观看天天性色| 亚洲国产精品免费| 欧美诱惑福利视频| 亚洲欧美日本国产有色| 亚洲综合色自拍一区| 亚洲视频一区在线| 一区二区高清| 99视频在线观看一区三区| 日韩天堂av| 日韩午夜剧场| 亚洲一区二区免费视频| 亚洲一区二区三区精品动漫| 一区二区三区视频在线| 在线视频精品一区| 亚洲一二三区视频在线观看| 亚洲午夜激情免费视频| 亚洲夜间福利| 亚洲欧美在线视频观看| 欧美一级视频一区二区| 久久精品99国产精品| 亚洲福利免费| 日韩视频一区二区| 在线亚洲精品| 亚洲一区在线播放| 香蕉视频成人在线观看| 久久国产精品72免费观看| 久久色中文字幕| 欧美激情国产高清| 亚洲日本乱码在线观看| 亚洲永久免费视频| 欧美一区91| 久久亚洲精选| 欧美精品999| 欧美视频国产精品| 国产麻豆精品在线观看| 国产揄拍国内精品对白| 影音先锋日韩有码| 日韩视频一区二区三区在线播放| 亚洲免费电影在线观看| 亚洲女与黑人做爰| 久久精品人人做人人爽电影蜜月| 亚洲国产日韩一级| 99在线精品观看| 亚洲欧美日韩区| 久久精品在线观看| 欧美福利一区| 国产精品xxx在线观看www| 国产精品一区二区三区四区五区 | 99视频精品全国免费| 亚洲一区制服诱惑| 亚洲韩国青草视频| 亚洲视频axxx| 久久免费精品日本久久中文字幕| 欧美成人精品在线播放| 欧美午夜精品理论片a级按摩| 国产日韩精品久久| 亚洲国产视频一区二区| 亚洲视频在线观看| 亚洲高清色综合| 亚洲一区国产精品| 久久亚洲综合| 国产精品99一区二区| 在线播放日韩专区| 亚洲——在线| 亚洲美女在线视频| 欧美在线播放| 欧美日韩成人在线播放| 国产手机视频精品| 99在线热播精品免费| 欧美中文字幕在线| 亚洲少妇自拍| 免费观看30秒视频久久| 国产精品久久综合| 亚洲日本中文字幕免费在线不卡| 午夜久久福利| 亚洲一二三四久久| 免费一级欧美片在线播放| 国产精品中文字幕在线观看| 亚洲激情不卡| 欧美主播一区二区三区美女 久久精品人| 亚洲美女啪啪| 老司机成人网| 国产欧美日韩一区二区三区在线观看| 亚洲精品免费在线| 亚洲高清免费视频| 久久精品观看| 欧美午夜精品一区| 亚洲黄色一区二区三区| 欧美一区日本一区韩国一区| 亚洲一区二区免费在线| 欧美二区不卡| 影音先锋久久精品| 欧美一区二区性| 午夜精品久久久久久久99水蜜桃| 国产精品日产欧美久久久久| 久久久久久香蕉网| 国产精品免费网站在线观看| 91久久国产综合久久| 久久精品视频在线看| 久久超碰97人人做人人爱| 国产精品激情电影| 日韩一级二级三级| 亚洲乱码视频| 欧美高清在线视频观看不卡| 激情成人av| 欧美在线观看一区二区| 欧美一级日韩一级| 国产精品一区二区三区乱码| 中文精品在线| 亚洲欧美不卡| 国产精品国产三级国产 | 亚洲欧洲中文日韩久久av乱码| 久久精品国产999大香线蕉| 欧美日韩少妇| 亚洲理论在线| 在线视频精品一区| 亚洲精品韩国| 狠狠色综合色区| 正在播放亚洲| 亚洲欧美成人一区二区在线电影 | 欧美日韩精品免费观看视频| 亚洲精品国产精品乱码不99按摩| 日韩午夜黄色| 欧美日韩大片一区二区三区| 亚洲精品视频在线| 在线综合亚洲| 国产精品av久久久久久麻豆网| 夜夜躁日日躁狠狠久久88av| 亚洲午夜精品福利| 国产精品理论片在线观看| 亚洲午夜精品久久久久久app| 亚洲免费视频一区二区| 国产欧美精品一区二区三区介绍| 亚洲欧美在线视频观看| 久久久精品欧美丰满| 一区二区三区在线观看欧美| 亚洲黄色视屏| 欧美精品一区二区久久婷婷 | 亚洲一区国产| 久久精品99无色码中文字幕| 久久岛国电影| 久久精品成人欧美大片古装| 日韩亚洲欧美一区| 欧美日本二区| 亚洲视频在线免费观看| 欧美一区高清| 伊人成人在线视频| 99在线观看免费视频精品观看| 国产精品porn| 欧美亚洲一级| 欧美大片一区| 中日韩视频在线观看| 久久福利毛片| 亚洲激情二区| 午夜精品福利一区二区三区av| 国模精品娜娜一二三区| 日韩午夜精品| 国产精品香蕉在线观看| 亚洲电影网站| 欧美日韩精品久久久| 亚洲在线视频| 麻豆精品视频在线观看| 99国产一区二区三精品乱码| 久久av免费一区| 91久久线看在观草草青青| 亚洲综合二区| 一区二区在线观看视频| 中国成人在线视频| 国产一区二区三区直播精品电影 | 国产精品香蕉在线观看| 久久精品国产99精品国产亚洲性色| 欧美电影免费观看网站| 亚洲视频专区在线| 美女脱光内衣内裤视频久久网站| 99视频精品| 美女国内精品自产拍在线播放| 亚洲免费成人av| 久久久久九九九| 日韩一级免费| 久久最新视频| 亚洲一区影院| 欧美精品日韩www.p站| 欧美一级黄色网| 欧美特黄一级| 最新成人在线| 国产啪精品视频| 一区二区电影免费观看| 黑人一区二区| 午夜欧美不卡精品aaaaa| 亚洲国产精品日韩| 久久国产精品一区二区三区| 日韩亚洲在线| 欧美成人r级一区二区三区| 亚洲欧美成人在线| 欧美日韩精品国产| 91久久线看在观草草青青| 国产精品一级在线| 亚洲视频网在线直播| 亚洲第一精品久久忘忧草社区|