Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }