ucunivquery.cs.svn-base

来自「以构建的方式来实现对通用的查询统计」· SVN-BASE 代码 · 共 452 行 · 第 1/2 页

SVN-BASE
452
字号
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Collections;
using System.Data;
using System.Data.OleDb;
using System.Text;
using System.Windows.Forms;
using dist.hb.EnvQueryStat.Pub;

namespace dist.hb.EnvQueryStat.Query
{
  public partial class ucUnivQuery : UserControl
  {
    #region "窗体类初始化"
    clsQueryHelp QueryHelp;//协助处理SQL语句
    clsMapQueryEnv MapQueryEnv;//地图查询环境
    ToolQueryHelp m_ToolQueryHelp;//地图窗体事件回调
    SpacialSel SpacialSel;//选择处理对象
    clsAttFieldProc AttFieldProc;//协助处理SQL,是QueryHelp类辅助类
    clsProQueryPopupMenu QueryPopupMenu;//弹出菜单处理类

    public ucUnivQuery()
    {
      InitializeComponent();
      QueryHelp = new clsQueryHelp();
      MapQueryEnv = new clsMapQueryEnv();
      m_ToolQueryHelp = new ToolQueryHelp();
      SpacialSel = new SpacialSel();
      AttFieldProc = new clsAttFieldProc();
      QueryPopupMenu = new clsProQueryPopupMenu();
    }
    public int QueryInstID;
    private OleDbConnection m_OleDbConn;
    public OleDbConnection OleDbConn
    {
      get { return m_OleDbConn; }
      set
      {
        if (value == null) return;
        if (value == m_OleDbConn) return;
        m_OleDbConn = value;
      }
    }
    private ESRI.ArcGIS.Controls.IMapControl4 m_MapControl;
    public ESRI.ArcGIS.Controls.IMapControl4 MapControl
    {
      set
      {
        m_MapControl = value;
        m_ToolQueryHelp.OnCreate(m_MapControl.Object);
      }

    }
    public string ProvCode = "";//省级代码,如果为空,则为全国用户,否则为省级用户

    #endregion

    #region "窗体事件"
    private void gridControl1_EmbeddedNavigator_ButtonClick(object sender, DevExpress.XtraEditors.NavigatorButtonClickEventArgs e)
    {

    }
    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
      bool check = checkBoxAttFilter.Checked;
      textEditBufferR.Enabled = check;
      comboBoxUnit.Enabled = check;
      comboBoxSpacialObj.Enabled = check;
      comboBox_SpacialOption.Enabled = check;
      bntSelect.Enabled = check;
      btnClear.Enabled = check;
    }
    private void label2_Click(object sender, EventArgs e)
    {

    }
    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
    private void ucUnivQuery_Load(object sender, EventArgs e)//窗体LOAD事件
    {
      MyFormLoad();
      QueryHelp.Initialize(m_OleDbConn, QueryInstID);
      QueryHelp.InitItemLookUp(gridView1);
      gridControl1.DataSource = QueryHelp.AttFilterTable;
      QueryHelp.FillrepositoryItemComboBox_field(repositoryItemLookUpEdit_field1);//属性过滤表中,处理字段下来列表框

      //属性字段处理初始化
      AttFieldProc.DbConn = m_OleDbConn;
      AttFieldProc.nQueryInstID = QueryInstID;
      AttFieldProc.QueryHelp = QueryHelp;

      if (QueryHelp.QueryInstInfo.AttWinVisible == 0) groupControl2.Visible = false;
      if (QueryHelp.QueryInstInfo.SpWinVisible == 0) groupControl1.Visible = false;
      if (groupControl2.Visible == false && groupControl1.Visible == false) xtraTabControl1.TabPages.Remove(xtraTabPage1);
      this.Parent.Text = QueryHelp.QueryInstInfo.QueryInstName;

      //查询环境初始化
      InitMapQueryEnv();
      m_ToolQueryHelp.MapQueryEnv = MapQueryEnv;

      //初始化输出Gride2的字段
      InitExportGrid();
    }
    private void comboBoxSpacialObj_SelectedIndexChanged(object sender, EventArgs e)
    {
      //0-临时图层;1-选择集;2-行政代码
      if (comboBoxSpacialObj.SelectedIndex == 0)
      {
        label_SOption.Text = "选择类别";
        comboBox_SpacialOption.Items.Clear();
        comboBox_SpacialOption.Items.Add(MAPDRAW_TYPE.MAPDRAW_POINT);
        comboBox_SpacialOption.Items.Add(MAPDRAW_TYPE.MAPDRAW_LINE);
        comboBox_SpacialOption.Items.Add(MAPDRAW_TYPE.MAPDRAW_POLYGON);
        comboBox_SpacialOption.Items.Add(MAPDRAW_TYPE.MAPDRAW_RECT);
        comboBox_SpacialOption.Items.Add(MAPDRAW_TYPE.MAPDRAW_CIRCLE);
        comboBox_SpacialOption.SelectedIndex = 0;
      }
      else if (comboBoxSpacialObj.SelectedIndex == 1)
      {
        label_SOption.Text = "图层名称";
        comboBox_SpacialOption.Items.Clear();
        if (m_MapControl == null) return;
        for (int i = 0; i < m_MapControl.LayerCount; i++)
			  {
          comboBox_SpacialOption.Items.Add(m_MapControl.get_Layer(i).Name);
			  }
        comboBox_SpacialOption.SelectedIndex = 0;
      }
      else
      {
        label_SOption.Text = "代码级别";
        comboBox_SpacialOption.Items.Clear();
        comboBox_SpacialOption.Items.Add(XXQH_TYPE.CPROV);
        comboBox_SpacialOption.Items.Add(XXQH_TYPE.CDIST);
        comboBox_SpacialOption.Items.Add(XXQH_TYPE.CCNTY);
        comboBox_SpacialOption.SelectedIndex = 0;
      }
    }
    private void bntSelect_Click(object sender, EventArgs e)//选择要查询的空间对象
    {
      Form frm = (Form)this.Parent;
      if (frm == null) return;
      //初始化地图查询环境
      InitMapQueryEnv();
      m_ToolQueryHelp.MapQueryEnv = MapQueryEnv;

      if (MapQueryEnv.MapQueryMethod != MapQueryMethod.CODE)
      {
        MapQueryEnv.WorkForm.WindowState = FormWindowState.Minimized;
        m_MapControl.CurrentTool = m_ToolQueryHelp;
      }
      else ProcCodeSelect();
    }
    private void gridView1_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e)
    {
      DataRow row = gridView1.GetDataRow(e.RowHandle);
      row["relation"] = "=";
      row["logicSym"] = "and";
      row["UserIsVisible"] = 1;
    }
    private void gridView1_CustomRowCellEdit(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e)
    {
      if (e.Column.Name != "gridColumn6") return;
      if (e.RowHandle < 0 || e.RowHandle > 1000) return;
      DataRow row = gridView1.GetDataRow(e.RowHandle);
      if (row == null) return;
      if (row.RowState == DataRowState.Deleted) return;
      if (row["Field"].ToString() == "") return;
      int Fieldid = Convert.ToInt32(row["Field"]);
      SetFieldValueSelector(e, Fieldid);
    }
    private void gridView1_FocusedColumnChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedColumnChangedEventArgs e)
    {
      //if (e.PrevFocusedColumn == null) return;
      //if (e.PrevFocusedColumn.Name != "gridColumn4") return;
      if (gridView1.FocusedRowHandle < 0) gridControl1.EmbeddedNavigator.Buttons.EndEdit.DoClick();
    }
    private void SetFieldValueSelector(DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e, int Fieldid)
    {
      DataRow dr = QueryHelp.GetFieldInfo1(Fieldid);
      if (dr == null) return;
      string DataType = dr["FieldType"].ToString();
      string SQL = dr["DICT"].ToString();
      if (DataType == ConstDataType.CData)
      {
        e.RepositoryItem = repositoryItemDateEdit_value_date1;
      }
      else if (DataType == ConstDataType.CInt)
      {
        e.RepositoryItem = repositoryItemSpinEdit_value_int;
      }
      else if (DataType == ConstDataType.CFloat)
      {
        e.RepositoryItem = repositoryItemTextEdit_value_float;
      }
      else if (DataType == ConstDataType.CString && SQL == "")
      {
        e.RepositoryItem = repositoryItemTextEdit_value_text;
      }
      else if (DataType == ConstDataType.CString && SQL != "")
      {
        e.RepositoryItem = null;
        e.RepositoryItem = QueryHelp.GetLookupEdit(Fieldid);
        DevExpress.XtraEditors.Repository.RepositoryItemComboBox DD;
      }
    }
    private void ucUnivQuery_MouseLeave(object sender, EventArgs e)
    {
      InitMapQueryEnv();
    }
    private void btnClear_Click(object sender, EventArgs e)
    {
      SpacialSel.ClearSelection();

    }
    private void checkBoxAttFilter_CheckedChanged(object sender, EventArgs e)
    {
      bool check = checkBox_IsSpacial.Checked;
      gridControl1.Enabled = check;
    }
    private void btnQuery_Click(object sender, EventArgs e)
    {

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?