refactor: 迁移初始化参数缓存并优化等待界面
This commit is contained in:
@@ -869,6 +869,7 @@ namespace Lskj.Business.Impl
|
||||
+ ")a join p_formmenuconfigtab b on a.LMenuId=b.MenuId" +
|
||||
" left join P_SubSystemTab z on a.LSubSysId=z.SubSysId where LinkModeTag=1 order by grouptagid,ItemTagId", ERPInfo.Instance.UserId);
|
||||
|
||||
|
||||
return SqlHelper.ExecuteDataTable(sqlValue);
|
||||
}
|
||||
|
||||
|
||||
@@ -87,7 +87,6 @@
|
||||
<Compile Include="Impl\BillImpl.cs" />
|
||||
<Compile Include="Impl\ConditionalCaching.cs" />
|
||||
<Compile Include="Impl\ErrorMessage.cs" />
|
||||
<Compile Include="Impl\InitialParamCache.cs" />
|
||||
<Compile Include="Impl\LanguageTranslation.cs" />
|
||||
<Compile Include="Impl\MainImpl.cs" />
|
||||
<Compile Include="Impl\BillAuditImpl.cs" />
|
||||
@@ -155,4 +154,4 @@
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
</Project>
|
||||
|
||||
@@ -1371,56 +1371,91 @@ namespace Lskj.Control
|
||||
{
|
||||
try
|
||||
{
|
||||
string billNo = this.SysModel.BillDocumentId;
|
||||
List<string> billNoItems = new List<string>();
|
||||
if (BaseAccraditModelObj.MuitlAuditFlag || BaseAccraditModelObj.MuitlAuditBackFlag)
|
||||
{
|
||||
foreach (TabPageObj tab in this._tabPageObjs)
|
||||
{
|
||||
if (tab.TabPage == this.tabMain.SelectedTabPage)
|
||||
{
|
||||
foreach (TabPageItemObj item in tab.TabPageItemObjs)
|
||||
{
|
||||
int[] mSelectRows = item.GridControlObj.GridView.GetSelectedRows();
|
||||
foreach (int itemIndex in mSelectRows)
|
||||
{
|
||||
DataRow selectRow = item.GridControlObj.GridView.GetDataRow(itemIndex);
|
||||
if (selectRow.Table.Columns.Contains(this.BillModelObj.PrimaryKey))
|
||||
{
|
||||
billNoItems.Add(selectRow[this.BillModelObj.PrimaryKey] + "");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
billNoItems.Add(this.SysModel.BillDocumentId);
|
||||
}
|
||||
|
||||
string printPath = PubUtil.PrintFileAbsolutelyPath;
|
||||
string printFile = e.Item.Tag + "";
|
||||
if (!string.IsNullOrEmpty(billNo))
|
||||
|
||||
foreach (string billNo in billNoItems)
|
||||
{
|
||||
DataRow masterRow = BillImpl.GetDataRowResult(ReplaceHelper.ReplaceParamToValue(this.BillModelObj.MasterSql, billNo));
|
||||
if (masterRow == null)
|
||||
//string billNo = this.SysModel.BillDocumentId;
|
||||
|
||||
if (!string.IsNullOrEmpty(billNo))
|
||||
{
|
||||
MessageUtil.Show(ResourceKeys.DataNotFount);
|
||||
return;
|
||||
}
|
||||
if (!ReplaceHelper.ReplaceRowParamCond(masterRow, this.BillModelObj.PrintCond))
|
||||
{
|
||||
MessageUtil.Show(ResourceKeys.DisSatisfyPrintCond);
|
||||
return;
|
||||
}
|
||||
|
||||
string tmpSql = ReplaceHelper.ReplaceRowParam(masterRow, this.BillModelObj.PrintSql);
|
||||
string tmpSql1 = ReplaceHelper.ReplaceRowParam(masterRow, this.BillModelObj.PrintSql1);
|
||||
string tmpSql2 = ReplaceHelper.ReplaceRowParam(masterRow, this.BillModelObj.PrintSql2);
|
||||
|
||||
|
||||
if (printFile.Contains(PrintUtil.TemplateFlag))
|
||||
{
|
||||
string mainSql = string.Empty;
|
||||
List<string> tmpSqls = new List<string>();
|
||||
if (_printSaveParams != null && _printSaveParams.Count > 0)
|
||||
DataRow masterRow = BillImpl.GetDataRowResult(ReplaceHelper.ReplaceParamToValue(this.BillModelObj.MasterSql, billNo));
|
||||
if (masterRow == null)
|
||||
{
|
||||
_printSaveParams[5] = mainSql = ReplaceHelper.ReplaceRowParam(masterRow, _mainPrintSql);
|
||||
_printSaveParams[3] = masterRow.Table.Columns.Contains(_printSaveParams[2] + "") ? masterRow[_printSaveParams[2]] + "" : masterRow[BillModelObj.PrimaryKey] + "";
|
||||
tmpSqls.Add(mainSql);
|
||||
tmpSqls.Add(tmpSql1);
|
||||
tmpSqls.AddRange(tmpSql2.Split(';').ToList());
|
||||
MessageUtil.Show(ResourceKeys.DataNotFount);
|
||||
return;
|
||||
}
|
||||
if (!ReplaceHelper.ReplaceRowParamCond(masterRow, this.BillModelObj.PrintCond))
|
||||
{
|
||||
MessageUtil.Show(ResourceKeys.DisSatisfyPrintCond);
|
||||
return;
|
||||
}
|
||||
|
||||
string tmpSql = ReplaceHelper.ReplaceRowParam(masterRow, this.BillModelObj.PrintSql);
|
||||
string tmpSql1 = ReplaceHelper.ReplaceRowParam(masterRow, this.BillModelObj.PrintSql1);
|
||||
string tmpSql2 = ReplaceHelper.ReplaceRowParam(masterRow, this.BillModelObj.PrintSql2);
|
||||
|
||||
|
||||
if (printFile.Contains(PrintUtil.TemplateFlag))
|
||||
{
|
||||
string mainSql = string.Empty;
|
||||
List<string> tmpSqls = new List<string>();
|
||||
if (_printSaveParams != null && _printSaveParams.Count > 0)
|
||||
{
|
||||
_printSaveParams[5] = mainSql = ReplaceHelper.ReplaceRowParam(masterRow, _mainPrintSql);
|
||||
_printSaveParams[3] = masterRow.Table.Columns.Contains(_printSaveParams[2] + "") ? masterRow[_printSaveParams[2]] + "" : masterRow[BillModelObj.PrimaryKey] + "";
|
||||
tmpSqls.Add(mainSql);
|
||||
tmpSqls.Add(tmpSql1);
|
||||
tmpSqls.AddRange(tmpSql2.Split(';').ToList());
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(tmpSql)) tmpSqls.Add(tmpSql);
|
||||
if (!string.IsNullOrWhiteSpace(tmpSql1)) tmpSqls.Add(tmpSql1);
|
||||
if (!string.IsNullOrWhiteSpace(tmpSql2)) tmpSqls.AddRange(tmpSql2.Split(';').ToList());
|
||||
}
|
||||
PrintUtil.OnAfterPrint -= new EventHandler(OnReportPrintAfter);
|
||||
PrintUtil.OnAfterPrint += new EventHandler(OnReportPrintAfter);
|
||||
PrintUtil.FastReportPrint(tmpSqls, printFile, _isExcPrint);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(tmpSql)) tmpSqls.Add(tmpSql);
|
||||
if (!string.IsNullOrWhiteSpace(tmpSql1)) tmpSqls.Add(tmpSql1);
|
||||
if (!string.IsNullOrWhiteSpace(tmpSql2)) tmpSqls.AddRange(tmpSql2.Split(';').ToList());
|
||||
DelphiHelper.LoadDelphiDll(printPath, printPath, printFile, tmpSql, tmpSql1, this.BillModelObj.PrintFileType, tmpSql2);
|
||||
}
|
||||
PrintUtil.OnAfterPrint -= new EventHandler(OnReportPrintAfter);
|
||||
PrintUtil.OnAfterPrint += new EventHandler(OnReportPrintAfter);
|
||||
PrintUtil.FastReportPrint(tmpSqls, printFile, _isExcPrint);
|
||||
}
|
||||
else
|
||||
{
|
||||
DelphiHelper.LoadDelphiDll(printPath, printPath, printFile, tmpSql, tmpSql1, this.BillModelObj.PrintFileType, tmpSql2);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
@@ -30,4 +30,4 @@ namespace Lskj.Control
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,4 +41,4 @@ namespace Lskj.Control
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -520,10 +520,9 @@ namespace Lskj.Control.Model
|
||||
{
|
||||
// 只执行一次,则后续不再执行.
|
||||
if (execOnlyOne && i > 0) continue;
|
||||
|
||||
LogUtil.WriteDebug(model.MenuTabName, "执行右键", model.MenuName, "右键id:" + model.Id);
|
||||
|
||||
DataRow rowData = rows[i];
|
||||
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(model.BeforeMsg) && tipOnlyOne)
|
||||
{
|
||||
tipOnlyOne = false;
|
||||
@@ -561,6 +560,33 @@ namespace Lskj.Control.Model
|
||||
}
|
||||
|
||||
paramList = this.HandleRightMenuParams(paramListEx, rowData, model.Mergeexec ? rows : null, model.ActionType);
|
||||
|
||||
string parameterText = string.Empty;//"{0}_{1}_{2}_{3}_{4}_{5}_{6}_{7}_{8}_{9}_{10}_{11}_{12}_{13}";
|
||||
if (model.ActionType == 0 || model.ActionType == 1)
|
||||
{
|
||||
string newSql = string.Empty;
|
||||
if (model.ActionType == 0)
|
||||
{
|
||||
newSql = !string.IsNullOrEmpty(actionSql) ? actionSql : model.Action;
|
||||
newSql=ReplaceHelper.ReplaceRowParam(rowData, newSql);
|
||||
}
|
||||
if (model.ActionType == 1)
|
||||
{
|
||||
List<string> procParams = ReplaceHelper.GetParamFields(model.Action);
|
||||
newSql = model.Action.Replace(procParams[0], "").Trim();
|
||||
}
|
||||
parameterText += newSql;
|
||||
foreach (string item in paramList)
|
||||
{
|
||||
parameterText += "_" + item;
|
||||
}
|
||||
}
|
||||
|
||||
string LogText = string.Format("【{0}】执行模块【{1}】的右键【{2}】参数:{3}", ERPInfo.Instance.UserName, model.MenuTabName, model.MenuName, parameterText);
|
||||
LogUtil.WriteDebug(model.MenuTabName, "执行右键", "右键id:" + model.Id, LogText);
|
||||
|
||||
|
||||
|
||||
string maintabFocusedRowJson = "";
|
||||
if (rowData != null)
|
||||
{
|
||||
|
||||
@@ -20,6 +20,9 @@ namespace Lskj.Control.Model
|
||||
public static class SplashForm
|
||||
{
|
||||
private static SplashScreenManager _loadForm;
|
||||
private static readonly object _syncRoot = new object();
|
||||
// FrmSplashScreen 继承 SplashScreen,创建 SplashScreenManager 时会自动显示。
|
||||
private static bool _isShown;
|
||||
|
||||
/// <summary>
|
||||
/// 等待窗口对象
|
||||
@@ -28,12 +31,15 @@ namespace Lskj.Control.Model
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_loadForm == null)
|
||||
lock (_syncRoot)
|
||||
{
|
||||
SplashFormProperties properties = new SplashFormProperties();
|
||||
_loadForm = new SplashScreenManager(typeof(FrmSplashScreen), properties);
|
||||
if (_loadForm == null)
|
||||
{
|
||||
SplashFormProperties properties = new SplashFormProperties();
|
||||
_loadForm = new SplashScreenManager(typeof(FrmSplashScreen), properties);
|
||||
}
|
||||
return _loadForm;
|
||||
}
|
||||
return _loadForm;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
@@ -47,10 +53,24 @@ namespace Lskj.Control.Model
|
||||
/// </summary>
|
||||
public static void ShowForm()
|
||||
{
|
||||
bool flag = !LoadForm.IsSplashFormVisible;
|
||||
if (flag)
|
||||
try
|
||||
{
|
||||
_loadForm.ShowWaitForm();
|
||||
lock (_syncRoot)
|
||||
{
|
||||
if (!_isShown || _loadForm == null)
|
||||
{
|
||||
SplashScreenManager manager = LoadForm;
|
||||
_isShown = manager != null;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
lock (_syncRoot)
|
||||
{
|
||||
_isShown = false;
|
||||
}
|
||||
throw;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
@@ -64,10 +84,44 @@ namespace Lskj.Control.Model
|
||||
/// </summary>
|
||||
public static void HideForm()
|
||||
{
|
||||
bool isSplashFormVisible = LoadForm.IsSplashFormVisible;
|
||||
if (isSplashFormVisible)
|
||||
try
|
||||
{
|
||||
_loadForm.CloseWaitForm();
|
||||
lock (_syncRoot)
|
||||
{
|
||||
if (_loadForm == null || !_isShown)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_loadForm.CloseWaitForm();
|
||||
_loadForm.WaitForSplashFormClose();
|
||||
_isShown = false;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
lock (_syncRoot)
|
||||
{
|
||||
_isShown = false;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
lock (_syncRoot)
|
||||
{
|
||||
SplashScreenManager manager = _loadForm;
|
||||
_loadForm = null;
|
||||
if (manager != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
manager.Dispose();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -786,7 +786,7 @@ namespace Lskj.Control
|
||||
{
|
||||
try
|
||||
{
|
||||
this.pl_main.Visible = false;
|
||||
//this.pl_main.Visible = false;
|
||||
if (sysModel != null && dyncModel != null)
|
||||
{
|
||||
this.SysModel = sysModel;
|
||||
@@ -1446,7 +1446,7 @@ namespace Lskj.Control
|
||||
}
|
||||
finally
|
||||
{
|
||||
this.pl_main.Visible = true;
|
||||
//this.pl_main.Visible = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -402,6 +402,7 @@ namespace Lskj.Core
|
||||
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
|
||||
public bool CreateConnection(string Connection = "", ConnectionType connectionType = ConnectionType.SqlServer)
|
||||
{
|
||||
InitialParamCache.Clear();
|
||||
bool isConnect = false;
|
||||
try
|
||||
{
|
||||
|
||||
@@ -25,6 +25,7 @@ using Lskj.Main.Model;
|
||||
using Lskj.Business;
|
||||
using System.Collections;
|
||||
using System.Threading.Tasks;
|
||||
using Lskj.Core;
|
||||
|
||||
namespace Lskj.PubModule
|
||||
{
|
||||
@@ -173,6 +174,18 @@ namespace Lskj.PubModule
|
||||
|
||||
}
|
||||
|
||||
if (!e.Cancel)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(this.mControl.SysModel.FrmCloseStored))
|
||||
{
|
||||
string sql = this.mControl.SysModel.FrmCloseStored;
|
||||
if (this.mControl.SearchObj != null) sql = this.mControl.SearchObj.ReplaceControlValue(sql);
|
||||
sql = ReplaceHelper.ReplaceUserInfo(sql);
|
||||
string result = SqlHelper.ExecuteScalar(sql) + "";
|
||||
if (!string.IsNullOrEmpty(result)) MessageUtil.Show(result);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#region 设置窗口大小
|
||||
|
||||
@@ -110,6 +110,10 @@
|
||||
<Project>{447CDC40-659F-4CCA-9ED6-8E818B4CF8BF}</Project>
|
||||
<Name>Lskj.Control</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Lskj.Core\Lskj.Core.csproj">
|
||||
<Project>{2A1BE6AC-1077-491B-A754-C5822FE8121E}</Project>
|
||||
<Name>Lskj.Core</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Lskj.Data\Lskj.Data.csproj">
|
||||
<Project>{308B9B18-9BE2-495C-9C64-EED81D567813}</Project>
|
||||
<Name>Lskj.Data</Name>
|
||||
|
||||
@@ -26,6 +26,7 @@ using Lskj.Business;
|
||||
using Lskj.Main.Model;
|
||||
using System.Collections;
|
||||
using System.Threading.Tasks;
|
||||
using Lskj.Core;
|
||||
|
||||
namespace Lskj.PubModuleDetail
|
||||
{
|
||||
@@ -186,6 +187,15 @@ namespace Lskj.PubModuleDetail
|
||||
// between module cycles.
|
||||
if (!e.Cancel)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(this.mControl.SysModel.FrmCloseStored))
|
||||
{
|
||||
string sql = this.mControl.SysModel.FrmCloseStored;
|
||||
if (this.mControl.SearchObj!=null) sql=this.mControl.SearchObj.ReplaceControlValue(sql);
|
||||
sql = ReplaceHelper.ReplaceUserInfo(sql);
|
||||
string result = SqlHelper.ExecuteScalar(sql) + "";
|
||||
if (!string.IsNullOrEmpty(result)) MessageUtil.Show(result);
|
||||
}
|
||||
|
||||
this.mControl.ReleaseResourcesForDispose();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,6 +102,10 @@
|
||||
<Project>{447CDC40-659F-4CCA-9ED6-8E818B4CF8BF}</Project>
|
||||
<Name>Lskj.Control</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Lskj.Core\Lskj.Core.csproj">
|
||||
<Project>{2A1BE6AC-1077-491B-A754-C5822FE8121E}</Project>
|
||||
<Name>Lskj.Core</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Lskj.Data\Lskj.Data.csproj">
|
||||
<Project>{308B9B18-9BE2-495C-9C64-EED81D567813}</Project>
|
||||
<Name>Lskj.Data</Name>
|
||||
|
||||
@@ -195,7 +195,7 @@ namespace Lskj.PubUserTomodule.AuditPermissionControls
|
||||
this.PlStep1Container.Controls.Clear();
|
||||
DataTable table = isBasis ? WorkFlowBaseImpl.GetBaseFlowData(mMenuCode) : WorkFlowBillImpl.GetBillFlowData(mMenuCode);
|
||||
BillflowModelList.Clear();
|
||||
BillflowModelList.Clear();
|
||||
BaseflowModelList.Clear();
|
||||
if (table.Rows.Count == 0)
|
||||
{
|
||||
this.panelControl1.Visible = false;
|
||||
|
||||
@@ -2,7 +2,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
|
||||
namespace Lskj.Business.Impl
|
||||
namespace Lskj.Util
|
||||
{
|
||||
/// <summary>
|
||||
/// 单次模块初始化期间复用的参数缓存。
|
||||
@@ -172,6 +172,7 @@
|
||||
<Compile Include="HttpUtil\NewEmp.cs" />
|
||||
<Compile Include="HttpUtil\PostUtil.cs" />
|
||||
<Compile Include="HttpUtil\RequestUtil.cs" />
|
||||
<Compile Include="InitialParamCache.cs" />
|
||||
<Compile Include="IForm.cs" />
|
||||
<Compile Include="ImageHelper.cs" />
|
||||
<Compile Include="IniHelper.cs" />
|
||||
@@ -216,4 +217,4 @@
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
</Project>
|
||||
|
||||
Reference in New Issue
Block a user