/// <summary> /// Write out a single value /// </summary> /// <param name="tw"></param> /// <param name="type"></param> /// <param name="vo"></param> void WriteValue( SpotfireDataFileTableWriter tw, SpotfireDataFileValueType type, object vo) { if (tw.StdfTw != null) { if (type != null) { StdfWriteValue(tw.StdfTw, type.StdfValueType, vo); } else { tw.StdfTw.WriteLine(); } } if (tw.SbdfTw != null) { if (type != null) { SbdfAddValue(tw.SbdfTw, type.SbdfValueType, vo); } else { ; // do nothing for binary mode } } return; }
} // WriteIndividualSpotfireDataFilesForEachQueryTable /// <summary> /// Build and add the metadata for a column /// </summary> /// <param name="qc"></param> /// <param name="nameSuffix"></param> /// <param name="extraColNameSuffix"></param> /// <param name="mdb"></param> /// <param name="nValueMetaColumns"></param> void AddMetadataForColumn( QueryColumn qc, string colName, string extraColNameSuffix, SpotfireDataFileMetadataBuilder mdb, ExportParms ep, HashSet <MetaColumn> nValueMetaColumns) { QueryTable qt = qc.QueryTable; MetaTable mt = qt.MetaTable; MetaColumn mc = qc.MetaColumn; SpotfireDataFileValueType sdfType = GetSpotfireDataFileType(mc); qc.SpotfireExportType = sdfType; // Structures get added as string type columns but the ContentType property for the DataTable Columns should be set to // chemical/x-mdl-molfile, chemical/x-mdl-chime or chemical/x-daylight-smiles // Also for visualizations columns that display structures the renderer must be set to a structure renderer // if the structure format is chime (molfile and smiles autodetect) if (mc.DataType == MetaColumnType.Structure) { mdb.AddColumn(colName + extraColNameSuffix, sdfType); } // qualified number -> 1 to 3 Spotfire columns else if (mc.DataType == MetaColumnType.QualifiedNo) { if (QnSubcolumns.IsSplitFormat(ep.QualifiedNumberSplit)) { mdb.AddColumn(colName + "_PRFX_TXT" + extraColNameSuffix, SpotfireDataFileValueType.String); // qualifier mdb.AddColumn(colName + extraColNameSuffix, SpotfireDataFileValueType.Double); // main value, use basic colname if (mt.SummarizedExists && mt.UseSummarizedData) { mdb.AddColumn(colName + "_NBR_VALS_CNSDRD" + extraColNameSuffix, SpotfireDataFileValueType.Int); // number of values included if summary value nValueMetaColumns.Add(mc); } } else // combined QNs { mdb.AddColumn(colName + extraColNameSuffix, SpotfireDataFileValueType.String); // combined value } } // Other column types use single column in Spotfire of the specified type else { mdb.AddColumn(colName + extraColNameSuffix, sdfType); } return; }
public void AddColumn(string columnName, SpotfireDataFileValueType dataType) { if (stdfMdb != null) { stdfMdb.AddColumn((new StdfColumnMetadata(columnName, dataType.StdfValueType))); } if (sbdfMdb != null) { sbdfMdb.AddColumn((new SbdfColumnMetadata(columnName, dataType.SbdfValueType))); } }
/// <summary> /// Get Spotfire SBdf (Binary Data Format) column type /// </summary> /// <param name="mc"></param> /// <returns></returns> SpotfireDataFileValueType GetSpotfireDataFileType(MetaColumn mc) { StdfValueType tt; SbdfValueType bt; GetSpotfireDataTypes(mc, out tt, out bt); SpotfireDataFileValueType vt = new SpotfireDataFileValueType(); if (TextFormat) { vt.StdfValueType = tt; } else { vt.SbdfValueType = bt; } return(vt); }