static void SbdfAddValue( SbdfTableWriter bw, SbdfValueType type, object vo) { if (vo == null) { bw.AddValue(type.InvalidValue); // correct way to write null } else { switch (type.TypeId) { case SbdfValueTypeId.BoolType: bw.AddValue((bool)vo); break; case SbdfValueTypeId.IntType: bw.AddValue((int)vo); break; case SbdfValueTypeId.LongType: bw.AddValue((long)vo); break; case SbdfValueTypeId.FloatType: bw.AddValue((float)vo); break; case SbdfValueTypeId.DoubleType: bw.AddValue((double)vo); break; case SbdfValueTypeId.DateTimeType: bw.AddValue((DateTime)vo); break; case SbdfValueTypeId.DateType: bw.AddValue((DateTime)vo); break; case SbdfValueTypeId.StringType: bw.AddValue((String)vo); break; case SbdfValueTypeId.DecimalType: bw.AddValue((Decimal)vo); break; case SbdfValueTypeId.UnknownType: case SbdfValueTypeId.TimeType: case SbdfValueTypeId.TimeSpanType: case SbdfValueTypeId.BinaryType: default: bw.AddValue(type.InvalidValue); break; } } return; }
/// <summary> /// Get the Spotfire data types corresponding to a Mobius data type for /// DataColumns and Text and Binary file readers/writers /// </summary> /// <param name="mc"></param> /// <param name="tt"></param> /// <param name="bt"></param> void GetSpotfireDataTypes( MetaColumn mc, out StdfValueType tt, out SbdfValueType bt) { //out Spotfire.Dxp.Data.DataType dt, // dt = null; tt = null; bt = null; switch (mc.DataType) { case MetaColumnType.CompoundId: if (mc.StorageType == MetaColumnStorageType.String) { //dt = DataType.String; tt = StdfValueType.String; bt = SbdfValueType.String; } else { //dt = DataType.Integer; tt = StdfValueType.Int; bt = SbdfValueType.Int; } break; case MetaColumnType.Structure: // pass structures and Smiles or Chime //dt = DataType.String; tt = StdfValueType.String; bt = SbdfValueType.String; break; case MetaColumnType.Integer: //dt = DataType.Integer; tt = StdfValueType.Int; bt = SbdfValueType.Int; break; case MetaColumnType.Number: //dt = DataType.Real; tt = StdfValueType.Double; bt = SbdfValueType.Double; break; case MetaColumnType.QualifiedNo: //dt = DataType.Real; tt = StdfValueType.Double; bt = SbdfValueType.Double; break; case MetaColumnType.Date: //dt = DataType.Date; tt = StdfValueType.Date; bt = SbdfValueType.Date; break; default: //dt = DataType.String; tt = StdfValueType.String; bt = SbdfValueType.String; break; } return; }