using DevExpress.XtraBars; using DevExpress.XtraEditors; using DevExpress.XtraGrid; using DevExpress.XtraGrid.Views.Grid; using DevExpress.XtraLayout; using Gs.DevApp.DevFrm.Rpt; using Gs.DevApp.DevFrm.Sys; using Gs.DevApp.Entity; using Gs.DevApp.ToolBox; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Text; using System.Windows.Forms; namespace Gs.DevApp.UserControl { public partial class UcToolBarMenu : XtraUserControl { public UcToolBarMenu() { InitializeComponent(); btnAdd.ItemClick += BtnAdd_ItemClick; btnDel.ItemClick += BtnDel_ItemClick; btnEdit.ItemClick += BtnEdit_ItemClick; btnLoad.ItemClick += BtnLoad_ItemClick; btnSave.ItemClick += BtnSave_ItemClick; btnEsc.ItemClick += BtnEsc_ItemClick; btnQuery.ItemClick += BtnQuery_ItemClick; btnReport.ItemClick += BtnReport_ItemClick; btnDesign.ItemClick += BtnDesign_ItemClick; btnOut.ItemClick += BtnOut_ItemClick; btnIn.ItemClick += BtnIn_ItemClick; btnChk.ItemClick += BtnChk_ItemClick; btnFchk.ItemClick += BtnFchk_ItemClick; btnPiZhun.ItemClick += BtnPiZhun_ItemClick; btnFPiZhun.ItemClick += BtnFPiZhun_ItemClick; btnLog.ItemClick += BtnLog_ItemClick; btnCaiGouChk.ItemClick += BtnCaiGouChk_ItemClick; btnCaiGouFchk.ItemClick += BtnCaiGouFchk_ItemClick; btnJieAn.ItemClick += BtnJieAn_ItemClick; btnFjieAn.ItemClick += BtnFjieAn_ItemClick; btnTzbl.ItemClick += BtnTzbl_ItemClick; btnKg.ItemClick += BtnKg_ItemClick; btnZhongTai.ItemClick += BtnbZhongTai_ItemClick; btnWg.ItemClick += BtnWg_ItemClick; btnHelp.ItemClick += BtnHelp_ItemClick; btnLayout.ItemClick += BtnLayout_ItemClick; btnFont.ItemClick += BtnFont_ItemClick; btnShouJian.ItemClick += BtnShouJian_ItemClick; btnCaiWuChk.ItemClick += BtnCaiWuChk_ItemClick; btnCaiWuFchk.ItemClick += BtnCaiWuFchk_ItemClick; btnShouHouChk.ItemClick += BtnShouHouChk_ItemClick; btnShouHouFchk.ItemClick += BtnShouHouFchk_ItemClick; var lst = new List(); foreach (BarItem item in barManager1.Items) if (item is BarLargeButtonItem largeButtonItem) if (!string.IsNullOrEmpty(item.Caption) && item.Caption != "保存" && item.Caption != "刷新" && item.Caption != "帮助" && item.Caption != "保存版面" && item.Caption != "取消") lst.Add(item.Caption); actions = lst; } /// /// 初始化按钮状态 /// protected override void OnCreateControl() { base.OnCreateControl(); if (Parent != null) getNamespace(); } private bool _isCk(int _type) { Form parentForm = this.FindForm(); if (parentForm != null) { PictureBox specificControl = (PictureBox)parentForm.Controls.Find("picCheckBox", true).FirstOrDefault(); if (specificControl == null) return false; if (specificControl.Tag == null) return false; if (_type == 1) { if (specificControl != null) { if (specificControl.Tag.ToString() == "已审核") { Gs.DevApp.ToolBox.MsgHelper.ShowInformation("该单据已被审核,无法进行操作!"); return true; } } } if (_type == 0) { if (specificControl != null) { if (specificControl.Tag.ToString() == "未审核") { Gs.DevApp.ToolBox.MsgHelper.ShowInformation("该单据未被审核,无法进行操作!"); return true; } } } } return false; } private void BtnCaiGouFchk_ItemClick(object sender, ItemClickEventArgs e) { if (btnCaiGouFchkClick != null) btnCaiGouFchkClick(this, e); } private void BtnCaiGouChk_ItemClick(object sender, ItemClickEventArgs e) { if (btnCaiGouChkClick != null) btnCaiGouChkClick(this, e); } private void BtnCaiWuFchk_ItemClick(object sender, ItemClickEventArgs e) { if (btnCaiWuFchkClick != null) btnCaiWuFchkClick(this, e); } private void BtnCaiWuChk_ItemClick(object sender, ItemClickEventArgs e) { if (btnCaiWuChkClick != null) btnCaiWuChkClick(this, e); } private void BtnShouHouFchk_ItemClick(object sender, ItemClickEventArgs e) { if (btnShouHouFchkClick != null) btnShouHouFchkClick(this, e); } private void BtnShouHouChk_ItemClick(object sender, ItemClickEventArgs e) { if (btnShouHouChkClick != null) btnShouHouChkClick(this, e); } private void BtnFchk_ItemClick(object sender, ItemClickEventArgs e) { bool bl = _isCk(0); if (bl) return; if (btnFChkClick != null) { btnFChkClick(this, e); } return; } private void BtnChk_ItemClick(object sender, ItemClickEventArgs e) { bool bl = _isCk(1); if (bl) return; if (btnChkClick != null) { btnChkClick(this, e); } return; } private void BtnFjieAn_ItemClick(object sender, ItemClickEventArgs e) { if (btnFjieAnClick != null) btnFjieAnClick(this, e); else return; } private void BtnJieAn_ItemClick(object sender, ItemClickEventArgs e) { if (btnJieAnClick != null) btnJieAnClick(this, e); else return; } private void BtnLog_ItemClick(object sender, ItemClickEventArgs e) { if (btnLogClick != null) btnLogClick(this, e); else return; if (string.IsNullOrEmpty(guidKey)) { MsgHelper.Warning("请先选择你要操作的行!"); return; } UserControl.ShowLogcs frm = new ShowLogcs(this.guidKey); frm.ShowDialog(); } private void BtnPiZhun_ItemClick(object sender, ItemClickEventArgs e) { if (btnPiZhunClick != null) btnPiZhunClick(this, e); } private void BtnFPiZhun_ItemClick(object sender, ItemClickEventArgs e) { if (btnFPiZhunClick != null) btnFPiZhunClick(this, e); } private void BtnShouJian_ItemClick(object sender, ItemClickEventArgs e) { if (btnShouJianClick != null) btnShouJianClick(this, e); else return; } private async void BtnIn_ItemClick(object sender, ItemClickEventArgs e) { if (string.IsNullOrEmpty(xlsInService)) { MsgHelper.ShowError("没有指定导入服务,请联系开发人员获取支持!"); return; } //用于判断iqc,ipqc首检,ipqc巡检,fqc string strType = ""; string strService = ""; if (xlsInService.Contains("&")) { strType = xlsInService.Split('&')[1]; strService = xlsInService.Split('&')[0]; } else { strType = ""; strService = xlsInService; } //这是一个随机值,将会被当作父亲guid存到file表中,服务端根据这个guid读取相应的文件 string upGuid = Guid.NewGuid().ToString(); Gs.DevApp.UserControl.ShowUp frm = new Gs.DevApp.UserControl.ShowUp(upGuid); frm.UpdateParent += (ss, ee) => { var _obj = new { tmpGuid = upGuid, strType = strType, }; try { string strJson = UtilityHelper.HttpPost("", "XlsInOut/" + strService, JsonConvert.SerializeObject(_obj)); var _rtn = UtilityHelper.ReturnToDynamic(strJson); MsgHelper.ShowInformation("提示:" + _rtn.rtnMsg); } catch (Exception ex) { MsgHelper.Warning("提示:" + ex.Message); } }; frm.ShowDialog(); } private void BtnOut_ItemClick(object sender, ItemClickEventArgs e) { if (btnOutClick != null) btnOutClick(this, e); //if (string.IsNullOrEmpty(this.xlsOutParameter)) //{ // ToolBox.MsgHelper.ShowError("没有指定导出存储过程,请联系开发人员获取支持!"); // return; //} //using (FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog()) //{ // folderBrowserDialog.Description = "选择导出文件的保存路径"; // DialogResult dialogResult = folderBrowserDialog.ShowDialog(); // if (dialogResult == DialogResult.OK) // { // string _folder = folderBrowserDialog.SelectedPath; // var _obj = new Gs.DevApp.Entity.XlsOutModel(this.xlsOutParameter); // try // { // string strJson = UtilityHelper.HttpPost("", "XlsInOut/XlsOutView", JsonConvert.SerializeObject(_obj)); // ReturnModel _rtn = ToolBox.UtilityHelper.ReturnToDynamic(strJson); // if (_rtn.rtnCode > 0) // { // string _file = _rtn.rtnData.fileUrl.ToString(); // string _folderName = _folder + "\\" + _file.Replace("down/", ""); // string _url = ConfigurationManager.AppSettings["WebApiUrl"].ToString() + _file; // using (WebClient client = new WebClient()) // { // client.DownloadFile(_url, _folderName); // } // ToolBox.MsgHelper.ShowInformation("导出成功!"); // } // else // { // ToolBox.MsgHelper.Warning("提示:" + _rtn.rtnMsg); // } // } // catch (Exception ex) // { // ToolBox.MsgHelper.Warning("提示:" + ex.Message); // } // } //} } private void BtnReport_ItemClick(object sender, ItemClickEventArgs e) { if (btnReportClick != null) btnReportClick(this, e); else return; if (rptParameter == "return false") return; if (string.IsNullOrEmpty(rptParameter)) { MsgHelper.ShowError("没有指定报表参数,请联系技术开发人员!"); return; } var _bl = false; _bl = _ckRptService(); if (_bl) { var frm = new RptPreview(guidKey, rptParameter); frm.ShowDialog(); return; } MsgHelper.ShowError("没有设计模板,请先设计模板!"); } private void BtnDesign_ItemClick(object sender, ItemClickEventArgs e) { if (btnDesignClick != null) btnDesignClick(this, e); else return; if (string.IsNullOrEmpty(rptParameter)) { MsgHelper.ShowError("没有指定报表参数,请联系技术开发人员!"); return; } var _bl = false; _bl = _ckRptService(); //如果已经有模板了,直接打开设置模板 if (_bl) { var frm = new EasyRptDesign(guidKey, rptParameter); frm.ShowDialog(); return; } //否则向导设计模板 var rptWizard = new ShowRptWizard(guidKey, rptParameter); rptWizard.ShowDialog(); } private void BtnQuery_ItemClick(object sender, ItemClickEventArgs e) { if (btnQueryClick != null) btnQueryClick(this, e); } /// /// 取消时,还原按钮可用性 /// /// /// private void BtnEsc_ItemClick(object sender, ItemClickEventArgs e) { if (MsgHelper.AskQuestion("确定要要取消吗?")) { var lst = new List(); lst.Add(btnAdd.Name); lst.Add(btnEdit.Name); lst.Add(btnLoad.Name); lst.Add(btnDel.Name); lst.Add(btnQuery.Name); lst.Add(btnReport.Name); lst.Add(btnDesign.Name); lst.Add(btnChk.Name); lst.Add(btnFchk.Name); lst.Add(btnOut.Name); lst.Add(btnIn.Name); lst.Add(btnLog.Name); lst.Add(btnPiZhun.Name); lst.Add(btnFPiZhun.Name); lst.Add(btnHelp.Name); lst.Add(btnLayout.Name); lst.Add(btnFont.Name); lst.Add(btnTzbl.Name); lst.Add(btnKg.Name); lst.Add(btnWg.Name); lst.Add(btnZhongTai.Name); lst.Add(btnCaiWuChk.Name); lst.Add(btnCaiWuFchk.Name); lst.Add(btnCaiGouChk.Name); lst.Add(btnCaiGouFchk.Name); lst.Add(btnShouHouChk.Name); lst.Add(btnShouHouFchk.Name); _enabledBtn(lst); this.currentAction = "esc"; if (btnEscClick != null) btnEscClick(this, e); } } /// /// 保存成功后,还原按钮可用性 /// /// /// private void BtnSave_ItemClick(object sender, ItemClickEventArgs e) { if (btnSaveClick != null) { btnSaveClick(this, e); if (isSetBtn) { var lst = new List(); lst.Add(btnAdd.Name); lst.Add(btnEdit.Name); lst.Add(btnChk.Name); lst.Add(btnFchk.Name); lst.Add(btnDel.Name); lst.Add(btnQuery.Name); lst.Add(btnLog.Name); lst.Add(btnPiZhun.Name); lst.Add(btnFPiZhun.Name); lst.Add(btnDesign.Name); lst.Add(btnReport.Name); lst.Add(btnKg.Name); lst.Add(btnWg.Name); lst.Add(btnZhongTai.Name); lst.Add(btnHelp.Name); lst.Add(btnLayout.Name); lst.Add(btnFont.Name); lst.Add(btnLoad.Name); lst.Add(btnTzbl.Name); lst.Add(btnZhongTai.Name); lst.Add(btnCaiWuChk.Name); lst.Add(btnCaiWuFchk.Name); lst.Add(btnCaiGouChk.Name); lst.Add(btnCaiGouFchk.Name); lst.Add(btnShouHouChk.Name); lst.Add(btnShouHouFchk.Name); _enabledBtn(lst); } } } private void BtnLoad_ItemClick(object sender, ItemClickEventArgs e) { if (btnLoadClick != null) //List lst = new List(); //lst.Add(btnRole.Name); //setBtn(lst); btnLoadClick(this, e); } private void BtnEdit_ItemClick(object sender, ItemClickEventArgs e) { bool bl = _isCk(1); if (bl) return; var lst = new List(); lst.Add(btnSave.Name); lst.Add(btnEsc.Name); lst.Add(btnHelp.Name); lst.Add(btnLayout.Name); lst.Add(btnFont.Name); lst.Add(btnFont.Name); lst.Add(btnLog.Name); _enabledBtn(lst); this.currentAction = "edit"; if (btnEdtClick != null) btnEdtClick(this, e); } private void BtnDel_ItemClick(object sender, ItemClickEventArgs e) { bool bl = _isCk(1); if (bl) return; if (btnDelClick != null) btnDelClick(this, e); // btnEsc.Enabled = false; this.currentAction = ""; } /// /// /// /// private void BtnAdd_ItemClick(object sender, ItemClickEventArgs e) { var lst = new List(); lst.Add(btnSave.Name); lst.Add(btnEsc.Name); lst.Add(btnHelp.Name); lst.Add(btnLayout.Name); lst.Add(btnFont.Name); _enabledBtn(lst); this.currentAction = "add"; if (btnAddClick != null) btnAddClick(this, e); Form parentForm = this.FindForm(); if (parentForm != null) { PictureBox specificControl = (PictureBox)parentForm.Controls.Find("picCheckBox", true).FirstOrDefault(); if (specificControl != null) { specificControl.Image = global::Gs.DevApp.Properties.Resources.ico_noCheck; specificControl.Tag = "未审核"; } } } private void BtnRole_ItemClick(object sender, ItemClickEventArgs e) { //List lst = new List(); //lst.Add(btnSave.Name); //lst.Add(btnEsc.Name); //setBtn(lst); if (btnRoleClick != null) btnRoleClick(this, e); } private void BtnWg_ItemClick(object sender, ItemClickEventArgs e) { if (btnWgClick != null) btnWgClick(this, e); } private void BtnbZhongTai_ItemClick(object sender, ItemClickEventArgs e) { if (btnZhongTaiClick != null) btnZhongTaiClick(this, e); } private void BtnKg_ItemClick(object sender, ItemClickEventArgs e) { if (btnKgClick != null) btnKgClick(this, e); } private void BtnTzbl_ItemClick(object sender, ItemClickEventArgs e) { if (btnTzblClick != null) btnTzblClick(this, e); } private void BtnHelp_ItemClick(object sender, ItemClickEventArgs e) { var _formNamespace = ""; Control parentControl = this; while (parentControl.Parent != null) { if (parentControl.Parent is Form parentForm) { var formType = parentForm.GetType(); _formNamespace = formType.FullName; break; } parentControl = parentControl.Parent; } string strReturn = UtilityHelper.HttpPost("", "MenuAction/GetHelpFile", JsonConvert.SerializeObject(_formNamespace)); var _rtnJson = UtilityHelper.ReturnToDynamic(strReturn); if (_rtnJson.rtnCode > 0) { var urlPath = _rtnJson.rtnData.ToString(); Gs.DevApp.UserControl.ShowFile frm = new ShowFile(urlPath); frm.ShowDialog(); return; } Gs.DevApp.ToolBox.MsgHelper.ShowInformation(_rtnJson.rtnMsg); } private void BtnLayout_ItemClick(object sender, ItemClickEventArgs ee) { Form parentForm = this.Parent as Form; if (parentForm == null) parentForm = this.Parent.Parent as Form; string _formNamespace = parentForm.GetType().FullName; if (parentForm != null) { List gvList = getGvList(); List layList = getLayList(); List spcList = getSpcList(); Gs.DevApp.UserControl.showLayOut DevFrm = new showLayOut(_formNamespace, gvList, layList, spcList); DevFrm.ShowDialog(); } } private void BtnFont_ItemClick(object sender, ItemClickEventArgs e) { Gs.DevApp.UserControl.SelectFont DevFrm = new SelectFont(); DevFrm.ShowDialog(); } private void _enabledBtn(List lstBtn) { foreach (BarItem item in barManager1.Items) if (item is BarLargeButtonItem largeButtonItem) { if (lstBtn.Contains(item.Name)) largeButtonItem.Enabled = true; else largeButtonItem.Enabled = false; } } /// /// 根据命名空间和权限,读取该窗体下面的按钮集合 /// private void getNamespace() { var _formNamespace = ""; Control parentControl = this; while (parentControl.Parent != null) { if (parentControl.Parent is Form parentForm) { var formType = parentForm.GetType(); _formNamespace = formType.FullName; break; } parentControl = parentControl.Parent; } var _obj = new { userGuid = LoginInfoModel.CurrentUser.LoginUserGuid, formNamespace = _formNamespace }; var strReturn = ""; try { strReturn = UtilityHelper.HttpPost("", "Role/GetListByUserOrgSpace", JsonConvert.SerializeObject(_obj)); var dd = UtilityHelper.ReturnToList(strReturn); var dt = dd.rtnData; if (!string.IsNullOrEmpty(defaultActions) && defaultActions.Contains("查询")) { if (dt == null || dt.Rows.Count <= 0) { dt.Columns.Add("guid", typeof(string)); dt.Columns.Add("name", typeof(string)); } DataRow newRow = dt.NewRow(); newRow["guid"] = Guid.NewGuid().ToString(); newRow["name"] = "查询"; dt.Rows.Add(newRow); } var _enabledList = new List(); foreach (BarItem item in barManager1.Items) { ///具有联动关系的按钮(增加), if (item.Caption == "增加") { var ld1 = dt.AsEnumerable().Any( row => row.Field("name") == "增加" //|| row.Field("name") == "修改" ); if (ld1) { btnEsc.Visibility = btnSave.Visibility = btnLoad.Visibility = BarItemVisibility.Always; btnAdd.Visibility = BarItemVisibility.Always; _enabledList.Add(item.Name); continue; } } ///具有联动关系的按钮(修改), if (item.Caption == "修改") { var ld1 = dt.AsEnumerable().Any( row => row.Field("name") == "修改" ); if (ld1) { btnEsc.Visibility = btnSave.Visibility = btnLoad.Visibility = BarItemVisibility.Always; btnEdit.Visibility = BarItemVisibility.Always; _enabledList.Add(item.Name); continue; } } ///具有联动关系的按钮(查询), var ld2 = dt.AsEnumerable().Any( row => row.Field("name") == "查询" ); if (ld2) if (item.Caption == "刷新") { item.Visibility = BarItemVisibility.Always; //准备启用 _enabledList.Add(item.Name); continue; } ///具有联动关系的按钮(提交检验), //if (item.Caption == "提交检验") //{ // var ld1 = dt.AsEnumerable().Any( // row => row.Field("name") == "提交检验" // ); // if (ld1) // { // btnJianYan.Visibility = btnFjianYan.Visibility = // btnLoad.Visibility = BarItemVisibility.Always; // btnJianYan.Visibility = BarItemVisibility.Always; // _enabledList.Add(item.Name); // continue; // } //} //按钮是否在权限表中 var exists = dt.AsEnumerable().Any(row => row.Field("name") == item.Caption); if (exists) { item.Visibility = BarItemVisibility.Always; //准备启用 var _btnName = _FindBarLargeButtonItemByCaption(item.Caption); if (!string.IsNullOrEmpty(_btnName)) _enabledList.Add(_btnName); } } //默认启用的按钮 _enabledList.Add(btnLoad.Name); _enabledList.Add(btnHelp.Name); _enabledList.Add(btnLayout.Name); _enabledList.Add(btnFont.Name); _enabledBtn(_enabledList); } catch (Exception ex) { MsgHelper.Warning("提示:" + ex.Message); } } /// /// 根据文字,查找按钮name /// /// /// private string _FindBarLargeButtonItemByCaption(string caption) { foreach (BarItem item in barManager1.Items) if (item is BarLargeButtonItem largeButtonItem && largeButtonItem.Caption == caption) return largeButtonItem.Name; return null; } private bool _ckRptService() { try { var _obj = new { guid = guidKey, rptParameter, isDesign = 1 }; var strJson = UtilityHelper.HttpPost("", "Report/GetRptData", JsonConvert.SerializeObject(_obj)); var _rtn = UtilityHelper.ReturnToDynamic(strJson); if (_rtn.rtnCode > 0) return true; return false; } catch (Exception ex) { MsgHelper.Warning("提示:" + ex.Message); return false; } return false; } #region 公共事件 /// /// 新增 /// public event EventHandler btnAddClick; /// /// 删除 /// public event EventHandler btnDelClick; /// /// 修改 /// public event EventHandler btnEdtClick; /// /// 刷新 /// public event EventHandler btnLoadClick; /// /// 保存 /// public event EventHandler btnSaveClick; /// /// 取消 /// public event EventHandler btnEscClick; /// /// 权限 /// public event EventHandler btnRoleClick; /// /// 查询 /// public event EventHandler btnQueryClick; /// /// 审核 /// public event EventHandler btnChkClick; /// /// 反审核 /// public event EventHandler btnFChkClick; /// /// 检验 /// public event EventHandler btnJianYanClick; /// /// 反检验 /// public event EventHandler btnFjianYanClick; /// /// 批准 /// public event EventHandler btnPiZhunClick; /// /// 批准 /// public event EventHandler btnFPiZhunClick; /// /// 日志 /// public event EventHandler btnLogClick; /// /// 采购审核 /// public event EventHandler btnCaiGouChkClick; /// /// 采购反审核 /// public event EventHandler btnCaiGouFchkClick; /// /// 质量审核 /// public event EventHandler btnZhiLiangChkClick; /// /// 质量反审核 /// public event EventHandler btnZhiLiangFchkClick; /// /// 财务审核 /// public event EventHandler btnCaiWuChkClick; /// /// 财务反审核 /// public event EventHandler btnCaiWuFchkClick; /// /// 售后审核 /// public event EventHandler btnShouHouChkClick; /// /// 售后反审核 /// public event EventHandler btnShouHouFchkClick; /// /// 驳回 /// public event EventHandler btnBoHuiClick; /// /// 设置报表 /// public event EventHandler btnDesignClick; /// /// 报表 /// public event EventHandler btnReportClick; /// /// 结案 /// public event EventHandler btnJieAnClick; /// /// 反结案 /// public event EventHandler btnFjieAnClick; /// /// 开工 /// public event EventHandler btnKgClick; /// /// 通知备料 /// public event EventHandler btnTzblClick; /// /// 状态 /// public event EventHandler btnZhongTaiClick; /// /// 手动完工 /// public event EventHandler btnWgClick; /// /// 生成首检 /// public event EventHandler btnShouJianClick; /// /// 发送OA /// public event EventHandler btnOaClick; /// /// 导出 /// public event EventHandler btnOutClick; #endregion #region 公共属性 public bool isSetBtn { get; set; } /// /// 关键字,一般是主键 /// public string guidKey { get; set; } /// /// 按钮名称集合 /// public List actions { get; } /// /// 报表,在数据库中要唯一,如:存储过程名{入参1名|入参值,入参2名|入参值} /// public string rptParameter { get; set; } /// /// 导出,视图名,如:存储过程名{入参1名|入参值,入参2名|入参值} /// public string xlsOutParameter { get; set; } /// /// 导入 /// public string xlsInService { get; set; } /// /// 审核参数,表名,字段名,如:MES_HOLIDAY(表名),check_date(时间),check_status(状态),check_by(审核人),存储过程名 /// public string chkParameter { get; set; } /// /// 当前状态 /// public string currentAction { get; set; } public string defaultActions { get; set; } #endregion /// /// 查找gridView /// /// private List getGvList() { Form parentForm; if (this.Parent is Form) parentForm = this.Parent as Form; else parentForm = this.Parent.Parent as Form; List gvList = new List(); //查找gridview,主页面 GridControl gcMain = parentForm.Controls.Find("gcMain1", true).OfType().FirstOrDefault(); if (gcMain != null) { GridView gv1 = gcMain.MainView as GridView; if (gv1 != null) { gvList.Add(gv1); } } GridControl mx = parentForm.Controls.Find("gcMx1", true).OfType().FirstOrDefault(); if (mx != null) { GridView gv1 = mx.MainView as GridView; if (gv1 != null) { gvList.Add(gv1); } } GridControl mx2 = parentForm.Controls.Find("gcMx2", true).OfType().FirstOrDefault(); if (mx2 != null) { GridView gv1 = mx2.MainView as GridView; if (gv1 != null) { gvList.Add(gv1); } } return gvList; } /// /// 查找LayoutControl /// /// private List getLayList() { Form parentForm; if (this.Parent is Form) parentForm = this.Parent as Form; else parentForm = this.Parent.Parent as Form; List layList = new List(); DevExpress.XtraLayout.LayoutControl lay2 = parentForm.Controls.Find("layoutMx1", true).OfType().FirstOrDefault(); if (lay2 != null) { layList.Add(lay2); } return layList; } /// /// 查找SplitContainerControl /// /// private List getSpcList() { Form parentForm; if (this.Parent is Form) parentForm = this.Parent as Form; else parentForm = this.Parent.Parent as Form; List spcList = new List(); DevExpress.XtraEditors.SplitContainerControl spc1 = parentForm.Controls.Find("split1", true).OfType().FirstOrDefault(); DevExpress.XtraEditors.SplitContainerControl spc2 = parentForm.Controls.Find("splitMx1", true).OfType().FirstOrDefault(); if (spc1 != null) { spcList.Add(spc1); } if (spc2 != null) { spcList.Add(spc2); } return spcList; } /// /// 读取xml配置,目前配置gcMain1,layoutMx1,加查询条件 /// public void getXmlConfig() { Form parentForm; if (this.Parent is Form) parentForm = this.Parent as Form; else parentForm = this.Parent.Parent as Form; string _formNamespace = parentForm.GetType().FullName; List gvList = getGvList(); List layList = getLayList(); List spcList = getSpcList(); JArray array = new JArray(); var _obj = new { formPath = _formNamespace, }; try { string strJson = UtilityHelper.HttpPost("", "Fm/GetModel", JsonConvert.SerializeObject(_obj)); ReturnModel _rtn = ToolBox.UtilityHelper.ReturnToDynamic(strJson); if (_rtn.rtnCode > 0) { JObject _job = JObject.Parse(strJson); foreach (var a in _job["rtnData"]["list"]) { //string _id = a["controlId"].ToString(); //string _controlType = a["controlType"].ToString(); //string _controlXml = a["controlXml"].ToString(); //string _splitterPosition = a["splitterPosition"].ToString(); array.Add(a); } foreach (GridView gv in gvList) { JToken john = array.FirstOrDefault(t => t["controlId"].ToString().ToUpper() == gv.Name.ToString().Trim().ToUpper()); if (john != null) { string controlId = john["controlId"].ToString(); string controlXml = john["controlXml"].ToString(); byte[] byteArray = Encoding.UTF8.GetBytes(controlXml); using (var stream = new MemoryStream(byteArray)) { gv.RestoreLayoutFromStream(stream); } } } foreach (LayoutControl lay in layList) { JToken john = array.FirstOrDefault(t => t["controlId"].ToString().ToUpper() == lay.Name.ToString().Trim().ToUpper()); if (john != null) { string controlId = john["controlId"].ToString(); string controlXml = john["controlXml"].ToString(); byte[] byteArray = Encoding.UTF8.GetBytes(controlXml); using (var stream = new MemoryStream(byteArray)) { lay.RestoreLayoutFromStream(stream); } } } foreach (SplitContainerControl spt in spcList) { JToken john = array.FirstOrDefault(t => t["controlId"].ToString().ToUpper() == spt.Name.ToString().Trim().ToUpper()); if (john != null) { string controlId = john["controlId"].ToString(); string controlXml = john["controlXml"].ToString(); // string splitterPosition = john["splitterPosition"].ToString(); byte[] byteArray = Encoding.UTF8.GetBytes(controlXml); using (var stream = new MemoryStream(byteArray)) { spt.RestoreLayoutFromStream(stream); } // spt.Horizontal = false; spt.Panel1.AutoScroll = false; spt.Panel2.AutoScroll = false; //spt.Panel1.MaximumSize = new System.Drawing.Size(spt.Panel1.Width, 100); // spt.SplitterPosition = int.Parse( splitterPosition); spt.ShowSplitGlyph = DevExpress.Utils.DefaultBoolean.True; if (spt.Name.Contains("Mx")) spt.FixedPanel = DevExpress.XtraEditors.SplitFixedPanel.Panel1; else spt.FixedPanel = DevExpress.XtraEditors.SplitFixedPanel.Panel2; } } //设置查询条件beg GridControl gcMain = parentForm.Controls.Find("gcMain1", true).OfType().FirstOrDefault(); if (gcMain != null) { GridView gv1 = gcMain.MainView as GridView; if (gv1 != null) { foreach (var a in _job["rtnData"]["list2"]) { string _gvColName = a["gvColName"].ToString(); string _sqlField = a["sqlField"].ToString(); string _sqlFieldType = a["sqlFieldType"].ToString(); var column = gv1.Columns.Cast() .FirstOrDefault(c => c.Name == _gvColName); if (column != null) { column.Tag = _sqlField; column.UnboundExpression = _sqlFieldType; } } } } //设置查询条件end } else ToolBox.MsgHelper.Warning("提示:" + _rtn.rtnMsg); } catch (Exception ex) { ToolBox.MsgHelper.Warning("提示:" + ex.Message); } } } }