ab56a9bcf7
SVN-Revision: r240
376 lines
15 KiB
C#
376 lines
15 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using Lskj.Control.Model;
|
|
using Lskj.Util;
|
|
using Lskj.Control;
|
|
using Lskj.Data;
|
|
using Lskj.Model;
|
|
using Lskj.Business.Impl;
|
|
using Lskj.Core;
|
|
using DevExpress.XtraTab;
|
|
using DevExpress.Utils;
|
|
|
|
namespace Lskj.ProductionTest
|
|
{
|
|
public partial class FrmMain : DevExpress.XtraEditors.XtraForm
|
|
{
|
|
#region 公共变量
|
|
/// <summary>
|
|
/// 入口模型
|
|
/// </summary>
|
|
public DynamicProductionModel SysModel;
|
|
/// <summary>
|
|
///查询条件控件
|
|
/// </summary>
|
|
public MyControl SearchObj;
|
|
/// <summary>
|
|
/// 主控件集
|
|
/// </summary>
|
|
public MyControl ControlObj;
|
|
/// <summary>
|
|
/// 父容器
|
|
/// </summary>
|
|
public MyControl ParentControl;
|
|
/// <summary>
|
|
/// 基础模型
|
|
/// </summary>
|
|
public ModuleModel MoudleObj;
|
|
/// <summary>
|
|
/// 表格明细集合
|
|
/// </summary>
|
|
public List<GridDetailModel> GridDetailModelObjs;
|
|
/// <summary>
|
|
/// 主键名
|
|
/// </summary>
|
|
private string _primaryKey;
|
|
/// <summary>
|
|
/// 选项卡排序Sql
|
|
/// </summary>
|
|
private Dictionary<string, string> _dicOrder = new Dictionary<string, string>();
|
|
#endregion
|
|
|
|
|
|
#region 私有变量
|
|
/// <summary>
|
|
/// 控件源数据
|
|
/// </summary>
|
|
private DataTable _dtFields;
|
|
/// <summary>
|
|
/// 主键值
|
|
/// </summary>
|
|
private string _keyValue;
|
|
#endregion
|
|
public FrmMain()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
#region 窗体加载时
|
|
/// <summary>
|
|
/// <para>说明:窗体加载时</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-02-27</para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
protected override void OnLoad(EventArgs e)
|
|
{
|
|
this.splitContainerMain.Visible = false;
|
|
WaitForm.ShowForm();
|
|
try
|
|
{
|
|
if (DBConfig.Instance.CreateConnection())
|
|
{
|
|
this.InitializeSetting();
|
|
this.InitializeControl();
|
|
//this.InitlizeSpiltLocation();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Instance.WriteError(ex, "生产排产模块");
|
|
//MessageUtil.Show(ex);
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message,ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
Lskj.Control.Model.AutoSizeChange.ControllInitializeSize(this);
|
|
WaitForm.HideForm();
|
|
this.splitContainerMain.Visible = true;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
#region 初始化属性
|
|
/// <summary>
|
|
/// <para>说明:初始化属性设置</para>
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2019-12-11</para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void InitializeSetting()
|
|
{
|
|
this._primaryKey = BaseImpl.GetBasePrimaryKey("PC001");
|
|
this.MoudleObj = new ModuleModel(MainImpl.GetSystemdllTab("PC001"));
|
|
ERPInfo.Instance.UserName = "管理员";
|
|
this._dtFields = BaseModuleImpl.GetControlLocation(this.MoudleObj.FormKey, "PC001");
|
|
//this.GetDetailOrderCond();
|
|
//if (!string.IsNullOrEmpty(this.SysModel.ParmaryValue))
|
|
//{
|
|
// this._keyValue = this.SysModel.ParmaryValue;
|
|
//}
|
|
}
|
|
#endregion
|
|
|
|
#region 获取明细SQL排序条件
|
|
/// <summary>
|
|
/// <para>说明:获取明细SQL排序条件</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-07-26 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void GetDetailOrderCond()
|
|
{
|
|
string orderStr = string.Empty;
|
|
foreach (GridDetailModel mode in GridDetailModelObjs)
|
|
{
|
|
if (mode.Orderid == -100) continue;
|
|
DataRow dr = ProduceImpl.GetTabPageOrderCond(mode.UnionModule);
|
|
if (dr != null) orderStr = dr["MobileOrderStr"] + "";
|
|
_dicOrder.Add(mode.UnionModule, orderStr);
|
|
}
|
|
}
|
|
#endregion
|
|
#region 初始化控件
|
|
/// <summary>
|
|
/// <para>说明:初始化控件</para>
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2019-12-11</para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void InitializeControl()
|
|
{
|
|
//this.ControlObj = new MyControl();
|
|
//this.ControlObj.InitControl(_dtFields, this.pl_left_top_search);
|
|
this.GridDetailModelObjs = GetDetailGrids();
|
|
this.tabLeftTopDetail.InitTabPages(this.GridDetailModelObjs.Where(o => o.Orderid <= -1 && o.Orderid >= -9).ToList());
|
|
this.tabLeftBottomDetail.InitTabPages(this.GridDetailModelObjs.Where(o => o.Orderid < -9).ToList());
|
|
this.tabRightTopDetail.InitTabPages(this.GridDetailModelObjs.Where(o => o.Orderid == 0).ToList());
|
|
this.tabRightBottomDetail.InitTabPages(this.GridDetailModelObjs.Where(o => o.Orderid == 1).ToList());
|
|
this.InitSearchFiled();
|
|
this.SetTabPageStyle();
|
|
}
|
|
#endregion
|
|
#region 设置动态TabPage的样式
|
|
/// <summary>
|
|
/// <para>说明:设置动态的TabPage的样式隐藏页签标题</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-02-27</para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void SetTabPageStyle()
|
|
{
|
|
tabLeftTopDetail.TabControlObj.ShowTabHeader = tabLeftTopDetail.TabControlObj.TabPages.Count == 1 ? DefaultBoolean.False : DefaultBoolean.Default;
|
|
tabLeftBottomDetail.TabControlObj.ShowTabHeader = tabLeftBottomDetail.TabControlObj.TabPages.Count == 1 ? DefaultBoolean.False : DefaultBoolean.Default;
|
|
tabRightTopDetail.TabControlObj.ShowTabHeader = tabRightTopDetail.TabControlObj.TabPages.Count == 1 ? DefaultBoolean.False : DefaultBoolean.Default;
|
|
tabRightBottomDetail.TabControlObj.HeaderLocation = tabLeftTopDetail.TabControlObj.HeaderLocation = tabLeftBottomDetail.TabControlObj.HeaderLocation = TabHeaderLocation.Bottom;
|
|
}
|
|
#endregion
|
|
#region 初始化搜索
|
|
/// <summary>
|
|
/// <para>说明:初始化搜索</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-02-27</para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void InitSearchFiled()
|
|
{
|
|
this.SearchObj = new MyControl(this.MoudleObj.MenuSql, null);
|
|
DataTable queryTable = BaseModuleImpl.GetCustomQueryFields(this.MoudleObj.CondKey);
|
|
this.SearchObj.ModuleId = 0;
|
|
this.SearchObj.RememberRow = true;
|
|
if (queryTable != null && queryTable.Rows.Count > 0)
|
|
{
|
|
// 加载自定义查询条件
|
|
this.pl_left_top_search.Controls.Clear();
|
|
// this.SearchObj.OtherParams = SysModel.OtherParams();
|
|
this.SearchObj.InitSearchControl(queryTable, this.pl_left_top_search, null);
|
|
this.SearchObj.OnSearchBeforeCallBack += new SearchEventHandler(SearchObj_OnSearchBefore);
|
|
if (this.SearchObj.ControlModels != null && this.SearchObj.ControlModels.Count > 0)
|
|
{
|
|
BaseUserControl mControl = this.SearchObj.FindControl(this.SearchObj.ControlModels[0].FieldName);
|
|
if (mControl != null)
|
|
{
|
|
//mControl.EditText = this.SysModel.ParmaryValue;
|
|
SearchObj_OnSearchBefore(null, null);
|
|
}
|
|
|
|
foreach (ControlModel item in this.SearchObj.ControlModels)
|
|
{
|
|
BaseUserControl uControl = this.SearchObj.FindControl(item.FieldName);
|
|
if (uControl != null)
|
|
{
|
|
//this.SysModel.SearchControlEnable
|
|
uControl.Enabled = true;
|
|
SearchObj_OnSearchBefore(null, null);
|
|
}
|
|
}
|
|
//this.SysModel.SearchControlEnable
|
|
this.SearchObj.ButtonObj.Enabled = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// 加载固定查询条件
|
|
DataTable dtCond = BaseModuleImpl.GetFixedQueryFields(this.SysModel.ModuleCode);
|
|
this.cbField.DisplayMember = "username1";
|
|
this.cbField.ValueMember = "fieldname";
|
|
this.cbField.DataSource = dtCond;
|
|
this.SearchObj.InitDefaultSearchControl(dtCond, this.pl_left_top_search);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 获取明细
|
|
/// <summary>
|
|
/// <para>说明:获取报表明细</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-02-27 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private List<GridDetailModel> GetDetailGrids()
|
|
{
|
|
List<GridDetailModel> details = new List<GridDetailModel>();
|
|
DataTable moduleDetailBottomTable = BaseModuleImpl.GetBaseDetailPages("PC001");
|
|
if (moduleDetailBottomTable.Rows.Count == 0)
|
|
{
|
|
moduleDetailBottomTable = BaseModuleImpl.GetBaseAddTabDetail("PC001");
|
|
}
|
|
|
|
foreach (DataRow item in moduleDetailBottomTable.Rows)
|
|
{
|
|
DataTable dtGridColumns = ReportImpl.GetReportDetailColumns("PC001", item["id"] + "");
|
|
details.Add(new GridDetailModel(item, dtGridColumns, GridCustomColumnStruct.BaseDetailGridView));
|
|
}
|
|
return details;
|
|
}
|
|
#endregion
|
|
|
|
#region 自定义搜索事件
|
|
/// <summary>
|
|
/// <para>说明:初始化自定义搜索</para>
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2018-02-27</para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void SearchObj_OnSearchBefore(object sender, SearchArgs e)
|
|
{
|
|
try
|
|
{
|
|
DataRow dataRow = MainImpl.GetDataRowResult(this.SearchObj.SetSearchSqlValue(this.MoudleObj.MenuSql));
|
|
|
|
if (dataRow != null)
|
|
{
|
|
this._keyValue = dataRow[this._primaryKey] + "";
|
|
//三部分明细数据源更新
|
|
setTabPageGridData(tabLeftTopDetail, dataRow);
|
|
setTabPageGridData(tabLeftBottomDetail, dataRow);
|
|
//setTabPageGridData(tabRightTopDetail, dataRow);
|
|
//setTabPageGridData(tabRightBottonDetail, dataRow);
|
|
//setTabPageGridData(tabRightDetail, dataRow);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message,ex.Message);
|
|
}
|
|
}
|
|
#endregion
|
|
#region 设置选项卡数据源
|
|
/// <summary>
|
|
/// <para>说明:设置选项卡数据源</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-02-27</para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void setTabPageGridData(TabControlEx tabDetail, DataRow rowItem)
|
|
{
|
|
foreach (XtraTabPage tabPage in tabDetail.TabControlObj.TabPages)
|
|
{
|
|
//附件预览跳过
|
|
if (tabPage.Text == "附件预览")
|
|
continue;
|
|
GridDetailModel model = tabDetail.GetGridDetailModel(tabPage);
|
|
GridControlEx gridControl = tabPage.Tag as GridControlEx;
|
|
gridControl.LastSearchSql = this.GetSearchSql(model, rowItem);
|
|
tabDetail.SetGridDataSource(tabPage, MainImpl.GetDataTableResult(gridControl.LastSearchSql));
|
|
}
|
|
}
|
|
#endregion
|
|
#region 获取查询条件
|
|
/// <summary>
|
|
/// <para>说明:获取查询条件</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-02-27 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="model">The model.</param>
|
|
/// <param name="rowItem">The row item.</param>
|
|
/// <returns>System.String.</returns>
|
|
protected string GetSearchSql(GridDetailModel model, DataRow rowItem)
|
|
{
|
|
string fieldName = !string.IsNullOrEmpty(model.UnionParentField) ? model.UnionParentField : this.MoudleObj.ParmaryKey;
|
|
string sqlValue = model.IsReadOnly ? model.DetailSql : model.SystemModel.MenuSql;
|
|
// string orderCond = _dicOrder.FirstOrDefault(o => o.Key == model.UnionModule).Value;
|
|
if (ReplaceHelper.IsSelect(sqlValue) && !string.IsNullOrEmpty(model.UnionValue))
|
|
{
|
|
sqlValue = ReplaceHelper.ReplaceWhereCond(sqlValue) + string.Format(" and {0}='{1}'", model.UnionValue, rowItem[fieldName] + "");
|
|
}
|
|
else
|
|
{
|
|
sqlValue = ReplaceHelper.ReplaceRowParam(rowItem, sqlValue);
|
|
}
|
|
return sqlValue;
|
|
}
|
|
#endregion
|
|
}
|
|
}
|