SVN-Revision: r520
This commit is contained in:
cyf
2025-04-30 07:35:51 +00:00
parent bb42a3f72e
commit b8a87d33ad
8 changed files with 190 additions and 55 deletions
+10 -5
View File
@@ -422,7 +422,8 @@ namespace Lskj.Control
//this.ControlObj.SetAllControlValue(_drBillInfoMsg);
//初始明细数据
this.gcDetail.Model = this.SysModel;
this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceParamToValue(this.BillModelObj.DetailSql, SysModel.BillDocumentId));
//this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceParamToValue(this.BillModelObj.DetailSql, SysModel.BillDocumentId));
this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(this._drBillInfoMsg, this.BillModelObj.DetailSql));
this.gcDetail.SetGridViewDataSource(_dtSourceData);
if (_dtSourceData != null) this._dtSpareSourceData = this._dtSourceData.Clone();
this.gcDetail.ParentControl = this.ControlObj;
@@ -915,7 +916,8 @@ namespace Lskj.Control
this.btnAttach.Text = "附件" + "(" + AttachImpl.GetFileCount(this.BillModelObj.DirId + "", this.SysModel.BillDocumentId) + ")";
//初始明细数据
this.gcDetail.Model = this.SysModel;
this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceParamToValue(this.BillModelObj.DetailSql, SysModel.BillDocumentId));
//this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceParamToValue(this.BillModelObj.DetailSql, SysModel.BillDocumentId));
this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(this._drBillInfoMsg, this.BillModelObj.DetailSql));
this.gcDetail.SetGridViewDataSource(_dtSourceData);
if (_dtSourceData != null) this._dtSpareSourceData = this._dtSourceData.Clone();
this.gcDetail.ParentControl = this.ControlObj;
@@ -1138,7 +1140,8 @@ namespace Lskj.Control
//this.ControlObj.SetAllControlValue(_drBillInfoMsg);
//初始明细数据
this.gcDetail.Model = this.SysModel;
this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceParamToValue(this.BillModelObj.DetailSql, SysModel.BillDocumentId));
//this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceParamToValue(this.BillModelObj.DetailSql, SysModel.BillDocumentId));
this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(this._drBillInfoMsg, this.BillModelObj.DetailSql));
this.gcDetail.SetGridViewDataSource(_dtSourceData);
if (_dtSourceData != null) this._dtSpareSourceData = this._dtSourceData.Clone();
this.gcDetail.ParentControl = this.ControlObj;
@@ -1519,7 +1522,8 @@ namespace Lskj.Control
this.ControlObj.SetAllControlValue(this._drBillInfoMsg);
// 刷新明细表
this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceParamToValue(this.BillModelObj.DetailSql, this.SysModel.BillDocumentId));
//this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceParamToValue(this.BillModelObj.DetailSql, this.SysModel.BillDocumentId));
this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(this._drBillInfoMsg, this.BillModelObj.DetailSql));
this.gcDetail.SetGridViewDataSource(_dtSourceData);
}
catch (Exception ex)
@@ -1663,7 +1667,8 @@ namespace Lskj.Control
}
//明细必填
DataTable SourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceParamToValue(BillModelObj.DetailSql, BillDocumentId));
//DataTable SourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceParamToValue(BillModelObj.DetailSql, BillDocumentId));
DataTable SourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(_baseRowData, BillModelObj.DetailSql));
if (SourceData != null && !string.IsNullOrEmpty(AuditModelObj.RequiredDetailFields))
{
string[] Fields = AuditModelObj.RequiredDetailFields.Split(',');
@@ -24,6 +24,7 @@ using Lskj.Control.Model;
using System.Threading;
using Lskj.Util;
using System.Text.RegularExpressions;
using Lskj.Business;
namespace Lskj.Control
{
@@ -116,6 +117,12 @@ namespace Lskj.Control
/// 是否执行刷新
/// </summary>
public bool isRefresh = false;
/// <summary>
/// 完整数据源(输入框为空时查询出来的数据源)
/// </summary>
public DataTable CompleteData;
/// <summary>
/// 隐藏值
/// </summary>
@@ -457,10 +464,47 @@ namespace Lskj.Control
}
else
{
bool result = !string.IsNullOrEmpty(searchText);
if (result == isRefresh&& string.IsNullOrEmpty(searchText)) return;//连续2次都是空值,就不执行
isRefresh = !string.IsNullOrEmpty(searchText);
// 数据库搜索
string sqlValue = string.Format("select * from ({0}\r\n) temp where {1} like '%{3}%' or {2} like '%{3}%' or dbo.P_getpy({2}) like '%{3}%'", string.IsNullOrEmpty(sourceParamSql) ? SourceSQL : sourceParamSql, ValueField, TextMember, searchText);
this.DataSource = MainImpl.GetDataTableResult(sqlValue);
if (!string.IsNullOrWhiteSpace(searchText)&& SystemInfo.Instance.TreeNodeBoxSpecialDisplay)
{
sqlValue= string.Format(@"select * from ({0} ) t1 where ({1} like '%{3}%' or {2} like '%{3}%' or dbo.P_getpy({2}) like '%{3}%')
and NOT EXISTS(
SELECT 1 FROM ({0} ) t2 where t2.{1} LIKE t1.{1} + '%' AND t2.{1} <> t1.{1})", string.IsNullOrEmpty(sourceParamSql) ? SourceSQL : sourceParamSql, ValueField, TextMember, searchText);
this.DataSource = MainImpl.GetDataTableResult(sqlValue);
//DataTable dataTable = MainImpl.GetDataTableResult(sqlValue);
//if (string.IsNullOrWhiteSpace(searchText))
//{
// this.CompleteData = dataTable;
//}
//if (this.CompleteData == null)
//{
// this.CompleteData = MainImpl.GetDataTableResult(string.IsNullOrEmpty(sourceParamSql) ? SourceSQL : sourceParamSql);
//}
//DataTable dataTableNew = dataTable.Clone();
//foreach (DataRow item in dataTable.Rows)
//{
// string node = item[ValueField] + "";
// if (this.CompleteData.Select(ValueField + " like '" + node + "%'").Length == 1)
// {
// dataTableNew.ImportRow(item);
// }
//}
//this.DataSource = dataTableNew;
}
else
{
//if (SystemInfo.Instance.TreeNodeBoxSpecialDisplay) this.DataSource = dataTable;
this.DataSource = MainImpl.GetDataTableResult(sqlValue);
}
}
}
/// <summary>
@@ -576,8 +620,9 @@ namespace Lskj.Control
}
}
//_popup.TreeViewObj.Focus();//给了焦点后就不能在文本框中做搜索或者删除操作了
}
_popup.TreeViewObj.Focus();
}
/// <summary>
/// <para>说明:</para>
@@ -202,7 +202,7 @@ namespace Lskj.Control
get
{
string value = Model.FieldType == ControlType.LabMultiSelectValue || Model.FieldType == ControlType.LabMultiSelectValueNew || Model.FieldType == ControlType.LabCheckMultiSelectValue || Model.FieldType == ControlType.LabMultiSelectValueParam ? _lookUpForm.EditValue : _lookUpForm.EditText;
if (string.IsNullOrEmpty(value))
if (value==null)// string.IsNullOrEmpty(value) 如果清空后保存,之前的判断会把初始值重新返回出去保存
{
//直接点击保存时,弹出框里不会返回数据,直接用初始化时赋的值
value = ControlValue;
@@ -378,14 +378,14 @@ namespace Lskj.Control.Model
this._bandFields = item.Table.Columns.Contains("bandFields") ? item["bandFields"] + "" : string.Empty;
this._fieldtype = item.Table.Columns.Contains("fieldsqltag") && !string.IsNullOrWhiteSpace(item["fieldsqltag"] + "") ? Convert.ToInt32(item["fieldsqltag"] + "") : 0;
//if (this._fieldtype==116)
//{
// this._fieldtype = 160;
//}
//if (this._fieldtype == 117)
//{
// this._fieldtype = 161;
//}
if (this._fieldtype == 42)
{
this._fieldtype = 116;
}
if (this._fieldtype == 43)
{
this._fieldtype = 117;
}
this._sqlSource = item.Table.Columns.Contains("fieldsql") && !string.IsNullOrWhiteSpace(item["fieldsql"] + "") ? item["fieldsql"] + "" : string.Empty;
@@ -290,6 +290,10 @@ namespace Lskj.Control.Model
{
try
{
if (control is TreeGridControlEx)
{
return ((control as TreeGridControlEx).TreeListObj.DataSource as DataTable).Rows.Count;
}
return (control.GridControl.DataSource as DataTable).Rows.Count;
}
catch (Exception)
+17 -27
View File
@@ -174,6 +174,10 @@ namespace Lskj.Control.Model
/// 主表点击搜索按钮,查询内容为0行时,清空明细
/// </summary>
public event EventHandler ClearDetails;
/// <summary>
/// 执行最后次查询后触发
/// </summary>
public event EventHandler OnLastQueryTriggered;
/// <summary>
/// <para>说明:键盘按下时触发</para>
@@ -3131,6 +3135,8 @@ namespace Lskj.Control.Model
SetFocusedRowHandle(oldRowHandle);
//SetTopRowHandle(oldTopRowHandle);
}
//执行删除或者右键后,主表没有数据时清空明细表格数据
if (this.GridRowCount ==0&& OnLastQueryTriggered != null) OnLastQueryTriggered(null, null);
}
}
@@ -3750,6 +3756,16 @@ namespace Lskj.Control.Model
model.IsSave = true;
model.Visible = item.Table.Columns.Contains("visible") ? "1".Equals(item["visible"] + "") : false;
model.FieldType = string.IsNullOrEmpty(item["fieldTypeId"] + "") ? 0 : Convert.ToInt32(item["fieldTypeId"] + "");
if (model.FieldType==42)
{
model.FieldType = 116;
}
if (model.FieldType == 43)
{
model.FieldType = 117;
}
model.FieldName = item["fieldName"] + "";
model.Name = "txt_" + item["fieldName"] + "";
model.LabelText = item["userName"] + "";
@@ -5739,30 +5755,4 @@ namespace Lskj.Control.Model
LabelDateEdit dateEdit = controlObj as LabelDateEdit;
value = dateEdit.TextEdit.EditValue == null ? dateEdit.EditText : dateEdit.TextEdit.DateTime.ToString("yyyy-MM-dd");
}
else if (controlObj is LabelCheckEdit)
{
LabelCheckEdit checkEdit = controlObj as LabelCheckEdit;
value = checkEdit.EditText;
}
else if (controlObj is LabelComboxEdit)
{
LabelComboxEdit autoEdit = controlObj as LabelComboxEdit;
value = autoEdit.EditValue;
}
else if (controlObj is LabelTextEdit)
{
LabelTextEdit textIntEdit = controlObj as LabelTextEdit;
if (textIntEdit != null) value = string.IsNullOrEmpty(textIntEdit.EditText) ? "0" : textIntEdit.EditText;
}
defaultValue = defaultValue.Replace(item, value);
}
}
}
return defaultValue;
}
}
}
else if
+100 -12
View File
@@ -100,12 +100,12 @@ namespace Lskj.Control
/// <summary>
/// 带操作表格的自定义控件对象
/// </summary>
public ModuleGridEx ModuleGridObj { get { return this.moduleGridDetailEx1.ModuleGridObj; } }
public ModuleGridEx ModuleGridObj { get { return this.MainBodyTab.Visible ? (this.MainBodyTab.SelectedTabPage.Tag as ModuleGridDetailEx).ModuleGridObj : this.moduleGridDetailEx1.ModuleGridObj; } }
/// <summary>
/// Gets the module grid detail object.
/// </summary>
/// <value>The module grid detail object.</value>
public ModuleGridDetailEx ModuleGridDetailObj { get { return this.moduleGridDetailEx1; } }
public ModuleGridDetailEx ModuleGridDetailObj { get { return this.MainBodyTab.Visible? this.MainBodyTab.SelectedTabPage.Tag as ModuleGridDetailEx : this.moduleGridDetailEx1; } }
/// <summary>
/// 左侧树结构对象
/// </summary>
@@ -137,8 +137,10 @@ namespace Lskj.Control
/// 上一次选中的树表格节点
/// </summary>
public TreeListNode treeListNode;
/// <summary>
/// 动态列名表
/// </summary>
public DataTable ColumnNameTable;
public ModuleEx()
@@ -343,7 +345,7 @@ namespace Lskj.Control
}
this.ModuleGridObj.OnExportCallBack += new EventHandler(SetExportGridView);
this.InitializeTab();
}
else
@@ -556,7 +558,8 @@ namespace Lskj.Control
/// <param name="where">The where key.</param>
protected void SetMainGridView(string where = "")
{
string sqlValue = ReplaceHelper.ReplaceWhereCond(this.SysModel.MenuSql);
string sqlValue = ReplaceHelper.ReplaceWhereCond(this.MainBodyTab.Visible? (this.MainBodyTab.SelectedTabPage.Tag as ModuleGridDetailEx).SysModel.MenuSql : this.SysModel.MenuSql);
//sqlValue = this.SysModel.MenuSql.Trim().StartsWith("select", StringComparison.OrdinalIgnoreCase) ? sqlValue + where : sqlValue;
//判断是否是select开头,上方的判断可能出现开头是空格或者注释的情况
sqlValue = IsSelectAtStart(sqlValue) ? sqlValue + where : sqlValue;
@@ -810,7 +813,7 @@ namespace Lskj.Control
}
else
{
this.treeGridLeft.GridControl.DataSource = leftGridCondtionTable;
this.treeGridLeft.TreeListObj.DataSource = leftGridCondtionTable;
}
}
}
@@ -1007,8 +1010,13 @@ namespace Lskj.Control
this.ModuleGridObj.GridControlObj.SetDisplayColumns(dataRow["DisplayColumns"] + "");
}
}
if (!string.IsNullOrWhiteSpace(this.SysModel.DynamicColumnNameSql) && e != null)
{
DataRow dataRow = this.gridLeft.GetViewFocusedDataRow();
string sql = ReplaceHelper.ReplaceRowParam(dataRow, this.SysModel.DynamicColumnNameSql);
DataRow row = BaseImpl.GetDataRowResult(sql);
if (row != null) this.ModuleGridObj.GridControlObj.SetColumnName(row);
}
this.SetMainGridView(where);
if (this.IsDragDetail)
@@ -1123,7 +1131,13 @@ namespace Lskj.Control
this.ModuleGridObj.GridControlObj.SetDisplayColumns(dataRow["DisplayColumns"] + "");
}
}
if (!string.IsNullOrWhiteSpace(this.SysModel.DynamicColumnNameSql))
{
DataRow dataRow = this.treeGridLeft.GetViewFocusedDataRow();
string sql = ReplaceHelper.ReplaceRowParam(dataRow, this.SysModel.DynamicColumnNameSql);
DataRow row = BaseImpl.GetDataRowResult(sql);
if (row != null) this.ModuleGridObj.GridControlObj.SetColumnName(row);
}
this.SetMainGridView();
if (this.IsDragDetail)
@@ -1437,7 +1451,14 @@ namespace Lskj.Control
this.ModuleGridObj.GridControlObj.SetDisplayColumns(dataRows[0]["DisplayColumns"] + "");
}
}
if (!string.IsNullOrWhiteSpace(this.SysModel.DynamicColumnNameSql))
{
DataRow[] dataRows = this.treeLeft.DataSource.Select(this.treeLeft.TreeNodeKeyField + "='" + e.Node.Name + "'");
DataRow dataRow = dataRows.Length > 0 ? dataRows[0] : null;
string sql = ReplaceHelper.ReplaceRowParam(dataRow, this.SysModel.DynamicColumnNameSql);
DataRow row = BaseImpl.GetDataRowResult(sql);
if (row != null) this.ModuleGridObj.GridControlObj.SetColumnName(row);
}
this.SetMainGridView(where);
if (this.IsDragDetail)
@@ -1542,4 +1563,71 @@ namespace Lskj.Control
/// <summary>
/// 判断是否是selete开头(可以处理sql前方有注释和空格的情况)
/// </summary>
/// <param name="sqlText"></param>
/// <returns></returns>
public static bool IsSelectAtStart(string sqlText)
{
// Remove comments and whitespace at the start of the text
string cleanedText = Regex.Replace(sqlText, @"^(\s*--.*?(\r\n|\n)|\s*)*", "");
// Check if the remaining text starts with 'select'
return cleanedText.StartsWith("select", StringComparison.OrdinalIgnoreCase);
}
/// <summary>
/// 关闭模块时调用
/// </summary>
public void CloseModule()
{
if (this.SysModel != null && this.SysModel.RecordRowUponExit)
{
int Handle = this.ModuleGridObj.GridControlObj.GridView.FocusedRowHandle > 0 ? this.ModuleGridObj.GridControlObj.GridView.FocusedRowHandle : 0;
IniHelper.Write(string.Format("RecordRowUponExit_{0}", this.Model.ModuleCode), Handle + "");
}
}
/// <summary>
/// 初始化页签
/// </summary>
public void InitializeTab()
{
DataTable table = BaseModuleImpl.GetBaseAttach(this.Model.ModuleCode);//查看是否有附加模块
if (table.Rows.Count > 0)
{
XtraTabPage MainTableTab = new XtraTabPage();
MainTableTab.Text = this.SysModel.MenuText;
MainTableTab.Controls.Add(this.moduleGridDetailEx1);
MainTableTab.Tag = this.moduleGridDetailEx1;
this.MainBodyTab.TabPages.Add(MainTableTab);
foreach (DataRow item in table.Rows)
{
DataRow modelRow = MainImpl.GetSystemdllTab(item["unionModule"] + "");
//modelRow = MainImpl.GetSystemdllTab ("mps001");
if (modelRow == null) continue;
ModuleModel addModel = new ModuleModel(modelRow);
XtraTabPage page = new XtraTabPage();
page.Text = item["AttachName"] + "";
ModuleGridDetailEx modegridEx = new ModuleGridDetailEx();
modegridEx.Name = "moduleGridDetailEx";
modegridEx.Dock = DockStyle.Fill;
DynamicModel dyncModel = new DynamicModuleModel(new string[] { "0", ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, "1", item["unionModule"] + "", "0" });
modegridEx.InitializeControl(addModel, dyncModel);
//modegridEx.SearchObj.OnDataSourceBindCallBack += OnDataSourceBindCallBack;
//加载复选框
if (table.Columns.Contains("gridObjCheck") && "1".Equals(item["gridObjCheck"] + ""))
{
GridDragGrid.GridAddCheckBox(modegridEx.ModuleGridObj.GridControlObj.GridView);
}
page.Controls.Add(modegridEx);
page.Tag = modegridEx;
this.MainBodyTab.TabPages.Add(page);
}
this.MainBodyTab.SelectedPageChanged += MainBodyTab_SelectedPageChanged;
thi
@@ -363,6 +363,7 @@ namespace Lskj.Control
//双击刷新的话,和行改变事件冲突。
this.ModuleGridObj.GridControlObj.GridView.DoubleClick += new EventHandler(GridView_DoubleClick);
this.SearchObj.OnSearchAfterCallBack += SearchObj_ClearDetails_DoubleMode;
this.SearchObj.OnLastQueryTriggered += SearchObj_ClearDetails_DoubleMode;
}
else
{
@@ -378,9 +379,11 @@ namespace Lskj.Control
this.ModuleGridObj.GridControlObj.GridView.MouseDown += new MouseEventHandler(GridView_MouseDown);
this.SearchObj.OnSearchAfterCallBack += SearchObj_ClearDetails;
this.SearchObj.OnLastQueryTriggered += SearchObj_ClearDetails;
//this.ModuleGridObj.GridControlObj.GridView.FocusedRowChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventHandler(OnGridViewFocusedRowChanged);
}
}
}
else
{