ucunivqueryforpops.cs.svn-base
来自「以构建的方式来实现对通用的查询统计」· SVN-BASE 代码 · 共 488 行 · 第 1/2 页
SVN-BASE
488 行
}
private void checkBoxAttFilter_CheckedChanged(object sender, EventArgs e)
{
bool check = checkBox_IsSpacial.Checked;
gridControl1.Enabled = check;
}
private void btnQuery_Click(object sender, EventArgs e)
{
gridControl1.EmbeddedNavigator.Buttons.EndEdit.DoClick();
string sql = MakeSQL();
clsDbPub.SaveTextToFile(sql);
DataTable dt = ExecQuerySQL(sql);
gridControl2.DataSource = dt;
xtraTabControl1.SelectedTabPageIndex = 1;
//gridView2.BestFitColumns();
}
private void btnExport_Click(object sender, EventArgs e)
{
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
gridView2.ExportToXls(saveFileDialog1.FileName, true);
}
}
private void btnExit_Click(object sender, EventArgs e)
{
if (MapQueryEnv == null) return;
MapQueryEnv.WorkForm.Close();
}
private void gridControl2_MouseDown(object sender, MouseEventArgs e)
{
if (QueryPopupMenu == null) return;
InitPopuMenu();//初始化右键弹出式菜单处理类
DataRow row = gridView2.GetDataRow(gridView2.FocusedRowHandle);
if (row == null) return;
if (e.Button != MouseButtons.Right) return;
Point pnt = new Point();
pnt.X = e.X;
pnt.Y = e.Y;
pnt = gridControl2.PointToScreen(pnt);
QueryPopupMenu.WebServerIP = WebServerIP;
QueryPopupMenu.MapControl = MapQueryEnv.MapControl;
QueryPopupMenu.QueryHelp = QueryHelp;
QueryPopupMenu.ShowPopuMenu(pnt, row);
//popupMenu1.ShowPopup(pnt);
}//右键弹出式菜单处理类
private void comboBoxQueryObject_SelectedIndexChanged(object sender, EventArgs e)
{
QueryHelp.QueryTemplateInfo.strLayerName = comboBoxQueryObject.SelectedItem.ToString();
QueryHelp.QueryTemplateInfo.strSpaceField = clsGISPub.GetSpacialField(comboBoxQueryObject.SelectedItem.ToString());
MapQueryEnv.QueryLayer = comboBoxQueryObject.SelectedItem.ToString();
}
#endregion
#region "辅助处理函数"
//查询环境初始化
void InitMapQueryEnv()
{
MapQueryEnv.DbConn = m_OleDbConn;
if (textEditBufferR.Text.Trim() == "") MapQueryEnv.BufferR = 0;
else MapQueryEnv.BufferR = Convert.ToDouble(textEditBufferR.Text);//缓冲半径
if(comboBoxUnit.SelectedIndex == 0) MapQueryEnv.unitType = UnitType.Screen;
else MapQueryEnv.unitType = UnitType.Map;//单位类型
MapQueryEnv.QueryLayer = QueryHelp.QueryTemplateInfo.strLayerName;//查询的图层
MapQueryEnv.SpacialField = QueryHelp.QueryTemplateInfo.strSpaceField;//对应的空间字段
MapQueryEnv.WorkForm = this.Parent as Form;//容器窗体
MapQueryEnv.MapControl = m_MapControl;
//选择类型
string SpacialObj = comboBoxSpacialObj.SelectedItem.ToString();
string SelOption = comboBox_SpacialOption.SelectedItem.ToString();
if(SpacialObj == MAPSELECT_OBJECT.MAPSELECT_TEMP)//在地图上画点线面
{
MapQueryEnv.MapQueryMethod = MapQueryMethod.DRAW;
if (SelOption == MAPDRAW_TYPE.MAPDRAW_POINT) MapQueryEnv.MapDraw = MAPDRAW.MAPDRAW_POINT;
else if (SelOption == MAPDRAW_TYPE.MAPDRAW_LINE) MapQueryEnv.MapDraw = MAPDRAW.MAPDRAW_LINE;
else if (SelOption == MAPDRAW_TYPE.MAPDRAW_POLYGON) MapQueryEnv.MapDraw = MAPDRAW.MAPDRAW_POLYGON;
else if (SelOption == MAPDRAW_TYPE.MAPDRAW_CIRCLE) MapQueryEnv.MapDraw = MAPDRAW.MAPDRAW_CIRCLE;
else MapQueryEnv.MapDraw = MAPDRAW.MAPDRAW_RECT;
}
else if (SpacialObj == MAPSELECT_OBJECT.MAPSELECT_SELECTION)//从图层上选择空间要素
{
MapQueryEnv.MapQueryMethod = MapQueryMethod.SELECT;
MapQueryEnv.SelLayer = SelOption;//对应的图层名称
}
else//通过编码选择
{
MapQueryEnv.MapQueryMethod = MapQueryMethod.CODE;
MapQueryEnv.SelLayer = SelOption;//编码对应的图层名称
SpacialSel.m_MapQueryEnv = MapQueryEnv;
}
/////////////////////////////////////////////////////////////////////
m_ToolQueryHelp.MapQueryEnv = MapQueryEnv;
SpacialSel.m_MapQueryEnv = MapQueryEnv;
m_ToolQueryHelp.SSel = SpacialSel;
}
//处理代码选择
private void ProcCodeSelect()
{
if (MapQueryEnv.MapQueryMethod != MapQueryMethod.CODE) return;
//特殊处理
ArrayList aList = SpacialSel.QueryAreaCode();
MapQueryEnv.arrayList = aList;
}
//附加的窗体初始化
private void MyFormLoad()
{
comboBoxSpacialObj.Items.Clear();
comboBoxSpacialObj.Items.Add(MAPSELECT_OBJECT.MAPSELECT_TEMP);
//comboBoxSpacialObj.Items.Add(MAPSELECT_OBJECT.MAPSELECT_SELECTION);
//comboBoxSpacialObj.Items.Add(MAPSELECT_OBJECT.MAPDRAW_XXQH);
textEditBufferR.Text = "1";
comboBoxUnit.SelectedIndex = 0;
comboBoxSpacialObj.SelectedIndex = 0;
label_SOption.Text = "代码级别";
comboBox_SpacialOption.SelectedIndex = 0;
comboBoxSpacialObj_SelectedIndexChanged(null, null);
}
private string GetSpacialFilter()
{
if (MapQueryEnv == null || QueryHelp == null) return "";
if(MapQueryEnv.arrayList == null) return "";
string AttField = QueryHelp.QueryTemplateInfo.strAttField;
bool bStr = QueryHelp.IsStringType(AttField);
if(MapQueryEnv.arrayList.Count == 0) return "";
string items = "";
for (int i = 0; i < MapQueryEnv.arrayList.Count; i++)
{
string item = MapQueryEnv.arrayList[i].ToString();
if(bStr) item = "'" + item + "'";
if(items == "") items = item;
else items += "," + item;
}
return AttField + " in (" + items + ")";
}
private string MakeSQL()
{
if (AttFieldProc == null || QueryHelp ==null) return "";
string SQL;
string SpacialFilter = "";
string AttFilter = "";
if (checkBox_IsSpacial.Checked)//需要属性过滤
{
AttFilter = AttFieldProc.GetWhere();
}
if (checkBoxAttFilter.Checked)//需要空间过滤
{
SpacialFilter = GetSpacialFilter();
}
string View = QueryHelp.QueryTemplateInfo.strVName;//视图的名称
string fields = AttFieldProc.GetSelectFields();//查询字段
string order = AttFieldProc.GetOrderByFields();//排序字段
string where =MakeWhere(SpacialFilter,AttFilter) ;
if (order.Trim() == "") SQL = "select " + fields + " from " + View +" " + where ;
else SQL = "select " + fields + " from " + View + " " +where + " order by " + order;
return SQL;
}
private string MakeWhere(string SpacialFilter, string AttFilter)
{
if (AttFilter.Trim() == "")
{
if (SpacialFilter.Trim() == "") return "";
else return " where " + SpacialFilter;
}
else
{
if (SpacialFilter.Trim() == "") return "where " + AttFilter;
else return " where " + SpacialFilter + " and " + AttFilter;
}
}
private DataTable ExecQuerySQL(string sql)
{
DataSet ds = new DataSet();
OleDbDataAdapter adapter = new System.Data.OleDb.OleDbDataAdapter(sql, m_OleDbConn);
string view = QueryHelp.QueryTemplateInfo.strVName;
DataTable dt = null;
try
{
adapter.Fill(ds, view);
dt = ds.Tables[view];
}
catch (Exception e)
{
MessageBox.Show("打开查询失败!请检查SQL语句!!");
}
return dt;
}
private void InitExportGrid()
{
if (AttFieldProc == null || QueryHelp == null) return;
ArrayList AList = AttFieldProc.GetSelectFields1();
if (AList == null) return;
gridView2.Columns.Clear();
for (int i = 0; i < AList.Count; i++)
{
string field = AList[i].ToString();
clsFieldInfo FieldInfo = QueryHelp.GetFieldInfo(field);
MakeGridField(FieldInfo);
}
}
private void MakeGridField(clsFieldInfo FieldInfo)
{
if (FieldInfo == null) return;
DevExpress.XtraGrid.Columns.GridColumn gColumn = gridView2.Columns.Add();
gColumn.Caption = FieldInfo.FieldAias;
gColumn.FieldName = FieldInfo.FieldName;
gColumn.Name = "gridColumn_" + FieldInfo.FieldName;
gColumn.OptionsFilter.AllowAutoFilter = false;
gColumn.OptionsFilter.AllowFilter = false;
gColumn.Width = 90;
gColumn.MinWidth = 80;
gColumn.Visible = true;
gColumn.VisibleIndex = gridView2.Columns.Count;
}
//初始化右键弹出式菜单处理类
private void InitPopuMenu()
{
if (QueryPopupMenu == null || m_ToolQueryHelp == null) return;
QueryPopupMenu.dbConn = m_OleDbConn;
QueryPopupMenu.barManager1 = barManager1;
QueryPopupMenu.popupMenu1 = popupMenu1;
QueryPopupMenu.AttFieldProc = AttFieldProc;
QueryPopupMenu.AbstractQueryID = QueryHelp.QueryInstInfo.AbstractQueryID;//查询模板
}
#endregion
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?