ucunivqueryforpops.cs.svn-base
来自「以构建的方式来实现对通用的查询统计」· SVN-BASE 代码 · 共 488 行 · 第 1/2 页
SVN-BASE
488 行
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 ucUnivQueryForPOPs : UserControl
{
#region "窗体类初始化"
clsQueryHelp QueryHelp;//协助处理SQL语句
clsMapQueryEnv MapQueryEnv;//地图查询环境
ToolQueryHelp m_ToolQueryHelp;//地图窗体事件回调
SpacialSel SpacialSel;//选择处理对象
clsAttFieldProc AttFieldProc;//协助处理SQL,是QueryHelp类辅助类
clsProQueryPopupMenu QueryPopupMenu;//弹出菜单处理类
public string WebServerIP = "";
public ucUnivQueryForPOPs()
{
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);
}
}
#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();
checkBox1_CheckedChanged(null,null);
checkBoxAttFilter_CheckedChanged(null, null);
//增加查询空间对象,将查询的空间图层动态修改掉
comboBoxQueryObject.Items.Clear();
if (QueryHelp.QueryTemplateInfo.strLayerName.Contains("企业"))
{
comboBoxQueryObject.Items.Add(QueryHelp.QueryTemplateInfo.strLayerName);
comboBoxQueryObject.SelectedIndex = 0;
comboBoxQueryObject.Enabled = false;
}
else
{
comboBoxQueryObject.Items.Add(XXQH_TYPE.CPROV);
comboBoxQueryObject.Items.Add(XXQH_TYPE.CDIST);
comboBoxQueryObject.Items.Add(XXQH_TYPE.CCNTY);
comboBoxQueryObject.SelectedIndex = 0;
comboBoxQueryObject.Enabled = true;
QueryHelp.QueryTemplateInfo.strLayerName = XXQH_TYPE.CPROV;
QueryHelp.QueryTemplateInfo.strSpaceField = clsGISPub.GetSpacialField(XXQH_TYPE.CPROV);
MapQueryEnv.QueryLayer = XXQH_TYPE.CPROV;
}
}
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 = 3;
}
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;
MapQueryEnv.MsgProc = new MsgHandler(btnQuery_Click);
}
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();
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?