SVN-Revision: r591
This commit is contained in:
cyf
2025-05-16 02:08:28 +00:00
parent 58a154153d
commit eaa13af03f
7 changed files with 164 additions and 88 deletions
@@ -121,6 +121,10 @@ namespace Lskj.Control
/// 完整数据源(输入框为空时查询出来的数据源)
/// </summary>
public DataTable CompleteData;
/// <summary>
/// 多选时返回全部(多选时,不是根节点是否能被选中)
/// </summary>
public bool SelectAll=false;
/// <summary>
@@ -262,6 +266,7 @@ namespace Lskj.Control
}
else
{
this.EditValue = "";
this.Text = "";
}
}
@@ -537,7 +542,15 @@ namespace Lskj.Control
string ids = "";
if (this.isMultiClick)
{
ids = Model.TreeCheckModel.Equals("1") ? this._popup.TreeViewExObj.GetCheckValues(true) : this._popup.TreeViewExObj.GetCheckValues();
//ids = Model.TreeCheckModel.Equals("1") ? this._popup.TreeViewExObj.GetCheckValues(true) : this._popup.TreeViewExObj.GetCheckValues();
/*2025-05-13日改
TreeCheckModel是设置选择模式的,为1的情况下,选中父节点后会自动选中所有子节点。直接根据TreeCheckModel控制是否只选择根节点感觉有问题
并且GetCheckValues(true)和GetCheckValues()效果相同(GetCheckValues有个不带参数的方法,里面默认为ture)
工具中和bs里 132-135都是只能选末级,136-139可以全选
true返回全部,false只返回根节点
*/
ids = this.SelectAll ? this._popup.TreeViewExObj.GetCheckValues(true) : this._popup.TreeViewExObj.GetCheckValues(false);
}
else
{
+23 -40
View File
@@ -877,18 +877,28 @@ namespace Lskj.Control
case ControlType.LabMulitTreeTextParam:
case ControlType.LabMulitTreeValue:
case ControlType.LabMulitTreeValueParam:
InitAutoTreeSearchEdit(column, model, true, false);
break;
case ControlType.LabMultiComTreeboxValue:
case ControlType.LabMultiComTreeboxText:
case ControlType.LabMultiComTreeboxValueParam:
case ControlType.LabMultiComTreeboxTextParam:
InitAutoTreeSearchEdit(column, model, true, true);
break;
case ControlType.LabTreeLookValue:
case ControlType.LabTreeLookText:
case ControlType.LabCheckTreeLookValue:
case ControlType.LabCheckTreeLookText:
case ControlType.LabTreeLastlevelValue:
case ControlType.LabTreeLastlevelText:
case ControlType.LabCheckTreeLastlevelValue:
case ControlType.LabCheckTreeLastlevelText:
InitAutoTreeSearchEdit(column, model, false, false);
break;
case ControlType.LabTreeLookValue:
case ControlType.LabTreeLookText:
case ControlType.LabCheckTreeLookValue:
case ControlType.LabCheckTreeLookText:
InitAutoTreeSearchEdit(column, model, false, true);
break;
case ControlType.LabComboxCheckListValue:
case ControlType.LabComboxCheckListText:
InitMutilComboxEdit(column, model);
@@ -3561,7 +3571,7 @@ namespace Lskj.Control
PubTreeLookUp _popup = new PubTreeLookUp();
//_popup.LookUp = gridColumn;
//_popup.ValueMember = ControlType.LabTreeLookValue == model.FieldType || ControlType.LabCheckTreeLookValue == model.FieldType || ControlType.LabTreeLastlevelValue == model.FieldType || ControlType.LabCheckTreeLastlevelValue == model.FieldType ? model.ValueMember : model.TextMember;
_popup.ValueMember = ControlType.LabMulitTreeValue == model.FieldType || ControlType.LabMulitTreeValueParam == model.FieldType || ControlType.LabTreeLookValue == model.FieldType || ControlType.LabCheckTreeLookValue == model.FieldType || ControlType.LabTreeLastlevelValue == model.FieldType || ControlType.LabCheckTreeLastlevelValue == model.FieldType ? model.ValueMember : model.TextMember;
_popup.ValueMember = ControlType.LabMultiComTreeboxValueParam == model.FieldType || ControlType.LabMultiComTreeboxValue == model.FieldType|| ControlType.LabMulitTreeValue == model.FieldType || ControlType.LabMulitTreeValueParam == model.FieldType || ControlType.LabTreeLookValue == model.FieldType || ControlType.LabCheckTreeLookValue == model.FieldType || ControlType.LabTreeLastlevelValue == model.FieldType || ControlType.LabCheckTreeLastlevelValue == model.FieldType ? model.ValueMember : model.TextMember;
_popup.ValueField = model.ValueMember;
_popup.TextMember = model.TextMember;
_popup.SourceSQL = model.SqlSource;
@@ -3585,7 +3595,7 @@ namespace Lskj.Control
if (!isMulitClick) _popup.TreeViewExObj.OnTreeNodeMouseClick += OnPopupGridMouseClick;
btnEdit.PopupControl.Tag = _popup;
btnEdit.QueryPopUp += OnQueryPopUp;
if (ControlType.LabMulitTreeValue == model.FieldType || ControlType.LabMulitTreeValueParam == model.FieldType || model.FieldType == ControlType.LabTreeLookValue || model.FieldType == ControlType.LabCheckTreeLookValue || ControlType.LabTreeLastlevelValue == model.FieldType || ControlType.LabCheckTreeLastlevelValue == model.FieldType)
if (ControlType.LabMultiComTreeboxValueParam == model.FieldType || ControlType.LabMultiComTreeboxValue == model.FieldType||ControlType.LabMulitTreeValue == model.FieldType || ControlType.LabMulitTreeValueParam == model.FieldType || model.FieldType == ControlType.LabTreeLookValue || model.FieldType == ControlType.LabCheckTreeLookValue || ControlType.LabTreeLastlevelValue == model.FieldType || ControlType.LabCheckTreeLastlevelValue == model.FieldType)
{
btnEdit.QueryDisplayText += OnQueryDisplayText;
}
@@ -3650,6 +3660,10 @@ namespace Lskj.Control
string text = string.Empty;
foreach (string item in values)
{
//if (e.Node.Nodes.Count > 0 && !popup.isRootNode)
//{
// return;
//}
DataRow rowItem = popup.DataSourceTable.Rows.Cast<DataRow>().FirstOrDefault(x => x[popup.ValueMember] + "" == item);
if (rowItem != null)
{
@@ -7074,7 +7088,8 @@ namespace Lskj.Control
if (e.KeyCode == Keys.Enter)
{
GridColumnModel model = popup.model;
string ids = popup.TreeViewExObj.GetCheckValues();
// string ids = popup.TreeViewExObj.GetCheckValues();
string ids = popup.isRootNode ? popup.TreeViewExObj.GetCheckValues(true) : popup.TreeViewExObj.GetCheckValues(false);
if (ids != null)
{
ids = ids.Replace("'", "");
@@ -8265,36 +8280,4 @@ namespace Lskj.Control
{
int returnIndex = 0;
isContain = false;
DataRow dragEndRow = sourceTab.Rows[dragEndRowIndex];
if (selectRows.Contains(dragEndRow))
{
isContain = true;
dragEndRowIndex = dragEndRowIndex - 1;
if (dragEndRowIndex >= 0)
{
dragEndRow = sourceTab.Rows[dragEndRowIndex];
if (selectRows.Contains(dragEndRow))
{
bool iscontain = false;
returnIndex = GetDragEndRowIndex(sourceTab, dragEndRowIndex, selectRows, out iscontain);
}
else
{
returnIndex = dragEndRowIndex;
}
}
else
{
returnIndex = -1;
}
}
else
{
returnIndex = dragEndRowIndex;
}
return returnIndex;
}
#endregion
}
}
DataRow dragEn
+18 -1
View File
@@ -325,7 +325,6 @@ namespace Lskj.Control.Model
public const int LabCheckTreeLookText = 121;
/// <summary>
/// 树选择控件,保存Value值,显示Text值不显示
/// </summary>
public const int LabTreeLastlevelValue = 122;
/// <summary>
@@ -356,6 +355,24 @@ namespace Lskj.Control.Model
/// 多选树选择控件,保存Text值,显示Text值不显示末级(带参数)
/// </summary>
public const int LabMulitTreeTextParam = 135;
/// <summary>
/// 下拉树多选返回value
/// </summary>
public const int LabMultiComTreeboxValue = 136;
/// <summary>
/// 下拉树多选返回text
/// </summary>
public const int LabMultiComTreeboxText = 137;
/// <summary>
/// 下拉树多选返回value带参数
/// </summary>
public const int LabMultiComTreeboxValueParam = 138;
/// <summary>
/// 下拉树多选返回text带参数
/// </summary>
public const int LabMultiComTreeboxTextParam = 139;
/// <summary>
/// 扫码自定义控件
/// </summary>
@@ -380,11 +380,11 @@ namespace Lskj.Control.Model
if (this._fieldtype == 42)
{
this._fieldtype = 116;
this._fieldtype = 160;
}
if (this._fieldtype == 43)
{
this._fieldtype = 117;
this._fieldtype = 161;
}
@@ -779,7 +779,7 @@ namespace Lskj.Control.Model
if (model.SqlDirectExecution)
{
sqlValue = ReplaceHelper.ReplaceRowParam(rowData, sqlValue);
if(this.ControlObj != null && sqlValue.Contains(ReplaceHelper.ReplaceParentLeftKey))
if (this.ControlObj != null && sqlValue.Contains(ReplaceHelper.ReplaceParentLeftKey))
{
List<string> paramFields = ReplaceHelper.GetParamFields(sqlValue);
foreach (string item in paramFields)
@@ -789,9 +789,9 @@ namespace Lskj.Control.Model
}
}
int NumberOfImpacts = MainImpl.ExecSqlValue(sqlValue);
return NumberOfImpacts>0;
return NumberOfImpacts > 0;
}
else
else
{
// 将sql语句组装成Parameter方式,兼容配置语句.
@@ -1068,7 +1068,7 @@ namespace Lskj.Control.Model
tp.ShowCloseButton = DefaultBoolean.True;
tp.Dock = DockStyle.Fill;
//配置了右键刷新的情况下,在当前页签关闭时触发刷新
if ( model.Refresh && this.OnRightCallback != null)
if (model.Refresh && this.OnRightCallback != null)
{
tp.Disposed += new EventHandler(OnTp_Disposed);
}
@@ -1421,7 +1421,7 @@ namespace Lskj.Control.Model
}
if (model.Mergeexec)//合并执行
{
if (model.ActionType == 0)
if (model.ActionType == 0)
{
actionSql = ReplaceHelper.ReplaceRowParam(rows, model.Action, "'", "'");
}
@@ -1470,7 +1470,7 @@ namespace Lskj.Control.Model
string paramsql1 = paramList[3];
paramList[3] = ReplaceHelper.ReplaceRowParam(rows, paramsql1, "'", "'");
}
}
}
else if (model.DllName.ToLower().Contains("Lskj.PubArgoxPrint.dll".ToLower()))
{
string mainsql = paramList[2];
@@ -1565,7 +1565,7 @@ namespace Lskj.Control.Model
}
}
}
string firstChar = fieldValue.Length > 0 ? fieldValue.Substring(0, 1) : "";
switch (firstChar)
{
@@ -1576,7 +1576,22 @@ namespace Lskj.Control.Model
}
break;
case "#": // 需要传入的sql语句
handleParamList.Add(ReplaceHelper.ReplaceRowParam(rowData, fieldValue.Replace("#", "")) + "");
if (rowDatas == null)
{
handleParamList.Add(ReplaceHelper.ReplaceRowParam(rowData, fieldValue.Replace("#", "")) + "");
}
else
{
//多条合并执行时替换参数
fieldValue = fieldValue.Replace("[", "{").Replace("]", "}");
//如果是sql的情况,可能有 select '[xx]' as xxx 和 where xx in([xxx]) 的情况,start和end不好统一设置,先默认为空
//string start = "'", end = "'";
//if (fieldValue.ToUpper().Contains("EXEC"))
//{
// start = end = string.Empty;
//}
handleParamList.Add(ReplaceHelper.ReplaceRowParam(rowDatas, fieldValue, "", "") + "");
}
break;
case "[": //[FormTitle_格式数据
if (fieldValue.StartsWith("[FormTitle_"))
@@ -1600,9 +1615,9 @@ namespace Lskj.Control.Model
{
foreach (DataRow row in rowDatas)
{
if (dictionary.ContainsKey(row)&&!string.IsNullOrWhiteSpace(dictionary[row]))
if (dictionary.ContainsKey(row) && !string.IsNullOrWhiteSpace(dictionary[row]))
{
fieldValue +=dictionary[row]+",";
fieldValue += dictionary[row] + ",";
}
}
fieldValue = fieldValue.Trim(',');
@@ -1681,4 +1696,28 @@ namespace Lskj.Control.Model
DataRow[] dataRows = columnsTab.Select().Where(n => (n["name"] + "").Equals(colunmField.Key)).ToArray();
if (dataRows.Length == 0)
{
string a
string addColSql = string.Format("alter table P_PrivateDllTab add {0} {1}", colunmField.Key, colunmField.Value);
SqlHelper.ExecuteNonQuery(addColSql);//添加列
}
}
}
else
{
string createTabSql = "create table P_PrivateDllTab(id int IDENTITY(1,1) NOT NULL,{0})";
string createCol = string.Empty;
foreach (KeyValuePair<string, string> colunmField in colDic)
{
createCol += string.Format("{0} {1},", colunmField.Key, colunmField.Value);
}
createTabSql = string.Format(createTabSql, createCol.TrimEnd(','));
SqlHelper.ExecuteNonQuery(createTabSql);//创建表
}
return true;
}
catch (Exception)
{
return false;
}
}
}
}
+54 -8
View File
@@ -1493,6 +1493,10 @@ namespace Lskj.Control.Model
case ControlType.LabTreeLastlevelText:
case ControlType.LabCheckTreeLastlevelValue:
case ControlType.LabCheckTreeLastlevelText:
case ControlType.LabMultiComTreeboxValue:
case ControlType.LabMultiComTreeboxText:
case ControlType.LabMultiComTreeboxValueParam:
case ControlType.LabMultiComTreeboxTextParam:
// 表格树自动搜索框
LabelAutoTreeEdit autTreeEdit = ctr as LabelAutoTreeEdit;
autTreeEdit.SetDataSource(table);
@@ -2009,9 +2013,13 @@ namespace Lskj.Control.Model
case ControlType.LabMulitTreeValueParam:
case ControlType.LabMulitTreeText:
case ControlType.LabMulitTreeTextParam:
case ControlType.LabMultiComTreeboxValue:
case ControlType.LabMultiComTreeboxText:
case ControlType.LabMultiComTreeboxValueParam:
case ControlType.LabMultiComTreeboxTextParam:
// 多选控件
LabelAutoTreeEdit autoTreeEdit = ctr as LabelAutoTreeEdit;
value = (ControlType.LabMulitTreeValue == model.FieldType || ControlType.LabMulitTreeValueParam == model.FieldType || ControlType.LabTreeLookValue == model.FieldType || ControlType.LabCheckTreeLookValue == model.FieldType || ControlType.LabTreeLastlevelValue == model.FieldType || ControlType.LabCheckTreeLastlevelValue == model.FieldType) ? autoTreeEdit.EditValue : autoTreeEdit.EditText;
value = (ControlType.LabMultiComTreeboxValueParam == model.FieldType || ControlType.LabMultiComTreeboxValue == model.FieldType || ControlType.LabMulitTreeValue == model.FieldType || ControlType.LabMulitTreeValueParam == model.FieldType || ControlType.LabTreeLookValue == model.FieldType || ControlType.LabCheckTreeLookValue == model.FieldType || ControlType.LabTreeLastlevelValue == model.FieldType || ControlType.LabCheckTreeLastlevelValue == model.FieldType) ? autoTreeEdit.EditValue : autoTreeEdit.EditText;
break;
case ControlType.LabCheckMultiSelectValue:
case ControlType.LabCheckMultiSelectText:
@@ -2961,7 +2969,7 @@ namespace Lskj.Control.Model
#endregion
#region
string idValue = primaryValue;
if (!string.IsNullOrWhiteSpace(SystemModel.AttachmentAssociated))
if (SystemModel!=null&&!string.IsNullOrWhiteSpace(SystemModel.AttachmentAssociated))
{
idValue = GetControlValue(SystemModel.AttachmentAssociated);
}
@@ -3020,7 +3028,7 @@ namespace Lskj.Control.Model
}
#endregion
#region
if (!string.IsNullOrEmpty(SystemModel.AfterSaveExec))
if (SystemModel!=null&&!string.IsNullOrEmpty(SystemModel.AfterSaveExec))
{
DataRow menuRow = BaseModuleImpl.GetBaseGridRightMenuById(SystemModel.AfterSaveExec);
if (menuRow != null)
@@ -3845,11 +3853,11 @@ namespace Lskj.Control.Model
model.FieldType = string.IsNullOrEmpty(item["fieldTypeId"] + "") ? 0 : Convert.ToInt32(item["fieldTypeId"] + "");
if (model.FieldType == 42)
{
model.FieldType = 116;
model.FieldType = 160;
}
if (model.FieldType == 43)
{
model.FieldType = 117;
model.FieldType = 161;
}
@@ -4056,13 +4064,25 @@ namespace Lskj.Control.Model
case ControlType.LabTreeLastlevelText:
case ControlType.LabCheckTreeLastlevelValue:
case ControlType.LabCheckTreeLastlevelText:
case ControlType.LabMultiComTreeboxValue:
case ControlType.LabMultiComTreeboxText:
case ControlType.LabMultiComTreeboxValueParam:
case ControlType.LabMultiComTreeboxTextParam:
// 自动树节点搜索框
LabelAutoTreeEdit autoTreeEdit = new LabelAutoTreeEdit();
autoTreeEdit.isMultiClick = (ControlType.LabMulitTreeValue == model.FieldType || ControlType.LabMulitTreeText == model.FieldType || ControlType.LabMulitTreeValueParam == model.FieldType || ControlType.LabMulitTreeTextParam == model.FieldType);
autoTreeEdit.ValueMember = ControlType.LabMulitTreeValue == model.FieldType || ControlType.LabMulitTreeValueParam == model.FieldType || ControlType.LabTreeLookValue == model.FieldType || ControlType.LabCheckTreeLookValue == model.FieldType || ControlType.LabTreeLastlevelValue == model.FieldType || ControlType.LabCheckTreeLastlevelValue == model.FieldType ? model.ValueMember : model.TextMember;
autoTreeEdit.isMultiClick = (ControlType.LabMulitTreeValue == model.FieldType || ControlType.LabMulitTreeText == model.FieldType || ControlType.LabMulitTreeValueParam == model.FieldType || ControlType.LabMulitTreeTextParam == model.FieldType|| ControlType.LabMultiComTreeboxValue == model.FieldType || ControlType.LabMultiComTreeboxText == model.FieldType || ControlType.LabMultiComTreeboxValueParam == model.FieldType || ControlType.LabMultiComTreeboxTextParam == model.FieldType);
autoTreeEdit.ValueMember = ControlType.LabMultiComTreeboxValueParam == model.FieldType || ControlType.LabMultiComTreeboxValue == model.FieldType||ControlType.LabMulitTreeValue == model.FieldType || ControlType.LabMulitTreeValueParam == model.FieldType || ControlType.LabTreeLookValue == model.FieldType || ControlType.LabCheckTreeLookValue == model.FieldType || ControlType.LabTreeLastlevelValue == model.FieldType || ControlType.LabCheckTreeLastlevelValue == model.FieldType ? model.ValueMember : model.TextMember;
autoTreeEdit.ValueField = model.ValueMember;
autoTreeEdit.TextField = model.TextMember;
if (ControlType.LabTreeLastlevelValue == model.FieldType || ControlType.LabTreeLastlevelText == model.FieldType || ControlType.LabCheckTreeLastlevelValue == model.FieldType || ControlType.LabCheckTreeLastlevelText == model.FieldType) autoTreeEdit.isRootNode = false;
//工具中和bs里 132-135都是只能选末级,136-139可以选中全部
if (ControlType.LabMultiComTreeboxValue == model.FieldType || ControlType.LabMultiComTreeboxText == model.FieldType || ControlType.LabMultiComTreeboxValueParam == model.FieldType || ControlType.LabMultiComTreeboxTextParam == model.FieldType)
{
autoTreeEdit.TextEdit.SelectAll = true;
}
//autoTreeEdit.FormKey = model.FieldName + "_" + model.FormKey;
//autoEdit.SetDataSource(dataSource);
autoTreeEdit.TextEdit.SourceSQL = model.SourceSql;
@@ -5847,4 +5867,30 @@ 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
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;
}
}
}
+3 -25
View File
@@ -224,7 +224,8 @@ namespace Lskj.Control
/// </summary>
public void SetValue()
{
string ids = model.TreeCheckModel.Equals("1") ? this.TreeViewExObj.GetCheckValues(true) : this.TreeViewExObj.GetCheckValues();
//string ids = model.TreeCheckModel.Equals("1") ? this.TreeViewExObj.GetCheckValues(true) : this.TreeViewExObj.GetCheckValues();
string ids = isRootNode ? this.TreeViewExObj.GetCheckValues(true) : this.TreeViewExObj.GetCheckValues(false);
if (ids != null)
{
ids = ids.Replace("'", "");
@@ -278,27 +279,4 @@ namespace Lskj.Control
for (int i = 0; i < calcLen; i++)
{
string valueValue = ValueMember.Substring(0, 1) != "_" ? table.Rows[i][ValueMember] + "" : "";
string textValue = TextMember.Substring(0, 1) != "_" ? table.Rows[i][TextMember] + "" : "";
int valueWidth = GraphicsText.GetTextWidth(valueValue);
int textWidth = GraphicsText.GetTextWidth(textValue);
if (iValueWidth < valueWidth) iValueWidth = valueWidth;
if (iTextWidth < textWidth) iTextWidth = textWidth;
}
// 由于计算有误差,所以计算列结果都加10px
iValueWidth = iValueWidth < 50 ? 50 : iValueWidth + 10;
iTextWidth = iTextWidth + 10;
int popupWidth = +iValueWidth + iTextWidth + iRemarkWidth + iOtherWidth + 20;
this.Width = popupWidth;
});
}
}
}
catch (Exception)
{
throw;
}
}
}
}
string textValue = TextMember.Substring