private void __QuickSetupAttValue(int objectID, IDataRecord rec, GrWAtt_Value nvs) { nvs.ObjectID = objectID; nvs.SubID = __optionalSubAttFieldIndex >= 0 ? (short)rec.GetIntNumber(__optionalSubAttFieldIndex) : Blasewitz.NO_SUBID; nvs.AttributeID = ID7110_AttributeID; nvs.EntityID = EntityID; }
public GrWAtt_Value GetValue(int objectID, IDataRecord rec) { if (__valueFieldIndex < 0) { var t = DBConnectionPool.FieldIndices(Fields(), rec).ToArray(); __valueFieldIndex = t[0]; if (t.Length > 1) { __optionalSubAttFieldIndex = t[1]; } } //if (__valueFieldType == typeof(DBNull)) //{ // __valueFieldType = rec.GetFieldType(__valueFieldIndex); //} if (rec.IsDBNull(__valueFieldIndex)) { return(null); } GrWAtt_Value pva = null; switch (DataType) { case BlaVisumDataType.Integer: case BlaVisumDataType.Area: case BlaVisumDataType.Decimal: case BlaVisumDataType.Double: case BlaVisumDataType.Length: case BlaVisumDataType.Precise_time: case BlaVisumDataType.Time_period: case BlaVisumDataType.Velocity: var ivs = new PhaNumericAttribValue(); __QuickSetupAttValue(objectID, rec, ivs); var va = rec.GetValue(__valueFieldIndex); var c = va.GetType(); ivs.Value = Convert.ToDecimal(va); pva = ivs; break; case BlaVisumDataType.String: var nvs = new PhaStringAttribValue(); __QuickSetupAttValue(objectID, rec, nvs); nvs.Value = rec.GetString(__valueFieldIndex); pva = nvs; break; default: throw new InvalidExpressionException(); } return(pva); }
/// <summary> /// Formatuje w zadany sposób wejściową wartość /// </summary> /// <param name="pav"></param> /// <returns></returns> public string Format(GrWAtt_Value pav) { if (pav == null) { return(__DefStringValue); } var pnv = pav as PhaNumericAttribValue; switch (DataType) { case BlaVisumDataType.Area: return(pnv.Value.ToString(__Format, CultureInfo.InvariantCulture) + "km2"); case BlaVisumDataType.Length: return(pnv.Value.ToString(__Format, CultureInfo.InvariantCulture) + "km"); case BlaVisumDataType.Precise_time: return(pnv.Value.ToString(__Format, CultureInfo.InvariantCulture) + "s"); case BlaVisumDataType.String: var sav = pav as PhaStringAttribValue; return(sav != null ? sav.Value : ""); case BlaVisumDataType.Time_period: return(pnv.Value.ToString("F0", CultureInfo.InvariantCulture) + "s"); case BlaVisumDataType.Velocity: return(pnv.Value.ToString(__Format, CultureInfo.InvariantCulture) + "km/h"); default: //int, dec, double... return(pnv.Value.ToString(__Format, CultureInfo.InvariantCulture)); } throw new IndexOutOfRangeException(); }