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.

444 lines
12 KiB
Plaintext

11 months ago
using System;
using System.Collections;
using BP.DA;
using BP.En;
namespace BP.Sys
{
/// <summary>
/// 全局变量
/// </summary>
public class GloVarAttr : EntityNoNameAttr
{
/// <summary>
/// Val
/// </summary>
public const string Val = "Val";
/// <summary>
/// Note
/// </summary>
public const string Note = "Note";
/// <summary>
/// GroupKey
/// </summary>
public const string GroupKey = "GroupKey";
/// <summary>
/// 顺序号
/// </summary>
public const string Idx = "Idx";
}
/// <summary>
/// 全局变量
/// </summary>
public class GloVar : EntityNoName
{
#region 属性
public object ValOfObject
{
get
{
return this.GetValByKey(GloVarAttr.Val);
}
set
{
this.SetValByKey(GloVarAttr.Val, value);
}
}
public string Val
{
get
{
return this.GetValStringByKey(GloVarAttr.Val);
}
set
{
this.SetValByKey(GloVarAttr.Val, value);
}
}
public float ValOfFloat
{
get
{
try
{
return this.GetValFloatByKey(GloVarAttr.Val);
}
catch
{
return 0;
throw new Exception("@" + this.Name + ", 没有设置默认值." + this.Val);
}
}
set
{
this.SetValByKey(GloVarAttr.Val, value);
}
}
public int ValOfInt
{
get
{
try
{
return this.GetValIntByKey(GloVarAttr.Val);
}
catch (Exception ex)
{
return 0;
throw new Exception("@" + this.Name + ", 没有设置默认值." + this.Val);
}
}
set
{
this.SetValByKey(GloVarAttr.Val, value);
}
}
public decimal ValOfDecimal
{
get
{
try
{
return this.GetValDecimalByKey(GloVarAttr.Val);
}
catch
{
return 0;
throw new Exception("@" + this.Name + ", 没有设置默认值." + this.Val);
}
}
set
{
this.SetValByKey(GloVarAttr.Val, value);
}
}
public bool ValOfBoolen
{
get
{
return this.GetValBooleanByKey(GloVarAttr.Val);
}
set
{
this.SetValByKey(GloVarAttr.Val, value);
}
}
/// <summary>
/// note
/// </summary>
public string Note
{
get
{
return this.GetValStringByKey(GloVarAttr.Note);
}
set
{
this.SetValByKey(GloVarAttr.Note, value);
}
}
public int Idx
{
get
{
return this.GetValIntByKey(GloVarAttr.Idx);
}
set
{
this.SetValByKey(GloVarAttr.Idx, value);
}
}
/// <summary>
/// 分组值
/// </summary>
public string GroupKey
{
get
{
return this.GetValStringByKey(GloVarAttr.GroupKey);
}
set
{
this.SetValByKey(GloVarAttr.GroupKey, value);
}
}
#endregion
#region 构造方法
/// <summary>
/// 全局变量
/// </summary>
public GloVar()
{
}
/// <summary>
/// 全局变量
/// </summary>
/// <param name="no"></param>
public GloVar(string no)
{
this.No = no;
this.Retrieve();
}
/// <summary>
/// 键值
/// </summary>
/// <param name="key">key</param>
/// <param name="isNullAsVal"></param>
public GloVar(string key, object isNullAsVal)
{
try
{
this.No = key;
this.Retrieve();
}
catch
{
if (this.RetrieveFromDBSources() == 0)
{
this.Val = isNullAsVal.ToString();
this.Insert();
}
}
}
/// <summary>
/// EnMap
/// </summary>
public override Map EnMap
{
get
{
if (this._enMap != null)
return this._enMap;
Map map = new Map("Sys_GloVar", "全局变量");
map.AddTBStringPK(GloVarAttr.No, null, "键", true, false, 1, 50, 20);
map.AddTBString(GloVarAttr.Name, null, "名称", true, false, 0, 120, 20);
map.AddTBString(GloVarAttr.Val, null, "值", true, false, 0, 4000, 20, true);
map.AddTBString(GloVarAttr.GroupKey, null, "分组值", true, false, 0, 120, 20, true);
map.AddTBStringDoc(GloVarAttr.Note, null, "说明", true, false, true);
map.AddTBInt(GloVarAttr.Idx, 0, "顺序号", true, true);
this._enMap = map;
return this._enMap;
}
}
#endregion
#region 公共属性.
/// <summary>
/// 公共假期
/// </summary>
private static string _Holidays = null;
/// <summary>
/// 一个月份的假期.
/// </summary>
public static string Holidays
{
get
{
if (_Holidays != null)
return _Holidays;
GloVar en = new GloVar();
en.No = "Holiday";
int i = en.RetrieveFromDBSources();
if (i == 0)
_Holidays = "";
else
_Holidays = en.Val;
return _Holidays;
}
set
{
_Holidays = value;
}
}
#endregion
}
/// <summary>
/// 全局变量s
/// </summary>
public class GloVars : EntitiesNoName
{
#region get value by key
/// <summary>
/// 设置配置文件
/// </summary>
/// <param name="key">key</param>
/// <param name="val">val</param>
public static int SetValByKey(string key, object val)
{
GloVar en = new GloVar(key, val);
en.ValOfObject = val;
return en.Update();
}
/// <summary>
/// 获取html数据
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public static string GetValByKeyHtml(string key)
{
return DataType.ParseText2Html(GloVars.GetValByKey(key));
}
public static string GetValByKey(string key)
{
foreach (GloVar cfg in GloVars.MyGloVars)
{
if (cfg.No == key)
return cfg.Val;
}
throw new Exception("error key=" + key);
}
/// <summary>
/// 得到一个key.
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public static string GetValByKey(string key, string isNullAs)
{
foreach (GloVar cfg in GloVars.MyGloVars)
{
if (cfg.No == key)
return cfg.Val;
}
GloVar en = new GloVar(key, isNullAs);
//GloVar en = new GloVar(key);
return en.Val;
}
public static int GetValByKeyInt(string key, int isNullAs)
{
foreach (GloVar cfg in GloVars.MyGloVars)
{
if (cfg.No == key)
return cfg.ValOfInt;
}
GloVar en = new GloVar(key, isNullAs);
//GloVar en = new GloVar(key);
return en.ValOfInt;
}
public static int GetValByKeyDecimal(string key, int isNullAs)
{
foreach (GloVar cfg in GloVars.MyGloVars)
{
if (cfg.No == key)
return cfg.ValOfInt;
}
GloVar en = new GloVar(key, isNullAs);
//GloVar en = new GloVar(key);
return en.ValOfInt;
}
public static bool GetValByKeyBoolen(string key, bool isNullAs)
{
foreach (GloVar cfg in GloVars.MyGloVars)
{
if (cfg.No == key)
return cfg.ValOfBoolen;
}
int val = 0;
if (isNullAs)
val = 1;
GloVar en = new GloVar(key, val);
return en.ValOfBoolen;
}
public static float GetValByKeyFloat(string key, float isNullAs)
{
foreach (GloVar cfg in GloVars.MyGloVars)
{
if (cfg.No == key)
return cfg.ValOfFloat;
}
GloVar en = new GloVar(key, isNullAs);
return en.ValOfFloat;
}
private static GloVars _MyGloVars = null;
public static GloVars MyGloVars
{
get
{
if (_MyGloVars == null)
{
_MyGloVars = new GloVars();
_MyGloVars.RetrieveAll();
}
return _MyGloVars;
}
}
public static void ReSetVal()
{
_MyGloVars = null;
}
#endregion
#region 风格处理.
#endregion
#region 构造
/// <summary>
/// 全局变量s
/// </summary>
public GloVars()
{
}
/// <summary>
/// 全局变量s
/// </summary>
/// <param name="fk_mapdata">s</param>
public GloVars(string fk_mapdata)
{
if (BP.Difference.SystemConfig.isDebug)
this.Retrieve(MapAttrAttr.FK_MapData, fk_mapdata);
else
this.RetrieveFromCache(MapAttrAttr.FK_MapData, (object)fk_mapdata);
}
/// <summary>
/// 得到它的 Entity
/// </summary>
public override Entity GetNewEntity
{
get
{
return new GloVar();
}
}
#endregion
#region 为了适应自动翻译成java的需要,把实体转换成List.
/// <summary>
/// 转化成 java list,C#不能调用.
/// </summary>
/// <returns>List</returns>
public System.Collections.Generic.IList<GloVar> ToJavaList()
{
return (System.Collections.Generic.IList<GloVar>)this;
}
/// <summary>
/// 转化成list
/// </summary>
/// <returns>List</returns>
public System.Collections.Generic.List<GloVar> Tolist()
{
System.Collections.Generic.List<GloVar> list = new System.Collections.Generic.List<GloVar>();
for (int i = 0; i < this.Count; i++)
{
list.Add((GloVar)this[i]);
}
return list;
}
#endregion 为了适应自动翻译成java的需要,把实体转换成List.
}
}