在很多項目里面,字典管理是必備的項目模塊,而這個又是比較通用的功能,因此可以單獨做成一個通用字典管理,例如這個模塊,可以通過集成的方式,使用在我的《Winform開發框架》、《WCF開發框架》、《混合式開發框架》中,這樣可以避免代碼的重復維護管理,對企業來說,也可以更好管理核心的代碼,實現統一的版本更替。通用的字典管理模塊,主要包括了字典類型的管理、字典數據的管理,另外,為了方便,還可以加入批量添加數據的功能,以便更適合實際使用場景,加快字典數據的快速錄入。借着這個機會,把我的通用字典管理模塊的內容大概介紹一下吧。
1、通用字典管理模塊的數據管理
普通的字典模塊管理如下所示
其中左邊的是字典類型的樹列表,可以通過右鍵菜單進行維護,如下界面所示。
批量插入的字典模塊管理如下所示
2、全國省市地區的數據字典管理
在最近的項目中,由於需要使用到全國地區的省份、城市、區縣這些新政區划的信息,網上的很多數據腳本都是早期的,因此花了一整天的時間,重新校對了這些省份、城市、地區的數據內容,以及編寫一個對全國省市地區的數據字典管理模塊,由於這些模塊的數據是屬於數據字典的范疇,因此把這些新政區划的管理也整合通用字典模塊里面,以方便更好的應用。
這些全國的新政區划數據,最權威的數據當然來自國家統計局了(http://www.stats.gov.cn/tjbz/xzqhdm/t20130118_402867249.htm),從里面的數據可以看出,這兩三年,全國的省份信息基本沒有變化,但是城市、區縣的數據變化還是不少,如調整了三亞,增加了三沙市,以及合並一些省份的城市,廣州等城市的區縣也有所變化等等,因此花了不少精力時間來對這些數據進行整理,希望能夠給自己方便使用的同時,也方便需要用到這些省份城市行政區的開發人員。
全國地區的省份、城市、區縣這些新政區划的管理界面如下所示
繼承我通用字典管理的功能,在城市行政區維護的功能上,也增加了一個批量插入數據的操作,以方便更好的數據增加需要(雖然我們很少調整這些城市行政區數據)。
3、如果使用通用字典模塊的行政區划數據
上面的字典管理界面只是提供了方便對數據的維護,在實際項目模塊中,我們需要增加對省份、城市、區縣地區的聯動選擇支持,如我在《客戶關系管理系統CRM》中,客戶數據的編輯界面如下所示。
首先需要在綁定省份的字典數據,如下代碼所示。
/// <summary> /// 初始化數據字典 /// </summary> private void InitDictItem() { this.txtProvince.Properties.BeginUpdate(); this.txtProvince.Properties.Items.Clear(); List<ProvinceInfo> provinceList = BLLFactory<Province>.Instance.GetAll(); foreach (ProvinceInfo info in provinceList) { this.txtProvince.Properties.Items.Add(new CListItem(info.ProvinceName, info.ID.ToString())); } this.txtProvince.Properties.EndUpdate(); ..................... }
然后在省份、城市的下拉列表控件的事件中實現其他行政區划數據的顯示即可。
private void txtProvince_SelectedIndexChanged(object sender, EventArgs e) { CListItem item = this.txtProvince.SelectedItem as CListItem; if (item != null) { string provinceId = item.Value; this.txtCity.Properties.BeginUpdate(); this.txtCity.Properties.Items.Clear(); List<CityInfo> cityList = BLLFactory<City>.Instance.GetCitysByProvinceID(provinceId); foreach (CityInfo info in cityList) { this.txtCity.Properties.Items.Add(new CListItem(info.CityName, info.ID.ToString())); } this.txtCity.Properties.EndUpdate(); } } private void txtCity_SelectedIndexChanged(object sender, EventArgs e) { CListItem item = this.txtCity.SelectedItem as CListItem; if (item != null) { string cityId = item.Value; this.txtDistrict.Properties.BeginUpdate(); this.txtDistrict.Properties.Items.Clear(); List<DistrictInfo> districtList = BLLFactory<District>.Instance.GetDistrictByCity(cityId); foreach (DistrictInfo info in districtList) { this.txtDistrict.Properties.Items.Add(new CListItem(info.DistrictName, info.ID.ToString())); } this.txtDistrict.Properties.EndUpdate(); } }
4、行政區划sql數據腳本
全國地區的省份、城市、區縣這些新政區划的最新Sql腳本下載地址如下所示,希望對大家有幫助。
http://files.cnblogs.com/wuhuacong/CityDistrict.rar
上面的省市區縣的行政區划腳本數據,是我通過花了幾乎一天的時間進行整理核對的,數據來源於國家統計局2013最新的行政區划數據,絕對有保證,如果對你有幫助,請順手推薦一下,讓更多的人受益,謝謝支持。