Files
lserp_cs_6.0/插件库/Lskj.ProductionTest/FrmMain.cs
T
cyf ab56a9bcf7 基线 SVN r240
SVN-Revision: r240
2025-02-06 06:46:06 +00:00

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
}
}