/// <summary> /// Save table defintion to <paramref name="fileName"/> /// </summary> /// <param name="fileName">File name where save the table definition</param> public override void Save(string fileName) { MakePath(System.IO.Path.GetDirectoryName(fileName)); dao.DBEngine dbEngine = new dao.DBEngine(); dao.Database db = dbEngine.OpenDatabase(App.FileName); dao.TableDef tbDef = db.TableDefs[Name]; using (StreamWriter sw = new StreamWriter(fileName)) { ExportObject export = new ExportObject(sw); //export.ListProperties(tbDef.Name, tbDef.Properties); export.WriteBegin(ClassName, TableName); export.WriteProperty("Attributes", tbDef.Attributes); export.WriteProperty("Connect", tbDef.Connect); export.WriteProperty("SourceTableName", tbDef.SourceTableName); export.WriteProperty("ValidationRule", tbDef.ValidationRule); export.WriteProperty("ValidationText", tbDef.ValidationText); PropertyCollectionDao propColl = new PropertyCollectionDao(tbDef, tbDef.Properties); propColl.TryWriteProperty(export, "Description"); propColl.TryWriteProperty(export, "ConflictTable"); propColl.TryWriteProperty(export, "ReplicaFilter"); propColl.TryWriteProperty(export, "Orientation"); propColl.TryWriteProperty(export, "OrderByOn"); propColl.TryWriteProperty(export, "SubdatasheetName"); propColl.TryWriteProperty(export, "LinkChildFields"); propColl.TryWriteProperty(export, "LinkMasterFields"); propColl.TryWriteProperty(export, "SubdatasheetHeight"); propColl.TryWriteProperty(export, "SubdatasheetExpanded"); propColl.TryWriteProperty(export, "DefaultView"); propColl.TryWriteProperty(export, "OrderBy"); export.WriteBegin("Fields"); foreach (dao.Field field in tbDef.Fields) { export.WriteObject(new Field(field)); } export.WriteEnd(); //End Fields export.WriteBegin("Indexes"); //TODO: Add new option menu to ignore linked tables errors if the linked document do not exist // Check if the linked document exists before iterate the indexes collection foreach (dao.Index daoIndex in tbDef.Indexes) { export.WriteObject(new Index(daoIndex)); } export.WriteEnd(); //End Indexes export.WriteEnd(); //End Table } db.Close(); }
public override void SaveProperties(ExportObject export) { PropertyCollectionDao propColl = new PropertyCollectionDao(daoField, daoField.Properties); propColl.TryWriteProperty(export, "Attributes"); propColl.TryWriteProperty(export, "CollatingOrder"); propColl.TryWriteProperty(export, "Type"); propColl.TryWriteProperty(export, "Name"); propColl.TryWriteProperty(export, "OrdinalPosition"); propColl.TryWriteProperty(export, "Size"); propColl.TryWriteProperty(export, "SourceField"); propColl.TryWriteProperty(export, "SourceTable"); propColl.TryWriteProperty(export, "DataUpdatable"); propColl.TryWriteProperty(export, "DefaultValue"); propColl.TryWriteProperty(export, "ValidationRule"); propColl.TryWriteProperty(export, "ValidationText"); propColl.TryWriteProperty(export, "Required"); propColl.TryWriteProperty(export, "AllowZeroLength"); propColl.TryWriteProperty(export, "VisibleValue"); propColl.TryWriteProperty(export, "Description"); propColl.TryWriteProperty(export, "DecimalPlaces"); propColl.TryWriteProperty(export, "DisplayControl"); if (propColl.PropertyHasValue("DisplayControl")) { switch (Convert.ToInt32(daoField.Properties["DisplayControl"].Value)) { case 110: //listbox propColl.TryWriteProperty(export, "RowSourceType"); propColl.TryWriteProperty(export, "RowSource"); propColl.TryWriteProperty(export, "BoundColumn"); propColl.TryWriteProperty(export, "ColumnCount"); propColl.TryWriteProperty(export, "ColumnHeads"); propColl.TryWriteProperty(export, "ColumnWidths"); break; case 111: //dropdown list propColl.TryWriteProperty(export, "RowSourceType"); propColl.TryWriteProperty(export, "RowSource"); propColl.TryWriteProperty(export, "BoundColumn"); propColl.TryWriteProperty(export, "ColumnCount"); propColl.TryWriteProperty(export, "ColumnHeads"); propColl.TryWriteProperty(export, "ColumnWidths"); propColl.TryWriteProperty(export, "ListRows"); propColl.TryWriteProperty(export, "ListWidth"); propColl.TryWriteProperty(export, "LimitToList"); break; } } propColl.TryWriteProperty(export, "ColumnWidth"); propColl.TryWriteProperty(export, "ColumnOrder"); propColl.TryWriteProperty(export, "ColumnHidden"); propColl.TryWriteProperty(export, "Format"); propColl.TryWriteProperty(export, "Caption"); propColl.TryWriteProperty(export, "UnicodeCompression"); propColl.TryWriteProperty(export, "SmartTags"); propColl.TryWriteProperty(export, "InputMask"); }