diff --git a/插件库/Lskj.Control/FrmWebBrowser.cs b/插件库/Lskj.Control/FrmWebBrowser.cs
index 01697fa..9252f95 100644
--- a/插件库/Lskj.Control/FrmWebBrowser.cs
+++ b/插件库/Lskj.Control/FrmWebBrowser.cs
@@ -145,4 +145,7 @@ namespace Lskj.Control
// .Replace("//", "/");
//qpLS.Add(string.Format("{0}={1}", eqParams[0], val));
-
\ No newline at end of file
+ qpLS.Add(string.Format("{0}={1}", eqParams[0], HttpUtility.UrlEncode(HttpUtility.UrlDecode(string.Join("=", eqParams.Skip(1)))).Replace("%5c", "/").Replace("%2f", "/").Replace("//", "/").Replace("+", "%20")));
+ }
+ }
+
\ No newline at end of file
diff --git a/插件库/Lskj.Control/FrmWebBrowser2.cs b/插件库/Lskj.Control/FrmWebBrowser2.cs
index 058ccdf..f700f46 100644
--- a/插件库/Lskj.Control/FrmWebBrowser2.cs
+++ b/插件库/Lskj.Control/FrmWebBrowser2.cs
@@ -148,4 +148,11 @@ namespace Lskj.Control
}
}
else
-
\ No newline at end of file
+ {
+ }
+ }
+ if (pms.Count > 0)
+ {
+ DateTime dateTime = DateTime.Now.AddDays(1);
+ DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
+
\ No newline at end of file
diff --git a/插件库/Lskj.Control/GridControlEx.cs b/插件库/Lskj.Control/GridControlEx.cs
index 947b036..91b4944 100644
--- a/插件库/Lskj.Control/GridControlEx.cs
+++ b/插件库/Lskj.Control/GridControlEx.cs
@@ -476,7 +476,7 @@ namespace Lskj.Control
///
/// The sender.
public event ModuleAddLine OnNewLine;
- public delegate void ModuleAddLine(string name, Listlist);
+ public delegate void ModuleAddLine(string name, List list);
public GridControlEx()
{
@@ -858,7 +858,7 @@ namespace Lskj.Control
{
string currentGroupName = GetMergeGroupValue(model, gridRow);
bool isMergrGroup = !string.IsNullOrEmpty(currentGroupName) && e.RowHandle != 0 ? currentGroupName.Equals(BeforeGroupName) : false;
-
+
if (model.CanMerge && BeforeClass == Convert.ToDecimal(e.FieldValue) && isMergrGroup)
{
BeforeClass = Convert.ToDecimal(e.FieldValue);
@@ -1201,7 +1201,7 @@ namespace Lskj.Control
}
}
-
+
///
/// 说明:设置列格式化
@@ -1380,7 +1380,7 @@ namespace Lskj.Control
{
gridColumn.ToolTip = model.ColumnAnnotation;
}
-
+
}
//创建右键菜单列
@@ -1725,7 +1725,7 @@ namespace Lskj.Control
}
//gridView.OptionsView.AllowCellMerge = gridView.OptionsView.AllowCellMerge;
- if (!string.IsNullOrWhiteSpace(model.TitleColor))
+ if (!string.IsNullOrWhiteSpace(model.TitleColor))
{
gridColumn.AppearanceHeader.Options.UseForeColor = true;
gridColumn.AppearanceHeader.ForeColor = ColorTranslator.FromHtml(model.TitleColor);
@@ -4355,7 +4355,14 @@ namespace Lskj.Control
gridControl.RepositoryItems.Add(searchEdit);
gridColumn.ColumnEdit = searchEdit;
searchEdit.View.Tag = searchEdit;
- if (model.SearchBoxAddition) searchEdit.ProcessNewValue += SearchEdit_ProcessNewValue;
+
+ if (model.SearchBoxAddition && (ControlType.LabAutoCompleteText == model.FieldType || ControlType.LabAutoCompleteTextParam == model.FieldType ||
+ ControlType.LabAutoGridText == model.FieldType || ControlType.LabAutoGridTextParam == model.FieldType))
+ {
+ searchEdit.ProcessNewValue += SearchEdit_ProcessNewValue;
+ searchEdit.CustomDisplayText += SearchEdit_CustomDisplayText;
+
+ }
searchEdit.EditValueChanging += gridLookUpEdit1_EditValueChanging;
//if ((ControlType.LabAutoCompleteText == model.FieldType || ControlType.LabAutoGridText == model.FieldType || ControlType.LabAutoGridTextParam == model.FieldType))
@@ -4372,7 +4379,8 @@ namespace Lskj.Control
}
///
- /// 添加一个值到数据源中
+ /// 搜索框允许新增时,将用户输入的文本临时加入下拉数据源。
+ /// 这里只处理“显示文本、保存文本”的控件类型,避免给保存ID的控件自动生成不存在的ID。
///
///
///
@@ -4380,82 +4388,63 @@ namespace Lskj.Control
{
try
{
+
GridLookUpEdit edit = sender as GridLookUpEdit;
+ if (edit == null) return;
GridColumnModel model = edit.Properties.Tag as GridColumnModel;
- //RepositoryItemGridLookUpEdit searchEdit = edit.Properties;
- RepositoryItemGridLookUpEdit searchEdit = GridView.Columns[model.FieldName].ColumnEdit as RepositoryItemGridLookUpEdit;
- DataTable dt = (searchEdit.DataSource as DataTable);
+ if (model == null || !model.SearchBoxAddition) return;
+ if (!(ControlType.LabAutoCompleteText == model.FieldType || ControlType.LabAutoCompleteTextParam == model.FieldType ||
+ ControlType.LabAutoGridText == model.FieldType || ControlType.LabAutoGridTextParam == model.FieldType)) return;
+ string displayValue = e.DisplayValue + "";
+ if (string.IsNullOrWhiteSpace(displayValue)) return;
BeginInvoke(new MethodInvoker(delegate ()
{
- FilterLookup(sender, e.DisplayValue + "");
+ FilterLookup(sender, displayValue);
}));
- if (true)
+ RepositoryItemGridLookUpEdit searchEdit = GridView.Columns[model.FieldName].ColumnEdit as RepositoryItemGridLookUpEdit;
+ if (searchEdit == null) return;
+
+ DataTable dt = searchEdit.DataSource as DataTable;
+ if (dt == null) return;
+
+ string valueName = searchEdit.ValueMember;
+ string textName = !string.IsNullOrWhiteSpace(searchEdit.DisplayMember) ? searchEdit.DisplayMember : model.TextMember;
+ if (string.IsNullOrWhiteSpace(valueName) || !dt.Columns.Contains(valueName)) return;
+
+ Type dataType = dt.Columns[valueName].DataType;
+ if (dataType != typeof(string)) return;
+
+ bool exists = dt.Rows.Cast().Any(x =>
+ (x[valueName] + "").Equals(displayValue) ||
+ (!string.IsNullOrWhiteSpace(textName) && dt.Columns.Contains(textName) && (x[textName] + "").Equals(displayValue)));
+ if (exists) return;
+
+ DataRow newRow = dt.NewRow();
+ newRow[valueName] = displayValue;
+ if (!string.IsNullOrWhiteSpace(textName) && dt.Columns.Contains(textName))
{
- if (string.IsNullOrWhiteSpace(e.DisplayValue + "")) return;
- string ValueName = searchEdit.View.Columns[0].FieldName;
- string TextName = searchEdit.View.Columns[1].FieldName;
- Type dataType = dt.Columns[ValueName].DataType;
- DataRow newRow = dt.NewRow();
- if (dataType.Name == "Int32")
+ newRow[textName] = displayValue;
+ }
+
+ if (model.FieldType == ControlType.LabAutoGridTextParam || model.FieldType == ControlType.LabAutoCompleteTextParam)
+ {
+ if (this.ManuallyAddData.ContainsKey(model.FieldName))
{
- int maxdm = Convert.ToInt32(searchEdit.View.Columns[ValueName].Tag);
- edit.Properties.View.ActiveFilterString = string.Format(ValueName + "< {0}", maxdm);
-
- int maxdmIndex = dt.AsEnumerable().Select(t => t.Field(ValueName)).Max();
- newRow[ValueName] = maxdmIndex + 1;
- newRow[TextName] = e.DisplayValue + "";
- if (dt.Rows.Cast().FirstOrDefault(x => (x[ValueName] + "").Equals(e.DisplayValue + "")) == null)
- {
- if (model.FieldType == ControlType.LabAutoGridValueParam || model.FieldType == ControlType.LabAutoGridTextParam || model.FieldType == ControlType.LabAutoCompleteTextParam || model.FieldType == ControlType.LabAutoCompleteValueParam)
- {
- if (this.ManuallyAddData.ContainsKey(model.FieldName))
- {
- List DataRows = this.ManuallyAddData[model.FieldName];
- DataRows.Add(newRow);
- }
- else
- {
- List DataRows = new List();
- DataRows.Add(newRow);
- this.ManuallyAddData.Add(model.FieldName, DataRows);
- }
-
- }
- dt.Rows.Add(newRow.ItemArray);
- e.Handled = true;
- }
+ this.ManuallyAddData[model.FieldName].Add(newRow);
}
- else if (dataType.Name == "String")
+ else
{
- newRow[ValueName] = e.DisplayValue + "";
- newRow[TextName] = e.DisplayValue + "";
- if (dt.Rows.Cast().FirstOrDefault(x => (x[TextName] + "").Equals(e.DisplayValue + "")) == null)
- {
- if (model.FieldType == ControlType.LabAutoGridValueParam || model.FieldType == ControlType.LabAutoGridTextParam || model.FieldType == ControlType.LabAutoCompleteTextParam || model.FieldType == ControlType.LabAutoCompleteValueParam)
- {
- if (this.ManuallyAddData.ContainsKey(model.FieldName))
- {
- List DataRows = this.ManuallyAddData[model.FieldName];
- DataRows.Add(newRow);
- }
- else
- {
- List DataRows = new List();
- DataRows.Add(newRow);
- this.ManuallyAddData.Add(model.FieldName, DataRows);
- }
-
- }
- dt.Rows.Add(newRow.ItemArray);
- e.Handled = true;
- }
+ this.ManuallyAddData.Add(model.FieldName, new List() { newRow });
}
}
+ dt.Rows.Add(newRow.ItemArray);
+ e.Handled = true;
+
}
catch (Exception ex)
{
@@ -4467,6 +4456,50 @@ namespace Lskj.Control
}
}
+ ///
+ /// 搜索框新增值未持久化到下拉SQL数据源时,直接用单元格保存的文本作为显示值。
+ /// 这样重新打开模块后,即使下拉数据源查不到该文本,界面也不会显示为空白。
+ ///
+ private void SearchEdit_CustomDisplayText(object sender, CustomDisplayTextEventArgs e)
+ {
+ if (e.Value == null) return;
+
+ RepositoryItemGridLookUpEdit edit = sender as RepositoryItemGridLookUpEdit;
+ if (edit == null) return;
+
+ GridColumnModel model = edit.Tag as GridColumnModel;
+ if (model == null || !model.SearchBoxAddition) return;
+
+ if (!(model.FieldType == ControlType.LabAutoCompleteText ||
+ model.FieldType == ControlType.LabAutoCompleteTextParam ||
+ model.FieldType == ControlType.LabAutoGridText ||
+ model.FieldType == ControlType.LabAutoGridTextParam)) return;
+
+ string value = e.Value + "";
+ if (string.IsNullOrWhiteSpace(value)) return;
+
+ DataTable dt = edit.DataSource as DataTable;
+ string valueName = edit.ValueMember;
+ string textName = !string.IsNullOrWhiteSpace(edit.DisplayMember) ? edit.DisplayMember : model.TextMember;
+ if (dt == null ||
+ (string.IsNullOrWhiteSpace(valueName) || !dt.Columns.Contains(valueName)) &&
+ (string.IsNullOrWhiteSpace(textName) || !dt.Columns.Contains(textName)))
+ {
+ e.DisplayText = value;
+ return;
+ }
+
+ bool exists = dt.Rows.Cast().Any(x =>
+ (!string.IsNullOrWhiteSpace(valueName) && dt.Columns.Contains(valueName) && (x[valueName] + "") == value) ||
+ (!string.IsNullOrWhiteSpace(textName) && dt.Columns.Contains(textName) && (x[textName] + "") == value));
+
+ if (!exists)
+ {
+ e.DisplayText = value;
+ }
+ }
+
+
///
/// 数据源中点击将数据源更新
@@ -5484,7 +5517,7 @@ namespace Lskj.Control
public virtual void SetGridRowColors(DataTable table)
{
this.GridRowColorsTable = table;
-
+
if (table != null && table.Rows.Count > 0)
{
DataRow rowItem = table.Select("1=1").FirstOrDefault(x => (x["condition"] + "").Contains("COLUMN_"));
@@ -6500,7 +6533,7 @@ namespace Lskj.Control
///
protected void OnGridViewRowCellStyle(object sender, RowCellStyleEventArgs e)
{
- if (e.RowHandle >= 0 && this.GridRowColorsTable != null && this.GridRowColorsTable.Rows.Count > 0 && (!string.IsNullOrEmpty(e.CellValue + "")|| SystemInfo.Instance.isBlankCellColor))
+ if (e.RowHandle >= 0 && this.GridRowColorsTable != null && this.GridRowColorsTable.Rows.Count > 0 && (!string.IsNullOrEmpty(e.CellValue + "") || SystemInfo.Instance.isBlankCellColor))
{
// 渲染界面数据量过多界面刷新会很慢
//DataTable table = this.gridControl.DataSourceTable();
@@ -6519,7 +6552,7 @@ namespace Lskj.Control
// 判断单元格是否被选中
bool isCellSelected = gridView.IsCellSelected(e.RowHandle, e.Column);
- if (!isCellSelected)
+ if (!isCellSelected)
{
if (!string.IsNullOrWhiteSpace(model.BackColor))
{
@@ -6674,7 +6707,7 @@ namespace Lskj.Control
{
e.Appearance.ForeColor = ColorTranslator.FromHtml(SystemInfo.Instance.SelectRowForeColor);
}
-
+
//// 如果当前单元格被选中 → 画虚线
//if (gridView.IsCellSelected(e.RowHandle, e.Column))
//{
@@ -6756,7 +6789,7 @@ namespace Lskj.Control
string PromptText = string.Empty;
// 判断单元格值是否为 null 或空
- if ((e.CellValue == null || string.IsNullOrEmpty(e.CellValue.ToString()))&&PromptMessage.TryGetValue(e.Column.FieldName, out PromptText))
+ if ((e.CellValue == null || string.IsNullOrEmpty(e.CellValue.ToString())) && PromptMessage.TryGetValue(e.Column.FieldName, out PromptText))
{
// 绘制默认单元格背景
e.DefaultDraw();
@@ -6836,7 +6869,7 @@ namespace Lskj.Control
string[] dataReleColNames = selectColumnModel.AutoPadDataReleColName.TrimEnd(',').Split(',');
if (dataReleColNames.Contains(e.Column.FieldName))
{
- DataRow[] selectRows = dataTable.Select().Where(n => (n[selectColumnModel.FieldName]+"").Equals(value)).ToArray();
+ DataRow[] selectRows = dataTable.Select().Where(n => (n[selectColumnModel.FieldName] + "").Equals(value)).ToArray();
foreach (DataRow selectRow in selectRows)
{
int dataSourceIndex = dataTable.Rows.IndexOf(selectRow);
@@ -6991,7 +7024,7 @@ namespace Lskj.Control
this.SelectedRows = this.gridView.GetSelectedRows();
if (gridView.OptionsSelection.MultiSelect == true && gridView.OptionsSelection.MultiSelectMode == GridMultiSelectMode.CheckBoxRowSelect && gridView.OptionsSelection.EnableAppearanceFocusedCell == false) this.gridView.UpdateSummary();
- if (SystemInfo.Instance.DisplayCheckboxSelection &&!string.IsNullOrWhiteSpace(this.MultiplePrimary) && gridView.OptionsSelection.MultiSelect == true && gridView.OptionsSelection.MultiSelectMode == GridMultiSelectMode.CheckBoxRowSelect && gridView.OptionsSelection.EnableAppearanceFocusedCell == false)
+ if (SystemInfo.Instance.DisplayCheckboxSelection && !string.IsNullOrWhiteSpace(this.MultiplePrimary) && gridView.OptionsSelection.MultiSelect == true && gridView.OptionsSelection.MultiSelectMode == GridMultiSelectMode.CheckBoxRowSelect && gridView.OptionsSelection.EnableAppearanceFocusedCell == false)
{
SelectedDataSource.Clear();
DataRow[] dataRows = this.GetViewFocusedDataRows();
@@ -7210,7 +7243,7 @@ namespace Lskj.Control
DataTable table = MainImpl.GetDataTableResult(sqlValue);
- if (model.SearchBoxAddition && (model.FieldType == ControlType.LabAutoGridValueParam || model.FieldType == ControlType.LabAutoGridTextParam || model.FieldType == ControlType.LabAutoCompleteTextParam || model.FieldType == ControlType.LabAutoCompleteValueParam))
+ if (model.SearchBoxAddition && (model.FieldType == ControlType.LabAutoGridTextParam || model.FieldType == ControlType.LabAutoCompleteTextParam))
{
if (this.ManuallyAddData.ContainsKey(model.FieldName))
{
@@ -7640,11 +7673,11 @@ namespace Lskj.Control
btnEdit.EditValue = modelLookUp.EditValue;
this.GridView.SetFocusedRowCellValue(model.FieldName, modelLookUp.EditValue);
- if (OnNewLine != null && modelLookUp.EditValueList.Count>0)
+ if (OnNewLine != null && modelLookUp.EditValueList.Count > 0)
{
OnNewLine(model.FieldName, modelLookUp.EditValueList);
}
-
+
}
}
catch (Exception ex)
@@ -9316,7 +9349,7 @@ namespace Lskj.Control
foreach (GridColumn item in gc)
{
GridColumnModel model = item.Tag as GridColumnModel;
-
+
//修改
if (Modify && modifyFields.Split(',').Contains(item.FieldName.ToLower()))
{
@@ -9354,7 +9387,7 @@ namespace Lskj.Control
if (model.FieldType == ControlType.LabMemoEdit) item.OptionsColumn.AllowEdit = true;
}
-
+
//必填
if (Required && requiredFields.Split(',').Contains(item.FieldName.ToLower()))
{
@@ -9427,7 +9460,7 @@ namespace Lskj.Control
if (SystemInfo.Instance.DisplayCheckboxSelection && !string.IsNullOrWhiteSpace(this.MultiplePrimary) && gridView.OptionsSelection.MultiSelect == true && gridView.OptionsSelection.MultiSelectMode == GridMultiSelectMode.CheckBoxRowSelect && gridView.OptionsSelection.EnableAppearanceFocusedCell == false)
{
DataRow dataRow = this.gridView.GetDataRow(e.ListSourceRow);
- if (dataRow!=null&& dataRow.Table.Columns.Contains(this.MultiplePrimary) && SelectedDataSource.Contains(dataRow[this.MultiplePrimary]+""))
+ if (dataRow != null && dataRow.Table.Columns.Contains(this.MultiplePrimary) && SelectedDataSource.Contains(dataRow[this.MultiplePrimary] + ""))
{
e.Handled = true;
e.Visible = true;
@@ -10111,6 +10144,7 @@ namespace Lskj.Control
if (gridColumn != null && gridColumn.Tag != null && gridColumn.Tag is GridColumnModel)
{
GridColumnModel model = (GridColumnModel)gridColumn.Tag;
+ EnsureSearchAdditionValueInDataSource(gridColumn, model);
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;
@@ -10141,6 +10175,46 @@ namespace Lskj.Control
}
}
+ ///
+ /// SearchBoxAddition保存文本值时,编辑器显示前把当前单元格值补进下拉数据源。
+ /// 避免已保存文本不在下拉SQL结果中时,点击单元格进入编辑态显示为空。
+ ///
+ private void EnsureSearchAdditionValueInDataSource(GridColumn gridColumn, GridColumnModel model)
+ {
+ if (gridColumn == null || model == null || !model.SearchBoxAddition) return;
+ if (!(ControlType.LabAutoCompleteText == model.FieldType || ControlType.LabAutoCompleteTextParam == model.FieldType ||
+ ControlType.LabAutoGridText == model.FieldType || ControlType.LabAutoGridTextParam == model.FieldType)) return;
+
+ RepositoryItemGridLookUpEdit searchEdit = gridColumn.ColumnEdit as RepositoryItemGridLookUpEdit;
+ if (searchEdit == null) return;
+
+ DataTable dt = searchEdit.DataSource as DataTable;
+ if (dt == null) return;
+
+ string valueName = searchEdit.ValueMember;
+ string textName = !string.IsNullOrWhiteSpace(searchEdit.DisplayMember) ? searchEdit.DisplayMember : model.TextMember;
+ if (string.IsNullOrWhiteSpace(valueName) || !dt.Columns.Contains(valueName)) return;
+
+ Type dataType = dt.Columns[valueName].DataType;
+ if (dataType != typeof(string)) return;
+
+ string value = gridView.GetFocusedRowCellValue(gridColumn) + "";
+ if (string.IsNullOrWhiteSpace(value)) return;
+
+ bool exists = dt.Rows.Cast().Any(x =>
+ (x[valueName] + "").Equals(value) ||
+ (!string.IsNullOrWhiteSpace(textName) && dt.Columns.Contains(textName) && (x[textName] + "").Equals(value)));
+ if (exists) return;
+
+ DataRow newRow = dt.NewRow();
+ newRow[valueName] = value;
+ if (!string.IsNullOrWhiteSpace(textName) && dt.Columns.Contains(textName))
+ {
+ newRow[textName] = value;
+ }
+ dt.Rows.Add(newRow.ItemArray);
+ }
+
/// 计算EditorButton文本所需的精确宽度
///
diff --git a/插件库/Lskj.Control/Model/ControlType.cs b/插件库/Lskj.Control/Model/ControlType.cs
index 1ddd0e3..661770e 100644
--- a/插件库/Lskj.Control/Model/ControlType.cs
+++ b/插件库/Lskj.Control/Model/ControlType.cs
@@ -137,7 +137,7 @@ namespace Lskj.Control.Model
///
public const int LabAutoCompleteValueParam = 15;
///
- /// 自动搜索框(带参数) 保存Value值,显示Text值
+ /// 自动搜索框(带参数) 保存Text值,显示Text值
///
public const int LabAutoCompleteTextParam = 16;
///
@@ -490,6 +490,17 @@ namespace Lskj.Control.Model
///
public const int LabSelectReturnTextSingleNew = 172;
+
+
+ ///
+ /// 测试特殊搜索框返回id
+ ///
+ public const int SpecialSearchBoxToId = 181;
+ ///
+ /// 测试特殊搜索框返回text
+ ///
+ public const int SpecialSearchBoxToText = 182;
+
///
/// 说明:是否为Value类型
/// 创建人:龚宇超
diff --git a/插件库/Lskj.Control/Model/PrintUtil.cs b/插件库/Lskj.Control/Model/PrintUtil.cs
index 4090f83..a01842b 100644
--- a/插件库/Lskj.Control/Model/PrintUtil.cs
+++ b/插件库/Lskj.Control/Model/PrintUtil.cs
@@ -26,6 +26,7 @@ using FastReport;
using FastReport.Preview;
using System.Windows.Forms;
using System.Threading.Tasks;
+using Lskj.Business;
namespace Lskj.Control.Model
{
@@ -115,7 +116,7 @@ namespace Lskj.Control.Model
if (OnAfterPrint != null)
OnAfterPrint(null, null);
}
- else if (ERPInfo.Instance.IsUserManager)
+ else if (ERPInfo.Instance.IsUserManager|| SystemInfo.Instance.PrintTemplate.Split(',').Contains(ERPInfo.Instance.UserName))
{
using (BaseForm form = new BaseForm())
{
@@ -178,33 +179,4 @@ namespace Lskj.Control.Model
form.Dispose();
}
- private static void Preview_OnPrint(object sender, PreviewControl.PrintEventArgs e)
- {
- try
- {
-
- if (e.Preview != null && e.Preview.Report != null && e.Preview.Report.Preview != null)
- {
- //this.ReportObj.PrintSettings.PageRange = PageRange.All; // 设置为全部页面
- //this.ReportObj.PrintSettings.PageNumbers = ""; // 清空页码范围
- bool isPrint = e.Preview.Report.Preview.Print();
- if (isPrint)
- {
- if (OnAfterPrint != null)
- OnAfterPrint(sender, e);
- }
- }
- else
- {
- MessageUtil.Show("Preview, Report or Report Preview is null");
- }
- }
- catch (Exception ex)
- {
- string Message = ErrorMessage.PromptErrorMessage(ex);
- MessageUtil.Show(Message, ex.Message);
- }
- }
-
- }
-}
+ private static void Preview_OnPrint(object sender, PreviewControl.PrintEventArgs e)
\ No newline at end of file
diff --git a/插件库/Lskj.Control/TabControlEx.cs b/插件库/Lskj.Control/TabControlEx.cs
index 1ada6da..a046db0 100644
--- a/插件库/Lskj.Control/TabControlEx.cs
+++ b/插件库/Lskj.Control/TabControlEx.cs
@@ -136,6 +136,12 @@ namespace Lskj.Control
///
public event EventHandler OnMrpDragCallback;
public event EventHandler OnMrpBtnClickCallback;
+
+ ///
+ /// 右键执行后回调(针对单据,单据主表明细不是ModuleGridEx,SearchLastGrid方法无效)
+ ///
+ public event EventHandler BillDetailRightGridCallBack;
+
///
/// 明细页签与主模块对应关系
///
@@ -489,7 +495,7 @@ namespace Lskj.Control
// 1️⃣ 预分组:Rightdockid > 0 的明细
var rightGroups = gridDetail
- .Where(m => m.Rightdockid > 0)
+ .Where(m => m.Rightdockid != 0)
.GroupBy(m => m.Rightdockid)
.ToDictionary(g => g.Key, g => g.ToList());
@@ -500,7 +506,7 @@ namespace Lskj.Control
foreach (GridDetailModel model in gridDetail)
{
// 子明细交给父明细右侧页签生成
- if (model.Rightdockid > 0) continue;
+ if (model.Rightdockid != 0) continue;
if (this.DetaiName.Equals(model.DetailName) && isGridmerge) continue;
@@ -1403,6 +1409,7 @@ namespace Lskj.Control
tabMultipledetails.Model = this.Model;
tabMultipledetails.OnSaveGridCallBack += OnDetailSaveGridCallBack;
tabMultipledetails.DetailRightGridCallBack += OnDetailRightCallback;
+ tabMultipledetails.BillDetailRightGridCallBack += BillDetailRightGridCallBack;
tabMultipledetails.DrgaParentPrimaryKey = this.DrgaParentPrimaryKey;
tabMultipledetails.InitTabPages(isMeage);
tabMultipledetails.Dock = DockStyle.Fill;
@@ -1442,6 +1449,8 @@ namespace Lskj.Control
gridEx.OnSaveGridCallBack += OnDetailSaveGridCallBack;
gridEx.DetailRightGridCallBack += OnDetailRightCallback;
+ if(model.BottomRefreshMain) gridEx.RightGridCallBack += BillDetailRightGridCallBack;
+
gridEx.Name = "gridEx";
gridEx.IsDetail = true;
gridEx.Dock = DockStyle.Fill;
diff --git a/插件库/Lskj.Control/TabMultipledetails.cs b/插件库/Lskj.Control/TabMultipledetails.cs
index 9509a6a..7243b23 100644
--- a/插件库/Lskj.Control/TabMultipledetails.cs
+++ b/插件库/Lskj.Control/TabMultipledetails.cs
@@ -89,6 +89,12 @@ namespace Lskj.Control
/// 下面明细表右键执行后回调
///
public event EventHandler DetailRightGridCallBack;
+
+ ///
+ /// TabMultipledetails右键执行后回调(针对单据,单据主表明细不是ModuleGridEx,SearchLastGrid方法无效)
+ ///
+ public event EventHandler BillDetailRightGridCallBack;
+
#endregion
#region
///
@@ -236,7 +242,12 @@ namespace Lskj.Control
ModuleGridEx gridEx = new ModuleGridEx();
gridEx.RightGridCallBack += OnGridAfterRightCallBack;
- if (model.BottomRefreshMain) gridEx.OnSaveGridCallBack += OnRefreshMainTable;
+
+ if (model.BottomRefreshMain)
+ {
+ gridEx.OnSaveGridCallBack += OnRefreshMainTable;
+ }
+
gridEx.Name = "gridEx";
gridEx.IsDetail = true;
gridEx.Dock = DockStyle.Fill;
@@ -686,7 +697,18 @@ namespace Lskj.Control
{
//刷新主表,主表刷新后会默认刷新下方左右表
int oldRowHandle = gridEx1.GridControlObj.GridView.FocusedRowHandle;//上一次选中行
- this.ParentControlEx.SearchLastGrid();
+
+ if (BillDetailRightGridCallBack!=null)
+ {
+ this.BillDetailRightGridCallBack(sender, e);
+ }
+ else
+ {
+ this.ParentControlEx.SearchLastGrid();
+ }
+
+
+
if (gridEx1.SearchObj.RememberRow)
{
gridEx1.GridControlObj.GridView.SelectRowHandler(oldRowHandle);
@@ -706,7 +728,17 @@ namespace Lskj.Control
{
//刷新主表,主表刷新后会默认刷新下方左右表
int oldRowHandle = gridEx2.GridControlObj.GridView.FocusedRowHandle;//上一次选中行
- this.ParentControlEx.SearchLastGrid();
+
+ if (BillDetailRightGridCallBack != null)
+ {
+ this.BillDetailRightGridCallBack(sender, e);
+ }
+ else
+ {
+ this.ParentControlEx.SearchLastGrid();
+ }
+
+
if (gridEx2.SearchObj.RememberRow)
{
gridEx2.GridControlObj.GridView.SelectRowHandler(oldRowHandle);
@@ -721,7 +753,7 @@ namespace Lskj.Control
}
///
- /// 下方表格保存或者执行右键后刷新
+ /// 下方表格保存后刷新
///
///
///
@@ -732,7 +764,16 @@ namespace Lskj.Control
//刷新主表,主表刷新后会默认刷新下方左右表
int oldRowHandle = gridEx1.GridControlObj.GridView.FocusedRowHandle;//上一次选中行
int oldRowHandle2 = gridEx2.GridControlObj.GridView.FocusedRowHandle;//上一次选中行
- this.ParentControlEx.SearchLastGrid();
+
+ if (BillDetailRightGridCallBack != null)
+ {
+ this.BillDetailRightGridCallBack(sender, e);
+ }
+ else
+ {
+ this.ParentControlEx.SearchLastGrid();
+ }
+
if (gridEx1.SearchObj.RememberRow)
{
gridEx1.GridControlObj.GridView.SelectRowHandler(oldRowHandle);
@@ -789,4 +830,5 @@ namespace Lskj.Control
//重新根据主表数据查询
private void SearchObj_OnSearchAfterCallBack(object sender, EventArgs e)
{
+
DataRow rowItem = th
\ No newline at end of file