예제 #1
0
        /// <summary>
        /// Write value, efficiently casting to proper type as required by WriteValue
        /// </summary>
        /// <param name="tw"></param>
        /// <param name="vo"></param>
        /// <param name="typeId"></param>

        void StdfWriteValue(
            StdfTableWriter tw,
            StdfValueType type,
            object vo)
        {
            if (vo == null)
            {
                tw.WriteValue(null);
                StdfValueString += "null, ";
            }

            else
            {
                switch (type.TypeId)
                {
                case StdfValueTypeId.BoolType: tw.WriteValue((bool)vo); break;

                case StdfValueTypeId.IntType: tw.WriteValue((int)vo); break;

                case StdfValueTypeId.LongType: tw.WriteValue((long)vo); break;

                case StdfValueTypeId.FloatType: tw.WriteValue((float)vo); break;

                case StdfValueTypeId.DoubleType: tw.WriteValue((double)vo); break;

                case StdfValueTypeId.DateTimeType: tw.WriteValue((DateTime)vo); break;

                case StdfValueTypeId.DateType: tw.WriteValue((DateTime)vo); break;

                case StdfValueTypeId.StringType: tw.WriteValue((String)vo); break;

                case StdfValueTypeId.DecimalType: tw.WriteValue((Decimal)vo); break;

                case StdfValueTypeId.UnknownType:
                case StdfValueTypeId.TimeType:
                case StdfValueTypeId.TimeSpanType:
                case StdfValueTypeId.BinaryType:
                default:
                    tw.WriteValue(null);
                    break;
                }

                StdfValueString += vo.ToString() + "\r\n";
            }

            StdfWriteValueCount++;
            return;
        }
예제 #2
0
        /// <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;
        }