using System; using System.Collections.Generic; using System.Text; using SysBaseLibs; namespace SysDataLibs { public class TransFrame { private string _SourceField = ""; private string _DescTableName = ""; private string _DescField = ""; private string _DescDisplayField = ""; public TransFrame(string pcSourceField) { _SourceField = pcSourceField.Trim(); } public TransFrame(string pcSourceField, string pcDescTableName, string pcDescField, string pcDescDisplayField) { _SourceField = pcSourceField.Trim(); _DescTableName = pcDescTableName.Trim(); _DescField = pcDescField.Trim(); _DescDisplayField = pcDescDisplayField.Trim(); } public string SourceField { get { return _SourceField; } } private string _DescSQL = ""; public string DescSQL { get { if (_DescSQL.Trim().Length == 0) return " select " + _DescField + "," + _DescDisplayField + " from " + _DescTableName; else return _DescSQL; } set { _DescSQL = value; } } public bool IsAvail { get { return (_SourceField.Length > 0 && _DescTableName.Length > 0 && _DescField.Length > 0 && _DescDisplayField.Length > 0); } } private rsQuery _Query = null; public bool CreatQuery(DBConnSql poConn) { bool lbRetVal = false; if (DataTransType == DataTransType.Trans) { if (poConn != null && poConn.IsOpened && IsAvail) { _Query = poConn.OpenQuery(this.DescSQL); if (_Query != null && _Query.IsOpened && _Query.RecCount > 0) lbRetVal = true; ; } } return lbRetVal; } public string GetDisplayValue(string pcValue) { string lbRetVal = "--"; switch (DataTransType) { case DataTransType.Trans: if (_Query.GoToRecordByFieldsAndValues(_DescField, pcValue)) { lbRetVal = _Query.GetString(_DescDisplayField); } break; case DataTransType.Format: if (_DataType == mDataType.DateTime) { lbRetVal = MyUtils.FormatDateTime(pcValue, _TransCode); } else if (_DataType == mDataType.Double) { lbRetVal = Math.Round(Utils.ValD(pcValue), _DotNum)+""; } else if (_DataType == mDataType.Currency) { lbRetVal = Utils.ValD(pcValue).ToString("C"); } break; } //string.Format return lbRetVal; } private int _DotNum = 0; public int DotNum { set { _DotNum = value; } get { return _DotNum; } } private DataTransType _DataTrans = DataTransType.Trans; public DataTransType DataTransType { get { return _DataTrans; } set { _DataTrans = value; } } private string _TransCode; public string TransCode { get { return _TransCode; } set { _TransCode = value; } } private mDataType _DataType = mDataType.DateTime; public mDataType DataType { get { return _DataType; } set { _DataType = value; if (_DataType == mDataType.DateTime) { _TransCode = "d"; } else if (_DataType == mDataType.Currency) { _TransCode = "C"; } } } } public enum mDataType { Int = 0, Double = 1, DateTime = 2, Currency = 3 } public enum DataTransType { Trans = 0, Format = 1 } }