private void loadTableStyleField()
        {
            cbRefStyleField.Items.Clear();
            cbIntervalStyleField.Items.Clear();
            cbAngleColumn.Items.Clear();
            cbAngleColumn.Items.Add(new itemObj(-1, "<Не указано>", null));
            cbAngleColumn.SelectedIndex = 0;
            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = String.Format(@"SELECT 
                                            tfi.id, tfi.name_db, tfi.name_map 
                                            FROM sys_scheme.table_field_info tfi
                                            INNER JOIN sys_scheme.table_info ti
                                            ON ti.id = tfi.id_table
                                            WHERE (tfi.type_field = 1 OR tfi.type_field = 6) 
                                                AND tfi.id_table = {0} AND tfi.name_db <> ti.pk_fileld", id);
            sqlCmd.Execute(false);
            while (sqlCmd.CanRead())
            {
                itemObj item = new itemObj(sqlCmd.GetInt32(0), sqlCmd.GetValue <string>(1), sqlCmd.GetValue <string>(2));
                cbRefStyleField.Items.Add(item);
                cbIntervalStyleField.Items.Add(item);
                cbAngleColumn.Items.Add(item);
            }
            sqlCmd.Close();
        }
        private void cbRefTable_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbRefTable.SelectedItem != null)
            {
                cbRefLink.Items.Clear();
                cbRefFieldName.Items.Clear();
                cbFileNameColumn.Items.Clear();

                using (SqlWork sqlCmd = new SqlWork())
                {
                    sqlCmd.sql = "SELECT id, name_db, name_map, type_field FROM " + Program.scheme + ".table_field_info WHERE id_table = " + ((itemObj)cbRefTable.SelectedItem).Id_o.ToString();
                    sqlCmd.Execute(false);

                    while (sqlCmd.CanRead())
                    {
                        int     type_field = sqlCmd.GetInt32("type_field");
                        itemObj item       = new itemObj(sqlCmd.GetInt32(0), sqlCmd.GetValue <string>(1), sqlCmd.GetValue <string>(2));

                        if (type_field == 1 || type_field == 6)
                        {
                            cbRefLink.Items.Add(item);
                        }
                        else if (type_field == 2)
                        {
                            cbRefFieldName.Items.Add(item);
                            cbFileNameColumn.Items.Add(item);
                        }
                    }
                }
            }
        }
Пример #3
0
        /// <summary>
        /// Удаляет группу с определенным ID, пересчитывает их порядок
        /// </summary>
        /// <param name="id">ID группы</param>
        public void DeleteGroup(int id)
        {
            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = "DELETE FROM " + Program.scheme + ".table_groups WHERE id=" + id.ToString() + " RETURNING name_group";
            try
            {
                sqlCmd.Execute(false);
                if (sqlCmd.CanRead())
                {
                    string name_gr = sqlCmd.GetString(0);
                    Rekod.Classes.workLogFile.writeLogFile("deleted group --> id=" + id.ToString() + " name_group=" + name_gr, false, false);
                }
            }
            catch (NpgsqlException ex)
            {
                if (ex.Code.CompareTo("42501") == 0)
                {
                    MessageBox.Show(Rekod.Properties.Resources.GF_ErrorCreateGroup);
                }
                else
                {
                    throw ex;
                }
            }
            finally
            {
                sqlCmd.Close();
            }

            List <itemObjOrdered> newGroupsOrder = getRecalcedGroupsOrderList();

            SetGroupsOrder(newGroupsOrder);
        }
Пример #4
0
        public List <itemObj> GetGroupsWithTable(int id, bool with)
        {
            List <itemObj> list_of_tables = new List <itemObj>();
            SqlWork        sqlCmd         = new SqlWork();

            if (with)
            {
                sqlCmd.sql = "SELECT * FROM " + Program.scheme + ".get_group_list_for_table(" + id.ToString() + ")";
            }
            else
            {
                sqlCmd.sql = "SELECT * FROM " + Program.scheme + ".get_group_list_no_for_table(" + id.ToString() + ")";
            }

            try
            {
                sqlCmd.Execute(false);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                sqlCmd.Close();
                return(null);
            }
            while (sqlCmd.CanRead())
            {
                int     id_table   = sqlCmd.GetInt32(0);
                string  name_group = sqlCmd.GetString(1);
                string  descript   = sqlCmd.GetString(2);
                itemObj io         = new itemObj(id_table, name_group, descript);
                list_of_tables.Add(io);
            }
            sqlCmd.Close();
            return(list_of_tables);
        }
Пример #5
0
        public void reloadTables()
        {
            listBox1.Items.Clear();
            listBox2.Items.Clear();

            List <itemObjOrdered> list_of_tables         = new List <itemObjOrdered>();
            List <itemObjOrdered> list_of_tables_visible = new List <itemObjOrdered>();

            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = "SELECT id,name_map,order_num,default_visibl FROM " + Program.scheme + ".table_info WHERE type=1 ORDER BY order_num";
            sqlCmd.Execute(false);
            while (sqlCmd.CanRead())
            {
                itemObjOrdered item = new itemObjOrdered(sqlCmd.GetInt32(0), sqlCmd.GetString(1), sqlCmd.GetBoolean(3).ToString(), sqlCmd.GetInt32(2));
                list_of_tables.Add(item);
                if (item.Layer.Contains("True"))
                {
                    list_of_tables_visible.Add(item);
                }
            }
            sqlCmd.Close();

            listBox1.Items.AddRange(list_of_tables_visible.ToArray());
            listBox2.Items.AddRange(list_of_tables.ToArray());

            label6.Text = changeTextOfCount(listBox1.Items.Count);
            label7.Text = changeTextOfCount(listBox2.Items.Count);
        }
Пример #6
0
        public itemObj GetGroup(int id_gr)
        {
            itemObj group  = null;
            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = "SELECT name_group,descript FROM " + Program.scheme + ".table_groups WHERE id=" + id_gr.ToString();
            try
            {
                sqlCmd.Execute(false);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                sqlCmd.Close();
                return(null);
            }
            if (sqlCmd.CanRead())
            {
                string name_gr = sqlCmd.GetString(0);
                string desc_gr = sqlCmd.GetString(1);
                group = new itemObj(id_gr, name_gr, desc_gr);//использую уже готовую структуру, вместо Layer там будет храниться описание
            }
            sqlCmd.Close();

            return(group);
        }
Пример #7
0
        private void SaveFile(string pathFile, int idFile, PgM.PgTableBaseM table)
        {
            FileStream   FS;
            BinaryWriter BW;

            FS = new FileStream(pathFile, FileMode.OpenOrCreate, FileAccess.Write);
            BW = new BinaryWriter(FS);
            var Param = new IParams[]
            {
                new Params(":id_file", idFile, DbType.Int32)
            };

            using (SqlWork sqlCmd = new SqlWork((table.Source as PgVM.PgDataRepositoryVM).Connect))
            {
                sqlCmd.sql = string.Format(@"SELECT ""{2}"" FROM ""{0}"".""{1}"" WHERE id = :id_file;",
                                           table.SchemeName,
                                           table.FileInfo.TableName,
                                           table.FileInfo.FieldFile);

                sqlCmd.ExecuteReader(Param);

                if (sqlCmd.CanRead())
                {
                    BW.Write(sqlCmd.GetBytes(0));
                }
            }
            BW.Close();
            FS.Close();
        }
Пример #8
0
        void RFieldM_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            if (e.PropertyName == "IsSelected")
            {
                if (IsSelected)
                {
                    using (SqlWork sqlWork = new SqlWork())
                    {
                        sqlWork.sql =
                            String.Format(
                                @"SELECT tfi.name_db, tfi.name_map, tfi.type_field, tfi.name_lable, tfi.id
                                  FROM sys_scheme.table_field_info tfi, sys_scheme.table_info ti
                                  WHERE ti.id = tfi.id_table 
                                      AND ti.scheme_name = '{0}' 
                                      AND ti.name_db = '{1}' 
	                                  AND tfi.name_db = '{2}';"    ,
                                _parentTable.ParentScheme.SchemeName,
                                _parentTable.Name,
                                Name);
                        sqlWork.ExecuteReader();
                        if (sqlWork.CanRead())
                        {
                            Text        = sqlWork.GetString("name_map");
                            Description = sqlWork.GetString("name_lable");
                            DataType    = sqlWork.GetValue <ERDataType>("type_field");
                            Id          = sqlWork.GetInt32("id");
                        }
                    }
                }
            }
        }
 /// <summary>
 /// Запуск процедуры ремонта БД
 /// </summary>
 public void LaunchSuperFixDb(object parameter = null)
 {
     try
     {
         cti.ThreadProgress.ShowWait();
         using (SqlWork sqlWork = new SqlWork(true))
         {
             sqlWork.sql =
                 String.Format("SELECT * FROM sys_scheme.super_fix_db();");
             sqlWork.ExecuteReader();
             if (sqlWork.CanRead())
             {
                 if (sqlWork.GetBoolean(0) == false)
                 {
                     MessageBox.Show("Ошибка выполнения функции!", "ERROR FUNCTION", MessageBoxButton.OK, MessageBoxImage.Error);
                 }
                 else
                 {
                     MessageBox.Show("Операция прошла успешно!");
                 }
             }
         }
         cti.ThreadProgress.Close();
     }
     catch (Exception ex)
     {
         cti.ThreadProgress.Close();
         MessageBox.Show(ex.Message);
     }
 }
Пример #10
0
        /// <summary>
        /// Метод загружает из базы все группы в List
        /// </summary>
        public List <itemObjOrdered> LoadGroups()
        {
            List <itemObjOrdered> list_groups = new List <itemObjOrdered>();
            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = "SELECT id,name_group,descript,order_num FROM " + Program.scheme + ".table_groups ORDER BY order_num";
            try
            {
                sqlCmd.Execute(false);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                sqlCmd.Close();
                return(null);
            }
            while (sqlCmd.CanRead())
            {
                int            id_gr     = sqlCmd.GetInt32(0);
                string         name_gr   = sqlCmd.GetString(1);
                string         desc_gr   = sqlCmd.GetString(2);
                int            order_num = sqlCmd.GetInt32(3);
                itemObjOrdered io        = new itemObjOrdered(id_gr, name_gr, desc_gr, order_num);//использую уже готовую структуру, вместо Layer там будет храниться описание
                list_groups.Add(io);
            }
            sqlCmd.Close();

            return(list_groups);
        }
Пример #11
0
        private void ReloadSchems()
        {
            Schems.Clear();
            using (SqlWork sqlWork = new SqlWork())
            {
                sqlWork.sql = @"SELECT catalog_name, schema_name 
                                FROM information_schema.schemata
                                WHERE schema_name not like 'pg_temp_%' 
	                                AND schema_name not like 'pg_toast_temp_%'
	                                AND schema_name not like 'information_schema'
	                                AND schema_name not like 'pg_catalog'
	                                AND schema_name not like 'pg_toast'
                                    AND schema_name not like 'rosreestr'
                                ORDER BY schema_name";
                sqlWork.ExecuteReader();
                while (sqlWork.CanRead())
                {
                    Schems.Add(new RSchemeM(sqlWork.GetString("schema_name")));
                }
            }
            if (Schems.Count > 0)
            {
                SelectedScheme = Schems[0];
            }
        }
Пример #12
0
        private axVisUtils.Styles.objStylesM setStyleFromDB(int idT)
        {
            axVisUtils.Styles.objStylesM s1 = new axVisUtils.Styles.objStylesM();

            string sql = "SELECT fontname, fontcolor, fontframecolor, fontsize,";

            sql += " symbol,";
            sql += " pencolor, pentype, penwidth,";
            sql += " brushbgcolor, brushfgcolor, brushstyle, brushhatch";
            sql += " FROM " + Program.scheme + ".table_info WHERE id=" + id.ToString();
            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = sql;
            sqlCmd.Execute(false);
            while (sqlCmd.CanRead())
            {
                s1.FontStyle.FontName   = sqlCmd.GetString(0);
                s1.FontStyle.Color      = sqlCmd.GetValue <uint>(1);
                s1.FontStyle.FrameColor = sqlCmd.GetValue <uint>(2);
                s1.FontStyle.Size       = sqlCmd.GetInt32(3);

                s1.SymbolStyle.Shape = sqlCmd.GetValue <uint>(4);

                s1.PenStyle.Color = sqlCmd.GetValue <uint>(5);
                s1.PenStyle.Type  = sqlCmd.GetValue <ushort>(6);
                s1.PenStyle.Width = sqlCmd.GetValue <uint>(7);

                s1.BrushStyle.bgColor = sqlCmd.GetValue <uint>(8);
                s1.BrushStyle.fgColor = sqlCmd.GetValue <uint>(9);
                s1.BrushStyle.Style   = sqlCmd.GetValue <ushort>(10);
                s1.BrushStyle.Hatch   = sqlCmd.GetValue <ushort>(11);
            }
            sqlCmd.Close();
            return(s1);
        }
Пример #13
0
        private void comboBox9_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (comboBox9.SelectedItem != null)
            {
                comboBox10.Items.Clear();
                SqlWork sqlCmd = new SqlWork();
                sqlCmd.sql = "SELECT id, name_db, name_map FROM " + Program.scheme + ".table_field_info WHERE (type_field = 1 OR type_field = 6) AND id_table = " + ((itemObj)comboBox9.SelectedItem).Id_o.ToString();
                sqlCmd.Execute(false);
                while (sqlCmd.CanRead())
                {
                    itemObj item = new itemObj(sqlCmd.GetInt32(0), sqlCmd.GetValue <string>(1), sqlCmd.GetValue <string>(2));
                    comboBox10.Items.Add(item);
                }
                sqlCmd.Close();

                comboBox11.Items.Clear();
                sqlCmd     = new SqlWork();
                sqlCmd.sql = "SELECT id, name_db, name_map FROM " + Program.scheme + ".table_field_info WHERE type_field = 2 AND id_table = " + ((itemObj)comboBox9.SelectedItem).Id_o.ToString();
                sqlCmd.Execute(false);
                while (sqlCmd.CanRead())
                {
                    itemObj item = new itemObj(sqlCmd.GetInt32(0), sqlCmd.GetValue <string>(1), sqlCmd.GetValue <string>(2));
                    comboBox11.Items.Add(item);
                }
                sqlCmd.Close();
            }
        }
Пример #14
0
        private void loadTables()
        {
            cbRefTable.Items.Clear();
            cbIntervalTable.Items.Clear();

            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = "SELECT id, name_db, name_map, type FROM " + Program.scheme + ".table_info ti WHERE map_style = true ORDER BY name_db";
            sqlCmd.Execute(false);

            int max_width_1 = 0, max_width_2 = 0;

            while (sqlCmd.CanRead())
            {
                itemObj item = new itemObj(sqlCmd.GetInt32(0),
                                           String.Format("{0} ({1})", sqlCmd.GetValue <string>(1), sqlCmd.GetValue <string>(2)),
                                           sqlCmd.GetValue <string>(1));

                Label tempLabel = new Label();

                switch (sqlCmd.GetInt32(3))
                {
                case 2:
                    cbRefTable.Items.Add(item);

                    tempLabel.Text = item.Name_o;
                    if (tempLabel.PreferredWidth > max_width_1)
                    {
                        max_width_1 = tempLabel.PreferredWidth;
                    }
                    break;

                case 3:
                    cbIntervalTable.Items.Add(item);

                    tempLabel.Text = item.Name_o;
                    if (tempLabel.PreferredWidth > max_width_2)
                    {
                        max_width_2 = tempLabel.PreferredWidth;
                    }
                    break;

                default:
                    break;
                }
            }

            if (max_width_1 > cbRefTable.DropDownWidth)
            {
                cbRefTable.DropDownWidth = max_width_1;
            }
            if (max_width_2 > cbIntervalTable.DropDownWidth)
            {
                cbIntervalTable.DropDownWidth = max_width_2;
            }

            sqlCmd.Close();
        }
Пример #15
0
        /// <summary>
        /// Поиск незанятого имени таблицы
        /// </summary>
        private string FindAcceptableTableName(string originalName, string name_scheme)
        {
            string name_table = originalName;

            if (classesOfMetods.isReservedName(name_table))
            {
                MessageBox.Show(Rekod.Properties.Resources.AET_NameIsReserved +
                                Environment.NewLine + Rekod.Properties.Resources.AET_ConNotSave + Environment.NewLine +
                                Rekod.Properties.Resources.AET_ChangeTable,
                                Rekod.Properties.Resources.AET_CreatingTable,
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
                return(null);
            }

            bool nameChanged = false;
            int  count       = 0;

            while (true)
            {
                using (SqlWork sqlQuery = new SqlWork())
                {
                    sqlQuery.sql = String.Format("SELECT count(*) FROM pg_tables WHERE tablename='{0}' AND schemaname='{1}';", name_table, name_scheme);
                    sqlQuery.ExecuteReader();
                    if (sqlQuery.CanRead())
                    {
                        if (sqlQuery.GetInt32(0) > 0)
                        {
                            nameChanged = true;
                            count++;
                        }
                        else
                        {
                            break;
                        }
                    }
                    name_table = originalName + count.ToString();
                }
            }
            if (nameChanged)
            {
                DialogResult dr = MessageBox.Show(Rekod.Properties.Resources.AET_AlreadyExistsTable + Environment.NewLine +
                                                  string.Format(Rekod.Properties.Resources.AET_SaveTableRename, name_table),
                                                  Rekod.Properties.Resources.AET_CreatingTable,
                                                  MessageBoxButtons.OKCancel,
                                                  MessageBoxIcon.Warning);
                if (dr == DialogResult.Cancel)
                {
                    MessageBox.Show(Rekod.Properties.Resources.AET_ConNotSave + Environment.NewLine + Rekod.Properties.Resources.AET_ChangeTable,
                                    Rekod.Properties.Resources.AET_CreatingTable,
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);
                    return(null);
                }
            }
            return(name_table);
        }
Пример #16
0
        public void Reload(object param = null)
        {
            if (!CanReload(param))
            {
                return;
            }
            //new Thread(delegate()
            //    {
            List <PgAtM.PgAttributeFileM> listFiles = new List <PgAtM.PgAttributeFileM>();

            using (var SQLCmd = new SqlWork(_connect))
            {
                SQLCmd.sql = string.Format(@"
                                    SELECT ""{2}"", ""{4}"", dataupd, img_preview, file_name, is_photo
                                    FROM ""{0}"".""{1}""
                                    WHERE ""{4}"" = :id_obj
                                    ORDER BY file_name",
                                           AttributeVM.Table.SchemeName,
                                           AttributeVM.Table.FileInfo.TableName,
                                           AttributeVM.Table.FileInfo.FieldId,
                                           AttributeVM.Table.FileInfo.FieldFile,
                                           AttributeVM.Table.FileInfo.FieldIdObj);
                var Params = new IParams[]
                {
                    new Params(":id_obj", AttributeVM.AttributesListVM.PkAttribute.Value, (AttributeVM.AttributesListVM.PkAttribute.Field as PgM.PgFieldM).DbType)
                };
                SQLCmd.ExecuteReader(Params);
                bool hasPreview = false;
                while (SQLCmd.CanRead())
                {
                    var id       = SQLCmd.GetInt32(AttributeVM.Table.FileInfo.FieldId);
                    var file     = Files.FirstOrDefault(f => f.IdFile == id);
                    var fileName = SQLCmd.GetString("file_name");
                    if (file == null)
                    {
                        var preview = SQLCmd.GetBytes("img_preview");
                        hasPreview = (preview != null);

                        if (!hasPreview)
                        {
                            preview = FilePreviewController.GetIcon(System.IO.Path.GetExtension(fileName));
                        }
                        var imgPreview = FilePreviewController.GetBitmapImage(preview);

                        file = new PgAtM.PgAttributeFileM(
                            source: this,
                            idFile: id,
                            imgPreview: imgPreview);
                    }
                    file.Date     = SQLCmd.GetValue <DateTime>("dataupd");
                    file.FileName = fileName;
                    listFiles.Add(file);
                }
                ExtraFunctions.Sorts.SortList(_files, listFiles);
            }
            //}).Start();
        }
Пример #17
0
        /// <summary>
        /// Возвращает список таблиц в(вне) группе
        /// </summary>
        /// <param name="id">ID группы</param>
        /// <param name="in_group">Если TRUE, то то список будет таблиц в группе, FALSE- список вне группы</param>
        /// <returns></returns>
        public List <itemObjOrdered> GetListTablesInOrOutGroup(int id, bool in_group)
        {
            List <itemObjOrdered> list_of_tables = new List <itemObjOrdered>();
            SqlWork sqlCmd = new SqlWork();

            if (in_group)
            {
                sqlCmd.sql = "SELECT t.id,t.name_db,t.name_map,g.order_num FROM " + Program.scheme + ".table_groups_table AS g,"
                             + Program.scheme + ".table_info AS t WHERE g.id_group=" + id.ToString() + " AND g.id_table=t.id AND t.type=1 and hidden = false ORDER BY g.order_num";
                try
                {
                    sqlCmd.Execute(false);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    return(null);
                }
            }
            else
            {
                sqlCmd.sql =
                    "SELECT * FROM " +
                    "(SELECT t.id,t.name_db,t.name_map FROM " + Program.scheme + ".table_info AS t WHERE t.type=1 and hidden=false" +
                    " EXCEPT " +
                    "SELECT DISTINCT t.id,t.name_db,t.name_map FROM " + Program.scheme + ".table_groups_table AS g," + Program.scheme +
                    ".table_info AS t WHERE g.id_group=" + id.ToString() + " AND g.id_table=t.id and hidden = false " +
                    ")AS al ORDER BY al.name_map";
                try
                {
                    sqlCmd.Execute(false);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    return(null);
                }
            }

            while (sqlCmd.CanRead())
            {
                int    id_table       = sqlCmd.GetInt32(0);
                string db_name_table  = sqlCmd.GetString(1);
                string map_name_table = sqlCmd.GetString(2);
                int    ord            = 0;
                if (in_group)
                {
                    ord = sqlCmd.GetInt32(3);
                }
                itemObjOrdered io = new itemObjOrdered(id_table, map_name_table, db_name_table, ord);
                list_of_tables.Add(io);
            }
            sqlCmd.Close();
            return(list_of_tables);
        }
Пример #18
0
        /// <summary>
        /// Загрузка связанных таблиц
        /// </summary>
        private void LoadRelatedTables(object idObject)
        {
            if (idObject != null && (_table.Type == AbsM.ETableType.Data || _table.Type == AbsM.ETableType.MapLayer))
            {
                RelatedTables.Clear();
                using (SqlWork sqlWork = new SqlWork(Connect))
                {
                    // Запрос для получения идентификаторов связанных таблиц
                    sqlWork.sql = String.Format(@"SELECT tfi.id_table, tfi.name_db, tfi.ref_field
                                    FROM sys_scheme.table_field_info tfi 
                                    INNER JOIN sys_scheme.table_info ti ON tfi.id_table = ti.id
                                    INNER JOIN sys_scheme.table_type_table ttt ON ttt.id = ti.type
                                    WHERE tfi.ref_table = {0} AND (ttt.id = 1 OR ttt.id = 4)", _table.Id);
                    sqlWork.ExecuteReader();
                    while (sqlWork.CanRead())
                    {
                        int    idTable    = sqlWork.GetInt32("id_table");
                        string colName    = sqlWork.GetString("name_db");
                        int    refFieldId = sqlWork.GetInt32("ref_field");

                        PgM.PgFieldM field = _table.Fields.FirstOrDefault(f => f.Id == refFieldId) as PgM.PgFieldM;

                        if (field != null && field.Table != null && field.Table.Id is int &&
                            classesOfMetods.getRefTableRight(_table.Id, (int)field.Table.Id))
                        {
                            PgAtM.PgAttributeM attr        = _attributesListVM.Attributes.FirstOrDefault(a => a.Field == field);
                            String             filterValue = null;
                            if (attr.Value != null)
                            {
                                filterValue = attr.Value.ToString();
                            }

                            PgM.PgTableBaseM pgTable = _table.Source.Tables.FirstOrDefault(p => (int)p.Id == idTable) as PgM.PgTableBaseM;
                            if (pgTable != null)
                            {
                                FilterRelationModel filterRM = new FilterRelationModel()
                                {
                                    Type    = TypeRelation.ELEMENT,
                                    Element = new FilterElementModel()
                                    {
                                        Column = colName,
                                        Type   = TypeOperation.Equal,
                                        Value  = filterValue
                                    }
                                };
                                RelatedTables.Add(new PgTV.PgTableViewVM(pgTable, filterRM));
                            }
                        }
                    }
                    sqlWork.Close();
                }
            }
            OnPropertyChanged("HasRelatedTables");
        }
Пример #19
0
        private void loadDaipazonInfo(int id_table)
        {
            loadColumsForDiapazon(id_table);
            SqlWork sqlCmd = new SqlWork();

            typeColors = new List <itemObj>();
            typeColors.Add(new itemObj(0, Rekod.Properties.Resources.PTC_BasicElement, ""));
            typeColors.Add(new itemObj(1, Rekod.Properties.Resources.PTC_Background, ""));
            typeColors.Add(new itemObj(2, Rekod.Properties.Resources.PTC_BordersAndLines, ""));
            typeColors.Add(new itemObj(3, Rekod.Properties.Resources.PTC_BorderSymbol, ""));
            sqlCmd.sql = "SELECT range_colors, range_column, precision_point, type_color, min_color, " +
                         "min_val, max_color, max_val, use_min_val, use_max_val, null_color, " +
                         "use_null_color, geom_type FROM " + Program.scheme + ".table_info WHERE id = " + id_table;
            sqlCmd.Execute(false);
            if (sqlCmd.CanRead())
            {
                switch (sqlCmd.GetInt32(12))
                {
                case 0:    //Без геометрии
                    Classes.workLogFile.writeLogFile(new Exception("Загружена таблица без геометрии"), true, false);
                    break;

                case 1:    //Точки
                    typeColors.RemoveAt(2);
                    typeColors.RemoveAt(1);
                    break;

                case 2:    //Линии
                    typeColors.RemoveAt(3);
                    typeColors.RemoveAt(1);
                    typeColors.RemoveAt(0);
                    break;

                case 3:    //площадные
                    typeColors.RemoveAt(3);
                    break;
                }
                cbRangeColorChange.DataSource = typeColors;
                setComboBox(cbRangeValueField, sqlCmd.GetValue <string>(1));
                setComboBox(cbRangeColorChange, sqlCmd.GetInt32(3).ToString(), sqlCmd.GetInt32(3));

                numericUpDownRangePrec.Value     = sqlCmd.GetInt32(2);
                panelRangeMinColor.BackColor     = convColor(sqlCmd.GetValue <uint>(4));
                numericUpDownRangeMinValue.Value = sqlCmd.GetInt32(5);
                panelRangeMaxColor.BackColor     = convColor(sqlCmd.GetValue <uint>(6));
                numericUpDownRangeMaxValue.Value = sqlCmd.GetInt32(7);
                checkBoxRangeMin.Checked         = sqlCmd.GetBoolean(8);
                checkBoxRangeMax.Checked         = sqlCmd.GetBoolean(9);
            }
            sqlCmd.Close();
            numericUpDownRangeMinValue.Enabled = checkBoxRangeMin.Checked;
            numericUpDownRangeMaxValue.Enabled = checkBoxRangeMax.Checked;
        }
Пример #20
0
        /// <summary>
        /// Открывает окно для редактирования стиля
        /// </summary>
        public void EditStyle(object parameter = null)
        {
            using (SqlWork sqlWork = new SqlWork(_connect))
            {
                sqlWork.sql =
                    String.Format(@"SELECT {0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}, {11}
                                    FROM sys_scheme.style_object_info
                                    WHERE id_table={12} AND id_obj={13}",
                                  "fontname",
                                  "fontcolor",
                                  "fontframecolor",
                                  "fontsize",
                                  "brushbgcolor",
                                  "brushfgcolor",
                                  "brushstyle",
                                  "brushhatch",
                                  "pencolor",
                                  "pentype",
                                  "penwidth",
                                  "symbol",
                                  _table.Id,
                                  _pkAttribute.Value);
                sqlWork.ExecuteReader();
                sqlWork.CanRead();

                String fontname       = sqlWork.GetString(0);
                Int32  fontcolor      = sqlWork.GetInt32(1);
                Int32  fontframecolor = sqlWork.GetInt32(2);
                Int32  fontsize       = sqlWork.GetInt32(3);

                Int32 brushbgcolor = sqlWork.GetInt32(4);
                Int32 brushfgcolor = sqlWork.GetInt32(5);
                Int16 brushstyle   = (short)sqlWork.GetInt32(6);
                Int16 brushhatch   = (short)sqlWork.GetInt32(7);

                Int32 pencolor = sqlWork.GetInt32(8);
                Int32 pentype  = sqlWork.GetInt32(9);
                Int32 penwidth = sqlWork.GetInt32(10);
                Int32 symbol   = sqlWork.GetInt32(11);

                sqlWork.Close();

                Style.SetFont(fontname, fontcolor, fontframecolor, fontsize);
                Style.SetBrush(brushbgcolor, brushfgcolor, brushhatch, brushstyle);
                Style.SetPen(pencolor, pentype, penwidth);
                Style.SetSymbol(symbol);
            }

            PgV.ObjectStyleEditV styleWindow = new PgV.ObjectStyleEditV();
            styleWindow.DataContext = this;
            styleWindow.Owner       = Program.WinMain;
            styleWindow.Show();
        }
Пример #21
0
        public void Reload()
        {
            var listRepots = new List <IReportItem_M>();

            using (var sqlCmd = new SqlWork())
            {
                sqlCmd.sql = @"
                                    SELECT 
                                        id, 
                                        type_report, 
                                        body, 
                                        id_table, 
                                        caption 
                                    FROM 
                                        sys_scheme.report_templates
                                    ORDER BY id";

                if (!sqlCmd.ExecuteReader())
                {
                    return;
                }
                while (sqlCmd.CanRead())
                {
                    var id = sqlCmd.GetInt32("id");

                    ReportItem_M rep = FindReportById(id) as ReportItem_M;
                    if (rep == null)
                    {
                        var type    = sqlCmd.GetValue <enTypeReport>("type_report");
                        var idTable = sqlCmd.GetValue <int?>("id_table");

                        rep         = new ReportItem_M(id, type, idTable);
                        rep.Caption = sqlCmd.GetString("caption");
                    }
                    else
                    {
                        string caption = sqlCmd.GetString("caption");
                        if (caption != rep.Caption)
                        {
                            rep         = new ReportItem_M(rep);
                            rep.Caption = caption;
                        }
                    }
                    rep.Body = sqlCmd.GetString("body");

                    listRepots.Add(rep);
                }
                ExtraFunctions.Sorts.SortList(_reports, listRepots);
            }
        }
Пример #22
0
        private void loadTableGeomField()
        {
            cbGeomField.Items.Clear();
            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = "SELECT id, name_db, name_map FROM " + Program.scheme + ".table_field_info WHERE type_field = 5 AND id_table = " + id.ToString();
            sqlCmd.Execute(false);
            while (sqlCmd.CanRead())
            {
                itemObj item = new itemObj(sqlCmd.GetInt32(0), sqlCmd.GetValue <string>(1), sqlCmd.GetValue <string>(2));
                cbGeomField.Items.Add(item);
            }
            sqlCmd.Close();
        }
Пример #23
0
        private void loadColumsForDiapazon(int id_table)
        {
            cbRangeValueField.Items.Clear();
            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = "SELECT id, name_db, name_map FROM " + Program.scheme + ".table_field_info WHERE (type_field = 1 OR type_field = 6) AND id_table = " + id_table.ToString();
            sqlCmd.Execute(false);
            while (sqlCmd.CanRead())
            {
                itemObj item = new itemObj(sqlCmd.GetInt32(0), sqlCmd.GetValue <string>(2), sqlCmd.GetValue <string>(1));
                cbRangeValueField.Items.Add(item);
            }
            sqlCmd.Close();
        }
Пример #24
0
        private string select_name_db()
        {
            string  table_db = "";
            SqlWork sqlCmd   = new SqlWork();

            sqlCmd.sql = "SELECT name_db FROM " + Program.scheme + ".table_info WHERE id = " + id.ToString();
            sqlCmd.Execute(false);
            if (sqlCmd.CanRead())
            {
                table_db = sqlCmd.GetValue <string>(0);
            }
            sqlCmd.Close();
            return(table_db);
        }
Пример #25
0
        private bool getGeomTable(int idT)
        {
            bool    map    = false;
            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = "SELECT tt.map_layer, ti.name_db FROM " + Program.scheme + ".table_info ti, " + Program.scheme + ".table_type_table tt" +
                         " WHERE tt.id=ti.type AND ti.id= " + idT;
            sqlCmd.Execute(false);
            if (sqlCmd.CanRead())
            {
                map       = sqlCmd.GetBoolean(0);
                tableName = sqlCmd.GetValue <string>(1);
            }
            sqlCmd.Close();
            return(map);
        }
Пример #26
0
        public void loadFields(int idT)
        {
            listBox1.Items.Clear();
            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = "SELECT id,name_db,type_field,name_map,num_order FROM " + Program.scheme + ".table_field_info WHERE id_table=" + idT.ToString() + " ORDER BY num_order";
            sqlCmd.Execute(false);
            while (sqlCmd.CanRead())
            {
                itemObjOrdered item = new itemObjOrdered(sqlCmd.GetInt32(0),
                                                         sqlCmd.GetString(1) + " (" + classesOfMetods.getTipField(sqlCmd.GetInt32(2)).nameTipData + ") - " +
                                                         sqlCmd.GetString(3), sqlCmd.GetString(1), sqlCmd.GetInt32(4));
                listBox1.Items.Add(item);
            }
            sqlCmd.Close();
            label2.Text = changeTextOfCount(listBox1.Items.Count);
        }
Пример #27
0
 /// <summary>
 /// Получаем srtext проекции
 /// </summary>
 private string GetSRText(int?srid)
 {
     if (srid != null)
     {
         using (var swork = new SqlWork())
         {
             swork.sql = string.Format(
                 "SELECT srtext from spatial_ref_sys WHERE srid={0};",
                 srid);
             swork.ExecuteReader();
             if (swork.CanRead())
             {
                 return(swork.GetString(0));
             }
         }
     }
     return(null);
 }
Пример #28
0
        /// <summary>
        /// Полнотекстовый поиск
        /// </summary>
        public void FullTextSearch(object parameter = null)
        {
            SearchText = parameter.ToString();
            _results.Clear();

            var searchTables = from PgSearchTableM ftsTable in Tables where ftsTable.SearchWithin select ftsTable.Table;

            if (searchTables.Count() > 0)
            {
                Dictionary <int, PgSearchTableM> tableIdSearchTable = new Dictionary <int, PgSearchTableM>();
                using (var sqlWork = new SqlWork(_source.Connect))
                {
                    sqlWork.sql = String.Format(@"SELECT id_table, pkid, label_text
                                               FROM sys_scheme.fts_index
                                               WHERE fts @@ plainto_tsquery('{0}', '{1}') AND id_table IN ({3})
                                               LIMIT {2}",
                                                "russian",
                                                SearchText,
                                                _searchLimit,
                                                String.Join(",", (from PgTableBaseM table in searchTables select table.Id).ToArray()));
                    sqlWork.ExecuteReader();
                    while (sqlWork.CanRead())
                    {
                        int            idTable       = sqlWork.GetValue <Int32>("id_table");
                        int            primKey       = sqlWork.GetValue <Int32>("pkid");
                        String         labelText     = sqlWork.GetValue <String>("label_text");
                        PgSearchTableM pgSearchTable = null;
                        if (tableIdSearchTable.ContainsKey(idTable))
                        {
                            pgSearchTable = tableIdSearchTable[idTable];
                        }
                        else
                        {
                            pgSearchTable = new PgSearchTableM(_source, idTable);
                            tableIdSearchTable.Add(idTable, pgSearchTable);
                            _results.Add(pgSearchTable);
                        }
                        PgSearchObjectM pgSearchObject = new PgSearchObjectM(pgSearchTable, primKey, labelText);
                        pgSearchTable.SearchObjects.Add(pgSearchObject);
                    }
                }
            }
        }
Пример #29
0
        /// <summary>
        /// Получает из базы проекции в формате proj4
        /// </summary>
        public static string GetProj4(int srid)
        {
            string wkt = String.Empty;

            using (var sqlCmd = new SqlWork())
            {
                sqlCmd.sql = "SELECT proj4text FROM spatial_ref_sys WHERE srid=" + srid;
                sqlCmd.Execute(false);
                if (sqlCmd.CanRead())
                {
                    wkt = sqlCmd.GetString(0);
                }
                else
                {
                    return(null);
                }
            }
            return(wkt);
        }
Пример #30
0
        private List <itemObjOrdered> getRecalcedGroupsOrderList()
        {
            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = String.Format("SELECT id, name_group, descript FROM {0}.{1} ORDER BY order_num", Program.scheme, "table_groups");
            sqlCmd.Execute(false);
            List <itemObjOrdered> newGroupsOrder = new List <itemObjOrdered>();
            int orderObj = 1;

            while (sqlCmd.CanRead())
            {
                int            idObj    = sqlCmd.GetInt32(0);
                String         nameObj  = sqlCmd.GetValue <string>(1);
                String         descObj  = sqlCmd.GetValue <string>(2);
                itemObjOrdered itObjOrd = new itemObjOrdered(idObj, nameObj, descObj, orderObj);
                orderObj++;
            }
            return(newGroupsOrder);
        }