ab56a9bcf7
SVN-Revision: r240
703 lines
35 KiB
C#
703 lines
35 KiB
C#
using DevExpress.XtraGrid.Views.Grid;
|
|
using DevExpress.XtraTab;
|
|
using Lskj.Business;
|
|
using Lskj.Business.Impl;
|
|
using Lskj.Control;
|
|
using Lskj.Control.BrowserSetting;
|
|
using Lskj.Control.Model;
|
|
using Lskj.Core;
|
|
using Lskj.Model;
|
|
using Lskj.PubArtworkDynamic.Control;
|
|
using Lskj.Util;
|
|
using Newtonsoft.Json.Linq;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Windows.Forms;
|
|
|
|
namespace Lskj.PubArtworkDynamic
|
|
{
|
|
public partial class FrmMain : BaseForm
|
|
{
|
|
/// <summary>
|
|
/// 模块类
|
|
/// </summary>
|
|
public ViewModel MainViewModel;
|
|
/// <summary>
|
|
/// 左侧节点上方主键
|
|
/// </summary>
|
|
private string leftTopGridIdValue
|
|
{
|
|
get
|
|
{
|
|
ModuleGridDetail moduleGridDetail = (ModuleGridDetail)MainViewModel.LeftTabControl.TabControlObj.SelectedTabPage.Controls[0];
|
|
string rtnString = "";
|
|
DataRow dataRow = moduleGridDetail.TopGridEx.GridView.GetFocusedDataRow();
|
|
if (dataRow != null)
|
|
{
|
|
if (!string.IsNullOrEmpty(MainViewModel.MoudleMainObj.UploadIdValueField) && dataRow.Table.Columns.Contains(MainViewModel.MoudleMainObj.UploadIdValueField))
|
|
{
|
|
rtnString = dataRow[MainViewModel.MoudleMainObj.UploadIdValueField] + "";
|
|
}
|
|
}
|
|
return rtnString;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 左侧节点上方主键
|
|
/// </summary>
|
|
private string leftBottomGridIdValue
|
|
{
|
|
get
|
|
{
|
|
ModuleGridDetail moduleGridDetail = (ModuleGridDetail)MainViewModel.LeftTabControl.TabControlObj.SelectedTabPage.Controls[0];
|
|
string rtnString = "";
|
|
DataRow dataRow = moduleGridDetail.BottomGridEx.GridView.GetFocusedDataRow();
|
|
if (dataRow != null)
|
|
{
|
|
if (!string.IsNullOrEmpty(MainViewModel.MoudleMainObj.UploadIdValueField) && dataRow.Table.Columns.Contains(MainViewModel.MoudleMainObj.UploadIdValueField))
|
|
{
|
|
rtnString = dataRow[MainViewModel.MoudleMainObj.UploadIdValueField] + "";
|
|
}
|
|
}
|
|
return rtnString;
|
|
}
|
|
}
|
|
public FrmMain()
|
|
{
|
|
InitializeComponent();
|
|
Load += OnFrmMainLoad;
|
|
}
|
|
/// <summary>
|
|
/// 动态链接库Model
|
|
/// </summary>
|
|
public DynamicDllModel SysModel;
|
|
/// <summary>
|
|
/// 底部左侧搜索
|
|
/// </summary>
|
|
public MyControl BottomLeftSearchObj;
|
|
/// <summary>
|
|
/// 底部右侧搜索
|
|
/// </summary>
|
|
public MyControl BottomRightSearchObj;
|
|
#region 事件
|
|
/// <summary>
|
|
/// 加载完成后
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void OnFrmMainLoad(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
MainViewModel = new ViewModel(SysModel)
|
|
{
|
|
LeftTabControl = tabControlLeft,
|
|
RightTabControl = tabControlRight,
|
|
BottomLeftGridEx = gmLeft_Control,
|
|
BottomRightGridEx = gmRight_Control
|
|
};
|
|
InitControls(MainViewModel);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageUtil.Show(ex.Message);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 底部左侧右键菜单回调
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void OnRightMenuLeftCallBack(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
/// <summary>
|
|
/// 底部右侧右键菜单回调
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void OnRightMenuRightCallBack(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
/// <summary>
|
|
/// 分隔条位置改变
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void OnSplitterPositionChanged(object sender, EventArgs e)
|
|
{
|
|
if (sender == this.splitMainControl)
|
|
{
|
|
IniHelper.Write(string.Format("Step_spliterPositionMain_{0}", this.MainViewModel.SysModel.ModuleCode), this.splitMainControl.SplitterPosition + "");
|
|
}
|
|
else if (sender == this.splitRightControl)
|
|
{
|
|
IniHelper.Write(string.Format("Step_spliterPositionRight_{0}", this.MainViewModel.SysModel.ModuleCode), this.splitRightControl.SplitterPosition + "");
|
|
}
|
|
else if (sender == this.splitBottomControl)
|
|
{
|
|
IniHelper.Write(string.Format("Step_spliterPositionBottom_{0}", this.MainViewModel.SysModel.ModuleCode), this.splitBottomControl.SplitterPosition + "");
|
|
}
|
|
}
|
|
#endregion
|
|
/// <summary>
|
|
/// 初始化控件
|
|
/// </summary>
|
|
private void InitControls(ViewModel mainViewModel)
|
|
{
|
|
InitializeSplitPosition();
|
|
InitBottomGrid();
|
|
InitLeftTabPages(mainViewModel.LeftDetailRows);
|
|
InitRightTabPages(mainViewModel.RightDetailRows);
|
|
InitDrag();
|
|
//初始化后刷新数据
|
|
ModuleGridDetail moduleGridDetail = MainViewModel.LeftTabControl.TabControlObj.SelectedTabPage.Controls[0] as ModuleGridDetail;
|
|
moduleGridDetail.SearchButton.PerformClick();
|
|
tabControlLeft.TabControlObj.SelectedPageChanged += OnLeftTabControlPageChanged;
|
|
tabControlRight.TabControlObj.SelectedPageChanged += OnRightTabControlPageChanged;
|
|
}
|
|
/// <summary>
|
|
/// 初始化左侧页签
|
|
/// </summary>
|
|
/// <param name="gridDetailRows"></param>
|
|
private void InitLeftTabPages(List<DataRow> gridDetailRows)
|
|
{
|
|
XtraTabPage mainPage = new XtraTabPage();
|
|
mainPage.Text = MainViewModel.SysModel.FormText;
|
|
ModuleGridDetail mainGridDetail = new ModuleGridDetail(null, SysModel.OtherParams());
|
|
mainGridDetail.MainViewModel = MainViewModel;
|
|
mainGridDetail.Dock = DockStyle.Fill;
|
|
mainGridDetail.Tag = MainViewModel.SysModel;
|
|
mainPage.Tag = mainGridDetail;
|
|
mainPage.Controls.Add(mainGridDetail);
|
|
tabControlLeft.TabControlObj.TabPages.Add(mainPage);
|
|
|
|
foreach (DataRow item in gridDetailRows)
|
|
{
|
|
if ((item["orderId"] + "").Equals("99") || (item["orderId"] + "").Equals("100"))
|
|
{
|
|
continue;
|
|
}
|
|
GridDetailModel model = new GridDetailModel(item);
|
|
model.SystemModel = new ModuleModel(MainImpl.GetSystemdllTab(model.UnionModule));//获取主模块构建类
|
|
XtraTabPage page = new XtraTabPage();
|
|
page.Text = model.DetailName;
|
|
ModuleGridDetail moduleGridDetail = new ModuleGridDetail(model, SysModel.OtherParams());
|
|
moduleGridDetail.MainViewModel = MainViewModel;
|
|
moduleGridDetail.Dock = DockStyle.Fill;
|
|
moduleGridDetail.Tag = model;
|
|
page.Tag = moduleGridDetail;
|
|
page.Controls.Add(moduleGridDetail);
|
|
tabControlLeft.TabControlObj.TabPages.Add(page);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 初始化右侧页签
|
|
/// </summary>
|
|
/// <param name="gridDetailRows"></param>
|
|
private void InitRightTabPages(List<DataRow> gridDetailRows)
|
|
{
|
|
foreach (DataRow item in gridDetailRows)
|
|
{
|
|
GridDetailModel model = new GridDetailModel(item);
|
|
model.SystemModel = new ModuleModel(MainImpl.GetSystemdllTab(model.UnionModule));//获取主模块构建类
|
|
XtraTabPage page = new XtraTabPage();
|
|
page.Text = model.DetailName;
|
|
ModuleGrid moduleGrid = new ModuleGrid(model);
|
|
moduleGrid.MainViewModel = MainViewModel;
|
|
moduleGrid.Dock = DockStyle.Fill;
|
|
moduleGrid.Tag = model;
|
|
page.Tag = moduleGrid;
|
|
page.Controls.Add(moduleGrid);
|
|
tabControlRight.TabControlObj.TabPages.Add(page);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 初始化下方表格
|
|
/// </summary>
|
|
private void InitBottomGrid()
|
|
{
|
|
gmLeft_Control.GridView.OptionsSelection.MultiSelect = false;
|
|
gmLeft_Control.GridView.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.RowSelect;
|
|
gmRight_Control.GridView.OptionsSelection.MultiSelect = false;
|
|
gmRight_Control.GridView.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.RowSelect;
|
|
//左侧
|
|
DataRow bottomLeftDetailRow = MainViewModel.LeftDetailRows.Where(n => (n["orderId"] + "").Equals("100")).FirstOrDefault();
|
|
if (bottomLeftDetailRow != null)
|
|
{
|
|
GridDetailModel bottomLeftModel = new GridDetailModel(bottomLeftDetailRow);
|
|
gmLeft_Control.Tag = bottomLeftModel;
|
|
bottomLeftModel.SystemModel = new ModuleModel(MainImpl.GetSystemdllTab(bottomLeftModel.UnionModule));
|
|
if (bottomLeftModel.IsReadOnly)
|
|
{
|
|
BottomLeftSearchObj = new MyControl(bottomLeftModel.DetailSql, gmLeft_Control);//构建主表mycontrol
|
|
}
|
|
else
|
|
{
|
|
BottomLeftSearchObj = new MyControl(bottomLeftModel.SystemModel.MenuSql, gmLeft_Control);//构建主表mycontrol
|
|
}
|
|
DataTable leftGridColumns = new DataTable();
|
|
if (!string.IsNullOrEmpty(bottomLeftModel.UnionModule))
|
|
{
|
|
leftGridColumns = BaseModuleImpl.GetBaseGridColumns(bottomLeftModel.UnionModule);
|
|
}
|
|
else
|
|
{
|
|
leftGridColumns = ReportImpl.GetReportDetailColumns(MainViewModel.SysModel.ModuleCode, bottomLeftModel.Id + "");
|
|
}
|
|
gmLeft_Control.GridView.OptionsBehavior.Editable = false;
|
|
gmLeft_Control.SetReadOnlyColumns(leftGridColumns, GridCustomColumnStruct.BaseMainGridView + bottomLeftModel.FormKey);//明细
|
|
DynamicModel leftDyncModel = new DynamicModuleModel(new string[] { bottomLeftModel.DetailName, ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, MainViewModel.SysModel.Privilege, bottomLeftModel.UnionModule, "0" });
|
|
if (!string.IsNullOrEmpty(bottomLeftModel.SystemModel.ModeCode))
|
|
{
|
|
gmLeft_Control.SetGridRightMenus(BaseModuleImpl.GetBaseGridRightMenus(bottomLeftModel.SystemModel.ModeCode), leftDyncModel, OnRightMenuLeftCallBack, BottomLeftSearchObj);
|
|
}
|
|
else if (!string.IsNullOrEmpty(bottomLeftModel.FormKey))
|
|
{
|
|
gmLeft_Control.SetGridRightMenus(BaseModuleImpl.GetBaseGridRightMenus(bottomLeftModel.FormKey), leftDyncModel, OnRightMenuLeftCallBack, BottomLeftSearchObj);
|
|
}
|
|
//绑定行改变事件
|
|
gmLeft_Control.GridView.FocusedRowChanged += OnGmLeftGridViewFocusedRowChanged;
|
|
//BottomLeftSearchObj.SearchGrid();
|
|
//右侧
|
|
DataTable bottomRightDetailRows = BaseModuleImpl.GetBaseDetailPages(bottomLeftModel.UnionModule);//获取关联模块配置明细
|
|
DataRow bottomRightDetailRow = bottomRightDetailRows.Rows.Count > 0 ? bottomRightDetailRows.Rows[0] : null;
|
|
if (bottomRightDetailRow != null)
|
|
{
|
|
GridDetailModel bottomRightModel = new GridDetailModel(bottomRightDetailRow);
|
|
gmRight_Control.Tag = bottomRightModel;
|
|
bottomRightModel.SystemModel = new ModuleModel(MainImpl.GetSystemdllTab(bottomRightModel.UnionModule));
|
|
if (bottomRightModel.IsReadOnly)
|
|
{
|
|
BottomRightSearchObj = new MyControl(bottomRightModel.DetailSql, gmRight_Control);//构建主表mycontrol
|
|
}
|
|
else
|
|
{
|
|
BottomRightSearchObj = new MyControl(bottomRightModel.SystemModel.MenuSql, gmRight_Control);//构建主表mycontrol
|
|
}
|
|
DataTable rightGridColumns = new DataTable();
|
|
if (!string.IsNullOrEmpty(bottomRightModel.UnionModule))
|
|
{
|
|
rightGridColumns = BaseModuleImpl.GetBaseGridColumns(bottomRightModel.UnionModule);
|
|
}
|
|
else
|
|
{
|
|
rightGridColumns = ReportImpl.GetReportDetailColumns(MainViewModel.SysModel.ModuleCode, bottomRightModel.Id + "");
|
|
}
|
|
gmRight_Control.GridView.OptionsBehavior.Editable = false;
|
|
gmRight_Control.SetReadOnlyColumns(rightGridColumns, GridCustomColumnStruct.BaseMainGridView + bottomRightModel.FormKey);//明细
|
|
DynamicModel rightDyncModel = new DynamicModuleModel(new string[] { bottomRightModel.DetailName, ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, MainViewModel.SysModel.Privilege, bottomRightModel.UnionModule, "0" });
|
|
if (!string.IsNullOrEmpty(bottomRightModel.SystemModel.ModeCode))
|
|
{
|
|
gmRight_Control.SetGridRightMenus(BaseModuleImpl.GetBaseGridRightMenus(bottomRightModel.SystemModel.ModeCode), rightDyncModel, OnRightMenuRightCallBack, BottomRightSearchObj);
|
|
}
|
|
else if (!string.IsNullOrEmpty(bottomRightModel.FormKey))
|
|
{
|
|
gmRight_Control.SetGridRightMenus(BaseModuleImpl.GetBaseGridRightMenus(bottomRightModel.FormKey), rightDyncModel, OnRightMenuRightCallBack, BottomRightSearchObj);
|
|
}
|
|
//BottomRightSearchObj.SearchGrid();
|
|
}
|
|
if (bottomLeftDetailRow != null && bottomRightDetailRow != null)
|
|
{
|
|
splitBottomControl.PanelVisibility = DevExpress.XtraEditors.SplitPanelVisibility.Both;
|
|
}
|
|
else if (bottomLeftDetailRow != null && bottomRightDetailRow == null)
|
|
{
|
|
splitBottomControl.PanelVisibility = DevExpress.XtraEditors.SplitPanelVisibility.Panel1;
|
|
}
|
|
else if (bottomLeftDetailRow == null && bottomRightDetailRow == null)
|
|
{
|
|
splitBottomControl.Visible = false;
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 初始化拖拽
|
|
/// </summary>
|
|
private void InitDrag()
|
|
{
|
|
////右上方向底部拖拽,经沟通不使用
|
|
//foreach (XtraTabPage xtraTabPage in tabControlRight.TabControlObj.TabPages)
|
|
//{
|
|
// ModuleGrid moduleGrid = (ModuleGrid)xtraTabPage.Controls[0];
|
|
// //右上方向底部左侧拖拽
|
|
// GridDragGrid dragTopToBottomLeftGrid = new GridDragGrid(moduleGrid.MainGridEx.GridView, gmLeft_Control.GridView);
|
|
// dragTopToBottomLeftGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragToBottomLeftGridCompleted);
|
|
// //右上方向底部右侧侧拖拽
|
|
// GridDragGrid dragTopToBottomRightGrid = new GridDragGrid(moduleGrid.MainGridEx.GridView, gmRight_Control.GridView);
|
|
// dragTopToBottomRightGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragToBottomRightGridCompleted);
|
|
//}
|
|
//右上方向左侧拖拽
|
|
foreach (XtraTabPage xtraTabPage in tabControlRight.TabControlObj.TabPages)
|
|
{
|
|
ModuleGrid moduleGrid = (ModuleGrid)xtraTabPage.Controls[0];
|
|
foreach (XtraTabPage leftXtraTabPage in tabControlLeft.TabControlObj.TabPages)
|
|
{
|
|
ModuleGridDetail moduleGridDetail = (ModuleGridDetail)leftXtraTabPage.Controls[0];
|
|
//向左侧上方拖拽
|
|
if (moduleGridDetail.DragDirection==0|| moduleGridDetail.DragDirection == 1)
|
|
{
|
|
GridDragGrid dragTopToLeftTopGrid = new GridDragGrid(moduleGrid.MainGridEx.GridView, moduleGridDetail.TopGridEx.GridView);
|
|
dragTopToLeftTopGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragToLeftTopGridCompleted);
|
|
}
|
|
//向左侧下方拖拽
|
|
if (moduleGridDetail.DragDirection == 0 || moduleGridDetail.DragDirection == 2)
|
|
{
|
|
GridDragGrid dragTopToLeftBottomGrid = new GridDragGrid(moduleGrid.MainGridEx.GridView, moduleGridDetail.BottomGridEx.GridView);
|
|
dragTopToLeftBottomGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragToLeftBottomGridCompleted);
|
|
}
|
|
|
|
}
|
|
}
|
|
//底部左侧向右上方拖拽
|
|
foreach (XtraTabPage xtraTabPage in tabControlRight.TabControlObj.TabPages)
|
|
{
|
|
ModuleGrid moduleGrid = (ModuleGrid)xtraTabPage.Controls[0];
|
|
GridDragGrid dragBottomLeftToTopGrid = new GridDragGrid(gmLeft_Control.GridView, moduleGrid.MainGridEx.GridView);
|
|
dragBottomLeftToTopGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragBottomLeftToTopGridCompleted);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 移动文件
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private bool MoveFile(DataRow rowItem, string sid, string tid, out string Msg, string typeid = "", string ver = "")
|
|
{
|
|
bool isMove = false;
|
|
Msg = "";
|
|
string postUrl = "";
|
|
try
|
|
{
|
|
string fileId = rowItem["fileId"] + "";
|
|
string sNameSql = $"select vName from P_fm_FileTab where fileId = '{rowItem["fileId"]}'";
|
|
string sName = BaseImpl.GetResult(sNameSql) + "";
|
|
if (string.IsNullOrEmpty(typeid))
|
|
{
|
|
postUrl = "{0}Api/FileUploadApi.ashx?moduleId={1}&filename={2}&sid={3}&tid={4}&username={5}&userid={6}&method={7}";
|
|
postUrl = string.Format(postUrl, SystemInfo.Instance.OAUrl, SysModel.ModuleCode, sName, sid, tid, ERPInfo.Instance.UserName, ERPInfo.Instance.UserId, "MoveFileTo");
|
|
}
|
|
else
|
|
{
|
|
postUrl = "{0}Api/FileUploadApi.ashx?moduleId={1}&filename={2}&sid={3}&tid={4}&username={5}&userid={6}&typeid={7}&ver={8}&method={9}";
|
|
postUrl = string.Format(postUrl, SystemInfo.Instance.OAUrl, SysModel.ModuleCode, sName, sid, tid, ERPInfo.Instance.UserName, ERPInfo.Instance.UserId, typeid, ver, "MoveFileTo");
|
|
}
|
|
HttpTools.setting("application/x-www-form-urlencoded", null, null);
|
|
string result = "";
|
|
CookieCollection cookieCollection = null;
|
|
HttpWebResponse webResponse = HttpTools.Post(postUrl, null, null, HttpTools.Method.POST, out cookieCollection, out result);
|
|
if (webResponse != null && !string.IsNullOrEmpty(result))
|
|
{
|
|
JObject jsonObject = (JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(result);
|
|
string isSuccess = jsonObject["success"] + "";
|
|
if (isSuccess.Equals("True", StringComparison.CurrentCultureIgnoreCase))
|
|
{
|
|
string searchSql = @"update P_fm_FileTab set Pid='{1}'
|
|
where dllcoid = '{0}' and fileId='{2}' ";
|
|
searchSql = string.Format(searchSql, this.MainViewModel.SysModel.ModuleCode, tid, fileId);
|
|
SqlHelper.ExecuteNonQuery(searchSql);
|
|
isMove = true;
|
|
}
|
|
else
|
|
{
|
|
if (jsonObject.ContainsKey("msg"))
|
|
{
|
|
Msg = jsonObject["msg"] + "";
|
|
}
|
|
isMove = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
isMove = false;
|
|
Msg = "上传请求失败";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Msg = ex.Message;
|
|
isMove = false;
|
|
}
|
|
return isMove;
|
|
}
|
|
/// <summary>
|
|
/// 获取查询条件
|
|
/// </summary>
|
|
/// <param name="model"></param>
|
|
/// <param name="rowItem"></param>
|
|
/// <returns></returns>
|
|
public string GetSearchSql(GridDetailModel model, DataRow rowItem)
|
|
{
|
|
string fieldName = !string.IsNullOrEmpty(model.UnionParentField) && rowItem.Table.Columns.Contains(model.UnionParentField) ? model.UnionParentField : MainViewModel.MoudleMainObj.ParmaryKey;
|
|
string sqlValue = model.IsReadOnly || model.IsChart ? model.DetailSql : model.SystemModel.MenuSql;
|
|
|
|
sqlValue = ReplaceHelper.ReplaceRowParam(rowItem, sqlValue);
|
|
|
|
if (ReplaceHelper.IsSelect(sqlValue) && !string.IsNullOrEmpty(model.UnionValue))
|
|
{
|
|
sqlValue = ReplaceHelper.ReplaceWhereCond(sqlValue) + string.Format(" and {0}='{1}'", model.UnionValue, rowItem[fieldName] + "");
|
|
}
|
|
if (!string.IsNullOrEmpty(model.UnionCond))
|
|
{
|
|
string UnionCond = ReplaceHelper.ReplaceRowParam(rowItem, model.UnionCond);
|
|
sqlValue += UnionCond;
|
|
}
|
|
return sqlValue;
|
|
}
|
|
/// <summary>
|
|
/// 初始化分隔条
|
|
/// </summary>
|
|
private void InitializeSplitPosition()
|
|
{
|
|
this.splitMainControl.SplitterPositionChanged += new EventHandler(OnSplitterPositionChanged);
|
|
this.splitRightControl.SplitterPositionChanged += new EventHandler(OnSplitterPositionChanged);
|
|
this.splitBottomControl.SplitterPositionChanged += new EventHandler(OnSplitterPositionChanged);
|
|
string mianSpliterPosition = IniHelper.Read(string.Format("Step_spliterPositionMain_{0}", this.MainViewModel.SysModel.ModuleCode));
|
|
if (!string.IsNullOrEmpty(mianSpliterPosition)) this.splitMainControl.SplitterPosition = Convert.ToInt32(mianSpliterPosition);
|
|
string rightSpliterPosition = IniHelper.Read(string.Format("Step_spliterPositionRight_{0}", this.MainViewModel.SysModel.ModuleCode));
|
|
if (!string.IsNullOrEmpty(rightSpliterPosition)) this.splitRightControl.SplitterPosition = Convert.ToInt32(rightSpliterPosition);
|
|
string bottomSpliterPosition = IniHelper.Read(string.Format("Step_spliterPositionBottom_{0}", this.MainViewModel.SysModel.ModuleCode));
|
|
if (!string.IsNullOrEmpty(bottomSpliterPosition)) this.splitBottomControl.SplitterPosition = Convert.ToInt32(bottomSpliterPosition);
|
|
}
|
|
/// <summary>
|
|
/// 向左侧上方拖拽完成时
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void OnDragToLeftTopGridCompleted(object sender, GridDragGridArgs e)
|
|
{
|
|
ModuleGridDetail moduleGridDetail = this.tabControlLeft.TabControlObj.SelectedTabPage.Controls[0] as ModuleGridDetail;
|
|
try//拖拽后执行文件分配
|
|
{
|
|
int[] selectRowIndexs = e.SourceGridViewObj.GetSelectedRows();
|
|
DataRow[] selectRows = new DataRow[selectRowIndexs.Length];
|
|
for (int i = 0; i < selectRowIndexs.Length; i++)
|
|
{
|
|
selectRows[i] = e.SourceGridViewObj.GetDataRow(selectRowIndexs[i]);
|
|
}
|
|
if (selectRows == null || selectRows.Length == 0) return;
|
|
DataRow targetRow = moduleGridDetail.TopGridEx.GetViewFocusedDataRow();
|
|
int[] records = new int[selectRows.Length];
|
|
string resultStr = string.Empty;
|
|
string result = string.Empty;
|
|
for (int i = 0; i < selectRows.Length; i++)
|
|
{
|
|
try
|
|
{
|
|
records[i] = ReplaceHelper.ReplaceRowParamCond(targetRow, MainViewModel.MoudleMainObj.DragCond) ? 1 : 0;
|
|
}
|
|
catch
|
|
{
|
|
records[i] = 0;
|
|
}
|
|
if (records[i] == 0)
|
|
{
|
|
resultStr += string.Format("文件{0}移动失败,原因:{1}\r\n", selectRows[i]["name"], "不满足移动条件");
|
|
continue;
|
|
}
|
|
string sid = targetRow.Table.Columns.Contains(MainViewModel.MoudleMainObj.MoveIdValueField) ? targetRow[MainViewModel.MoudleMainObj.MoveIdValueField] + "" : "";
|
|
bool isMove = MoveFile(selectRows[i], this.leftTopGridIdValue, sid, out result);
|
|
if (!isMove)
|
|
{
|
|
resultStr += string.Format("文件{0}移动失败,原因:{1}\r\n", selectRows[i]["name"], result);
|
|
}
|
|
}
|
|
if (!string.IsNullOrEmpty(resultStr))
|
|
{
|
|
MessageUtil.Show(resultStr);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageUtil.Show(ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
int focusedTopRowHandle = moduleGridDetail.TopGridEx.GridView.FocusedRowHandle;
|
|
int focusedBottomRowHandle = moduleGridDetail.BottomGridEx.GridView.FocusedRowHandle;
|
|
moduleGridDetail.SearchMainObj.SearchLastGrid();
|
|
moduleGridDetail.RefushLeftDetail();
|
|
moduleGridDetail.TopGridEx.GridView.FocusedRowHandle = focusedTopRowHandle;
|
|
moduleGridDetail.BottomGridEx.GridView.FocusedRowHandle = focusedBottomRowHandle;
|
|
moduleGridDetail.OnGridViewRowClick(null, null);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 向左侧下方拖拽完成时
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void OnDragToLeftBottomGridCompleted(object sender, GridDragGridArgs e)
|
|
{
|
|
ModuleGridDetail moduleGridDetail = this.tabControlLeft.TabControlObj.SelectedTabPage.Controls[0] as ModuleGridDetail;
|
|
try//拖拽后执行文件分配
|
|
{
|
|
int[] selectRowIndexs = e.SourceGridViewObj.GetSelectedRows();
|
|
DataRow[] selectRows = new DataRow[selectRowIndexs.Length];
|
|
for (int i = 0; i < selectRowIndexs.Length; i++)
|
|
{
|
|
selectRows[i] = e.SourceGridViewObj.GetDataRow(selectRowIndexs[i]);
|
|
}
|
|
if (selectRows == null || selectRows.Length == 0) return;
|
|
DataRow[] targetRows = new DataRow[] { moduleGridDetail.BottomGridEx.GetViewFocusedDataRow() };
|
|
if (selectRows.Length > 0 && targetRows.Length > 0)
|
|
{
|
|
int[,] records = new int[selectRows.Length, targetRows.Length];
|
|
string resultStr = string.Empty;
|
|
string result = string.Empty;
|
|
for (int i = 0; i < selectRows.Length; i++)
|
|
{
|
|
for (int j = 0; j < targetRows.Length; j++)
|
|
{
|
|
try
|
|
{
|
|
DataRow targetRow = targetRows[j];
|
|
records[i, j] = ReplaceHelper.ReplaceRowParamCond(targetRow, MainViewModel.MoudleMainObj.DragCond) ? 1 : 0;
|
|
string sid = targetRow.Table.Columns.Contains(MainViewModel.MoudleMainObj.MoveIdValueField) ? targetRow[MainViewModel.MoudleMainObj.MoveIdValueField] + "" : "";
|
|
bool isMove = MoveFile(selectRows[i], this.leftTopGridIdValue, sid, out result);
|
|
if (!isMove)
|
|
{
|
|
resultStr += string.Format("文件{0}移动失败,原因:{1}\r\n", selectRows[i]["name"], result);
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
records[i, j] = 0;
|
|
}
|
|
if (records[i, j] == 0)
|
|
{
|
|
resultStr += string.Format("文件{0}移动失败,原因:{1}\r\n", selectRows[i]["name"], "不满足移动条件");
|
|
continue;
|
|
}
|
|
}
|
|
}
|
|
if (!string.IsNullOrEmpty(resultStr))
|
|
{
|
|
MessageUtil.Show(resultStr);
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageUtil.Show(ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
int focusedTopRowHandle = moduleGridDetail.TopGridEx.GridView.FocusedRowHandle;
|
|
int focusedBottomRowHandle = moduleGridDetail.BottomGridEx.GridView.FocusedRowHandle;
|
|
moduleGridDetail.SearchMainObj.SearchLastGrid();
|
|
moduleGridDetail.RefushLeftDetail();
|
|
moduleGridDetail.TopGridEx.GridView.FocusedRowHandle = focusedTopRowHandle;
|
|
moduleGridDetail.BottomGridEx.GridView.FocusedRowHandle = focusedBottomRowHandle;
|
|
moduleGridDetail.OnGridViewRowClick(null, null);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 下方左侧向上方拖拽完成时
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void OnDragBottomLeftToTopGridCompleted(object sender, GridDragGridArgs e)
|
|
{
|
|
ModuleGridDetail moduleGridDetail = this.tabControlLeft.TabControlObj.SelectedTabPage.Controls[0] as ModuleGridDetail;
|
|
try//拖拽后执行文件分配
|
|
{
|
|
int[] selectRowIndexs = e.SourceGridViewObj.GetSelectedRows();
|
|
DataRow[] selectRows = new DataRow[selectRowIndexs.Length];
|
|
for (int i = 0; i < selectRowIndexs.Length; i++)
|
|
{
|
|
selectRows[i] = e.SourceGridViewObj.GetDataRow(selectRowIndexs[i]);
|
|
}
|
|
if (selectRows == null || selectRows.Length == 0) return;
|
|
DataRow targetRow = moduleGridDetail.TopGridEx.GetViewFocusedDataRow();
|
|
int[] records = new int[selectRows.Length];
|
|
string resultStr = string.Empty;
|
|
string result = string.Empty;
|
|
for (int i = 0; i < selectRows.Length; i++)
|
|
{
|
|
try
|
|
{
|
|
records[i] = ReplaceHelper.ReplaceRowParamCond(targetRow, MainViewModel.MoudleMainObj.DragCond) ? 1 : 0;
|
|
}
|
|
catch
|
|
{
|
|
records[i] = 0;
|
|
}
|
|
if (records[i] == 0)
|
|
{
|
|
resultStr += string.Format("文件{0}移动失败,原因:{1}\r\n", selectRows[i]["name"], "不满足移动条件");
|
|
continue;
|
|
}
|
|
string sid = selectRows[i]["Pid"] + "";
|
|
string tid = targetRow.Table.Columns.Contains(MainViewModel.MoudleMainObj.UploadIdValueField) ? targetRow[MainViewModel.MoudleMainObj.UploadIdValueField] + "" : "";
|
|
bool isMove = MoveFile(selectRows[i], sid, tid, out result);
|
|
if (!isMove)
|
|
{
|
|
resultStr += string.Format("文件{0}移动失败,原因:{1}\r\n", selectRows[i]["name"], result);
|
|
}
|
|
}
|
|
if (!string.IsNullOrEmpty(resultStr))
|
|
{
|
|
MessageUtil.Show(resultStr);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageUtil.Show(ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
int focusedTopRowHandle = moduleGridDetail.TopGridEx.GridView.FocusedRowHandle;
|
|
int focusedBottomRowHandle = moduleGridDetail.BottomGridEx.GridView.FocusedRowHandle;
|
|
moduleGridDetail.SearchMainObj.SearchLastGrid();
|
|
moduleGridDetail.RefushLeftDetail();
|
|
moduleGridDetail.TopGridEx.GridView.FocusedRowHandle = focusedTopRowHandle;
|
|
moduleGridDetail.BottomGridEx.GridView.FocusedRowHandle = focusedBottomRowHandle;
|
|
moduleGridDetail.OnGridViewRowClick(null, null);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 底部左侧行选中改变时刷新右侧数据
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void OnGmLeftGridViewFocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
|
|
{
|
|
GridView gridView = (GridView)sender;
|
|
DataRow rowItem = gridView.GetFocusedDataRow();
|
|
GridDetailModel gridDetailRightModel = gmRight_Control.Tag != null && gmRight_Control.Tag is GridDetailModel ? gmRight_Control.Tag as GridDetailModel : null;
|
|
if (gridDetailRightModel != null)
|
|
{
|
|
string searchSql = this.GetSearchSql(gridDetailRightModel, rowItem);
|
|
DataTable table = MainImpl.GetDataTableResult(searchSql);
|
|
this.gmRight_Control.LastSearchSql = searchSql;
|
|
this.gmRight_Control.SetGridViewDataSource(table);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 左侧页签选中改变时
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void OnLeftTabControlPageChanged(object sender, TabPageChangedEventArgs e)
|
|
{
|
|
ModuleGridDetail moduleGridDetail = MainViewModel.LeftTabControl.TabControlObj.SelectedTabPage.Controls[0] as ModuleGridDetail;
|
|
moduleGridDetail.SearchButton.PerformClick();
|
|
}
|
|
/// <summary>
|
|
/// 右侧页签选中改变时
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void OnRightTabControlPageChanged(object sender, TabPageChangedEventArgs e)
|
|
{
|
|
ModuleGridDetail moduleGridDetail = MainViewModel.LeftTabControl.TabControlObj.SelectedTabPage.Controls[0] as ModuleGridDetail;
|
|
moduleGridDetail.RefushWaitDetail();
|
|
}
|
|
}
|
|
}
|