You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

170 lines
4.2 KiB
Plaintext

using System;
using System.Data;
using BP.DA;
using BP.En;
using BP.Port;
namespace BP.CN
{
/// <summary>
/// 城市编码
/// </summary>
public class AreaAttr : EntityNoNameAttr
{
#region 基本属性
public const string FK_PQ = "FK_PQ";
public const string FK_SF = "FK_SF";
public const string Grade = "Grade";
public const string Names = "Names";
#endregion
}
/// <summary>
/// 城市编码
/// </summary>
public class Area :EntityNoName
{
#region 基本属性
public string Names
{
get
{
return this.GetValStrByKey(CityAttr.Names);
}
}
public string FK_PQ
{
get
{
return this.GetValStrByKey(AreaAttr.FK_PQ);
}
}
public string FK_SF
{
get
{
return this.GetValStrByKey(AreaAttr.FK_SF);
}
}
#endregion
#region 构造函数
public override UAC HisUAC
{
get
{
UAC uac = new UAC();
uac.OpenForSysAdmin();
return uac;
}
}
/// <summary>
/// 城市编码
/// </summary>
public Area(){}
public Area(string no):base(no)
{
}
/// <summary>
/// Map
/// </summary>
public override Map EnMap
{
get
{
if (this._enMap != null)
return this._enMap;
Map map = new Map();
#region 基本属性
map.PhysicsTable = "CN_Area";
map.DepositaryOfMap = Depositary.Application;
map.DepositaryOfEntity = Depositary.None;
map.EnDesc = "城市编码";
map.EnType = EnType.App;
map.CodeStruct = "4";
#endregion
#region 字段
map.AddTBStringPK(AreaAttr.No, null, "编号", true, false, 0, 50, 50);
map.AddTBString(AreaAttr.Name, null, "名称", true, false, 0, 50, 200);
map.AddTBString(AreaAttr.Names, null, "小名", true, false, 0, 50, 200);
map.AddTBInt(AreaAttr.Grade, 0, "Grade", false, false);
map.AddDDLEntities(AreaAttr.FK_SF, null, "省份", new SFs(), true);
map.AddDDLEntities(AreaAttr.FK_PQ, null, "片区", new PQs(), true);
map.AddSearchAttr(AreaAttr.FK_SF);
#endregion
this._enMap = map;
return this._enMap;
}
}
#endregion
public static string GenerAreaNoByName(string name1, string name2, string oldcity)
{
string fk_city1 = BP.CN.Area.GenerAreaNoByName(name1 , "");
string fk_city2 = BP.CN.Area.GenerAreaNoByName(name2 , "");
string fk_city = null;
if (fk_city1.Length >= 4)
{
fk_city = fk_city1;
}
if (fk_city1.Length == 2)
{
if (fk_city2.Contains(fk_city1))
fk_city = fk_city2;
else
fk_city = fk_city1;
}
return fk_city;
}
public static string GenerAreaNoByName(string name, string oldcity)
{
//进行模糊匹配地区,先找区县。
string sql = "SELECT NO FROM CN_Area WHERE indexof('" + name + "', names ) >0 ORDER BY GRADE DESC ";
string val = DBAccess.RunSQLReturnString(sql);
if (val != null)
return val;
else
return oldcity;
}
}
/// <summary>
/// 城市编码
/// </summary>
public class Areas : EntitiesNoName
{
#region 得到它的 Entity
/// <summary>
/// 得到它的 Entity
/// </summary>
public override Entity GetNewEntity
{
get
{
return new Area();
}
}
#endregion
#region 构造方法
/// <summary>
/// 城市编码s
/// </summary>
public Areas() { }
/// <summary>
/// 城市编码s
/// </summary>
/// <param name="sf">省份</param>
public Areas(string sf)
{
this.Retrieve(AreaAttr.FK_SF, sf);
}
#endregion
}
}