diff --git a/其他程序/xNewMyFormDesigner/Program.cs b/其他程序/xNewMyFormDesigner/Program.cs
index a38f89d..e5bf3f7 100644
--- a/其他程序/xNewMyFormDesigner/Program.cs
+++ b/其他程序/xNewMyFormDesigner/Program.cs
@@ -21,14 +21,14 @@ namespace NewMyFormDesigner
{
MyFormDesigner myFormDesigner = new MyFormDesigner();
- //myFormDesigner.FrmKey = "{83184D92-F406-487E-9110-2CB991BFA817}";//B32C9D6E-EB85-4CE1-9B81-2B22EDF2D125 56F43621-6C15-4BDD-8870-98D235ECAB91
+ //myFormDesigner.FrmKey = "{D50D2D31-2120-4AE5-9F27-6F363AB6E76C}";//B32C9D6E-EB85-4CE1-9B81-2B22EDF2D125 56F43621-6C15-4BDD-8870-98D235ECAB91
//myFormDesigner.SelectSQL = @"select b.orderid,b.id as fieldid,fieldname,username1 as username,
// fieldsqltag as fieldtypeid,defaultdate as defaultValue
// from p_systemDlltab a
- // left join p_systemwordbooktab b on a.DllCoid=b.tab where a.formkey='{83184D92-F406-487E-9110-2CB991BFA817}' and fieldsqltag<>3 and username1 is not null and isnull(addVisible,0)=0";
+ // left join p_systemwordbooktab b on a.DllCoid=b.tab where a.formkey='{D50D2D31-2120-4AE5-9F27-6F363AB6E76C}' and fieldsqltag<>3 and username1 is not null and isnull(addVisible,0)=0";
- //myFormDesigner.updateSQL = @"update p_systemwordbooktab set controlleft=b.controlleft ,controlTop=b.controlTop, controlHeight=b.controlHeight,controlWidth=b.controlWidth, tabOrder=b.tabOrder from p_systemControlLocation b where p_systemwordbooktab.formKey=b.formKey and p_systemwordbooktab.id=b.fieldId and b.formkey='{83184D92-F406-487E-9110-2CB991BFA817}'";
+ //myFormDesigner.updateSQL = @"update p_systemwordbooktab set controlleft=b.controlleft ,controlTop=b.controlTop, controlHeight=b.controlHeight,controlWidth=b.controlWidth, tabOrder=b.tabOrder from p_systemControlLocation b where p_systemwordbooktab.formKey=b.formKey and p_systemwordbooktab.id=b.fieldId and b.formkey='{D50D2D31-2120-4AE5-9F27-6F363AB6E76C}'";
diff --git a/插件库/Lskj.Control/Model/ControlModel.cs b/插件库/Lskj.Control/Model/ControlModel.cs
index 94f7c00..a903434 100644
--- a/插件库/Lskj.Control/Model/ControlModel.cs
+++ b/插件库/Lskj.Control/Model/ControlModel.cs
@@ -366,7 +366,10 @@ namespace Lskj.Control.Model
///记住上一次的值(关闭时记住上一次的条件值,下一次打开时输入上去。关闭程序后清空)
///
public bool RememberValue { get; set; }
-
+ ///
+ /// 明细合计
+ ///
+ public string SumlistField { get; set; }
}
}
diff --git a/插件库/Lskj.Control/Model/MenuStrip/BaseMenuStrip.cs b/插件库/Lskj.Control/Model/MenuStrip/BaseMenuStrip.cs
index 4145239..fc94c3d 100644
--- a/插件库/Lskj.Control/Model/MenuStrip/BaseMenuStrip.cs
+++ b/插件库/Lskj.Control/Model/MenuStrip/BaseMenuStrip.cs
@@ -71,6 +71,23 @@ namespace Lskj.Control.Model
/// 替换参数前执行
///
public event BeforeHandleParamsEventHandler OnBeforeHandleParamsCallback;
+
+ ///
+ /// 触发替换参数前事件,并返回事件处理后的参数值。
+ ///
+ protected string RaiseBeforeHandleParamsCallback(List paramList, DataRow[] rowDatas, string paramItem, DataRow rowData, string fieldValue)
+ {
+ BeforeHandleParamsEventHandler handler = OnBeforeHandleParamsCallback;
+ if (handler == null)
+ return fieldValue;
+
+ HandleParamsArgs handleParamsArgs = new HandleParamsArgs(paramList, rowDatas, paramItem, rowData)
+ {
+ FieldValue = fieldValue
+ };
+ handler(this, handleParamsArgs);
+ return handleParamsArgs.FieldValue;
+ }
///
/// 缓存右键菜单
///
@@ -1899,15 +1916,7 @@ namespace Lskj.Control.Model
if (!string.IsNullOrWhiteSpace(item))
{
string fieldValue = ReplaceHelper.ReplaceUserInfo(item);
- if (OnBeforeHandleParamsCallback != null)
- {
- HandleParamsArgs handleParamsArgs = new HandleParamsArgs(paramList, rowDatas, item, rowData)
- {
- FieldValue = fieldValue
- };
- OnBeforeHandleParamsCallback(this, handleParamsArgs);
- fieldValue = handleParamsArgs.FieldValue;
- }
+ fieldValue = RaiseBeforeHandleParamsCallback(paramList, rowDatas, item, rowData, fieldValue);
if (!string.IsNullOrWhiteSpace(fieldValue) && fieldValue.TrimStart().StartsWith("MergeExec_", StringComparison.OrdinalIgnoreCase))
{
fieldValue = ReplaceHelper.ReplaceRowParam(rowDatas, fieldValue.Replace("MergeExec_", "", true));
@@ -2086,4 +2095,4 @@ namespace Lskj.Control.Model
}
}
}
-}
\ No newline at end of file
+}
diff --git a/插件库/Lskj.Control/Model/MenuStrip/GridViewMenuStrip.cs b/插件库/Lskj.Control/Model/MenuStrip/GridViewMenuStrip.cs
index 0c18d41..16ef186 100644
--- a/插件库/Lskj.Control/Model/MenuStrip/GridViewMenuStrip.cs
+++ b/插件库/Lskj.Control/Model/MenuStrip/GridViewMenuStrip.cs
@@ -40,8 +40,7 @@ namespace Lskj.Control.Model
protected override void MenuStripOpening(object sender, System.ComponentModel.CancelEventArgs e)
{
- int[] mSelectRows = this._gridView.GetSelectedRows();
- if (mSelectRows == null || mSelectRows.Length == 0) return;
+ int[] mSelectRows = this._gridView.GetSelectedRows() ?? new int[0];
DataRow[] dataRows = new DataRow[mSelectRows.Length];
for (int i = 0; i < mSelectRows.Length; i++)
@@ -49,49 +48,53 @@ namespace Lskj.Control.Model
dataRows[i] = this._gridView.GetDataRow(mSelectRows[i]);
}
-
- DataRow mSelectRow = this._gridView.GetDataRow(mSelectRows[0]);
- this._gridView.UpdateCurrentRow();
- this._gridView.ShowEditor();
-
ContextMenuStrip cmsMenu = (ContextMenuStrip)sender;
cmsMenu.Items.Clear();
cmsMenu.Items.AddRange(this.RightMenuItems.ToArray());
- // 创建QQ、浏览器右键菜单
- List mQQArray = new List();
- List mBrowerArray = new List();
- foreach (GridColumn column in this._gridView.Columns)
+ if (mSelectRows.Length > 0)
{
- if (!mSelectRow.Table.Columns.Contains(column.Name))
- continue;
- string rowValue = mSelectRow[column.Name] + "";
- if (!string.IsNullOrWhiteSpace(rowValue))
+ DataRow mSelectRow = this._gridView.GetDataRow(mSelectRows[0]);
+ this._gridView.UpdateCurrentRow();
+ this._gridView.ShowEditor();
+
+ // 创建QQ、浏览器右键菜单
+ List mQQArray = new List();
+ List mBrowerArray = new List();
+
+ foreach (GridColumn column in this._gridView.Columns)
{
- GridColumnModel model = column.Tag as GridColumnModel;
- if (model == null) continue;
-
- if (model.FieldType == ControlType.LabQQ)
+ if (!mSelectRow.Table.Columns.Contains(column.Name))
+ continue;
+ string rowValue = mSelectRow[column.Name] + "";
+ if (!string.IsNullOrWhiteSpace(rowValue))
{
- ToolStripMenuItem item = new ToolStripMenuItem("(" + column.Caption + ")" + rowValue, Resources.qq);
- item.Tag = mSelectRow[column.Name] + "";
- item.Click += new EventHandler(QQItemClick);
- mQQArray.Add(item);
- }
+ GridColumnModel model = column.Tag as GridColumnModel;
+ if (model == null) continue;
- if (model.FieldType == ControlType.LabWWW && !string.IsNullOrWhiteSpace(rowValue))
- {
- ToolStripMenuItem item = new ToolStripMenuItem("(" + column.Caption + ")" + rowValue, Resources.www);
- item.Tag = mSelectRow[column.Name] + "";
- item.Click += new EventHandler(BrowerItemClick);
- mBrowerArray.Add(item);
+ if (model.FieldType == ControlType.LabQQ)
+ {
+ ToolStripMenuItem item = new ToolStripMenuItem("(" + column.Caption + ")" + rowValue, Resources.qq);
+ item.Tag = mSelectRow[column.Name] + "";
+ item.Click += new EventHandler(QQItemClick);
+ mQQArray.Add(item);
+ }
+
+ if (model.FieldType == ControlType.LabWWW && !string.IsNullOrWhiteSpace(rowValue))
+ {
+ ToolStripMenuItem item = new ToolStripMenuItem("(" + column.Caption + ")" + rowValue, Resources.www);
+ item.Tag = mSelectRow[column.Name] + "";
+ item.Click += new EventHandler(BrowerItemClick);
+ mBrowerArray.Add(item);
+ }
}
}
+
+ cmsMenu.Items.AddRange(mQQArray.ToArray());
+ cmsMenu.Items.AddRange(mBrowerArray.ToArray());
}
- cmsMenu.Items.AddRange(mQQArray.ToArray());
- cmsMenu.Items.AddRange(mBrowerArray.ToArray());
Dictionary cmsModelDic = new Dictionary();
List roleNamesList = new List();
@@ -103,6 +106,8 @@ namespace Lskj.Control.Model
roleNamesList.Add(model.PrivilegeOper);
}
}
+
+
// 判断右键菜单是否可用
foreach (ToolStripItem cms in cmsMenu.Items)
{
@@ -126,20 +131,28 @@ namespace Lskj.Control.Model
StringBuilder sqlCondBuilder = new StringBuilder();
GridCell[] cells = this._gridView.GetSelectedCells();
DataRow focusedRow = this.BaseGridView.GetFocusedDataRow();
- foreach (int itemIndex in mSelectRows)
+
+ DataRow[] conditionRows = dataRows;
+ if (model.AllowNullExec && conditionRows.Length == 0)
{
- DataRow selectRow = this._gridView.GetDataRow(itemIndex);
- string cond = string.Empty;
+ conditionRows = new DataRow[] { new DataTable().NewRow() };
+ }
+
+ foreach (DataRow selectRow in conditionRows)
+ {
+ //DataRow selectRow = this._gridView.GetDataRow(itemIndex);
+ string cond = ReplaceHelper.ReplaceUserInfo(model.MenuCond);
+ cond = RaiseBeforeHandleParamsCallback(model.ParamList, conditionRows, model.MenuCond, selectRow, cond);
if (this._control != null)
{
- cond = _control.ReplaceParentControlValue(model.MenuCond);
+ cond = _control.ReplaceParentControlValue(cond);
}
- cond = ReplaceHelper.ReplaceRowParam(selectRow, model.MenuCond);
+ cond = ReplaceHelper.ReplaceRowParam(selectRow, cond);
if (model.Mergeexec&& cond.StartsWith("@"))
{
//替换[],替换的是多选行中的数据
- cond = ReplaceHelper.ReplaceRowParam(dataRows, cond.Replace("[", "{").Replace("]", "}"), "", "");
+ cond = ReplaceHelper.ReplaceRowParam(conditionRows, cond.Replace("[", "{").Replace("]", "}"), "", "");
}
if (this._gridView != null)
@@ -151,6 +164,7 @@ namespace Lskj.Control.Model
cond = cond.ReplaceColumnParam(cell.Column.Name, cell.Column.Caption, colValue);
}
}
+
if (ControlObj != null)
{
cond = ControlObj.ReplaceParentControlValue(cond);
@@ -164,15 +178,19 @@ namespace Lskj.Control.Model
condBuilder.Append($"({cond}) and ");
}
}
- string condStr = "";
- if (model.MenuCond.StartsWith("@"))
+ string condStr = model.MenuCond;
+ if (!string.IsNullOrWhiteSpace(sqlCondBuilder.ToString()) || !string.IsNullOrWhiteSpace(condBuilder.ToString()))
{
- condStr = $"@if({sqlCondBuilder.ToString().TrimEnd().TrimEnd('d', 'n', 'a')}) begin select '1' end else begin select '0' end";
- }
- else
- {
- condStr = condBuilder.ToString().TrimEnd().TrimEnd('d', 'n', 'a');
+ if (model.MenuCond.StartsWith("@"))
+ {
+ condStr = $"@if({sqlCondBuilder.ToString().TrimEnd().TrimEnd('d', 'n', 'a')}) begin select '1' end else begin select '0' end";
+ }
+ else
+ {
+ condStr = condBuilder.ToString().TrimEnd().TrimEnd('d', 'n', 'a');
+ }
}
+
condResult = ValidateCond(condStr, null);
//if (!condResult) break;
//cms.Enabled = ReplaceHelper.EvalCond(cond);
diff --git a/插件库/Lskj.Control/Model/MenuStrip/TreeGridViewMenuStrip.cs b/插件库/Lskj.Control/Model/MenuStrip/TreeGridViewMenuStrip.cs
index c438e78..ad1d646 100644
--- a/插件库/Lskj.Control/Model/MenuStrip/TreeGridViewMenuStrip.cs
+++ b/插件库/Lskj.Control/Model/MenuStrip/TreeGridViewMenuStrip.cs
@@ -73,56 +73,58 @@ namespace Lskj.Control.Model.MenuStrip
}
protected override void MenuStripOpening(object sender, System.ComponentModel.CancelEventArgs e)
{
- DataRow[] mSelectRows = this.TreeGridControlObj.GetViewFocusedDataRows();
- if (mSelectRows == null || mSelectRows.Length == 0) return;
-
- DataRow mSelectRow = mSelectRows[0];
- this._treeView.EndCurrentEdit();
- this._treeView.ShowEditor();
+ DataRow[] mSelectRows = this.TreeGridControlObj.GetViewFocusedDataRows() ?? new DataRow[0];
ContextMenuStrip cmsMenu = (ContextMenuStrip)sender;
cmsMenu.Items.Clear();
cmsMenu.Items.AddRange(this.RightMenuItems.ToArray());
- // 创建QQ、浏览器右键菜单
- List mQQArray = new List();
- List mBrowerArray = new List();
-
- foreach (TreeListColumn column in this._treeView.Columns)
+ if (mSelectRows.Length > 0)
{
- if (!mSelectRow.Table.Columns.Contains(column.Name))
- continue;
- string rowValue = mSelectRow[column.Name] + "";
- if (!string.IsNullOrWhiteSpace(rowValue))
+ DataRow mSelectRow = mSelectRows[0];
+ this._treeView.EndCurrentEdit();
+ this._treeView.ShowEditor();
+
+ // 创建QQ、浏览器右键菜单
+ List mQQArray = new List();
+ List mBrowerArray = new List();
+
+ foreach (TreeListColumn column in this._treeView.Columns)
{
- GridColumnModel model = column.Tag as GridColumnModel;
- if (model == null) continue;
-
- if (model.FieldType == ControlType.LabQQ)
+ if (!mSelectRow.Table.Columns.Contains(column.Name))
+ continue;
+ string rowValue = mSelectRow[column.Name] + "";
+ if (!string.IsNullOrWhiteSpace(rowValue))
{
- ToolStripMenuItem item = new ToolStripMenuItem("(" + column.Caption + ")" + rowValue, Resources.qq);
- item.Tag = mSelectRow[column.Name] + "";
- item.Click += new EventHandler(QQItemClick);
- mQQArray.Add(item);
- }
+ GridColumnModel model = column.Tag as GridColumnModel;
+ if (model == null) continue;
- if (model.FieldType == ControlType.LabWWW &&
- (rowValue.StartsWith("www.") ||
- rowValue.StartsWith("http://") ||
- rowValue.StartsWith("https://") ||
- rowValue.StartsWith("ftp://") ||
- rowValue.StartsWith("file://")))
- {
- ToolStripMenuItem item = new ToolStripMenuItem("(" + column.Caption + ")" + rowValue, Resources.qq);
- item.Tag = mSelectRow[column.Name] + "";
- item.Click += new EventHandler(BrowerItemClick);
- mBrowerArray.Add(item);
+ if (model.FieldType == ControlType.LabQQ)
+ {
+ ToolStripMenuItem item = new ToolStripMenuItem("(" + column.Caption + ")" + rowValue, Resources.qq);
+ item.Tag = mSelectRow[column.Name] + "";
+ item.Click += new EventHandler(QQItemClick);
+ mQQArray.Add(item);
+ }
+
+ if (model.FieldType == ControlType.LabWWW &&
+ (rowValue.StartsWith("www.") ||
+ rowValue.StartsWith("http://") ||
+ rowValue.StartsWith("https://") ||
+ rowValue.StartsWith("ftp://") ||
+ rowValue.StartsWith("file://")))
+ {
+ ToolStripMenuItem item = new ToolStripMenuItem("(" + column.Caption + ")" + rowValue, Resources.qq);
+ item.Tag = mSelectRow[column.Name] + "";
+ item.Click += new EventHandler(BrowerItemClick);
+ mBrowerArray.Add(item);
+ }
}
}
- }
- cmsMenu.Items.AddRange(mQQArray.ToArray());
- cmsMenu.Items.AddRange(mBrowerArray.ToArray());
+ cmsMenu.Items.AddRange(mQQArray.ToArray());
+ cmsMenu.Items.AddRange(mBrowerArray.ToArray());
+ }
// 判断右键菜单是否可用
foreach (ToolStripItem cms in cmsMenu.Items)
@@ -139,19 +141,27 @@ namespace Lskj.Control.Model.MenuStrip
StringBuilder sqlCondBuilder = new StringBuilder();
List cells = this._treeView != null ? this._treeView.GetSelectedCells() : null;
DataRow focusedRow = this.TreeGridControlObj.GetViewFocusedDataRow();
- foreach (DataRow selectRow in mSelectRows)
+
+ DataRow[] conditionRows = mSelectRows;
+ if (model.AllowNullExec && conditionRows.Length == 0)
+ {
+ conditionRows = new DataRow[] { new DataTable().NewRow() };
+ }
+
+ foreach (DataRow selectRow in conditionRows)
{
if (selectRow == null) continue;
- string cond = string.Empty;
+ string cond = ReplaceHelper.ReplaceUserInfo(model.MenuCond);
+ cond = RaiseBeforeHandleParamsCallback(model.ParamList, conditionRows, model.MenuCond, selectRow, cond);
if (this._control != null)
- cond = _control.ReplaceParentControlValue(model.MenuCond);
- cond = ReplaceHelper.ReplaceRowParam(selectRow, model.MenuCond);
+ cond = _control.ReplaceParentControlValue(cond);
+ cond = ReplaceHelper.ReplaceRowParam(selectRow, cond);
if (model.Mergeexec && cond.StartsWith("@"))
{
//替换[],替换的是多选行中的数据
- cond = ReplaceHelper.ReplaceRowParam(mSelectRows, cond.Replace("[", "{").Replace("]", "}"), "", "");
+ cond = ReplaceHelper.ReplaceRowParam(conditionRows, cond.Replace("[", "{").Replace("]", "}"), "", "");
}
if (cells != null && cells.Count > 0 && cond.Contains("{COLUMN_"))
@@ -173,14 +183,17 @@ namespace Lskj.Control.Model.MenuStrip
condBuilder.Append($"({cond}) and ");
}
}
- string condStr = "";
- if (model.MenuCond.StartsWith("@"))
+ string condStr = model.MenuCond;
+ if (!string.IsNullOrWhiteSpace(sqlCondBuilder.ToString()) || !string.IsNullOrWhiteSpace(condBuilder.ToString()))
{
- condStr = $"@if({sqlCondBuilder.ToString().TrimEnd().TrimEnd('d', 'n', 'a')}) begin select '1' end else begin select '0' end";
- }
- else
- {
- condStr = condBuilder.ToString().TrimEnd().TrimEnd('d', 'n', 'a');
+ if (model.MenuCond.StartsWith("@"))
+ {
+ condStr = $"@if({sqlCondBuilder.ToString().TrimEnd().TrimEnd('d', 'n', 'a')}) begin select '1' end else begin select '0' end";
+ }
+ else
+ {
+ condStr = condBuilder.ToString().TrimEnd().TrimEnd('d', 'n', 'a');
+ }
}
condResult = ValidateCond(condStr, null);
//cms.Enabled = ReplaceHelper.EvalCond(cond);
diff --git a/插件库/Lskj.Control/Model/MyControl.cs b/插件库/Lskj.Control/Model/MyControl.cs
index 535b49a..2558f5d 100644
--- a/插件库/Lskj.Control/Model/MyControl.cs
+++ b/插件库/Lskj.Control/Model/MyControl.cs
@@ -4212,7 +4212,7 @@ namespace Lskj.Control.Model
model.ModuleFrameDisplayText = item.Table.Columns.Contains("ModuleFrameDisplayText") ? "1".Equals(item["ModuleFrameDisplayText"] + "") : false;
model.InputBoxFontSize = item.Table.Columns.Contains("InputBoxFontSize") && !string.IsNullOrEmpty(item["InputBoxFontSize"] + "") ? Convert.ToInt32(item["InputBoxFontSize"] + "") : 0;
model.RememberValue = item.Table.Columns.Contains("RememberValue") ? "1".Equals(item["RememberValue"] + "") : false;
-
+ model.SumlistField = item.Table.Columns.Contains("SumlistField") ? item["SumlistField"] + "" : "";
//为了和工具里和bs里统一
if (model.FieldType == 42)
diff --git a/插件库/Lskj.Control/ModuleGridEx.cs b/插件库/Lskj.Control/ModuleGridEx.cs
index c8573c3..6aad0a4 100644
--- a/插件库/Lskj.Control/ModuleGridEx.cs
+++ b/插件库/Lskj.Control/ModuleGridEx.cs
@@ -1603,6 +1603,8 @@ namespace Lskj.Control
this.bbi_export.Enabled = this.SysModel.ExportEnable;
this.pl_top_fix_search.Enabled = this.pl_top_search.Enabled = this.SysModel.SearchEnable;
this.pl_buttom.Visible = this.VisibleOperPanel && (this.SysModel.AddEnable || this.SysModel.DeleteEnable || (this.SysModel.ModifyEnable && this.SysModel.CanEdit));
+
+ this.btnUpdate.Enabled = this.SysModel.ModifyEnable && this.SysModel.CanEdit;
this.gcMain.GridView.FocusedRowObjectChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventHandler(OnGridViewFocusedRowObjectChanged);
if (this.LeftGridEx != null) this.LeftGridEx.GridView.FocusedRowObjectChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventHandler(OnGridViewFocusedRowObjectChanged);
@@ -1611,7 +1613,7 @@ namespace Lskj.Control
}
else
{
- this.btnAdd.Enabled = this.btnDel.Enabled = this.btnSave.Enabled = this.bbi_import.Enabled = false;
+ this.btnUpdate.Enabled=this.btnAdd.Enabled = this.btnDel.Enabled = this.btnSave.Enabled = this.bbi_import.Enabled = false;
this.gcMain.GridView.OptionsBehavior.Editable = false;
this.pl_buttom.Visible = false;
}
diff --git a/插件库/Lskj.Model/BillModel.cs b/插件库/Lskj.Model/BillModel.cs
index 561fdef..1b95f1e 100644
--- a/插件库/Lskj.Model/BillModel.cs
+++ b/插件库/Lskj.Model/BillModel.cs
@@ -467,6 +467,14 @@ namespace Lskj.Model
/// 单据横向模式
///
public bool HorizontalMode;
+ ///
+ /// 树表格老版节点号模式
+ ///
+ public bool OldNodeRules;
+ ///
+ /// 新版树节点位数(默认2位,最小2位)
+ ///
+ public int TreeNumberNodes;
///
@@ -575,6 +583,8 @@ namespace Lskj.Model
this.SourceMainPushPullHide = rowItem.Table.Columns.Contains("SourceMainPushPullHide") ? "1".Equals(rowItem["SourceMainPushPullHide"] + "") : false;
this.SelectSourceColor = rowItem.Table.Columns.Contains("SelectSourceColor") ? rowItem["SelectSourceColor"] + "" : "";
this.HorizontalMode = rowItem.Table.Columns.Contains("HorizontalMode") ? "1".Equals(rowItem["HorizontalMode"] + "") : false;
+ this.OldNodeRules = rowItem.Table.Columns.Contains("OldNodeRules") ? "1".Equals(rowItem["OldNodeRules"] + "") : false;
+ this.TreeNumberNodes = rowItem.Table.Columns.Contains("MessageRefreshTime") && !string.IsNullOrEmpty(rowItem["MessageRefreshTime"] + "") ? Convert.ToInt32(rowItem["MessageRefreshTime"] + "")>2? Convert.ToInt32(rowItem["MessageRefreshTime"] + ""):2 : 2;
}
}
}
\ No newline at end of file
diff --git a/插件库/Lskj.PubBill/BillModule.cs b/插件库/Lskj.PubBill/BillModule.cs
index f4f5b83..11939d9 100644
--- a/插件库/Lskj.PubBill/BillModule.cs
+++ b/插件库/Lskj.PubBill/BillModule.cs
@@ -2115,7 +2115,7 @@ namespace Lskj.PubBill
{
gridEx.LeftTreeViewEx = treeView;
}
- else
+ else
{
gridEx.LeftGridEx = gridControl;
gridEx.ParentGridEx = gridControl;
@@ -2190,6 +2190,8 @@ namespace Lskj.PubBill
}
gridDetail.SetGridRowColors(dtBaseGridRowColors);
gridDetail.SetGridRightMenus(dtBaseGridRightMenus, this.SysModel, OnGridDetailRightMenuCallback);
+ gridDetail.gridViewRightMenu.OnBeforeHandleParamsCallback += OnBeforeHandleParamsCallback;
+
gridDetail.Parent = tabDetail;
gridDetail.BorderStyle = System.Windows.Forms.BorderStyle.None;
@@ -2232,6 +2234,9 @@ namespace Lskj.PubBill
}
gridDetail.SetGridRowColors(dtBaseGridRowColors);
gridDetail.SetGridRightMenus(dtBaseGridRightMenus, this.SysModel, OnGridDetailRightMenuCallback);
+
+ gridDetail.gridViewRightMenu.OnBeforeHandleParamsCallback += OnBeforeHandleParamsCallback;
+
if (BillModel.IsBillDetailCheck == 0)
{
if (model.MainDetailsAddType != "2") gridDetail.GridView.DoubleClick += new EventHandler(OnGridDetailDoubleClick);
@@ -2442,6 +2447,8 @@ namespace Lskj.PubBill
+
+
///
/// 单据来源拖拽到主表明细中(树表格拖拽到树表格)
///
@@ -3882,7 +3889,10 @@ namespace Lskj.PubBill
if (!string.IsNullOrEmpty(checkStrs))
checkStrs = " and SpeciesNo in (" + checkStrs.TrimEnd(',') + ")";
- sqlValue = string.Format("select * from ({0}) temp where 1=1 ", ReplaceHelper.ReplaceWhereCond(sqlValue) + checkStrs) + string.Format(" and ({0} like '%{1}%' or dbo.P_getpy({0}) like '%{1}%')", fieldName, fieldValue);
+
+ string FinalCondition = this.pl_treeview_detault_search.Visible ? string.Format(" and ({0} like '%{1}%' or dbo.P_getpy({0}) like '%{1}%')", fieldName, fieldValue) : "";
+ sqlValue = string.Format("select * from ({0}) temp where 1=1 ", ReplaceHelper.ReplaceWhereCond(sqlValue) + checkStrs) + FinalCondition;
+ //sqlValue = string.Format("select * from ({0}) temp where 1=1 ", ReplaceHelper.ReplaceWhereCond(sqlValue) + checkStrs) + string.Format(" and ({0} like '%{1}%' or dbo.P_getpy({0}) like '%{1}%')", fieldName, fieldValue);
try
{
@@ -5172,6 +5182,8 @@ namespace Lskj.PubBill
}
}
+ DataTable detailTable = this.gcMain.GridControl.DataSourceTable().TrimDeleteRows();
+
StringBuilder fieldBuilder = new StringBuilder();
StringBuilder valueBuilder = new StringBuilder();
@@ -5196,6 +5208,14 @@ namespace Lskj.PubBill
fieldValue = fieldValue.Trim();
if (fieldValue == "****") continue;
+ if (!string.IsNullOrWhiteSpace(model.SumlistField) && detailTable.Columns.Contains(model.SumlistField))
+ {
+ // 基础用法,列存在null会自动忽略
+ object objSum = detailTable.Compute("Sum(" + model.SumlistField + ")", "");
+ decimal total = objSum == DBNull.Value ? 0 : Convert.ToDecimal(objSum);
+ fieldValue = total + "";
+ }
+
errorMessage = errorMessage + DatabaseFormatJudgment.SaveOrModifyBalidation(DetailedProperties, model, fieldValue);
if (string.IsNullOrEmpty(fieldValue) && model.Isintordecimal) fieldValue = "0";//数值保存时为空的话默认保存为0;
@@ -5230,6 +5250,7 @@ namespace Lskj.PubBill
{
StringBuilder updateBuilder = new StringBuilder();
+ DataTable detailTable = this.gcMain.GridControl.DataSourceTable().TrimDeleteRows();
//DataTable DetailedProperties = BaseImpl.GetDataTableResult(string.Format("select COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH from information_schema.columns where table_name = '{0}'", BillModel.MasterTable));
DataTable DetailedProperties = MainImpl.GetDatabaseProperty(BillModel.MasterTable);
@@ -5255,6 +5276,14 @@ namespace Lskj.PubBill
fieldValue = fieldValue.Trim();
if (fieldValue == "****") continue;
+ if (!string.IsNullOrWhiteSpace(model.SumlistField)&& detailTable.Columns.Contains(model.SumlistField))
+ {
+ // 基础用法,列存在null会自动忽略
+ object objSum = detailTable.Compute("Sum("+ model.SumlistField + ")", "");
+ decimal total = objSum == DBNull.Value ? 0 : Convert.ToDecimal(objSum);
+ fieldValue = total+"";
+ }
+
errorMessage = errorMessage + DatabaseFormatJudgment.SaveOrModifyBalidation(DetailedProperties, model, fieldValue);
if (string.IsNullOrEmpty(fieldValue) && model.Isintordecimal) fieldValue = "0";//数值保存时为空的话默认保存为0;
@@ -6789,6 +6818,60 @@ namespace Lskj.PubBill
this.RefreshSourceDetail(tabPage.Tag as BillSourceUnionModel);
}
+ ///
+ /// 单据来源明细右键替换参数前执行
+ ///
+ ///
+ ///
+ private void OnBeforeHandleParamsCallback(object sender, HandleParamsArgs e)
+ {
+ if (!string.IsNullOrWhiteSpace(e.ParamItem) && e.ParamItem.Contains("{BillSource_"))
+ {
+ string item = e.ParamItem;
+ XtraTabPage tabPage = this.xtc_left_container.SelectedTabPage;
+ BillSourceUnionModel model = tabPage.Tag as BillSourceUnionModel;
+ TreeNode node = null;
+ DataRow selectRow = null;
+ if (model.ModelObj.SourceType == 1)
+ {
+ node = model.TreeViewObj.TreeView.SelectedNode;
+ if (node == null)
+ node = model.TreeViewObj.TreeView.Nodes[0];
+ }
+ else if (model.ModelObj.SourceType == 3 || model.ModelObj.SourceType == 4)
+ {
+ selectRow = model.TreeGridControlObj.GetViewFocusedDataRow();
+ }
+ else
+ {
+ selectRow = model.GridControlObj.GetViewFocusedDataRow();
+ }
+
+
+ // 正则 + 忽略大小写标记
+ MatchCollection matches = Regex.Matches(
+ item,
+ @"\{BillSource_.*?\}",
+ RegexOptions.IgnoreCase // 关键:忽略大小写
+ );
+
+ foreach (Match match in matches)
+ {
+ if (node != null)
+ {
+ item = item.Replace(match.Value, node.Name);
+ }
+ else if (selectRow != null)
+ {
+ item = item.Replace(match.Value, ReplaceHelper.ReplaceRowParam(selectRow, match.Value.Replace("BillSource_","")));
+ }
+
+ }
+ e.FieldValue = item;
+ }
+
+ }
+
///
/// 底部明细右键后刷新