using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using CommonLib.data; using DevExpress.Utils; using CommonLib; using DevExpress.XtraGrid.Views.Grid; using System.Data.SqlClient; using DevExpress.XtraGrid.Columns; using Lskj.Common; using DevExpress.XtraEditors; using CommonLib.utils; using System.Diagnostics; using ExcelPlus; using Lskj.MyControl; namespace Lskj.PubModuleTD { public partial class FrmMain : FormBase { #region 私有属性 /// /// 左边显示类型 /// private int LeftType { get; set; } /// /// 树控件表名 /// private string TreeSql { get; set; } /// /// DbDataAdapter /// private SqlDataAdapter da { get; set; } /// /// 操作Dataset /// private DataSet ds { get; set; } /// /// 调用方案 /// private int n { get; set; } /// /// 系统配置表 /// private DataRow dtSystemDlltab; /// /// 数据库字段配置 /// private DataRow dtSystemwordbooktabTag3; /// /// 查询唯一标示 /// private DataRow dtSystemwordbooktaNo; /// /// /// private List tsmMenuList = new List(); /// /// 条件颜色 /// private DataTable dtSysColorList; /// /// 搜索字段 /// private DataTable cbSearchFiled; /// /// 添加字段 /// private DataTable dtFields; /// /// 必须录入字段 /// private DataRow[] nullableFields; //表格编辑 private Boolean gridEdited; //添加条件 private string addCond; //修改条件 private string modifyCond; //删除条件 private string deleteCond; private bool needModified; private bool inSummary = false; private DataTable dtSum = new DataTable();//统计列 private int searchHide;//是否显示搜索 private int leftWidth; //宽度 private MySearchCreateControl mcc = new MySearchCreateControl(); #endregion #region 构造函数 public FrmMain() { //DevExpress.XtraGrid.Localization.GridResLocalizer.Active = new Dxper.LocalizationCHS.Win.XtraGridCHS(); //DevExpress.XtraEditors.Controls.Localizer.Active = new Dxper.LocalizationCHS.Win.XtraEditorsCHS(); //DevExpress.XtraLayout.Localization.LayoutLocalizer.Active = new Dxper.LocalizationCHS.Win.XtraLayoutCHS(); //DevExpress.XtraPrinting.Localization.PreviewLocalizer.Active = new Dxper.LocalizationCHS.Win.XtraPrintingCHS(); InitializeComponent(); ds = new DataSet(); gcMain.gridView.IndicatorWidth = 40; gcMain.gridView.DoubleClick += new EventHandler(GridViewpub_DoubleClick); //gcMain.gridView.RowCellClick += new RowCellClickEventHandler(gridViewMain_RowCellClick); gcMain.gridView.SelectionChanged += new DevExpress.Data.SelectionChangedEventHandler(gridMain_SelectionChanged); //gcMain.gridView.RowStyle += new RowStyleEventHandler(gvList_RowCellStyle); //gcHeader.gridView.RowCellClick += new RowCellClickEventHandler(gridViewLeft_RowCellClick); gcHeader.gridView.SelectionChanged += new DevExpress.Data.SelectionChangedEventHandler(gridView_SelectionChanged); gcHeader.gridView.OptionsBehavior.Editable = false; gcMain.gridView.CellValueChanged += new DevExpress.XtraGrid.Views.Base.CellValueChangedEventHandler(gridBillInfo_CellValueChanged); } #endregion #region 生成行号 protected void GridViewpub_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e) { e.Appearance.TextOptions.HAlignment = HorzAlignment.Center; if (e.Info.IsRowIndicator) { if (e.RowHandle >= 0) { e.Info.DisplayText = (e.RowHandle + 1).ToString(); } } } #endregion #region 初始化数据 private void FrmGridTree_Load(object sender, EventArgs e) { this.Text = FormText; gcMain.gridView.Appearance.HeaderPanel.TextOptions.HAlignment = HorzAlignment.Center; dtSystemDlltab = SqlHelper.ExecuteDataSet("select * from P_systemDlltab where DLLCoid='" + DLLCoid + "'").Tables[0].Rows[0]; dtSystemDlltab["SQL"] = PubClass.ReqSqlParam(dtSystemDlltab["SQL"] + "", OperatorId, OperatorName); LeftType = Convert.ToInt32(dtSystemDlltab["dllType"]); gridEdited = (string.IsNullOrEmpty(dtSystemDlltab["selfEdit"] + "") || dtSystemDlltab["selfEdit"] + "" == "0" || dtSystemDlltab["selfEdit"] + "" == "False") ? false : true; gcMain.gridView.OptionsBehavior.Editable = gridEdited; btnSave.Enabled = gridEdited; addCond = dtSystemDlltab["addCond"].ToString(); modifyCond = dtSystemDlltab["modifyCond"].ToString(); deleteCond = dtSystemDlltab["deleteCond"].ToString(); searchHide = Convert.ToInt32(dtSystemDlltab["searchHide"].ToString()); leftWidth = Convert.ToInt32(dtSystemDlltab["leftWidth"].ToString()); DataTable dtTag3 = SqlHelper.ExecuteDataSet("select * from P_systemwordbooktab where tab='" + DLLCoid + "' and fieldsqlTag=3").Tables[0]; if (dtTag3 != null && dtTag3.Rows.Count > 0) dtSystemwordbooktabTag3 = dtTag3.Rows[0]; dtSystemwordbooktaNo = SqlHelper.ExecuteDataSet("select top 1 * from P_systemwordbooktab where tab='" + DLLCoid + "' order by orderid").Tables[0].Rows[0]; dtSysColorList = SqlHelper.ExecuteDataSet("select * from P_systemwordbookcolor where tab='" + DLLCoid + "' and useflag=0 order by orderid").Tables[0]; //加载数据 if (dtSystemDlltab["searchEnable"].ToString() == "1") { //InitData(dtSystemDlltab["SQL"].ToString()); } //加载表格 InitColumns(); //初始化菜单 InitMenu(); if (searchHide == 1) { pl_right_where.Visible = false; } if (LeftType == 2) { string sql = "select * from p_systemwordbookgrid where fieldid=" + dtSystemwordbooktabTag3["id"] + " order by orderid"; DataTable dt = SqlHelper.ExecuteDataSet(sql).Tables[0]; for (int i = 0; i < dt.Rows.Count; i++) { DataRow row = dt.Rows[i]; GridColumn gridColumn = new GridColumn(); gridColumn.FieldName = row["fieldname"]+""; gridColumn.Name = row["fieldname"] + ""; gridColumn.VisibleIndex = i; gridColumn.Caption = row["username"].ToString(); gridColumn.Width = Convert.ToInt32(row["width"]); gridColumn.Visible = Convert.ToInt32(row["visible"]) == 0; gcHeader.gridView.Columns.Add(gridColumn); } string leftSql = dtSystemwordbooktabTag3["fieldsql"] + ""; leftSql = PubClass.ReqSqlParam(leftSql, OperatorId, OperatorName); gcHeader.gridControl.DataSource = SqlHelper.ExecuteDataSet(leftSql).Tables[0]; InitHeadMenu(); } //模板添加删除修改导入导出 BtnAdd.Enabled = dtSystemDlltab["addEnable"].ToString() == "1"; BtnDel.Enabled = dtSystemDlltab["deleteEnable"].ToString() == "1"; btnSave.Enabled = dtSystemDlltab["modifyEnable"].ToString() == "1" && gridEdited; gcMain.gridView.OptionsBehavior.Editable = dtSystemDlltab["modifyEnable"].ToString() == "1" && gridEdited; btnImprt.Enabled = dtSystemDlltab["importEnable"].ToString() == "1"; btnExport.Enabled = dtSystemDlltab["exportEnable"].ToString() == "1"; needModified = dtSystemDlltab["modifyEnable"].ToString() == "1"; SearchCraeteControl(); //查询统计列 string isSumSql = "select * from p_systemwordbooktab where tab='" + DLLCoid + "' and isnull(vislble,0)=0 and isnull(calcExpr,'')<>''order by calcOrder asc"; dtSum = SqlHelper.ExecuteDataSet(isSumSql).Tables[0]; } public void SearchCraeteControl() { string sql = string.Format("exec p_getControlLocation '{0}','{1}','{2}'", dtSystemwordbooktabTag3["fieldKey"], DLLCoid, OperatorName); DataTable dt = SqlHelper.ExecuteDataSet(sql).Tables[0]; string condSql = string.Format("select * from p_systembillsourcecond where formKey='{0}'", dtSystemwordbooktabTag3["fieldKey"]); mcc.LoginId = OperatorId; mcc.LoginName = OperatorName; mcc.SearchSql = dtSystemwordbooktabTag3["fieldsql"] + " where 1=1 "; mcc.ctr = pl_right_where; mcc.gce = gcHeader.gridControl; //mcc.gcLeft = gcLeft; //mcc.tvLeft = tvList; mcc.dllType = LeftType; mcc.condDt = SqlHelper.ExecuteDataSet(condSql).Tables[0]; if (dt != null && dt.Rows.Count > 0) { CreateControlModel cm = new CreateControlModel(); cm.dt = dt; cm.ctr = pl_right_where; cm.loginid = OperatorId; cm.loginname = OperatorName; int height = mcc.CreateControlByModel(cm); pl_right_where.Height = height; Control[] ctl = pl_right_where.Controls.Find("btnCondSearch", true); if ((ctl != null) && (ctl.Length > 0)) { (ctl[0] as SimpleButton).Width = 72; } } } /// /// /// public void InitMenu() { GridMenu gm = new GridMenu(FormText, OperatorId, OperatorName, Privilege, DLLCoid, "", gcMain.gridControl); gm.DirId = dtSystemDlltab["dirid"] + ""; gm.filedKey = dtSystemwordbooktaNo["fieldname"].ToString(); gm.BindGridMenuWQ(DLLCoid); gm.OnGridMenuClickRefreshData += new EventHandler(gm_OnGridMenuClickRefreshDataDetail); } /// /// 右键菜单回调函数 /// /// /// private void gm_OnGridMenuClickRefreshDataDetail(object sender, EventArgs e) { int[] rows = gcHeader.gridView.GetSelectedRows(); if (rows != null && rows.Count() > 0) { DataRow row = gcHeader.gridView.GetDataRow(rows[0]); this.HandleAddButtonState(row); initDetailData(); } } /// /// 顶部右键菜单 /// public void InitHeadMenu() { GridMenu gm = new GridMenu(FormText, OperatorId, OperatorName, Privilege, DLLCoid, "", gcHeader.gridControl); gm.DirId = dtSystemDlltab["dirid"] + ""; gm.filedKey = dtSystemwordbooktaNo["fieldname"].ToString(); gm.BindGridMenuWQ(dtSystemwordbooktabTag3["fieldKey"].ToString()); gm.OnGridMenuClickRefreshData += new EventHandler(gm_OnGridMenuClickRefreshDataHeader); } /// /// 右键菜单回调函数 /// /// /// private void gm_OnGridMenuClickRefreshDataHeader(object sender, EventArgs e) { gcHeader.gridControl.DataSource = SqlHelper.ExecuteDataSet(dtSystemwordbooktabTag3["fieldsql"] + "").Tables[0]; } #endregion #region 绑定数据 public void InitData(string sql) { int oldRowHandle = (gcMain.gridControl.MainView as GridView).FocusedRowHandle; //这个绑定数据源 da = SqlHelper.ExecuteAdapter(CommandType.Text, sql); if (ds != null && ds.Tables.Count > 0) ds.Clear(); da.Fill(ds); SqlCommandBuilder cb = new SqlCommandBuilder(da); gcMain.gridControl.DataSource = ds.Tables[0]; (gcMain.gridControl.MainView as GridView).ClearSelection(); (gcMain.gridControl.MainView as GridView).FocusedRowHandle = oldRowHandle; (gcMain.gridControl.MainView as GridView).SelectRow(oldRowHandle); } #endregion #region 加载表格列 /// /// 加载表格列头 /// /// public void InitColumns() { SqlParameter[] p = { new SqlParameter("@modid",SqlDbType.VarChar,20), new SqlParameter("@operatorname",SqlDbType.VarChar,20) }; p[0].Value = DLLCoid; p[1].Value = OperatorName; DataTable dt = SqlHelper.ExecuteDataSet(CommandType.StoredProcedure, "[p_getBaseModuleField]", "temp", p).Tables[0]; nullableFields = dt.Rows.OfType().Where(x => x["tagid"] + "" == "1").ToArray(); gcMain.SetColumns2(dt); } #endregion #region 添加数据 /// /// 添加数据 /// /// /// private void BtnAdd_Click(object sender, EventArgs e) { string fieldsqlid = string.Empty; string fieldsqlname = string.Empty; string strTag = string.Empty; string jsonData = string.Empty; if (!string.IsNullOrEmpty(dtSystemDlltab["AddDllName"] + "")) { if (LeftType == 2) { int[] rows = gcHeader.gridView.GetSelectedRows(); if (rows.Length == 0) { XtraMessageBox.Show("请选择类别", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } DataRow row = gcHeader.gridView.GetDataRow(rows[0]); fieldsqlid = row[dtSystemwordbooktabTag3["fieldsqlid"] + ""] + ""; fieldsqlname = row[dtSystemwordbooktabTag3["fieldsqlname"] + ""] + ""; DataTable dtGcHeader = gcHeader.gridControl.DataSource as DataTable; if (dtGcHeader != null && dtGcHeader.Rows.Count > 0) { DataTable dtTemp = dtGcHeader.Clone(); dtTemp.ImportRow(row); jsonData = dtTemp.ToJson(); } } string[] args = { FormText, OperatorId, OperatorName, Privilege, DLLCoid, "", "", "", fieldsqlid, fieldsqlname, strTag, "", "", "", jsonData }; IForm form = PubUtil.LoadDllForm(dtSystemDlltab["AddDllName"] + "", args); DialogResult result = form.SubForm.ShowDialog(); InitData(dtSystemDlltab["SQL"] + " where 1=1 and " + dtSystemwordbooktabTag3["fieldsqlid"] + " like '" + fieldsqlid + "%' "); } else { AddRow(gcMain.gridView); } } /// /// 添加行 /// /// protected void AddRow(DevExpress.XtraGrid.Views.Grid.GridView view) { int prevDataRowIndex = view.GetFocusedDataSourceRowIndex(); view.AddNewRow(); int[] rows = gcHeader.gridView.GetSelectedRows(); DataRow row = gcHeader.gridView.GetDataRow(rows[0]); GridColumnCollection gcMainColumns = gcMain.gridView.Columns; //默认值 foreach (GridColumn item in gcMain.gridView.Columns) { if (item.Tag is MyTagModel) { MyTagModel cmt = item.Tag as MyTagModel; string defaultValue = cmt.DefaultValue; if (string.IsNullOrEmpty(defaultValue)) continue; List list = PubClass.GetParamValue(defaultValue); for (int i = 0; i < list.Count; i++) { if (list[i].Contains("##")) { string fileName = list[i].Replace("##", "").Replace("{", "").Replace("}", ""); defaultValue = defaultValue.Replace(list[i], row[fileName] + ""); } } defaultValue = PubClass.GetDefaultValue(defaultValue, OperatorId, OperatorName); if (!string.IsNullOrEmpty(defaultValue)) { view.SetRowCellValue(view.FocusedRowHandle, item, defaultValue); } } } //关键字段赋值 if (LeftType == 2) { GridColumn tmpcol = gcMain.gridView.Columns[dtSystemwordbooktabTag3["fieldname"] + ""]; view.SetRowCellValue(gcMain.gridView.FocusedRowHandle, tmpcol, row[dtSystemwordbooktabTag3["fieldsqlid"] + ""]); view.UpdateCurrentRow(); view.ShowEditor(); } } #endregion #region 删除数据 private void BtnDel_Click(object sender, EventArgs e) { int[] rowid = gcMain.gridView.GetSelectedRows(); if (rowid.Length == 0) { MessageBox.Show("没有选择要删除数据", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); } else { if (MessageBox.Show("您确定要删除选中记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { string ids = string.Empty; foreach (int rid in rowid) { DataRow dr = gcMain.gridView.GetDataRow(rid); string ParmarKey = dr[dtSystemwordbooktaNo["fieldname"] + ""] + ""; if (string.IsNullOrEmpty(ParmarKey)) { gcMain.gridView.DeleteRow(gcMain.gridView.FocusedRowHandle); } else { ids += "'" + ParmarKey + "',"; } } if (!string.IsNullOrEmpty(ids)) { string sql = "delete from " + dtSystemDlltab["SQLDT1"] + " where " + dtSystemwordbooktaNo["fieldname"] + " in(" + ids.Trim(',') + ")"; SqlHelper.ExecuteNonQuery(sql); DataRow row = gcHeader.gridView.GetDataRow(gcHeader.gridView.GetSelectedRows()[0]); InitData(dtSystemDlltab["SQL"] + " where 1=1 and " + dtSystemwordbooktabTag3["fieldsqlid"] + " = '" + row[dtSystemwordbooktabTag3["fieldsqlid"] + ""] + "' "); //InitData(dtSystemDlltab["SQL"] + ""); MessageBox.Show("记录删除成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); SqlHelper.AddLogTab(DLLCoid, FormText + "-->删除", FormText + "[" + ids + "]", FormText, OperatorName); } else { MessageBox.Show("记录删除成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } } /// /// 验证是否可以删除 /// /// /// private void gridViewMain_RowCellClick(object sender, RowCellClickEventArgs e) { DataRow row = gcMain.gridView.GetDataRow(e.RowHandle); this.HandleDelButtonState(row); // 验证删除按钮是否可以用 } private void gridMain_SelectionChanged(object sender, DevExpress.Data.SelectionChangedEventArgs e) { int[] rowHandle = gcMain.gridView.GetSelectedRows(); if ((rowHandle == null) || (rowHandle.Length < 1)) return; DataRow row = gcMain.gridView.GetDataRow(rowHandle[0]); this.HandleDelButtonState(row); // 验证删除按钮是否可以用 } #endregion #region 查询 /// /// 查询 /// /// /// private void btnSearch_Click(object sender, EventArgs e) { } #endregion #region 保存 private void btnSave_Click(object sender, EventArgs e) { if (gridRequired()) { try { da.Update(ds); } catch (DBConcurrencyException dce) { // 并发异常 XtraMessageBox.Show("数据已更新,请刷新后重试."); return; } catch (Exception ex) { if (ex.Message.IndexOf("ix", StringComparison.OrdinalIgnoreCase) != -1) { XtraMessageBox.Show("系统检测到录入信息重复,请检查", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } else { XtraMessageBox.Show(ex.Message); return; } } XtraMessageBox.Show("修改成功"); } } /// /// 表格必须录入验证 /// /// private bool gridRequired() { DataTable dtBillItem = gcMain.gridControl.DataSource as DataTable; DataColumnCollection dtBillRow = dtBillItem.Columns; GridView gridView = gcMain.gridView; GridColumnCollection gridColumns = gridView.Columns; foreach (DataRow drGrid in dtBillItem.Rows) { foreach (DataRow dr in nullableFields) { string fieldName = dr["fieldName"] + ""; string fieldText = dr["username1"] + ""; if (string.IsNullOrEmpty(drGrid[fieldName] + "")) { XtraMessageBox.Show(string.Format("[{0}] 不能为空", fieldText)); gridView.Focus(); gridView.FocusedRowHandle = dtBillItem.Rows.IndexOf(drGrid); gridView.FocusedColumn = gridColumns[fieldName]; gridView.SelectCell(gridView.FocusedRowHandle, gridColumns[fieldName]); gridView.ShowEditorByMouse(); return false; } } } return true; } #endregion #region 打印 private void BtnPrint_Click(object sender, EventArgs e) { PubClass.Preview(gcMain.gridControl); } #endregion #region 修改 private void GridViewpub_DoubleClick(object sender, EventArgs e) { if (!string.IsNullOrEmpty(dtSystemDlltab["AddDllName"] + "")) { if (LeftType == 2) { bool isReflash = UpdateModel(); if (isReflash) { int[] rows = gcMain.gridView.GetSelectedRows(); if (rows.Length == 0) return; DataRow row = gcMain.gridView.GetDataRow(rows[0]); InitData(dtSystemDlltab["SQL"] + " where 1=1 and " + dtSystemwordbooktabTag3["fieldname"] + " like '" + row[dtSystemwordbooktabTag3["fieldsqlid"] + ""] + "%' "); } } else { bool isReflash = UpdateModel(); if (isReflash) { InitData(dtSystemDlltab["SQL"].ToString()); } } } } private void tsmUpdate_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(dtSystemDlltab["AddDllName"] + "")) { bool isReflash = UpdateModel(); if (isReflash) { InitData(dtSystemDlltab["SQL"] + ""); } } } public bool UpdateModel() { int[] rows = gcMain.gridView.GetSelectedRows(); if (rows.Length > 0) { DataRow dr = gcMain.gridView.GetDataRow(rows[0]); //判断修改条件是否符合 Boolean canModify = string.IsNullOrEmpty(modifyCond); if (needModified == true) { string tempCond = modifyCond; if (!canModify) { tempCond = PubClass.ReqSqlParam(tempCond, OperatorId, OperatorName); tempCond = PubClass.ReqSqlWhere(dr, tempCond); canModify = Convert.ToBoolean(Evaluator.Eval(tempCond)); } } else { canModify = false; } string productId = dr[dtSystemwordbooktaNo["fieldname"] + ""].ToString(); string[] args = { FormText, OperatorId, OperatorName, Privilege, DLLCoid, "", Convert.ToInt32( !canModify).ToString(), productId, "", "", "" }; IForm form = PubUtil.LoadDllForm(dtSystemDlltab["AddDllName"] + "", args); form.SubForm.ShowDialog(); } return true; } #endregion #region 动态加载菜单 /// ///动态加载菜单 /// /// /// private void cmsGrid_Opening(object sender, CancelEventArgs e) { cmsGrid.Items.Clear(); List listQQ = new List(); List listWWW = new List(); int[] rowCount = gcMain.gridView.GetSelectedRows(); if (rowCount.Length > 0) { DataRow row = gcMain.gridView.GetDataRow(rowCount[0]); GridColumnCollection columns = gcMain.gridView.Columns; for (int i = 0; i < columns.Count; i++) { GridColumn gcItem = columns[i]; string tag = gcItem.Tag + ""; if (tag == "qq") { if (!string.IsNullOrEmpty(row[gcItem.Name] + "")) { ToolStripMenuItem item = new ToolStripMenuItem("(" + gcItem.Caption + ")" + row[gcItem.Name] + "", global::Lskj.PubModuleTD.Properties.Resources.qq); item.Tag = row[gcItem.Name]; item.Click += new EventHandler(item_qq_Click); listQQ.Add(item); } } if (tag == "www") { if (!string.IsNullOrEmpty(row[gcItem.Name] + "")) { ToolStripMenuItem item = new ToolStripMenuItem("(" + gcItem.Caption + ")" + row[gcItem.Name] + "", global::Lskj.PubModuleTD.Properties.Resources.www); item.Tag = row[gcItem.Name]; item.Click += new EventHandler(item_www_Click); listWWW.Add(item); } } } } cmsGrid.Items.AddRange(tsmMenuList.ToArray()); cmsGrid.Items.AddRange(listQQ.ToArray()); cmsGrid.Items.AddRange(listWWW.ToArray()); } #endregion #region 打开QQ protected void item_qq_Click(object sender, EventArgs e) { ToolStripMenuItem t = (ToolStripMenuItem)sender; string text = t.Tag + ""; if (string.IsNullOrEmpty(text)) { MessageBox.Show("请输入您的QQ号码", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } Process p = new Process(); ProcessStartInfo ps = new ProcessStartInfo(); string Url = string.Format(@"tencent://message/?Menu=yes&uin={0}", text); ps.FileName = @"iexplore.exe"; ps.Arguments = Url; ps.UseShellExecute = true; ps.RedirectStandardInput = false; //ps.WindowStyle = ProcessWindowStyle.Hidden; p.StartInfo = ps; p.Start(); } #endregion #region 打开WWW protected void item_www_Click(object sender, EventArgs e) { ToolStripMenuItem t = (ToolStripMenuItem)sender; string url = t.Tag + ""; if (string.IsNullOrEmpty(url)) { MessageBox.Show("请输入您要打开网址", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } System.Diagnostics.Process.Start("iexplore.exe", url); } #endregion #region 顶部gird点击事件 private void gridViewLeft_RowCellClick(object sender, RowCellClickEventArgs e) { initDetailData(); } private void gridView_SelectionChanged(object sender, DevExpress.Data.SelectionChangedEventArgs e) { initDetailData(); } /// /// 获取底部grid数据 /// /// public void initDetailData() { int[] rowHandle = gcHeader.gridView.GetSelectedRows(); if ((rowHandle == null) || (rowHandle.Length < 1)) return; DataRow row = gcHeader.gridView.GetDataRow(rowHandle[0]); this.HandleAddButtonState(row); string initSql = dtSystemDlltab["SQL"] + " where 1=1 and " + dtSystemwordbooktabTag3["fieldsqlid"] + " = '" + row[dtSystemwordbooktabTag3["fieldsqlid"] + ""] + "' "; InitData(initSql); //MessageBox.Show(initSql); } #endregion #region 添加、删除按钮处理 /// /// 处理添加按钮 /// private void HandleAddButtonState(DataRow dr) { string tempCond = addCond; bool canAdd = string.IsNullOrEmpty(addCond); if (!string.IsNullOrEmpty(addCond)) { tempCond = PubClass.ReqSqlWhere(dr, PubClass.ReqSqlParam(tempCond, OperatorId, OperatorName)); canAdd = Convert.ToBoolean(Evaluator.Eval(tempCond)); } BtnAdd.Enabled = canAdd; } /// /// 处理删除按钮 /// private void HandleDelButtonState(DataRow dr) { string tempCond = deleteCond; bool canDel = string.IsNullOrEmpty(deleteCond); if (!string.IsNullOrEmpty(tempCond)) { tempCond = PubClass.ReqSqlWhere(dr, PubClass.ReqSqlParam(tempCond, OperatorId, OperatorName)); canDel = Convert.ToBoolean(Evaluator.Eval(tempCond)); } BtnDel.Enabled = canDel; } #endregion #region 窗体关闭事件 protected override void OnClosed(EventArgs e) { base.OnClosed(e); if (PubUtil.ModuleForms.ContainsKey(ModuleId)) { DllModule dm = PubUtil.ModuleForms[ModuleId]; if (dm != null) { dm.ModuleForm = null; dm.ModuleInPtr = IntPtr.Zero; PubUtil.ModuleForms.Remove(ModuleId); } } } #endregion #region 帮助手册 private void btnHelp_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(DLLCoid)) { MessageBox.Show("物料编码不存在", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } int id = 0; object obj = SqlHelper.ExecuteScalar(CommandType.Text, "select dirid from P_fm_DirectoryTab where ParentId=3 and PID='" + DLLCoid + "'"); id = obj == null ? 0 : Convert.ToInt32(obj); if (id == 0) { string sql = "insert into P_fm_DirectoryTab (sName,ParentId,creator,SpeciesNo,relationCode,PID) values('" + DLLCoid + "',3,1,'0201',0,'" + DLLCoid + "');select @@identity"; id = Convert.ToInt32(SqlHelper.ExecuteScalar(CommandType.Text, sql)); } string[] args = { FormText, OperatorId, OperatorName, Privilege, DLLCoid, ModuleId, id.ToString() }; IForm form = PubUtil.LoadDllForm2("Lskj.Attachment.dll", args); form.SubForm.ShowDialog(); } #endregion #region Execl 操作 /// /// 导入操作 /// /// /// private void btnImprt_Click(object sender, EventArgs e) { string columnPrefix = PubClass.GetColumnPrefix(dtSystemDlltab["SQLDT1"].ToString()); frmImport frm = new frmImport(gcMain, dtSystemDlltab["SQLDT1"].ToString(),"","",OperatorId,OperatorName, columnPrefix); frm.ShowDialog(); } /// /// 导出操作 /// /// /// private void btnExport_Click(object sender, EventArgs e) { PubClass.SaveXls(gcMain.gridControl); } #endregion #region 行颜色 private void gvList_RowCellStyle(object sender, RowStyleEventArgs e) { if (e.RowHandle >= 0) { DataRow row = gcMain.gridView.GetDataRow(e.RowHandle); string cond = string.Empty; string color = string.Empty; string forecolor = string.Empty; foreach (DataRow dr in dtSysColorList.Rows) { List condition = PubClass.GetParamValue(dr["condition"].ToString()); cond = dr["condition"].ToString(); foreach (string item in condition) { string filedName = item.Replace("{", "").Replace("}", ""); cond = cond.Replace(item, row[filedName].ToString()); } cond = PubClass.SqlToCode(cond); color = dr["backcolor"] + ""; forecolor = dr["forcecolor"].ToString() + ""; string obj = Evaluator.Eval(cond) + ""; if (obj.IndexOf("true", StringComparison.OrdinalIgnoreCase) != -1) { if (!string.IsNullOrEmpty(color)) { System.Drawing.Color color1 = System.Drawing.ColorTranslator.FromHtml(color); e.Appearance.BackColor = color1; } if (!string.IsNullOrEmpty(forecolor)) { System.Drawing.Color foreColor = System.Drawing.ColorTranslator.FromHtml(forecolor); e.Appearance.ForeColor = foreColor; } FontStyle fst = new FontStyle(); if (dr["ifBold"].ToString() == "1") { fst = fst | FontStyle.Bold; } if (dr["ifItalic"].ToString() == "1") { fst = fst | FontStyle.Italic; } if (dr["ifStrickOut"].ToString() == "1") { fst = fst | FontStyle.Strikeout; } if (dr["ifUnderLine"].ToString() == "1") { fst = fst | FontStyle.Underline; } e.Appearance.Font = new Font(e.Appearance.Font, fst); } } } } #endregion private void GridViewpub_KeyDown(object sender, KeyEventArgs e) { if (e.Control & e.KeyCode == Keys.C) { Clipboard.SetDataObject((sender as GridView).GetFocusedRowCellValue((sender as GridView).FocusedColumn)); e.Handled = true; } } #region 处理Grid计算 private void gridBillInfo_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) { if (inSummary == true) return; inSummary = true; try { DataRow gvRow = gcMain.gridView.GetDataRow(e.RowHandle); foreach (DataRow row in dtSum.Rows) { string calcExpr = row["calcExpr"].ToString(); if (e.Column.FieldName != row["fieldName"].ToString()) { List listParam = PubClass.GetParamValue(calcExpr); foreach (string str in listParam) { string filed = str.Replace("{", "").Replace("}", ""); string filedValue = gvRow[filed].ToString(); if (string.IsNullOrEmpty(filedValue)) filedValue = "0"; calcExpr = calcExpr.Replace(str, filedValue + ""); } calcExpr = calcExpr.Replace("=", "==").Replace("<>", "!=").Replace("and", "&&").Replace("or", "|"); string result = Evaluator.Eval(calcExpr).ToString(); gcMain.gridView.SetRowCellValue(e.RowHandle, gcMain.gridView.Columns[row["fieldName"].ToString()], Math.Round(double.Parse(result), 2, MidpointRounding.AwayFromZero)); } } } catch { } inSummary = false; } #endregion } }