SVN r1000

SVN-Revision: r1000
This commit is contained in:
cyf
2025-09-28 06:50:51 +00:00
parent d6739afcd1
commit 533029e001
10 changed files with 354 additions and 112 deletions
+20 -10
View File
@@ -1750,7 +1750,8 @@ namespace Lskj.Control
if (isComplete)
{
WaitForm.ShowForm("正在审核[" + item[this.BaseAccraditModelObj.TmpParmaryField] + "]单据!");
string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, item[this.BaseAccraditModelObj.TmpStepField] + "", item[this.BaseAccraditModelObj.TmpParmaryField] + "", "", this.AuditComModelObj.ProcedureName, "F", "", "批量审批同意");
//string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, item[this.BaseAccraditModelObj.TmpStepField] + "", item[this.BaseAccraditModelObj.TmpParmaryField] + "", "", this.AuditComModelObj.ProcedureName, "F", "", "批量审批同意");
string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, out string msgText,this.SysModel, item[this.BaseAccraditModelObj.TmpStepField] + "", item[this.BaseAccraditModelObj.TmpParmaryField] + "", "", this.AuditComModelObj.ProcedureName, "F", "", "批量审批同意");
if ("1".Equals(result))
{
@@ -1759,7 +1760,7 @@ namespace Lskj.Control
else
{
fault++;
tipMsg = result + "\r\n";
tipMsg = msgText + "\r\n";
}
}
else
@@ -1896,7 +1897,10 @@ namespace Lskj.Control
{
if (!SaveBillData(0, false)) return;
string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, this.SysModel.StepCode, this.SysModel.BillDocumentId, "", this.BillAuditComObj.ProcedureName, "F", this._flowTypeStepModel.RemindSelect, frmExamine.txtRemark.EditText, remindOpers, confirmOpers);
//string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, this.SysModel.StepCode, this.SysModel.BillDocumentId, "", this.BillAuditComObj.ProcedureName, "F", this._flowTypeStepModel.RemindSelect, frmExamine.txtRemark.EditText, remindOpers, confirmOpers);
string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, out string msgText, this.SysModel, this.SysModel.StepCode, this.SysModel.BillDocumentId, "", this.BillAuditComObj.ProcedureName, "F", this._flowTypeStepModel.RemindSelect, frmExamine.txtRemark.EditText, remindOpers, confirmOpers);
if ("1".Equals(result))
{
MessageUtil.Show(ResourceKeys.AuditSuccess);
@@ -1907,7 +1911,7 @@ namespace Lskj.Control
}
else
{
MessageUtil.Show(ResourceKeys.AuditFail + "\r\n" + result);
MessageUtil.Show(ResourceKeys.AuditFail + "\r\n" + msgText);
}
}
}
@@ -2236,7 +2240,9 @@ namespace Lskj.Control
string nextSelectStepCode = string.Empty;
string nextSelectStepOper = string.Empty;
WaitForm.ShowForm("正在返退[" + item[this.BaseAccraditModelObj.TmpParmaryField] + "]单据!");
string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, this.SysModel.StepCode, this.SysModel.BillDocumentId, "", this.BillAuditComObj.ProcedureName, "R", "0", this._auditAdvice, "", "", true, ret);
//string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, this.SysModel.StepCode, this.SysModel.BillDocumentId, "", this.BillAuditComObj.ProcedureName, "R", "0", this._auditAdvice, "", "", true, ret);
string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, out string msgText, this.SysModel, this.SysModel.StepCode, this.SysModel.BillDocumentId, "", this.BillAuditComObj.ProcedureName, "R", "0", this._auditAdvice, "", "", true, ret);
if ("1".Equals(result))
{
success++;
@@ -2244,7 +2250,7 @@ namespace Lskj.Control
else
{
fault++;
tipMsg = result + "\r\n";
tipMsg = msgText + "\r\n";
}
firstLoad = false;
}
@@ -2260,7 +2266,9 @@ namespace Lskj.Control
{
string nextSelectStepCode = string.Empty;
string nextSelectStepOper = string.Empty;
string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, this.SysModel.StepCode, this.SysModel.BillDocumentId, "", this.BillAuditComObj.ProcedureName, "R", "0", this._auditAdvice, "", "", true, ret);
//string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, this.SysModel.StepCode, this.SysModel.BillDocumentId, "", this.BillAuditComObj.ProcedureName, "R", "0", this._auditAdvice, "", "", true, ret);
string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, out string msgText, this.SysModel, this.SysModel.StepCode, this.SysModel.BillDocumentId, "", this.BillAuditComObj.ProcedureName, "R", "0", this._auditAdvice, "", "", true, ret);
if (result == "1")
{
MessageUtil.Show(ResourceKeys.ForcedSuccess);
@@ -2270,7 +2278,7 @@ namespace Lskj.Control
}
else
{
MessageUtil.Show(string.Format(ResourceKeys.ForcedFail, result));
MessageUtil.Show(string.Format(ResourceKeys.ForcedFail, msgText));
}
}
}
@@ -2713,7 +2721,9 @@ namespace Lskj.Control
Convert.ToInt32(stepCode) >= Convert.ToInt32(this.SectionAccradit["stepCode"] + "");
string prodouceName = isBack ? AuditComModelObj.ProcedureName + "back" : AuditComModelObj.ProcedureName;
string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, stepCode, billDocumentId, isBack ? string.Format(ResourceKeys.ForcedReturnBill, billDocumentId) + "" : "", prodouceName, "R", "0", hintMsg, "", "", !isBack, -1, 0, true);
// string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, stepCode, billDocumentId, isBack ? string.Format(ResourceKeys.ForcedReturnBill, billDocumentId) + "" : "", prodouceName, "R", "0", hintMsg, "", "", !isBack, -1, 0, true);
string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper,out string msgText, this.SysModel, stepCode, billDocumentId, isBack ? string.Format(ResourceKeys.ForcedReturnBill, billDocumentId) + "" : "", prodouceName, "R", "0", hintMsg, "", "", !isBack, -1, 0, true);
string tag = isBack ? "1" : "0";
if (result == "1")
{
@@ -2743,7 +2753,7 @@ namespace Lskj.Control
}
else
{
MessageUtil.Show(string.Format(ResourceKeys.ForcedFail, result));
MessageUtil.Show(string.Format(ResourceKeys.ForcedFail, msgText));
}
}
}
+17 -9
View File
@@ -949,7 +949,9 @@ namespace Lskj.Control
return;
}
}
string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, stepCode, billDocumentId, isBack ? string.Format(ResourceKeys.ForcedReturnBill, billDocumentId) + "" : "", prodouceName, "R", "0", hintMsg, "", "", !isBack, -1, 0, true);
//string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, stepCode, billDocumentId, isBack ? string.Format(ResourceKeys.ForcedReturnBill, billDocumentId) + "" : "", prodouceName, "R", "0", hintMsg, "", "", !isBack, -1, 0, true);
string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, out string msgText, this.SysModel, stepCode, billDocumentId, isBack ? string.Format(ResourceKeys.ForcedReturnBill, billDocumentId) + "" : "", prodouceName, "R", "0", hintMsg, "", "", !isBack, -1, 0, true);
string tag = isBack ? "1" : "0";
if (result == "1")
{
@@ -988,7 +990,7 @@ namespace Lskj.Control
}
else
{
MessageUtil.Show(string.Format(ResourceKeys.ForcedFail, result));
MessageUtil.Show(string.Format(ResourceKeys.ForcedFail, msgText));
}
}
//if (MessageUtil.Show(string.Format(ResourceKeys.ForcedReturnBill, billDocumentId), MessageBoxButtons.YesNo) == DialogResult.Yes)
@@ -1075,7 +1077,9 @@ namespace Lskj.Control
}
}
}
string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, stepCode, billDocumentId, isBack ? string.Format(ResourceKeys.ForcedReturnBill, billDocumentId) + "" : "", prodouceName, "R", "0", hintMsg, "", "", !isBack, -1, 0, true);
//string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, stepCode, billDocumentId, isBack ? string.Format(ResourceKeys.ForcedReturnBill, billDocumentId) + "" : "", prodouceName, "R", "0", hintMsg, "", "", !isBack, -1, 0, true);
string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, out string msgText, this.SysModel, stepCode, billDocumentId, isBack ? string.Format(ResourceKeys.ForcedReturnBill, billDocumentId) + "" : "", prodouceName, "R", "0", hintMsg, "", "", !isBack, -1, 0, true);
tag = isBack ? "1" : "0";
if (result == "1")
{
@@ -1105,7 +1109,7 @@ namespace Lskj.Control
{
//MessageUtil.Show(string.Format(ResourceKeys.ForcedFail, result));
fault++;
tipMsg += result + "\r\n";
tipMsg += msgText + "\r\n";
}
firstLoad = false;
@@ -1322,7 +1326,9 @@ namespace Lskj.Control
break;
}
}
string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, stepCode, BillDocumentId, "", this.AuditComModelObj.ProcedureName, "F", "", "批量审批同意");
//string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, stepCode, BillDocumentId, "", this.AuditComModelObj.ProcedureName, "F", "", "批量审批同意");
string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, out string msgText, this.SysModel, stepCode, BillDocumentId, "", this.AuditComModelObj.ProcedureName, "F", "", "批量审批同意");
if ("1".Equals(result))
{
#region API
@@ -1339,7 +1345,7 @@ namespace Lskj.Control
else
{
fault++;
tipMsg += result + "\r\n";
tipMsg += msgText + "\r\n";
}
}
else
@@ -1471,8 +1477,10 @@ namespace Lskj.Control
break;
}
}
string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper,
this.SysModel, stepCode, billDocumentId, "", this.AuditComModelObj.ProcedureName, "R", "", _auditAdvice, remindOpers, confirmOpers, true, ret);
// string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper,
//this.SysModel, stepCode, billDocumentId, "", this.AuditComModelObj.ProcedureName, "R", "", _auditAdvice, remindOpers, confirmOpers, true, ret);
string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, out string msgText,
this.SysModel, stepCode, billDocumentId, "", this.AuditComModelObj.ProcedureName, "R", "", _auditAdvice, remindOpers, confirmOpers, true, ret);
string tag = isBack ? "1" : "0";
if (result == "1")
{
@@ -1500,7 +1508,7 @@ namespace Lskj.Control
else
{
fault++;
tipMsg += result + "\r\n";
tipMsg += msgText + "\r\n";
}
firstLoad = false;
}
+6 -9
View File
@@ -133,7 +133,7 @@ namespace Lskj.Control
hasBoolean = true;
}
GridColumnModel model = col.Tag as GridColumnModel;
if (model != null && (model.FieldType == ControlType.LabMultiSelectValue || model.FieldType == ControlType.LabMultiSelectValueNew || model.FieldType == ControlType.LabTreeLookValue || model.FieldType == ControlType.LabMultiSelectValueParam || model.FieldType == ControlType.LabSelectReturnId|| (model.FieldType == ControlType.LabSelectReturnIdNew && model.ModuleFrameDisplayText)))
if (model != null && (model.FieldType == ControlType.LabMultiSelectValue || model.FieldType == ControlType.LabMultiSelectValueNew || model.FieldType == ControlType.LabTreeLookValue || model.FieldType == ControlType.LabMultiSelectValueParam || model.FieldType == ControlType.LabSelectReturnId || (model.FieldType == ControlType.LabSelectReturnIdNew && model.ModuleFrameDisplayText)))
{
StoreValueList.Add(col.FieldName);
hasBoolean = true;
@@ -455,7 +455,7 @@ namespace Lskj.Control
}
GridColumnModel model = col.Tag as GridColumnModel;
if (model != null && (model.FieldType == ControlType.LabMultiSelectValue || model.FieldType == ControlType.LabMultiSelectValueNew || model.FieldType == ControlType.LabTreeLookValue || model.FieldType == ControlType.LabMultiSelectValueParam || model.FieldType == ControlType.LabSelectReturnId|| (model.FieldType == ControlType.LabSelectReturnIdNew && model.ModuleFrameDisplayText)))
if (model != null && (model.FieldType == ControlType.LabMultiSelectValue || model.FieldType == ControlType.LabMultiSelectValueNew || model.FieldType == ControlType.LabTreeLookValue || model.FieldType == ControlType.LabMultiSelectValueParam || model.FieldType == ControlType.LabSelectReturnId || (model.FieldType == ControlType.LabSelectReturnIdNew && model.ModuleFrameDisplayText)))
{
StoreValueList.Add(col.FieldName);
hasBoolean = true;
@@ -620,10 +620,10 @@ namespace Lskj.Control
if (gridColumn.Tag is GridColumnModel)
{
GridColumnModel model = gridColumn.Tag as GridColumnModel;
if ((model.FieldType == ControlType.LabMultiSelectValue || model.FieldType == ControlType.LabMultiSelectValueNew ||
model.FieldType == ControlType.LabMultiSelectValueParam) && row[col.ColumnName].ToString().Contains(",") ||
(model.FieldType == ControlType.LabSelectReturnId && !model.IsRadio) ||
(model.FieldType == ControlType.LabSelectReturnId && !model.IsRadio) ||
(model.FieldType == ControlType.LabSelectReturnIdNew && !model.IsRadio && model.ModuleFrameDisplayText))
{
string[] cellText = row[col.ColumnName].ToString().Split(',');
@@ -750,7 +750,6 @@ namespace Lskj.Control
{
for (int i = 1; i < this.gridView1.Columns.Count; i++)
{
string columnName = this.gridView1.Columns[i].FieldName;
GridSummaryItem gsi = gridView.Columns[columnName].SummaryItem;
if (gsi.SummaryType != DevExpress.Data.SummaryItemType.None) //gsi.SummaryValue!=null&& !string.IsNullOrEmpty(gsi.SummaryValue.ToString())
@@ -769,8 +768,6 @@ namespace Lskj.Control
}
}
}
}
}
@@ -975,10 +972,10 @@ namespace Lskj.Control
}
}
else if (model.FieldType == ControlType.LabSelectReturnId|| (model.FieldType == ControlType.LabSelectReturnIdNew&& model.ModuleFrameDisplayText))
else if (model.FieldType == ControlType.LabSelectReturnId || (model.FieldType == ControlType.LabSelectReturnIdNew && model.ModuleFrameDisplayText))
{
string sqlValue = model.SqlSource;
if ((model.IsRadio && !string.IsNullOrWhiteSpace(model.addModuleld))|| model.FieldType == ControlType.LabSelectReturnIdNew)
if ((model.IsRadio && !string.IsNullOrWhiteSpace(model.addModuleld)) || model.FieldType == ControlType.LabSelectReturnIdNew)
{
//单选模式数据源为模块sql 新版模块选中返回id固定位模块sql
DataRow modelRow = Business.Impl.MainImpl.GetSystemdllTab(model.addModuleld);
+4 -1
View File
@@ -116,4 +116,7 @@ namespace Lskj.Control
}
if (hasEn || eqParams[0].ToLower() == "username" || eqParams[0].ToLower() == "password")
{
pms.Add(eqParams[0],
pms.Add(eqParams[0], eqParams[1]);
}
else
+237 -15
View File
@@ -480,23 +480,19 @@ namespace Lskj.Control
}
#region LabPicUrl控件实现事件
//this.gridView.CustomUnboundColumnData += OnGridViewCustomUnboundColumnData;
//this.gridView.DoubleClick += OnShowImageDoubleClick;
//this.gridView.DoubleClick += OnShowImageDoubleClick;
LabPicUrlPreview.Attach(this.gridView); // 必须
LabPicUrlPreview.AttachPreview(this.gridView); // 新增(双击预览)
#endregion
if (SystemInfo.Instance.GroupSpecialMode) this.gridView.EndGrouping += GridView_EndGrouping;
//this.gridView.ShowingEditor += GridView_ShowingEditor;
this.gridView.ShowingEditor += GridView_ShowingEditor;
this.gridView.MouseDown += GridView_MouseDown;
}
@@ -1306,7 +1302,8 @@ namespace Lskj.Control
rightMentTab = BaseModuleImpl.GetBaseGridRightMenus(this.Model.ModuleCode);
}
}
if (this.Model != null && BaseModuleImpl.IsGridViewRightMenuBtnEdit(rightMentTab))
//左侧如果配置表格,也和出现和主表一样的操作列。先限制为左侧固定不加载(要加载的话要获取左侧的fieldKey)
if (this.Model != null && BaseModuleImpl.IsGridViewRightMenuBtnEdit(rightMentTab)&&!customColumKey.Contains("BaseLeftGridView_"))
{
this.InitRightMenuBtnEdit();
}
@@ -1707,7 +1704,8 @@ namespace Lskj.Control
rightMentTab = BaseModuleImpl.GetBaseGridRightMenus(this.Model.ModuleCode);
}
}
if (this.Model != null && BaseModuleImpl.IsGridViewRightMenuBtnEdit(rightMentTab))
//左侧如果配置表格,也和出现和主表一样的操作列。先限制为左侧固定不加载(要加载的话要获取左侧的fieldKey)
if (this.Model != null && BaseModuleImpl.IsGridViewRightMenuBtnEdit(rightMentTab) && !customColumKey.Contains("BaseLeftGridView_"))
{
this.InitRightMenuBtnEdit();
}
@@ -4759,8 +4757,15 @@ namespace Lskj.Control
editorButton.Kind = ButtonPredefines.Glyph;
editorButton.Width = this.CalculateTextWidth(editorButton.Caption, editorButton.Appearance.Font);
editorButton.Tag = menuModel;
ItemButtonEdit.Buttons.Add(editorButton);
editorButton.Appearance.BackColor = Color.FromArgb(240, 240, 240); // 浅灰背景
editorButton.Appearance.BorderColor = Color.FromArgb(180, 180, 180); // 边框色
editorButton.Appearance.ForeColor = Color.FromArgb(50, 50, 50); // 文本色
editorButton.Appearance.Options.UseBackColor = true;
editorButton.Appearance.Options.UseBorderColor = true;
editorButton.Appearance.Options.UseForeColor = true;
ItemButtonEdit.Buttons.Add(editorButton);
ColumnWidth += editorButton.Width;
}
}
@@ -4774,6 +4779,8 @@ namespace Lskj.Control
gridColumn.MinWidth = ColumnWidth;
gridColumn.Width = ColumnWidth;
}
private void OnHighBeater(object sender, ButtonPressedEventArgs e)
{
FrmHighBeater highBeater = new FrmHighBeater();
@@ -9537,17 +9544,232 @@ namespace Lskj.Control
private void GridView_ShowingEditor(object sender, CancelEventArgs e)
{
GridColumn gridColumn = gridView.FocusedColumn;
if (gridColumn != null && gridColumn.Tag != null)
if (gridColumn != null && gridColumn.Tag != null&& gridColumn.Tag is GridColumnModel)
{
GridColumnModel model = (GridColumnModel)gridColumn.Tag;
if ((model.FieldType == ControlType.LabTextInt || model.FieldType == ControlType.LabCalcText || model.FieldType == ControlType.LabAccount)&& gridColumn.RealColumnEdit!=null)
if (model.FormatEditBox && (model.FieldType == ControlType.LabTextInt || model.FieldType == ControlType.LabCalcText || model.FieldType == ControlType.LabAccount)&& gridColumn.RealColumnEdit!=null&& !gridColumn.RealColumnEdit.EditFormat.FormatString.Equals(model.DataFormat))
{
gridColumn.RealColumnEdit.EditFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
gridColumn.RealColumnEdit.EditFormat.FormatString = model.DataFormat;
//编辑框输入的小数位数根据和格式一致
//if (gridColumn.RealColumnEdit is RepositoryItemTextEdit textEditItem)
//{
// // 从格式字符串中提取小数位数
// int decimalPlaces = 0;
// if (model.DataFormat.Contains("."))
// {
// string decimalPart = model.DataFormat.Split('.')[1];
// decimalPlaces = decimalPart.Length;
// }
// // 设置输入掩码(例如n4表示4位小数)
// if (decimalPlaces > 0)
// {
// textEditItem.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric;
// textEditItem.Mask.EditMask = $"n{decimalPlaces}";
// textEditItem.Mask.UseMaskAsDisplayFormat = true;
// }
//}
}
}
}
/// 计
/// 计算EditorButton文本所需的精确宽度
/// </summary>
/// <param name="caption">按钮文本</param>
/// <param name="font">按钮字体</param>
/// <param name="padding">额外边距(像素)</param>
/// <returns>推荐的按钮宽度</returns>
public int CalculateTextWidth(string caption, Font font, int padding = 15)
{
if (string.IsNullOrEmpty(caption))
return 40; // 空文本默认宽度
using (Bitmap tempBitmap = new Bitmap(1, 1))
using (Graphics g = Graphics.FromImage(tempBitmap))
{
// 测量文本尺寸
SizeF textSize = g.MeasureString(caption, font);
// 计算总宽度 = 文本宽度 + 左右边距
int width = (int)textSize.Width + padding;
// 确保宽度不小于最小值
return Math.Max(width, 40); // 最小宽度40像素
}
}
#region
/// <summary>
/// 表格点击事件(处理表格禁编状态时的右键列点击逻辑)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void GridView_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button != MouseButtons.Left) return;
GridView view = sender as GridView;
if (view.OptionsBehavior.Editable) return;
GridHitInfo hitInfo = view.CalcHitInfo(e.Location);
if (hitInfo.InRowCell && hitInfo.Column.ColumnEdit is RepositoryItemButtonEdit)
{
RepositoryItemButtonEdit repo = hitInfo.Column.ColumnEdit as RepositoryItemButtonEdit;
if (!hitInfo.Column.FieldName.Equals("RightMenuBtnEdit")) return;
int rowHandle = hitInfo.RowHandle;
this.gridView.SelectRowHandler(rowHandle);
int buttonIndex = this.GetClickedButtonIndex(repo, view, rowHandle, hitInfo.Column, e.Location, hitInfo.Column.Width);
if (buttonIndex != -1)
{
// 成功获取按钮索引,触发原有逻辑
EditorButton clickedButton = repo.Buttons[buttonIndex];
if (clickedButton == null) return;
this.RightButtonClick(clickedButton);
}
}
}
/// <summary>
/// 执行点击的右键按钮
/// </summary>
/// <param name="editorButton"></param>
private void RightButtonClick(EditorButton editorButton)
{
GridRightMenuModel menuModel = editorButton.Tag as GridRightMenuModel;
ToolStripMenuItem toolStripMenuItem = this.gridViewRightMenu.RightMenuBtnEdits.ContainsKey(menuModel.Id) ? this.gridViewRightMenu.RightMenuBtnEdits[menuModel.Id] : null;
if (toolStripMenuItem != null)
{
bool allowClick = true;
int[] mSelectRows = this.gridView.GetSelectedRows();
DataRow mSelectRow = this.gridView.GetDataRow(mSelectRows[0]);
if (menuModel != null)
{
if (menuModel.PrivilegeOper.Length > 1 && !menuModel.PrivilegeOper.Contains(ERPInfo.Instance.UserName + ","))
{
allowClick = false;
}
else
{
if (!string.IsNullOrWhiteSpace(menuModel.MenuCond))
{
try
{
string cond = string.Empty;
if (this.gridViewRightMenu.ControlObj != null)
cond = this.gridViewRightMenu.ControlObj.ReplaceParentControlValue(menuModel.MenuCond);
cond = ReplaceHelper.ReplaceRowParam(mSelectRow, menuModel.MenuCond);
if (this.gridView != null)
{
GridCell[] cells = this.gridView.GetSelectedCells();
if (cells != null && cells.Length > 0 && cond.Contains("{COLUMN_"))
{
GridCell cell = cells[0];
DataRow focusedRow = this.gridView.GetFocusedDataRow();
string colValue = focusedRow == null || !focusedRow.Table.Columns.Contains(cell.Column.Name) ? "" : focusedRow[cell.Column.Name] + "";
cond = cond.ReplaceColumnParam(cell.Column.Name, cell.Column.Caption, colValue);
}
}
if (this.gridViewRightMenu.ControlObj != null)
cond = this.gridViewRightMenu.ControlObj.ReplaceParentControlValue(cond);
allowClick = ReplaceHelper.EvalCond(cond);
}
catch (Exception ex)
{
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(ResourceKeys.SetRightMenuCondFault + "\r\n" + Message);
}
}
}
}
if (allowClick) toolStripMenuItem.PerformClick();
}
}
/// <summary>
/// 计算点击是单元格中的第几个按钮
/// </summary>
/// <param name="repo"></param>
/// <param name="view"></param>
/// <param name="rowHandle">点击行</param>
/// <param name="column">点击列</param>
/// <param name="clickPoint">点击位置</param>
/// <param name="ColumnWidth">单元格宽度</param>
/// <param name="buttonSpacing"></param>
/// <returns></returns>
public int GetClickedButtonIndex(RepositoryItemButtonEdit repo, GridView view, int rowHandle, GridColumn column, Point clickPoint, int ColumnWidth, int buttonSpacing = 2)
{
// 1. 获取单元格在网格控件中的绝对区域(关键修正)
Rectangle cellRect = GetCellAbsoluteRect(view, rowHandle, column);
if (cellRect.IsEmpty)
return -1;
// 2. 验证点击是否在单元格范围内(首要检查)
if (!cellRect.Contains(clickPoint))
return -1;
// 3. 计算单元格内的相对坐标(修正坐标转换)
Point relativePoint = new Point(
clickPoint.X - cellRect.Left,
clickPoint.Y - cellRect.Top
);
// 4. 计算按钮布局(针对固定宽度)
//int buttonWidth = repo.Buttons[0].Width; // 固定宽度
int buttonWidth = ColumnWidth / repo.Buttons.Count;
int totalButtonsWidth = repo.Buttons.Count * buttonWidth +
(repo.Buttons.Count - 1) * buttonSpacing;
// 5. 确定按钮排列方式(默认靠右对齐,可根据IsLeft调整)
int startX = GetButtonStartX(cellRect.Width, totalButtonsWidth, repo.Buttons[0].IsLeft);
// 6. 精确匹配按钮区域(核心修正)
for (int i = 0; i < repo.Buttons.Count; i++)
{
// 计算当前按钮的区域(相对单元格)
Rectangle buttonRect = new Rectangle(
startX + i * (buttonWidth + buttonSpacing),
0,
buttonWidth,
cellRect.Height
);
// 扩大1-2像素检测范围,解决边界点击问题
Rectangle expandedRect = Rectangle.Inflate(buttonRect, 1, 1);
if (expandedRect.Contains(relativePoint))
{
return i; // 返回正确索引
}
}
return -1;
}
// 获取单元格在网格控件中的绝对坐标区域
private Rectangle GetCellAbsoluteRect(GridView view, int rowHandle, GridColumn column)
{
try
{
GridViewInfo viewInfo = view.GetViewInfo() as GridViewInfo;
if (viewInfo == null)
return Rectangle.Empty;
GridDataRowInfo rowInfo = (GridDataRowInfo)viewInfo.RowsInfo.FindRow(rowHandle);
if (rowInfo == null)
return Rectangle.Empty;
GridCellInfo cellInfo = rowInfo.Cells[column];
if (cellInfo == null)
return Rectangle.Empty;
// 转换为网格控件内的坐标(关键修正)
+1 -1
View File
@@ -112,7 +112,7 @@ namespace Lskj.Control.Model
/// Gets or sets the field text.
/// </summary>
/// <value>The field text.</value>
public string Text { get; set; }
public string Text = string.Empty;
/// <summary>
/// Gets or sets the default value.
/// </summary>
@@ -371,6 +371,12 @@ namespace Lskj.Control.Model
/// 新版模块返回框类型,显示对应text值(默认只显示数据库中对应内容)
/// </summary>
public bool ModuleFrameDisplayText;
/// <summary>
/// 编辑框格式化(和显示格式一致)
/// </summary>
public bool FormatEditBox;
#endregion
/// <summary>
@@ -463,4 +469,5 @@ namespace Lskj.Control.Model
this.IsCustomGroupField = item.Table.Columns.Contains("IsCustomGroupField")&&int.TryParse(item["IsCustomGroupField"] + "",out IsCustomGroupField) ? IsCustomGroupField : 0;
this.ImportConversionFormat = item.Table.Columns.Contains("ImportConversionFormat") ? item["ImportConversionFormat"]+"" : string.Empty;
this.PrivilegeView = item.Table.Columns.Contains("PrivilegeView") ? item["PrivilegeView"] + "" : string.Empty;
this.PrivilegeOper = item.Table.Columns
this.PrivilegeOper = item.Table.Columns.Contains("PrivilegeOper") ? item["PrivilegeOper"] + "" : string.Empty;
this.AdditionalAssociations = item.Table.Col
@@ -753,6 +753,10 @@ namespace Lskj.Control.Model
catch (Exception)
{
result = 0;
if (result==0 && ERPInfo.Instance.UserName.Equals("管理员"))
{
SqlStoredProcedurepPrompt.GenerateProcedureExecutionScript(procName, paramList, isFirstFlag, comfirmFlag );
}
}
finally
{
@@ -769,6 +773,10 @@ namespace Lskj.Control.Model
switch (rValue)
{
case -1:
if (rValue == -1 && ERPInfo.Instance.UserName.Equals("管理员"))
{
SqlStoredProcedurepPrompt.GenerateProcedureExecutionScript(procName, paramList, isFirstFlag, comfirmFlag);
}
MessageUtil.Show(string.IsNullOrEmpty(model.ErrorMsg) ? ResourceKeys.OperFault + "\n" + pMsg.Value : model.ErrorMsg);
reaultValue = false;
break;
+1 -1
View File
@@ -5199,7 +5199,7 @@ namespace Lskj.Control.Model
{
ControlModel[] controls = this._models.Where(x => x.DisableCond.Contains("{" + model.FieldName + "}")).ToArray();
ControlModel[] requiredcontrols = this._models.Where(x => x.RequiredCond.Contains("{" + model.FieldName + "}")).ToArray();
if (controls == null || controls.Length == 0) return;
if ((controls == null || controls.Length == 0)&&(requiredcontrols == null || requiredcontrols.Length == 0)) return;
string fieldValue = GetControlValue(model);
foreach (ControlModel item in requiredcontrols)
+52 -65
View File
@@ -354,17 +354,27 @@ namespace Lskj.Control
}
else
{
//树结构默认为节点改变事件
if (this.ModuleGridObj.GridControlObj is TreeGridControlEx)
{
(this.ModuleGridObj.GridControlObj as TreeGridControlEx).TreeListObj.FocusedNodeChanged += OnFocusedNodeChanged;
}
if (this.ModuleGridObj.GridControlObj is TreeBandedGridControlEx)
{
(this.ModuleGridObj.GridControlObj as TreeBandedGridControlEx).TreeListObj.FocusedNodeChanged += OnFocusedNodeChanged;
}
if (this.ModuleGridObj.GridControlObj.CustomGroupBandEx != null)
{
this.ModuleGridObj.GridControlObj.CustomGroupBandEx.GridView.DoubleClick += new EventHandler(OnGridViewDoubleClick);
}
if (this.ModuleGridObj.GridControlObj.CustomGroupTreeBandEx != null)
{
this.ModuleGridObj.GridControlObj.CustomGroupTreeBandEx.TreeListObj.FocusedNodeChanged += OnFocusedNodeChanged;
}
// 非拖拽模式
if (Model.IsBaseModule)
{
if (this.ModuleGridObj.GridControlObj is TreeGridControlEx)
{
(this.ModuleGridObj.GridControlObj as TreeGridControlEx).TreeListObj.FocusedNodeChanged += OnFocusedNodeChanged;
}
if (this.ModuleGridObj.GridControlObj is TreeBandedGridControlEx)
{
(this.ModuleGridObj.GridControlObj as TreeBandedGridControlEx).TreeListObj.FocusedNodeChanged += OnFocusedNodeChanged;
}
if (this.SysModel.DoubleClickDetail)
{
//双击刷新的话,和行改变事件冲突。
@@ -381,12 +391,6 @@ namespace Lskj.Control
}
else
{
if (this.ModuleGridObj.GridControlObj.CustomGroupBandEx != null)
{
this.ModuleGridObj.GridControlObj.CustomGroupBandEx.GridView.DoubleClick += new EventHandler(OnGridViewDoubleClick);
//this.ModuleGridObj.GridControlObj.CustomGroupBandEx.GridView.MouseDown += new MouseEventHandler(GridView_MouseDown);
//this.ModuleGridObj.GridControlObj.CustomGroupBandEx.GridView.FocusedRowObjectChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventHandler(OnGridViewFocusedRowObjectChanged);
}
this.ModuleGridObj.GridControlObj.GridView.FocusedRowObjectChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventHandler(OnGridViewFocusedRowObjectChanged);
//this.ModuleGridObj.GridControlObj.GridView.RowCellClick += new RowCellClickEventHandler(GridView_RowCellClick);
this.ModuleGridObj.GridControlObj.GridView.MouseDown += new MouseEventHandler(GridView_MouseDown);
@@ -400,14 +404,7 @@ namespace Lskj.Control
}
else
{
if (this.ModuleGridObj.GridControlObj is TreeGridControlEx)
{
(this.ModuleGridObj.GridControlObj as TreeGridControlEx).TreeListObj.FocusedNodeChanged += OnFocusedNodeChanged;
}
if (this.ModuleGridObj.GridControlObj is TreeBandedGridControlEx)
{
(this.ModuleGridObj.GridControlObj as TreeBandedGridControlEx).TreeListObj.FocusedNodeChanged += OnFocusedNodeChanged;
}
if (SystemInfo.Instance.ReportMainTabClickRefresh)
{
if (this.SysModel.DoubleClickDetail)
@@ -453,10 +450,11 @@ namespace Lskj.Control
else
{
DataRow rowItem = this.ModuleGridObj.GridControlObj.GetViewFocusedDataRow();
if (this.ModuleGridObj.GridControlObj.CustomGroupBandEx != null)
if (this.ModuleGridObj.GridControlObj.CustomGroupSelectedRow != null)
{
rowItem = this.ModuleGridObj.GridControlObj.CustomGroupBandEx.GetViewFocusedDataRow();
rowItem = this.ModuleGridObj.GridControlObj.CustomGroupSelectedRow;
}
if (RefreshDetail)
{
XtraTabPage RefreshPage = this.TabObj.SelectedTabPage;
@@ -663,9 +661,9 @@ namespace Lskj.Control
}
DataRow rowItem = this.ModuleGridObj.GridControlObj.GetViewFocusedDataRow();
if (this.ModuleGridObj.GridControlObj.CustomGroupBandEx != null)
if (this.ModuleGridObj.GridControlObj.CustomGroupSelectedRow != null)
{
rowItem = this.ModuleGridObj.GridControlObj.CustomGroupBandEx.GetViewFocusedDataRow();
rowItem = this.ModuleGridObj.GridControlObj.CustomGroupSelectedRow;
}
if (!string.IsNullOrEmpty(SysModel.PageVisbleCond))
{
@@ -894,9 +892,9 @@ namespace Lskj.Control
/* ② 如果启用了多表头(CustomGroupBandEx)
* 尝试用 BandedGridColumn.OwnerBand 获取 Band 标题 */
var bandEx = this.ModuleGridObj.GridControlObj.CustomGroupBandEx;
if (bandEx != null)
if (this.ModuleGridObj.GridControlObj.CustomGroupBandEx != null)
{
var bandEx = this.ModuleGridObj.GridControlObj.CustomGroupBandEx;
var bandedView = bandEx.GridView as DevExpress.XtraGrid.Views.BandedGrid.BandedGridView;
GridColumn focusedColumn = null;
//DevExpress.XtraGrid.Views.Grid.ViewInfo.GridHitInfo hitInfo = bandedView.CalcHitInfo(MousePosition.X, MousePosition.Y);
@@ -914,7 +912,32 @@ namespace Lskj.Control
columnCaption = band.Caption; // 用 Band 的标题
}
}
}
else if (this.ModuleGridObj.GridControlObj.CustomGroupTreeBandEx != null)
{
var treeBandEx = this.ModuleGridObj.GridControlObj.CustomGroupTreeBandEx;
var treeBandedView = treeBandEx.TreeListObj as DevExpress.XtraTreeList.TreeList;
DevExpress.XtraTreeList.Columns.TreeListColumn focusedColumn = null;
//DevExpress.XtraGrid.Views.Grid.ViewInfo.GridHitInfo hitInfo = bandedView.CalcHitInfo(MousePosition.X, MousePosition.Y);
focusedColumn = treeBandedView.FocusedColumn;
if (treeBandedView != null && focusedColumn != null)
{
// 强转;成功才说明列属于 BandedGridView
var bcol = focusedColumn as DevExpress.XtraTreeList.Columns.TreeListColumn;
if (bcol != null && bcol.ParentBand != null)
{
// 若只想最顶层 Band,循环 ParentBand 至 null
var band = bcol.ParentBand;
while (band.ParentBand != null) band = band.ParentBand;
columnCaption = band.Caption; // 用 Band 的标题
}
}
}
// ③ 替换占位符(Replace 会返回新字符串)
sqlValue = sqlValue.Replace("{COLUMN_TITLE}", columnCaption);
@@ -1330,40 +1353,4 @@ namespace Lskj.Control
}
}
}
/// <summary>
/// 判断是否有未保存的数据,并保存
/// </summary>
/// <returns></returns>
public bool VerificationInterface()
{
if (SystemInfo.Instance.EfficientVerification)
{
//页签验证
if (!this.TcButtom.CheckIfSaved())
{
return false;
}
//主表验证
if (this.ModuleGridObj.GridControlObj.IsDataNotSaved())
{
DialogResult dialog = MessageUtil.Show("主表有数据未保存,是否保存", MessageBoxButtons.YesNo);
if (dialog == DialogResult.Yes)
{
bool SaveResults = this.ModuleGridObj.SaveWhenSwitching();
if (!SaveResults) return false;
}
}
}
return true;
}
}
}