⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ucstatinst.cs

📁 以构建的方式来实现对通用的查询统计
💻 CS
📖 第 1 页 / 共 2 页
字号:
      else checkBox_GroupVisible.Checked = Convert.ToBoolean(obj);
      obj = row["StatItemVsisible"];
      if (obj.ToString() == "") checkBox_StatItemVisible.Checked = false;
      else checkBox_StatItemVisible.Checked = Convert.ToBoolean(obj);


      obj = row["IsWebStat"];
      if (obj.ToString() == "") checkBoxWebStat.Checked = false;
      else checkBoxWebStat.Checked = Convert.ToBoolean(obj);

      //填充属性过滤表============================================================
      InitAttFilter(Convert.ToInt32(tn.Name), Convert.ToInt32(row["AbstractStatID"]));
      //处理分组类型===============================================================
      if(row["MainGroupType"].ToString() == "") comboBox_GroupType.SelectedIndex = 0;//地图分组
      else  comboBox_GroupType.SelectedIndex = Convert.ToInt32(row["MainGroupType"]);//属性分组
      //填充主分组字段
      if (comboBox_GroupType.SelectedIndex == 0) FillGroupObj1(true);//填充图层
      else FillGroupObj1(false);//填充字段

      comboBox_GroupObj1.SelectedItem = row["MainGroupItem"];//设置当前选择
      FillGroupField(comboBox_groupObj2); //处理次分组字段
      comboBox_groupObj2.SelectedItem = row["SecondGroupField"].ToString();//设置当前选择
      InitGroupObj(Convert.ToInt32(tn.Name)); //装载分组项
     //处理统计字段============================================================
      StatItem.LoadStatItemTable();
      gridControl1.EmbeddedNavigator.Refresh();
      gridControl2.EmbeddedNavigator.Refresh();
    }

    //对属性处理对象进行初始化
    private void InitAttFilter(int statInstID, int AbstractID)
    {
      proAttFilter.StatInstID = statInstID;//统计实例ID
      proAttFilter.AbstractStatID = AbstractID;//统计模板ID
      proAttFilter.LoadAttFilterTable();//属性过滤表
      proAttFilter.LoadStatTemplateInfo();//统计模板相关信息表
      proAttFilter.LoadAttFilterFieldsInfo();//字段信息表
      proAttFilter.GetFieldInfoTable();
      gridControl1.DataSource = proAttFilter.m_AttFilterTable;
      proAttFilter.FillrepositoryItemComboBox_field(repositoryItemLookUpEdit_field1);//处理字段下来列表框
      proAttFilter.InitItemLookUp(gridView1);//预加载所有的lookupedit
      gridControl1.Update();
    }

    //当统计模板变化时,统计字段要重新设定
    private void LoadFieldSetInfo()
    {
      if (lookUpEdit1.EditValue.ToString() == "")
      {
        MessageBox.Show("请选择统计模板!");
        return;
      }
      TreeNode tn = treeView1.SelectedNode;
      if (tn == null) proAttFilter.StatInstID = -1;
      else if (tn.ImageIndex == m_nStatInstImageIndex) proAttFilter.StatInstID = Convert.ToInt32(tn.Name);//统计实例ID
      else proAttFilter.StatInstID = -1;


      proAttFilter.AbstractStatID = Convert.ToInt32(lookUpEdit1.EditValue);//统计模板ID
      proAttFilter.LoadAttFilterTable();//属性过滤表
      proAttFilter.LoadStatTemplateInfo();//统计模板相关信息表
      proAttFilter.LoadAttFilterFieldsInfo();//字段信息表
      proAttFilter.LoadFieldsInfo();
      gridControl1.DataSource = proAttFilter.m_AttFilterTable;
      proAttFilter.FillrepositoryItemComboBox_field(repositoryItemLookUpEdit_field1);//处理字段下拉列表框
      proAttFilter.InitItemLookUp(gridView1);//预加载所有的lookupedit
    }

    //处理属性过滤===============================================
    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 SetFieldValueSelector(DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e, int Fieldid)
    {
      DataRow dr = proAttFilter.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 = proAttFilter.GetLookupEdit(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();
      return;
      DataView view = (DataView)gridView1.DataSource;
      if (view == null) return;
      DataTable dt = (DataTable)view.Table;
      if (dt == null) return;
      if (gridView1.FocusedRowHandle < 0 || gridView1.FocusedRowHandle > 1000) return;
      DataRow row = dt.Rows[gridView1.FocusedRowHandle];
      if (row == null) return;
      if (row["Field"].ToString() == "") return;
      int Fieldid = Convert.ToInt32(row["Field"]);

      DataRow dr = proAttFilter.GetFieldInfo1(Fieldid);
      if (dr == null) return;
      string DataType = dr["FieldType"].ToString();
      if (DataType != ConstDataType.CData) return;

      //proAttFilter.SetDict(repositoryItemLookUpEdit_value1, Fieldid);
      //proAttFilter.ProFieldValueSelect(gridColumn6, repositoryItemLookUpEdit_value1, repositoryItemTextEdit_value, repositoryItemDateEdit1, Fieldid);
    }

    private void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
    {
      return;
      DataView view = (DataView)gridView1.DataSource;
      if (view == null) return;
      DataTable dt = (DataTable)view.Table;
      if (dt == null) return;
      if (gridView1.FocusedRowHandle < 0 || gridView1.FocusedRowHandle > 1000) return;
      DataRow row = dt.Rows[gridView1.FocusedRowHandle];
      if (row == null) return;
      if (row["Field"].ToString() == "") return;
      int Fieldid = Convert.ToInt32(row["Field"]);

      DataRow dr = proAttFilter.GetFieldInfo1(Fieldid);
      if (dr == null) return;
      string DataType = dr["FieldType"].ToString();
      if (DataType != ConstDataType.CData) return;

      //proAttFilter.ProFieldValueSelect(gridColumn6, repositoryItemLookUpEdit_value1, repositoryItemTextEdit_value, repositoryItemDateEdit1, Fieldid);

    }

    private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
    {
      return;
      if (e.DisplayText == "") return;
      if (e.DisplayText.Length <= 10) return;

      if (e.RowHandle < 0 || e.RowHandle > 1000) return;
      DataRow row = gridView1.GetDataRow(e.RowHandle);
      if (row == null) return;
      if (row["Field"].ToString() == "") return;
      int Fieldid = Convert.ToInt32(row["Field"]);
      DataRow dr = proAttFilter.GetFieldInfo1(Fieldid);
      if (dr == null) return;
      string DataType = dr["FieldType"].ToString();
      if (DataType != ConstDataType.CData) return;
      e.DisplayText = e.DisplayText.Remove(10);
      //MessageBox.Show(e.DisplayText);
    }

    private void SetLookupData()
    {
      if (gridView1.FocusedRowHandle < 0 || gridView1.FocusedRowHandle > 1000) return;
      DataRow row = gridView1.GetDataRow(gridView1.FocusedRowHandle);
      if (row == null) return;
      if (row["Field"].ToString() == "") return;
      int Fieldid = Convert.ToInt32(row["Field"]);
      DataRow dr = proAttFilter.GetFieldInfo1(Fieldid);
      if (dr == null) return;
      string DataType = dr["FieldType"].ToString();
      //if (DataType != ConstDataType.CData) return;
    }

    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 gridControl1_EmbeddedNavigator_ButtonClick(object sender, DevExpress.XtraEditors.NavigatorButtonClickEventArgs e)
    {
      return;
      if (e.Button.ButtonType.ToString() != "Remove") return;
      DevExpress.XtraGrid.GridControlNavigator Nav = (DevExpress.XtraGrid.GridControlNavigator)sender;
      int iPos = Nav.NavigatableControl.Position;
      if (iPos < 0) return;
      DataView view = (DataView)gridView1.DataSource;
      if (view == null) return;
      DataTable dt = (DataTable)view.Table;
      if (dt == null) return;
      dt.Rows.RemoveAt(iPos);
    }

    private void lookUpEdit1_EditValueChanged(object sender, EventArgs e)
    {
      LoadFieldSetInfo();
      FillGroupField(comboBox_groupObj2); //处理次分组字段(属性字段)
      listBox_GroupItem2.Items.Clear();
      if (comboBox_GroupType.SelectedIndex == 1)//主分组字段也是属性分组
      {
        FillGroupField(comboBox_GroupObj1); //处理次分组字段
        listBox_GroupItem1.Items.Clear();
      }
      //处理统计项目
      StatItem.LoadStatItemTable();
      gridControl1.EmbeddedNavigator.Refresh();
      gridControl2.EmbeddedNavigator.Refresh();
    }

    ///以下函数处理统计分组
    /// <summary>
    /// 
    /// </summary>
    private void InitGroupObj(int StatInstID)
    {
      clsProcGroupItem ProGItem = new clsProcGroupItem();
      ProGItem.m_nStatInstID = StatInstID;
      ProGItem.OleDbConn = m_OleDbConn;
      ProGItem.MainGroupContent = this.listBox_GroupItem1;
      ProGItem.SecondGroupContent = this.listBox_GroupItem2;
      ProGItem.LoadGroupContent();
    }

    //填充主分组项,当是地图上,填充为图层;当是属性列表时,填充的是分组字段
    private void FillGroupObj1(bool bMap)
    {
      comboBox_GroupObj1.Items.Clear();
      if (bMap)
      {
        comboBox_GroupObj1.Items.Add(XXQH_TYPE.CPROV);
        comboBox_GroupObj1.Items.Add(XXQH_TYPE.CDIST);
        comboBox_GroupObj1.Items.Add(XXQH_TYPE.CCNTY);
      }
      else
      {
        FillGroupField(comboBox_GroupObj1);
      }
    }

    private void FillGroupField(ListBox GroupItemListBox)
    {
      if (proAttFilter == null || GroupItemListBox == null) return;
      DataTable dt = proAttFilter.GetFieldInfoTable();
      if (dt == null) return;
      DataRow[] drs = dt.Select("IsGroup = 1");//分组字典必须是词典
      GroupItemListBox.Items.Clear();
      foreach (DataRow dr in drs)
      {
        if (dr["DICT"].ToString().Trim() == "")
        {
          MessageBox.Show("分组字段必须是字典!配置错误!该字段被忽略!");
          continue;
        }
        GroupItemListBox.Items.Add(dr["FieldAias"].ToString());
      }
    }
    private void FillGroupField(ComboBox GroupItemComboBox)
    {
      if (proAttFilter == null || GroupItemComboBox == null) return;
      DataTable dt = proAttFilter.GetFieldInfoTable();
      if (dt == null) return;
      DataRow[] drs = dt.Select("IsGroup = 1");//分组字典必须是词典
      GroupItemComboBox.Items.Clear();
      foreach (DataRow dr in drs)
      {
        if (dr["DICT"].ToString().Trim() == "")
        {
          MessageBox.Show("分组字段必须是字典!配置错误!该字段被忽略!");
          continue;
        }
        GroupItemComboBox.Items.Add(dr["FieldAias"].ToString());
      }
    }

    private void comboBox_GroupType_SelectedIndexChanged(object sender, EventArgs e)
    {
      if (comboBox_GroupType.SelectedIndex == 0)//分组类型为地图
      {
        FillGroupObj1(true);
      }
      else FillGroupObj1(false);
      listBox_GroupItem1.Items.Clear();
      MainGrouList.Clear();
    }

    //选择主分组的分组目录
    private void btnSelect1_Click(object sender, EventArgs e)
    {
      if (comboBox_GroupType.SelectedIndex == 0)//分组类型为地图
      {
        frmSelectXXQHbyATT frm = new frmSelectXXQHbyATT();
        frm.mapControl = null;
        frm.OleDbConn = m_OleDbConn;
        frm.iLevel = comboBox_GroupObj1.SelectedIndex + 1;
        frm.FirstLayer = "省级行政区";
        frm.SecondLayer = "地级行政区";
        frm.ThirdLayer = "县级行政区";
        frm.FirstKeyField = "PROV_CODE";
        frm.FirstNameField = "name";
        frm.SecondKeyField = "DIST_CODE";
        frm.SecondNameField = "name";
        frm.ThirdKeyField = "CNTY_CODE";
        frm.ThirdNameField = "name";
        ////frm.PrivCode = "110000";////通过这里来设置权限
        //设置以前的选择


        frm.ShowDialog(this); 
        //保存设置
        frm.SaveSel(listBox_GroupItem1);
        frm.SaveSel(MainGrouList);//保存编码
      }
      else
      {
        if (proAttFilter == null) return;
        if (comboBox_GroupObj1.SelectedItem.ToString() == "") return;//comboBox_GroupObj1
        string dict = proAttFilter.GetFieldDICT(comboBox_GroupObj1.SelectedItem.ToString());
        frmSelectDictItem frm = new frmSelectDictItem();
        frm.OleDbConn = m_OleDbConn;
        frm.DICT = dict;
        frm.ShowDialog(this);
        frm.SaveSel(listBox_GroupItem1);//保存到界面
        frm.SaveSel(MainGrouList);//保存编码
      }
    }

    private void comboBox_groupObj2_SelectedIndexChanged(object sender, EventArgs e)
    {
      listBox_GroupItem2.Items.Clear();
      SecondGroupList.Clear();
    }

    private void comboBox_GroupObj1_SelectedIndexChanged(object sender, EventArgs e)
    {
      listBox_GroupItem1.Items.Clear();
      MainGrouList.Clear();
    }

    private void btnSelect2_Click(object sender, EventArgs e)
    {
      if (proAttFilter == null) return;
      if (comboBox_groupObj2.SelectedItem.ToString() == "") return;//次分组对象
      string dict = proAttFilter.GetFieldDICT(comboBox_groupObj2.SelectedItem.ToString());
      frmSelectDictItem frm = new frmSelectDictItem();
      frm.OleDbConn = m_OleDbConn;
      frm.DICT = dict;
      frm.ShowDialog(this);
      frm.SaveSel(listBox_GroupItem2);//保存到界面
      frm.SaveSel(SecondGroupList);//保存编码
    }
    
  }
}

⌨️ 快捷键说明

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