SVN r1047
SVN-Revision: r1047
This commit is contained in:
@@ -579,7 +579,7 @@ namespace Lskj.Control.Model
|
||||
//LogUtil.WriteDebug(model.MenuTabName, "打印", "右键打印:"+ model.MenuName, "打印格式:" + paramList[1]);
|
||||
break;
|
||||
case 4://调用主程序右键直接添加到page上
|
||||
resultValue = ExecDynamicLinkLibary(model, paramList, dllName, true);
|
||||
resultValue = ExecDynamicLinkLibary(model, paramList, dllName, true, rowData);
|
||||
break;
|
||||
case 5://执行存储过程获取下载url集合执行批量下载
|
||||
resultValue = ExecDownloadFiles(model, paramList, rows);
|
||||
@@ -587,6 +587,9 @@ namespace Lskj.Control.Model
|
||||
case 6://下载后打开文件
|
||||
resultValue = OpenAfterDownloading(model, paramList);
|
||||
break;
|
||||
case 7://打开导入覆盖控件
|
||||
resultValue = OpenFrmcCover(model, paramList);
|
||||
break;
|
||||
case 0: // 执行sql语句
|
||||
resultValue = ExecSqlValue(model, rowData, actionSql);
|
||||
break;
|
||||
@@ -613,6 +616,69 @@ namespace Lskj.Control.Model
|
||||
}
|
||||
|
||||
|
||||
public bool OpenFrmcCover(GridRightMenuModel model, List<string> paramList)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(paramList[1]) || string.IsNullOrWhiteSpace(paramList[2]))
|
||||
{
|
||||
MessageUtil.Show("模块编号或主键名称未配置");
|
||||
return false;
|
||||
}
|
||||
string primaryKey = paramList[2];
|
||||
FrmCover frmCover = new FrmCover(paramList[1], paramList[2]);
|
||||
if (frmCover.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
//反写数据源
|
||||
DataTable ReverseData = frmCover.ReverseData;
|
||||
//外部数据
|
||||
DataTable table = GetDataTable();
|
||||
|
||||
// 2. 筛选出 ReverseData 和 table 中名称和数据类型都相同的列(排除主键列,避免重复赋值)
|
||||
var commonColumns = ReverseData.Columns.Cast<DataColumn>()
|
||||
.Where(col1 => col1.ColumnName != primaryKey // 跳过 id 列(无需更新)
|
||||
&& table.Columns.Contains(col1.ColumnName) // 列名存在于 table2
|
||||
)
|
||||
.Select(col => col.ColumnName)
|
||||
.ToList();
|
||||
|
||||
if (!commonColumns.Any())
|
||||
{
|
||||
// 没有可匹配的列,直接返回
|
||||
return false;
|
||||
}
|
||||
|
||||
// 3. 遍历 导入数据 的每一行,根据主键匹配 外部数据 的行并更新
|
||||
foreach (DataRow row1 in ReverseData.Rows)
|
||||
{
|
||||
// 获取当前行的主键值
|
||||
var idValue = row1[primaryKey];
|
||||
if (idValue == DBNull.Value)
|
||||
continue; // 跳过 id 为空的行
|
||||
|
||||
// 在 table2 中查找 id 匹配的行(使用 Select 方法快速定位)
|
||||
DataRow[] matchedRows = table.Select($""+ primaryKey + " = '"+ idValue + "'");
|
||||
|
||||
// 只处理找到唯一匹配行的情况
|
||||
if (matchedRows.Length == 1)
|
||||
{
|
||||
DataRow row2 = matchedRows[0];
|
||||
// 遍历所有相同列,将 反写数据源 的值赋给 外部数据源
|
||||
foreach (string colName in commonColumns)
|
||||
{
|
||||
// 避免将 DBNull 赋值给不允许为空的列(可选处理)
|
||||
if (row2[colName] != DBNull.Value || ReverseData.Columns[colName].AllowDBNull)
|
||||
{
|
||||
row2[colName] = row1[colName];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 下载后打开程序
|
||||
/// </summary>
|
||||
@@ -753,7 +819,7 @@ namespace Lskj.Control.Model
|
||||
catch (Exception)
|
||||
{
|
||||
result = 0;
|
||||
if (result==0 && ERPInfo.Instance.UserName.Equals("管理员"))
|
||||
if (result==0 )
|
||||
{
|
||||
SqlStoredProcedurepPrompt.GenerateProcedureExecutionScript(procName, paramList, isFirstFlag, comfirmFlag );
|
||||
}
|
||||
@@ -773,7 +839,7 @@ namespace Lskj.Control.Model
|
||||
switch (rValue)
|
||||
{
|
||||
case -1:
|
||||
if (rValue == -1 && ERPInfo.Instance.UserName.Equals("管理员"))
|
||||
if (rValue == -1)
|
||||
{
|
||||
SqlStoredProcedurepPrompt.GenerateProcedureExecutionScript(procName, paramList, isFirstFlag, comfirmFlag);
|
||||
}
|
||||
@@ -909,7 +975,7 @@ namespace Lskj.Control.Model
|
||||
/// <para>版本:1.0</para>
|
||||
/// </summary>
|
||||
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
|
||||
private bool ExecDynamicLinkLibary(GridRightMenuModel model, List<string> paramList, string dllName, bool isAddPage = false)
|
||||
private bool ExecDynamicLinkLibary(GridRightMenuModel model, List<string> paramList, string dllName, bool isAddPage = false,DataRow rowData = null)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(dllName))
|
||||
{
|
||||
@@ -1124,6 +1190,12 @@ namespace Lskj.Control.Model
|
||||
string guid = Guid.NewGuid().ToString();
|
||||
XtraTabPage tp = new XtraTabPage();
|
||||
tp.Text = model.MenuName;
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(model.PageName))
|
||||
{
|
||||
tp.Text = ReplaceHelper.ReplaceRowParam(rowData, model.PageName).Trim();
|
||||
}
|
||||
|
||||
tp.Tag = guid;
|
||||
// 这个必须有不然会提示:"不能向tabControl中添加顶级控件"
|
||||
form.SubForm.TopLevel = false;
|
||||
@@ -1669,6 +1741,17 @@ namespace Lskj.Control.Model
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取外面的数据源
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected virtual DataTable GetDataTable()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// <para>说明:处理右键菜单10个扩展参数</para>
|
||||
/// <para>创建人:龚宇超</para>
|
||||
|
||||
@@ -191,6 +191,12 @@ namespace Lskj.Control.Model
|
||||
{
|
||||
return this.GridControlObj.GetViewFocusedDataRows();
|
||||
}
|
||||
|
||||
protected override DataTable GetDataTable()
|
||||
{
|
||||
return this.GridControlObj.GridControl.DataSourceTable();
|
||||
}
|
||||
|
||||
protected override void MenuStripClickBefore(ToolStripMenuItem item, GridRightMenuModel model)
|
||||
{
|
||||
this._oldSelectRows = this._gridView.GetSelectedRows();
|
||||
|
||||
@@ -323,7 +323,10 @@ namespace Lskj.Control.Model
|
||||
/// sql执行成功不提示
|
||||
/// </summary>
|
||||
public bool DisableSuccessfulPrompt;
|
||||
|
||||
/// <summary>
|
||||
/// 页签名称(审核模块以页签形式打开,可以配置单据id)
|
||||
/// </summary>
|
||||
public string PageName;
|
||||
|
||||
/// <summary>
|
||||
/// 需要单独处理的exe程序
|
||||
@@ -447,4 +450,5 @@ namespace Lskj.Control.Model
|
||||
this.ExecuteFirstCode = item["ExecuteFirstCode"] + "";
|
||||
if (item.Table.Columns.Contains("DuringExecutionMinimize"))
|
||||
this.DuringExecutionMinimize = string.IsNullOrWhiteSpace(item["DuringExecutionMinimize"] + "") ? false : "1".Equals(item["DuringExecutionMinimize"] + "");
|
||||
if
|
||||
if (item.Table.Columns.Contains("SqlDirectExecution"))
|
||||
this.SqlDirectExecution = string.IsNullOrWhi
|
||||
@@ -38,6 +38,13 @@ namespace Lskj.Control.Model.MenuStrip
|
||||
{
|
||||
return this.TreeGridControlObj.GetViewFocusedDataRows();
|
||||
}
|
||||
protected override DataTable GetDataTable()
|
||||
{
|
||||
return this.TreeGridControlObj.GetGridViewDataSource();
|
||||
}
|
||||
|
||||
|
||||
|
||||
protected override List<string> HandleRightMenuParams(List<string> paramList, DataRow rowData, DataRow[] rowDatas = null, int actionType = 0)
|
||||
{
|
||||
List<string> handleParamList = base.HandleRightMenuParams(paramList, rowData, rowDatas, actionType);
|
||||
|
||||
Reference in New Issue
Block a user