public static DataView GetExportEntityOptions(projectsettingsEntityexport pEntityExport, XmlDocument pDbDefinitionDocument) { DataTable dt = new DataTable(); dt.Columns.Add("Entity", typeof(string)); dt.Columns.Add("SortNo", typeof(int)); dt.Columns.Add("ExportStructure", typeof(bool)); dt.Columns.Add("ExportData", typeof(bool)); dt.Columns.Add("ExportDrop", typeof(bool)); dt.Columns["ExportStructure"].DefaultValue = false; dt.Columns["ExportData"].DefaultValue = false; dt.Columns["ExportDrop"].DefaultValue = false; ArrayList alEntity = new ArrayList(); if (pEntityExport.exportentities != null) { alEntity.AddRange(pEntityExport.exportentities); } ArrayList alEntityName = new ArrayList(); foreach (XmlNode node in pDbDefinitionDocument.SelectNodes("/db-definition/entities/entity")) { string strEntity = node.Attributes["name"].Value; alEntityName.Add(strEntity); projectsettingsEntityexportExportentity expentity = null; foreach (projectsettingsEntityexportExportentity e in alEntity) { if (e.entity.Equals(strEntity)) { expentity = e; break; } } if (expentity == null) { expentity = new projectsettingsEntityexportExportentity(); expentity.entity = strEntity; expentity.exportstructure = true; expentity.exportdata = true; expentity.exportdrop = false; alEntity.Add(expentity); } DataRow row = dt.NewRow(); row["Entity"] = expentity.entity; if (PVFormatUtil.ParseInt(expentity.sortno) != 0) { row["SortNo"] = expentity.sortno; } row["ExportStructure"] = expentity.exportstructure; row["ExportData"] = expentity.exportdata; row["ExportDrop"] = expentity.exportdrop; dt.Rows.Add(row); } foreach (projectsettingsEntityexportExportentity expentity in alEntity) { if (!alEntityName.Contains(expentity.entity)) { alEntityName.Add(expentity.entity); DataRow row = dt.NewRow(); row["Entity"] = expentity.entity; if (PVFormatUtil.ParseInt(expentity.sortno) != 0) { row["SortNo"] = expentity.sortno; } row["ExportStructure"] = expentity.exportstructure; row["ExportData"] = expentity.exportdata; row["ExportDrop"] = expentity.exportdrop; dt.Rows.Add(row); } } pEntityExport.exportentities = (projectsettingsEntityexportExportentity[])alEntity.ToArray(typeof(projectsettingsEntityexportExportentity)); DataView dv = new DataView(dt); dv.AllowEdit = true; dv.AllowNew = true; dv.AllowDelete = true; dv.Sort = "SortNo, Entity"; return(dv); }
public static DataView GetEnumeration(type_generationGenerateentity pEntity, string pDbDefinitionFilename, ref bool pfDefChanged) { pfDefChanged = false; DataTable dt = new DataTable(); dt.Columns.Add("ID", typeof(int)); dt.Columns.Add("Identifier", typeof(string)); dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Description", typeof(string)); dt.Columns.Add("Generate", typeof(bool)); if (pDbDefinitionFilename.ToLower().EndsWith(".mdb") || pDbDefinitionFilename.ToLower().EndsWith(".accdb")) { String strConnect = DBServerHelper.getDatabaseOleDbConnectionString(pDbDefinitionFilename); OleDbConnection con = new OleDbConnection(strConnect); con.Open(); OleDbCommand cmd = con.CreateCommand(); cmd.CommandType = CommandType.TableDirect; cmd.CommandText = pEntity.entity; OleDbDataReader dr = cmd.ExecuteReader(); ArrayList alEnum = new ArrayList(); if (pEntity.enumerationentries != null) { alEnum.AddRange(pEntity.enumerationentries); } int intRowCount = 0; while (dr.Read()) { int intID = 0; string strName = null; string strDescription = null; for (int intField = 0; intField < dr.FieldCount; intField++) { object objValue = dr.GetValue(intField); if ((objValue is int) && intID == 0) { intID = (int)objValue; } else if ((objValue is string) && strName == null) { strName = (string)objValue; } else if ((objValue is string) && strDescription == null) { strDescription = (string)objValue; } if (intID != 0 && strName != null && strDescription != null) { break; } } type_generationGenerateentityEnumerationentry enumEntry = null; foreach (type_generationGenerateentityEnumerationentry e in alEnum) { if (PVFormatUtil.ParseInt(e.id) == intID) { enumEntry = e; break; } } if (enumEntry == null) { pfDefChanged = true; if (strName == null) { strName = "enum" + intID.ToString(); } if (strDescription == null) { strDescription = strName; } enumEntry = new type_generationGenerateentityEnumerationentry(); enumEntry.id = intID.ToString(); enumEntry.identifier = GetIdentifier(strName); enumEntry.name = strName; enumEntry.description = strDescription; enumEntry.generate = true; alEnum.Add(enumEntry); } DataRow row = dt.NewRow(); row["ID"] = PVFormatUtil.ParseInt(enumEntry.id); row["Identifier"] = enumEntry.identifier; row["Name"] = enumEntry.name; row["Description"] = enumEntry.description; row["Generate"] = enumEntry.generate; dt.Rows.Add(row); intRowCount++; if (intRowCount >= ENUMERATION_MAXROWS) { break; } } dr.Close(); con.Close(); pEntity.enumerationentries = (type_generationGenerateentityEnumerationentry[])alEnum.ToArray(typeof(type_generationGenerateentityEnumerationentry)); } DataView dv = new DataView(dt); dv.AllowEdit = true; dv.AllowNew = false; dv.AllowDelete = false; return(dv); }