| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- using System;
- using IwbZero.IwbDataQuery;
- using IwbZero.ToolCommon.StringModel;
- namespace IwbZero.IwbBase
- {
- public class IwbRtVariable
- {
- private object _varValue;
- public IwbRtVariable(string pcVarName, string pcVarType= "NCHAR")
- {
- VarName = pcVarName.UAndT();
- DataType = new IwbDataType(pcVarType);
- }
- public string VarName { get; }
- public object VarValue
- {
- get
- {
- if (_varValue == null)
- {
- if (DataType.IsDateTime)
- {
- _varValue = "".StrToDt();
- }
- else if (DataType.IsNumeric)
- {
- _varValue = 0;
- }
- else
- {
- _varValue = "";
- }
- }
- return _varValue;
- }
- set
- {
- if (DataType.IsDateTime)
- {
- if (value == null)
- {
- _varValue = "".StrToDt();
- }
- else if (value is DateTime)
- {
- _varValue = value;
- }
- else
- {
- _varValue = value.ToString().StrToDt();
- }
- }
- else if (DataType.IsNumeric)
- {
- if (value == null)
- {
- _varValue = 0;
- }
- else
- {
- _varValue = value.ToString().ValD();
- }
- }
- else if (value == null)
- {
- _varValue = "";
- }
- else
- {
- _varValue = value;
- }
- }
- }
- [Newtonsoft.Json.JsonIgnore]
- public IwbDataType DataType { get; }
- public IwbRtVariable SetValue(object value)
- {
- VarValue = value;
- return this;
- }
- public string GetStringValue()
- {
- string str = "";
- if (_varValue != null)
- {
- str = _varValue.ToString();
- }
- if (DataType.IsDateTime && (_varValue is DateTime dateTime))
- {
- str = dateTime.DtToStr();
- }
- return str;
- }
- public static IwbRtVariable Str2Variable(string str)
- {
- var arr = str.StrToArray(":");
- string id = "", type = "NCHAR", value = "";
- if (arr.Length > 0)
- {
- id = arr[0].UAndT();
- }
- if (arr.Length > 1)
- {
- type = arr[1];
- }
- if (arr.Length > 2)
- {
- value = arr[2];
- }
- var variable = new IwbRtVariable(id, type).SetValue(value);
- return variable;
- }
- public static string Variable2Str(IwbRtVariable v)
- {
- return $"[{v.VarName}:{v.DataType.TypeString}:{v.GetStringValue()}]";
- }
- }
- }
|