From 19ae29f0167471cac5c70650abe329300ff93f55 Mon Sep 17 00:00:00 2001 From: cyf Date: Thu, 18 Jun 2026 06:01:39 +0000 Subject: [PATCH] SVN r1214 SVN-Revision: r1214 --- 插件库/Lskj.PubBill/BillModule.Designer.cs | 53 ++--- 插件库/Lskj.PubBill/BillModule.cs | 244 ++++++++++++++++----- 2 files changed, 217 insertions(+), 80 deletions(-) diff --git a/插件库/Lskj.PubBill/BillModule.Designer.cs b/插件库/Lskj.PubBill/BillModule.Designer.cs index ff7c205..31708d3 100644 --- a/插件库/Lskj.PubBill/BillModule.Designer.cs +++ b/插件库/Lskj.PubBill/BillModule.Designer.cs @@ -28,6 +28,7 @@ /// private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); this.ssc_main = new DevExpress.XtraEditors.SplitContainerControl(); this.ssc_main_top = new DevExpress.XtraEditors.SplitContainerControl(); this.pl_left = new DevExpress.XtraEditors.PanelControl(); @@ -40,7 +41,7 @@ this.pl_treeview_detault_search = new DevExpress.XtraEditors.PanelControl(); this.panelControl4 = new DevExpress.XtraEditors.PanelControl(); this.textEdit1 = new DevExpress.XtraEditors.TextEdit(); - this.barManager1 = new DevExpress.XtraBars.BarManager(); + this.barManager1 = new DevExpress.XtraBars.BarManager(this.components); this.barDockControl1 = new DevExpress.XtraBars.BarDockControl(); this.barDockControl2 = new DevExpress.XtraBars.BarDockControl(); this.barDockControl3 = new DevExpress.XtraBars.BarDockControl(); @@ -50,7 +51,7 @@ this.btnTreeSearch = new DevExpress.XtraEditors.SimpleButton(); this.pl_main_bottom = new DevExpress.XtraEditors.PanelControl(); this.dbpFP = new DevExpress.XtraEditors.DropDownButton(); - this.pmFP = new DevExpress.XtraBars.PopupMenu(); + this.pmFP = new DevExpress.XtraBars.PopupMenu(this.components); this.btnRefresh = new DevExpress.XtraEditors.SimpleButton(); this.btnHiding = new DevExpress.XtraEditors.SimpleButton(); this.btnHelp = new DevExpress.XtraEditors.SimpleButton(); @@ -63,15 +64,15 @@ this.labelControl2 = new DevExpress.XtraEditors.LabelControl(); this.btn_input = new DevExpress.XtraEditors.SimpleButton(); this.dpbImport = new DevExpress.XtraEditors.DropDownButton(); - this.pmBillExp = new DevExpress.XtraBars.PopupMenu(); + this.pmBillExp = new DevExpress.XtraBars.PopupMenu(this.components); this.btnBillAdd = new DevExpress.XtraEditors.SimpleButton(); this.btnBillApply = new DevExpress.XtraEditors.SimpleButton(); this.dpCopyBill = new DevExpress.XtraEditors.DropDownButton(); - this.pmBill = new DevExpress.XtraBars.PopupMenu(); + this.pmBill = new DevExpress.XtraBars.PopupMenu(this.components); this.btnPrint = new DevExpress.XtraEditors.DropDownButton(); - this.pMprint = new DevExpress.XtraBars.PopupMenu(); + this.pMprint = new DevExpress.XtraBars.PopupMenu(this.components); this.dpbTools = new DevExpress.XtraEditors.DropDownButton(); - this.pMenu = new DevExpress.XtraBars.PopupMenu(); + this.pMenu = new DevExpress.XtraBars.PopupMenu(this.components); this.btnDelete = new DevExpress.XtraEditors.SimpleButton(); this.btnBillSave = new DevExpress.XtraEditors.SimpleButton(); this.pl_main_top = new DevExpress.XtraEditors.PanelControl(); @@ -265,10 +266,10 @@ this.pl_treeview_detault_search.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; this.pl_treeview_detault_search.Controls.Add(this.panelControl4); this.pl_treeview_detault_search.Controls.Add(this.panelControl3); - this.pl_treeview_detault_search.Location = new System.Drawing.Point(26, 69); + this.pl_treeview_detault_search.Location = new System.Drawing.Point(39, 104); this.pl_treeview_detault_search.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); this.pl_treeview_detault_search.Name = "pl_treeview_detault_search"; - this.pl_treeview_detault_search.Size = new System.Drawing.Size(180, 19); + this.pl_treeview_detault_search.Size = new System.Drawing.Size(270, 29); this.pl_treeview_detault_search.TabIndex = 24; this.pl_treeview_detault_search.Visible = false; // @@ -281,7 +282,7 @@ this.panelControl4.Location = new System.Drawing.Point(0, 0); this.panelControl4.Name = "panelControl4"; this.panelControl4.Padding = new System.Windows.Forms.Padding(2, 4, 2, 0); - this.panelControl4.Size = new System.Drawing.Size(84, 19); + this.panelControl4.Size = new System.Drawing.Size(206, 29); this.panelControl4.TabIndex = 25; // // textEdit1 @@ -292,8 +293,9 @@ this.textEdit1.Name = "textEdit1"; this.textEdit1.Properties.Appearance.Font = new System.Drawing.Font("宋体", 10F); this.textEdit1.Properties.Appearance.Options.UseFont = true; - this.textEdit1.Size = new System.Drawing.Size(0, 20); + this.textEdit1.Size = new System.Drawing.Size(91, 20); this.textEdit1.TabIndex = 5; + this.textEdit1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.OnTreeConditionKeyDown); // // barManager1 // @@ -335,6 +337,7 @@ // lceCombobox // this.lceCombobox.BackColor = System.Drawing.SystemColors.Control; + this.lceCombobox.BackgroundColor = System.Drawing.Color.Empty; this.lceCombobox.Dock = System.Windows.Forms.DockStyle.Left; this.lceCombobox.EditText = ""; this.lceCombobox.Font = new System.Drawing.Font("宋体", 9F); @@ -347,7 +350,7 @@ this.lceCombobox.NullText = ""; this.lceCombobox.ReadOnly = false; this.lceCombobox.Required = false; - this.lceCombobox.Size = new System.Drawing.Size(111, 15); + this.lceCombobox.Size = new System.Drawing.Size(111, 25); this.lceCombobox.TabIndex = 4; // // panelControl3 @@ -355,10 +358,10 @@ this.panelControl3.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; this.panelControl3.Controls.Add(this.btnTreeSearch); this.panelControl3.Dock = System.Windows.Forms.DockStyle.Right; - this.panelControl3.Location = new System.Drawing.Point(84, 0); + this.panelControl3.Location = new System.Drawing.Point(206, 0); this.panelControl3.Name = "panelControl3"; this.panelControl3.Padding = new System.Windows.Forms.Padding(3); - this.panelControl3.Size = new System.Drawing.Size(96, 19); + this.panelControl3.Size = new System.Drawing.Size(64, 29); this.panelControl3.TabIndex = 25; // // btnTreeSearch @@ -367,9 +370,9 @@ this.btnTreeSearch.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.btnTreeSearch.Appearance.Options.UseFont = true; this.btnTreeSearch.Dock = System.Windows.Forms.DockStyle.Right; - this.btnTreeSearch.Location = new System.Drawing.Point(33, 3); + this.btnTreeSearch.Location = new System.Drawing.Point(1, 3); this.btnTreeSearch.Name = "btnTreeSearch"; - this.btnTreeSearch.Size = new System.Drawing.Size(60, 13); + this.btnTreeSearch.Size = new System.Drawing.Size(60, 23); this.btnTreeSearch.TabIndex = 21; this.btnTreeSearch.Text = "查询"; this.btnTreeSearch.Click += new System.EventHandler(this.OnTreeSearchClick); @@ -699,7 +702,7 @@ this.pl_main_top_center.Dock = System.Windows.Forms.DockStyle.Fill; this.pl_main_top_center.Location = new System.Drawing.Point(162, 2); this.pl_main_top_center.Name = "pl_main_top_center"; - this.pl_main_top_center.Size = new System.Drawing.Size(864, 34); + this.pl_main_top_center.Size = new System.Drawing.Size(857, 34); this.pl_main_top_center.TabIndex = 3; // // lbTitle @@ -710,7 +713,7 @@ this.lbTitle.ForeColor = System.Drawing.Color.Blue; this.lbTitle.Location = new System.Drawing.Point(0, 0); this.lbTitle.Name = "lbTitle"; - this.lbTitle.Size = new System.Drawing.Size(864, 34); + this.lbTitle.Size = new System.Drawing.Size(857, 34); this.lbTitle.TabIndex = 1; this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.lbTitle.Paint += new System.Windows.Forms.PaintEventHandler(this.OnLabelTitlePaint); @@ -723,9 +726,9 @@ this.pl_main_top_right.Controls.Add(this.lblOrderNo); this.pl_main_top_right.Controls.Add(this.labelControl1); this.pl_main_top_right.Dock = System.Windows.Forms.DockStyle.Right; - this.pl_main_top_right.Location = new System.Drawing.Point(1026, 2); + this.pl_main_top_right.Location = new System.Drawing.Point(1019, 2); this.pl_main_top_right.Name = "pl_main_top_right"; - this.pl_main_top_right.Size = new System.Drawing.Size(183, 34); + this.pl_main_top_right.Size = new System.Drawing.Size(190, 34); this.pl_main_top_right.TabIndex = 2; // // lblOrderNo @@ -914,11 +917,6 @@ private DevExpress.XtraEditors.PanelControl pl_main_center_detail; private DevExpress.XtraEditors.XtraScrollableControl pl_main_center_master; private DevExpress.XtraEditors.PanelControl pl_treeview_detault_search; - private DevExpress.XtraEditors.PanelControl panelControl4; - private DevExpress.XtraEditors.TextEdit textEdit1; - private Control.LabelComboxEdit lceCombobox; - private DevExpress.XtraEditors.PanelControl panelControl3; - private DevExpress.XtraEditors.SimpleButton btnTreeSearch; public DevExpress.XtraEditors.PanelControl pl_main_bottom; private DevExpress.XtraEditors.SimpleButton btnHelp; private DevExpress.XtraEditors.PanelControl pl_templete; @@ -937,4 +935,9 @@ private DevExpress.XtraEditors.SimpleButton btnDelete; private DevExpress.XtraEditors.SimpleButton btnBillSave; private DevExpress.XtraEditors.PanelControl pl_main_top; - private DevExpress \ No newline at end of file + private DevExpress.XtraEditors.PanelControl pl_main_top_center; + private System.Windows.Forms.Label lbTitle; + private DevExpress.XtraEditors.PanelControl pl_main_top_right; + private DevExpress.XtraEditors.LabelControl lblOrderNo; + private DevExpress.XtraEditors.LabelControl labelControl1; + priva \ No newline at end of file diff --git a/插件库/Lskj.PubBill/BillModule.cs b/插件库/Lskj.PubBill/BillModule.cs index 37af361..c217df1 100644 --- a/插件库/Lskj.PubBill/BillModule.cs +++ b/插件库/Lskj.PubBill/BillModule.cs @@ -89,10 +89,7 @@ namespace Lskj.PubBill /// private DataTable _detailColumns; private bool IsCopying = false; - /// - /// 单据来源明细拖拽删除当前行数据集合 - /// - private List RemoveRowitem = new List(); + protected DataRow BillRowItem; /// @@ -244,6 +241,16 @@ namespace Lskj.PubBill /// 当前操作的ImageEdit /// private LabelImageEdit _imageEdit; + /// + /// 当前来源明细中变色行 + /// + private HashSet ColorHandles = new HashSet(); + /// + /// 保存验证条件表 + /// + public DataTable SaveCondTab = new DataTable(); + + public BillModule() { @@ -493,6 +500,11 @@ namespace Lskj.PubBill { return BaseModuleImpl.GetBaseGridRightMenus("BILLDETAIL_" + dynamicModel.ModuleCode);//设置表格右键菜单 })); + Task saveCondTabTask = cachesDic.AddTask(this, "SaveCondTab", new Task(() => + { + return BaseModuleImpl.GetClientCond(dynamicModel.ModuleCode); + })); + #endregion if (billModel.PanelWidth > 0) { @@ -1206,6 +1218,11 @@ namespace Lskj.PubBill this.gcMain.GridView.ShowingEditor += new CancelEventHandler(OnGridViewShowingEditor); } + if (!dataCaches.GetValue(this, "SaveCondTab", out this.SaveCondTab)) + { + this.SaveCondTab = BaseModuleImpl.GetClientCond(this.SysModel.ModuleCode); + } + if (this.BillModel.DefaultAddEmptyRow) { @@ -1251,6 +1268,18 @@ namespace Lskj.PubBill { string unioright = sender + ""; DataRow rightrowitem = this.gcMain.gridViewRightMenu.MenuTable.Rows.Cast().FirstOrDefault(x => (x["orderid"] + "").Equals(unioright)); + + GridRightMenuModel model = new GridRightMenuModel(rightrowitem); + DataRow rowItem = this.gcMain.GetViewFocusedDataRow(); + if (!string.IsNullOrWhiteSpace(model.MenuCond)) + { + //判断条件 + DataRow row = this.gcMain.GridView.GetFocusedDataRow(); + string cond = ReplaceHelper.ReplaceRowParam(row, model.MenuCond); + bool condResult = ValidateCond(cond, null); + if (!condResult) return; + } + CommonMenu menu = new CommonMenu(this.SysModel, ControlObj, this.gcMain); menu.Apply(rightrowitem); } @@ -1783,6 +1812,9 @@ namespace Lskj.PubBill DataTable masterTable = htTable["master"] as DataTable; DataTable detailTable = htTable["detail"] as DataTable; + + + /* 构造原理 * 1. 假如存在附加信息,则底部显示来源明细(来源明细摆放在标签第一个位置)+多标签,假如标签只有一个则隐藏标签头. * 2. 假如不存在附加信息,则底部只显示来源明细. @@ -1825,6 +1857,25 @@ namespace Lskj.PubBill controls = BaseModuleImpl.GetCustomQueryFields(model.FormKey); } + if (false) + { + string menuCode = string.Empty; + DataRow modelRow = MainImpl.GetSystemdllTab(menuCode);//获取模块信息 + ModuleModel sysModel = new ModuleModel(modelRow); + //设置主表sql + //model.SourceSql = sysModel.MenuSql; + //获取主表列 + DataTable dtSourceColumns = BaseModuleImpl.GetBaseGridColumns(sysModel.ModeCode); + //获取明细消息 + + //明细sql + //model.DetailSql + + } + + + + XtraTabPage tabPage = new XtraTabPage(); tabPage.Text = model.UserName; @@ -2173,6 +2224,7 @@ namespace Lskj.PubBill { GridDragGrid dragDetailGrid = new GridDragGrid(gridDetail.GridView, this.gcMain.GridView); dragDetailGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragDetailGridCompleted); + if (this.BillModel.IsSelectSourceColor) gridDetail.GridView.CustomDrawCell += GridView_CustomDrawCell; } } @@ -2274,8 +2326,6 @@ namespace Lskj.PubBill - - /// /// 单据来源拖拽到主表明细中(树表格拖拽到树表格) /// @@ -3537,7 +3587,6 @@ namespace Lskj.PubBill if (model.GridControlObj != null) this.RefreshSource(model); if (BillModel.drgFinishHide == "1") { - RemoveRowitem.Clear(); if (model.ModelObj.SourceType == 1) { string sqlValue = ReplaceHelper.ReplaceUserInfo(ReplaceHelper.ReplaceWhereCond(model.ModelObj.DetailSql)); @@ -3723,14 +3772,7 @@ namespace Lskj.PubBill { WaitForm.ShowForm(); unionModel.GridDetailControlObj.GridControl.DataSource = BillImpl.GetDataTableResult(sqlValue); - if (BillModel.drgFinishHide == "1") - { - //DataTable finishHideTb = unionModel.GridDetailControlObj.GridControl.DataSourceTable(); - //foreach (DataRow drItem in RemoveRowitem) - //{ - // if (finishHideTb.Select().Contains(drItem)) finishHideTb.Rows.Remove(drItem); - //} - } + this.ClearHighlightRows(unionModel.GridDetailControlObj.GridView); } catch (Exception ex) { @@ -3774,6 +3816,8 @@ namespace Lskj.PubBill } else { + + //有复选框的页签在刷新前清空选中行,否则合计在刷新数据源后不会自带改变 if (unionModel.GridDetailControlObj.GridView.OptionsSelection.MultiSelectMode == GridMultiSelectMode.CheckBoxRowSelect && unionModel.GridDetailControlObj.GridView.OptionsSelection.MultiSelect == true) { @@ -3783,6 +3827,7 @@ namespace Lskj.PubBill unionModel.GridDetailControlObj.GridControl.DataSource = rowItem == null ? new DataTable() : BillImpl.GetDataTableResult(DetailSql); + this.ClearHighlightRows(unionModel.GridDetailControlObj.GridView); } @@ -4629,15 +4674,11 @@ namespace Lskj.PubBill if (unionModel.GridDetailControlObj.GridControl.DataSourceTable().Rows.IndexOf(rowItem) >= 0) { unionModel.GridDetailControlObj.GridControl.DataSourceTable().Rows.Remove(rowItem); - //RemoveRowitem.Add(rowItem); } if (unionModel.GridDetailDetailControlObj != null && unionModel.GridDetailDetailControlObj.GridControl.DataSourceTable().Rows.IndexOf(rowItem) >= 0) { unionModel.GridDetailDetailControlObj.GridControl.DataSourceTable().Rows.Remove(rowItem); - //RemoveRowitem.Add(rowItem); } - - } if (BillModel.DrgDetailAndSource && unionModel.GridControlObj != null)//移动明细主表数据到主表 { @@ -5413,7 +5454,7 @@ namespace Lskj.PubBill MessageUtil.Show("表格中数据内容重复,保存失败!"); return saveResult; } - + //if(!VerificationCond()) return saveResult; WaitForm.ShowForm(ResourceKeys.DataSaving); string billNo = this.lblOrderNo.Text.Trim(); @@ -5786,6 +5827,8 @@ namespace Lskj.PubBill WaitForm.ShowForm(); try { + + string sqlValue = ReplaceHelper.ReplaceUserInfo(ReplaceHelper.ReplaceWhereCond(unionModel.ModelObj.DetailSql)); sqlValue = sqlValue.Replace("#", ""); sqlValue = this.ControlObj.ReplaceControlValue(sqlValue); @@ -5799,16 +5842,9 @@ namespace Lskj.PubBill else { unionModel.GridDetailControlObj.GridControl.DataSource = BillImpl.GetDataTableResult(sqlValue); + this.ClearHighlightRows(unionModel.GridDetailControlObj.GridView); } - if (BillModel.drgFinishHide == "1" && unionModel.GridDetailControlObj != null) - { - DataTable finishHideTb = unionModel.GridDetailControlObj.GridControl.DataSourceTable(); - //foreach (DataRow drItem in RemoveRowitem) - //{ - // if (finishHideTb.Select().Contains(drItem)) finishHideTb.Rows.Remove(drItem); - //} - } } catch (Exception ex) { @@ -6643,21 +6679,24 @@ namespace Lskj.PubBill /// The instance containing the event data. private void OnGridDetailDoubleClick(object sender, EventArgs e) { + + DataTable table = this.gcMain.GridControl.DataSource as DataTable; + XtraTabPage tabPage = this.xtc_left_container.SelectedTabPage; + BillSourceUnionModel unionModel = tabPage.Tag as BillSourceUnionModel; + DataRow rowItem = unionModel.GridDetailControlObj.GridView.GetFocusedDataRow(); + if (rowItem == null) return; + if (BillModel.IsSelectSourceColor && unionModel.GridDetailControlObj != null) + { + //选中行改变颜色 + ColorHandles.Add(unionModel.GridDetailControlObj.GridView.GetFocusedDataSourceRowIndex()); + unionModel.GridDetailControlObj.GridView.Invalidate(); + } + //添加行到主表明细中 if (this.BillModel.DetailTreeTable) { if (this.CanAddTreeDetailRow()) { - DataTable table = this.gcMain.GridControl.DataSource as DataTable; - XtraTabPage tabPage = this.xtc_left_container.SelectedTabPage; - BillSourceUnionModel unionModel = tabPage.Tag as BillSourceUnionModel; - DataRow rowItem = unionModel.GridDetailControlObj.GridView.GetFocusedDataRow(); string Pid = "0";//默认给空值,添加到最后(不添加到选中行的下层) - //DataRow dataRow = (this.gcMain as TreeGridControlEx).GetViewFocusedDataRow(); - //if (dataRow != null) - //{ - // Pid = dataRow[(this.gcMain as TreeGridControlEx).TreeListObj.KeyFieldName] + ""; - //} - if (rowItem == null) return; //添加行 this.AddMultiRowTreeGridControl(new DataRow[] { rowItem }, Pid); if (!string.IsNullOrWhiteSpace(unionModel.AddDataSql) && !string.IsNullOrWhiteSpace(unionModel.AddDataCondition) && this.ValidateCond(unionModel.AddDataCondition, rowItem)) @@ -6666,28 +6705,19 @@ namespace Lskj.PubBill DataTable dataTable = MainImpl.GetDataTableResult(addSql); DragAddTable(dataTable, (int.Parse((this.gcMain as TreeGridControlEx).GetNewNodesId()) - 1) + "");////上方的新增行的id默认是最大的 } - } - } else { if (this.CanAddDetailRow()) { - DataTable table = this.gcMain.GridControl.DataSource as DataTable; - XtraTabPage tabPage = this.xtc_left_container.SelectedTabPage; - BillSourceUnionModel unionModel = tabPage.Tag as BillSourceUnionModel; - DataRow rowItem = unionModel.GridDetailControlObj.GridView.GetFocusedDataRow(); - if (rowItem != null) + if (!this.BillModel.IsFastDragAddDetail) { - if (!this.BillModel.IsFastDragAddDetail) - { - this.AddMultiRowToGridView(new DataRow[] { rowItem }); - } - else - { - this.AddRowsToGridViewFast(new DataRow[] { rowItem }); - } + this.AddMultiRowToGridView(new DataRow[] { rowItem }); + } + else + { + this.AddRowsToGridViewFast(new DataRow[] { rowItem }); } } } @@ -7007,6 +7037,16 @@ namespace Lskj.PubBill DataRow row = e.SourceGridViewObj.GetDataRow(handle); dragRows.Add(row); } + if (BillModel.IsSelectSourceColor) + { + //选中行改变颜色 + foreach (int h in rowHandles) + { + ColorHandles.Add(h); + } + e.SourceGridViewObj.Invalidate(); + } + if (dragRows != null && dragRows.Count > 0) { if (!this.BillModel.IsFastDragAddDetail) @@ -7167,7 +7207,7 @@ namespace Lskj.PubBill this.OnBillSaveClick(null, null); } - if (this.BillModel.SourceMainPushPullHide && DragRows.Count > 0) + if (this.BillModel.SourceMainPushPullHide && DragRows.Count > 0) { foreach (DataRow item in DragRows) { @@ -8504,6 +8544,18 @@ namespace Lskj.PubBill XtraTabPage tabPage = this.xtc_left_container.SelectedTabPage; BillSourceUnionModel unionModel = tabPage.Tag as BillSourceUnionModel; int oldRowHandle = this.gcMain.GridView.FocusedRowHandle; + //改变选中行颜色 + int[] rowHandles = e.GridViewObj.GetSelectedRows(); + if (BillModel.IsSelectSourceColor) + { + //选中行改变颜色 + foreach (int h in rowHandles) + { + ColorHandles.Add(h); + } + e.GridViewObj.Invalidate(); + } + //拖拽行 foreach (DataRow rowItem in e.GridViewSelectRows) { //添加拖拽行 @@ -9871,4 +9923,86 @@ namespace Lskj.PubBill /// /// public bool SetPrintButton(DataRow rowItem) - \ No newline at end of file + { + try + { + bool result = false; + //判断打印按钮条件 + if (!string.IsNullOrWhiteSpace(this.BillModel.PrintingConditions)) + { + if (rowItem == null) return result; + + string cond = ReplaceHelper.ReplaceRowParam(rowItem, this.BillModel.PrintingConditions); + if (cond.StartsWith("@") || cond.StartsWith("!")) + { + result = "1".Equals(BaseImpl.GetDefaultValue(cond)); + } + else + { + result = ReplaceHelper.ReplaceRowParamCond(rowItem, cond); + } + return result; + } + else + { + return true; + } + } + catch (Exception ex) + { + return false; + } + } + + + /// + /// 改变选中行的颜色 + /// + /// + /// + private void GridView_CustomDrawCell(object sender, RowCellCustomDrawEventArgs e) + { + XtraTabPage tabPage = this.xtc_left_container.SelectedTabPage; + BillSourceUnionModel unionModel = tabPage.Tag as BillSourceUnionModel; + if (unionModel != null && unionModel.GridDetailControlObj.GridView != null) + { + int sourceIdx = unionModel.GridDetailControlObj.GridView.GetDataSourceRowIndex(e.RowHandle); + if (ColorHandles.Contains(sourceIdx)) + e.Appearance.BackColor = ColorTranslator.FromHtml(this.BillModel.SelectSourceColor); + } + } + + /// + /// 清空记录的选中行 + /// + /// + public void ClearHighlightRows(GridView gridview) + { + if (this.BillModel.IsSelectSourceColor && ColorHandles.Count > 0) + { + ColorHandles.Clear(); + gridview.Invalidate(); + } + } + + + public bool VerificationCond() + { + + DataTable detailTable = this.gcMain.GridControl.DataSourceTable().TrimDeleteRows(); + + foreach (DataRow CondItem in SaveCondTab.Rows) + { + string condition = CondItem["condition"] + ""; + if (!string.IsNullOrWhiteSpace(condition)) + { + + if (detailTable != null && detailTable.Rows.Count > 0) + { + condition = this.ControlObj.ReplaceParentControlValue(condition); + foreach (DataRow item in detailTable.Rows) + { + if (!ValidateCond(condition, item)) + { + MessageUtil.Show(string.IsNullOrWhiteSpace(CondItem["hintmsg"] + "") ? "条件验证失败" : CondItem["hintmsg"] + ""); + r \ No newline at end of file