/// <summary> /// 提交查询条件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSumbitFindCondition_Click(object sender, EventArgs e) { if (panelParameter.Controls.Count == 0) { MessageDialog.ShowPromptMessage("您还没有建立查询条件无法进行此操作!"); return; } m_sentenceSQL = null; try { for (int i = 0; i < panelParameter.Controls.Count; i++) { UserControlFindCondition newControl = panelParameter.Controls[i] as UserControlFindCondition; if (i != panelParameter.Controls.Count - 1) { m_sentenceSQL = m_sentenceSQL + newControl.BuildSQLSentence("", false); } else { m_sentenceSQL = m_sentenceSQL + newControl.BuildSQLSentence("", true); } } this.DialogResult = DialogResult.OK; this.Close(); } catch (Exception exce) { Console.WriteLine(exce.Message); return; } }
/// <summary> /// 删除条件 /// </summary> /// <param name="tmpControl"></param> public void DeleteCondition(UserControlFindCondition tmpControl) { panelTop.Height = panelTop.Height - tmpControl.Height; panelParameter.Controls.Remove(tmpControl); m_tempControlDic.Remove(tmpControl.Name); this.Height = 152 + (m_tempControlDic.Count - 1) * tmpControl.Height; this.MaximumSize = new Size(this.Width, this.Height); }
/// <summary> /// 新增条件 /// </summary> private void btnAddCondition_Click(object sender, EventArgs e) { UserControlFindCondition tmpControl = new UserControlFindCondition(m_arrayFindFild, this); tmpControl.Parent = panelParameter; tmpControl.Dock = DockStyle.Bottom; panelTop.Height = panelTop.Height + tmpControl.Height; m_count++; tmpControl.Name = m_count.ToString(); m_lstControl.Add(tmpControl); }
/// <summary> /// 保存我的查询 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSave_Click(object sender, EventArgs e) { try { if (!TestFilterCondition()) { return; } List <FilterInfo> lstFilter = new List <FilterInfo>(); for (int i = 0; i < panelParameter.Controls.Count; i++) { UserControlFindCondition control = panelParameter.Controls[i] as UserControlFindCondition; FilterInfo info = new FilterInfo(); info.OrderNo = i; info.FieldName = control.FieldName; info.DataValue = control.DataValue; if (m_queryResult != null) { info.DataType = m_queryResult.DataCollection.Tables[0].Columns[info.FieldName].DataType.Name; } else { info.DataType = control.DataType; } info.Logic = control.LogicSymbol; info._operator1 = control.Operator; info.LeftParentheses = control.LeftParentheses; info.RghtParentheses = control.RightParentheses; lstFilter.Add(info); } QueryFilterControl.SaveFilter(m_title, lstFilter); QueryFilterControl.Save(); MessageDialog.ShowPromptMessage("成功保存查询过滤条件!"); } catch (Exception exce) { MessageDialog.ShowErrorMessage(exce.Message); } }
/// <summary> /// 选择原来保存了的检索名称 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmbSearchName_SelectedIndexChanged(object sender, EventArgs e) { panelParameter.Controls.Clear(); panelTop.Height = 120; if (cmbSearchName.Text != "") { string error = null; IQueryable <SYS_SearchParams> searchParams = m_searchParamsServer.GetParams( m_parentTitle, Business, cmbSearchName.Text, out error); if (searchParams == null) { return; } if (!GlobalObject.GeneralFunction.IsNullOrEmpty(error)) { MessageDialog.ShowErrorMessage(error); return; } m_count = 0; foreach (var item in searchParams) { UserControlFindCondition tmpControl = new UserControlFindCondition(m_arrayFindFild, this); tmpControl.LeftParentheses = item.LeftParentheses.ToString(); tmpControl.FieldName = item.FieldName; tmpControl.Operator = item.Operator; tmpControl.DataType = item.DataType; tmpControl.DataValue = item.DataValue; tmpControl.RightParentheses = item.RightParentheses.ToString(); tmpControl.LogicSymbol = item.Logic; tmpControl.Parent = panelParameter; tmpControl.Dock = DockStyle.Bottom; panelTop.Height = panelTop.Height + tmpControl.Height; m_count++; tmpControl.Name = m_count.ToString(); } } }
/// <summary> /// 新增条件 /// </summary> private void btnAddCondition_Click(object sender, EventArgs e) { UserControlFindCondition tmpControl = new UserControlFindCondition(m_arrayFindFild, this); tmpControl.Parent = panelParameter; tmpControl.Dock = DockStyle.Bottom; panelTop.Height = panelTop.Height + tmpControl.Height; m_count++; tmpControl.Name = tmpControl.Name + m_count.ToString(); m_tempControlDic.Add(tmpControl.Name, tmpControl); int height = 152 + (m_tempControlDic.Count - 1) * tmpControl.Height; this.MaximumSize = new Size(this.Width, height); this.Height = height; }
/// <summary> /// 提交并查询 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnFind_Click(object sender, EventArgs e) { string m_sentenceSQL = null; try { for (int i = 0; i < panelParameter.Controls.Count; i++) { UserControlFindCondition newControl = panelParameter.Controls[i] as UserControlFindCondition; if (i != panelParameter.Controls.Count - 1) { m_sentenceSQL = m_sentenceSQL + newControl.BuildSQLSentence("报表", false); } else { m_sentenceSQL = m_sentenceSQL + newControl.BuildSQLSentence("报表", true); } } } catch (Exception exce) { Console.WriteLine(exce.Message); return; } if (m_sentenceSQL != null) { string error = null; dataGridView1.DataSource = DataSetHelper.SiftDataTable(m_quertResultTable, m_sentenceSQL, out error); } else { dataGridView1.DataSource = m_quertResultTable; } userControlDataLocalizer1.Init(dataGridView1, this.Name, UniversalFunction.SelectHideFields(this.Name, dataGridView1.Name, BasicInfo.LoginID)); dataGridView1.Refresh(); }
/// <summary> /// 构造函数 /// </summary> /// <param name="title">标题</param> /// <param name="arrayFindFild">查找用的字段</param> /// <param name="findBusiness">要查询的业务</param> public FormFilterCondition(string title, string[] arrayFindFild, string findBusiness) { InitializeComponent(); SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw | ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer, true); UpdateStyles(); m_title = title; this.Text = title + this.Text; m_arrayFindFild = arrayFindFild; m_findBusiness = findBusiness; m_lstFilter = QueryFilterControl.GetFilterInfo(title); panelParameter.Controls.Clear(); panelTop.Height = 120; if (m_lstFilter != null) { foreach (var item in m_lstFilter) { UserControlFindCondition tmpControl = new UserControlFindCondition(m_arrayFindFild, this); tmpControl.LeftParentheses = item.LeftParentheses; tmpControl.FieldName = item.FieldName; tmpControl.Operator = item._operator1; tmpControl.DataType = item.DataType; tmpControl.DataValue = item.DataValue; tmpControl.RightParentheses = item.RghtParentheses; tmpControl.LogicSymbol = item.Logic; tmpControl.Parent = panelParameter; tmpControl.Dock = DockStyle.Bottom; panelTop.Height = panelTop.Height + tmpControl.Height; m_count++; tmpControl.Name = m_count.ToString(); m_lstControl.Add(tmpControl); } } }
/// <summary> /// 保存检索条件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSaveCondition_Click(object sender, EventArgs e) { if (panelParameter.Controls.Count == 0) { MessageDialog.ShowPromptMessage("还没有设置查询条件无法进行保存"); return; } string searchName = InputBox.ShowDialog("保存检索条件", "检索条件名称:", cmbSearchName.Text); if (!GlobalObject.GeneralFunction.IsNullOrEmpty(searchName)) { List <SYS_SearchParams> lstParam = new List <SYS_SearchParams>(); int orderNo = 0; string error = null; foreach (var item in panelParameter.Controls) { SYS_SearchParams param = new SYS_SearchParams(); param.BusinessName = m_parentTitle; param.ItemName = Business; param.SearchName = searchName; UserControlFindCondition tmpControl = (UserControlFindCondition)item; //if (tmpControl.LeftParentheses.Length > 0) // param.LeftParentheses = tmpControl.LeftParentheses[0].ToString(); //if (tmpControl.RightParentheses.Length > 0) // param.RightParentheses = tmpControl.RightParentheses[0].ToString(); param.LeftParentheses = tmpControl.LeftParentheses.Trim(); param.RightParentheses = tmpControl.RightParentheses.Trim(); param.FieldName = tmpControl.FieldName; param.Operator = tmpControl.Operator; param.OrderNo = orderNo++; param.Logic = tmpControl.LogicSymbol; param.DataType = tmpControl.DataType; param.DataValue = tmpControl.DataValue; param.UserCode = GlobalObject.BasicInfo.LoginID; lstParam.Add(param); } if (!m_searchParamsServer.AddParam(lstParam, out error)) { MessageDialog.ShowErrorMessage(error); } else { MessageDialog.ShowPromptMessage("成功保存查询条件"); if (!cmbSearchName.Items.Contains(searchName)) { cmbSearchName.Items.Add(""); cmbSearchName.Items.Add(searchName); cmbSearchName.Text = searchName; if (!panelSelectSearch.Visible) { panelSelectSearch.Visible = true; } } } } }
/// <summary> /// 删除条件 /// </summary> /// <param name="tmpControl"></param> public void DeleteCondition(UserControlFindCondition tmpControl) { panelTop.Height = panelTop.Height - tmpControl.Height; panelParameter.Controls.Remove(tmpControl); m_tempControlDic.Remove(tmpControl.Name); }
/// <summary> /// 提交并查询 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnFind_Click(object sender, EventArgs e) { if (panelParameter.Controls.Count == 0) { MessageDialog.ShowPromptMessage("您还没有建立查询条件无法进行此操作!"); return; } m_sentenceSQL = null; string pareTemp = ""; try { for (int i = 0; i < panelParameter.Controls.Count; i++) { UserControlFindCondition newControl = panelParameter.Controls[i] as UserControlFindCondition; if (i != panelParameter.Controls.Count - 1) { m_sentenceSQL = m_sentenceSQL + newControl.BuildSQLSentence("", false); } else { m_sentenceSQL = m_sentenceSQL + newControl.BuildSQLSentence("", true); if (newControl.FieldName == "单据号") { pareTemp = newControl.DataValue; } } } } catch (Exception exce) { Console.WriteLine(exce.Message); return; } IAuthorization authorization = PlatformFactory.GetObject <IAuthorization>(); string businessID = ""; switch (m_findBusiness) { case "报检入库单": businessID = "报检入库单查询"; break; case "普通入库单": businessID = "普通入库单查询"; break; case "采购退货单": businessID = "采购退货单查询"; break; case "领料单": businessID = "领料单查询"; break; case "领料退库单": businessID = "领料退库单查询"; break; case "销售退库单": businessID = "销售退库单查询"; break; case "销售出库单": businessID = "销售出库单查询"; break; case "产品入库单": businessID = "产品入库单查询"; break; case "报废单": businessID = "报废单查询"; break; case "报废单综合查询": businessID = m_findBusiness; break; case "合同信息管理": businessID = "合同信息综合查询"; break; case "订单信息管理": businessID = "订单信息综合查询"; break; case "自制件入库单": businessID = "自制件入库单查询"; break; case "采购退货单综合查询": businessID = m_findBusiness; break; case "领料单综合查询": businessID = m_findBusiness; break; case "样品确认申请单": businessID = "样品确认申请单综合查询"; break; case "不合格品隔离处置单": businessID = "不合格品隔离处置单查询"; break; case "挑选返工返修单": businessID = "挑选返工返修单查询"; break; case "供应质量信息反馈单": businessID = "供应商质量信息反馈单查询"; break; case "委外报检入库单": businessID = "委外报检入库单查询"; break; case "产品型号变更单": businessID = "产品型号变更单查询"; break; default: businessID = m_findBusiness; break; } string sql = m_sentenceSQL.ToLower(); if (sql.LastIndexOf(" union ") != -1) { MessageDialog.ShowPromptMessage("存在非法字符,无法进行此操作!"); return; } if (businessID == "培训综合统计查询" && (m_sentenceSQL.Contains("培训开始时间") || m_sentenceSQL.Contains("培训终止时间"))) { m_sentenceSQL = m_sentenceSQL + " or 培训开始时间 is null"; } IQueryResult qr = authorization.Query(businessID, null, m_sentenceSQL); if (m_findBusiness == "零星采购申请财务综合查询") { string[] pare = { pareTemp }; qr = authorization.QueryMultParam(businessID, m_sentenceSQL, pare); } if (m_findBusiness == "出差综合查询") { string[] pare = { BasicInfo.DeptCode }; qr = authorization.QueryMultParam(businessID, m_sentenceSQL, pare); } if (m_findBusiness == "出差人员查看") { string[] pare = { BasicInfo.LoginID }; qr = authorization.QueryMultParam(businessID, m_sentenceSQL, pare); } if (m_findBusiness == "订单入库单综合查询") { qr = authorization.QueryMultParam(businessID, m_sentenceSQL, m_proParameter); } if (!qr.Succeeded) { m_quertResultTable = null; MessageDialog.ShowErrorMessage(qr.Error); } else { m_quertResultTable = qr.DataCollection.Tables[0]; lblAmount.Text = m_quertResultTable.Rows.Count.ToString(); } dataGridView1.DataSource = m_quertResultTable; for (int i = 0; i < dataGridView1.Columns.Count; i++) { if (dataGridView1.Columns[i].Name.Contains("标志") || dataGridView1.Columns[i].Name.Contains("领料类型") || dataGridView1.Columns[i].Name.Contains("人编码") || //dataGridView1.Columns[i].Name.Contains("签名") || dataGridView1.Columns[i].Name.Contains("权限控制") || dataGridView1.Columns[i].Name.Contains("序号")) { dataGridView1.Columns[i].Visible = false; } } #region 隐藏不允许查看的列 if (qr.HideFields != null && qr.HideFields.Length > 0) { for (int i = 0; i < dataGridView1.Columns.Count; i++) { if (qr.HideFields.Contains(dataGridView1.Columns[i].Name)) { dataGridView1.Columns[i].Visible = false; } } } #endregion if (!BasicInfo.ListRoles.Contains(CE_RoleEnum.采购账务管理员.ToString()) && !BasicInfo.ListRoles.Contains(CE_RoleEnum.会计.ToString())) { for (int i = 0; i < dataGridView1.Columns.Count; i++) { if (dataGridView1.Columns[i].Name.Contains("单价") || dataGridView1.Columns[i].Name.Contains("金额")) { dataGridView1.Columns[i].Visible = false; } } } dataGridView1.Refresh(); }
/// <summary> /// 删除条件 /// </summary> /// <param name="tmpControl"></param> public void DeleteCondition(UserControlFindCondition tmpControl) { panelTop.Height = panelTop.Height - tmpControl.Height; panelParameter.Controls.Remove(tmpControl); m_lstControl.RemoveAll(p => p.Name == tmpControl.Name); }
/// <summary> /// 测试过滤条件 /// </summary> /// <returns>成功返回true</returns> private bool TestFilterCondition() { int leftParentheses = 0; int rightParentheses = 0; m_sentenceSQL = ""; try { for (int i = 0; i < panelParameter.Controls.Count; i++) { UserControlFindCondition control = panelParameter.Controls[i] as UserControlFindCondition; leftParentheses += control.LeftParentheses.Length == 0 ? 0 : 1; rightParentheses += control.RightParentheses.Length == 0 ? 0 : 1; if (i != panelParameter.Controls.Count - 1) { m_sentenceSQL = m_sentenceSQL + control.BuildSQLSentence("", false); } else { m_sentenceSQL = m_sentenceSQL + control.BuildSQLSentence("", true); } } if (leftParentheses != rightParentheses) { MessageDialog.ShowPromptMessage("左右括号数量不匹配"); return(false); } } catch (Exception exce) { Console.WriteLine(exce.Message); return(false); } IAuthorization authorization = PlatformFactory.GetObject <IAuthorization>(); string businessID = ""; switch (m_findBusiness) { case "报检入库单": businessID = "报检入库单查询"; break; case "普通入库单": businessID = "普通入库单查询"; break; case "采购退货单": businessID = "采购退货单查询"; break; case "领料单": businessID = "领料单查询"; break; case "领料退库单": businessID = "领料退库单查询"; break; case "销售退库单": businessID = "销售退库单查询"; break; case "销售出库单": businessID = "销售出库单查询"; break; case "产品入库单": businessID = "产品入库单查询"; break; case "还货单": businessID = "还货单查询"; break; case "借货单": businessID = "借货单查询"; break; case "报废单": businessID = "报废单查询"; break; case "合同信息管理": businessID = "合同信息综合查询"; break; case "订单信息管理": businessID = "订单信息综合查询"; break; case "自制件入库单": businessID = "自制件入库单查询"; break; case "产品型号变更单": businessID = "产品型号变更单查询"; break; } m_queryResult = authorization.Query(businessID, null, m_sentenceSQL); if (!m_queryResult.Succeeded) { MessageDialog.ShowErrorMessage(m_queryResult.Error); return(false); } else { return(true); } }