using Lskj.Business.Impl;
using Lskj.Control;
using Lskj.Control.Model;
using Lskj.Data;
using Lskj.Model;
using Lskj.SweepCode.Control;
using Lskj.Util;
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;
namespace Lskj.SweepCode
{
public partial class FrmMain : BaseForm
{
///
/// 说明:初始化后构造方法
/// 创建人:王一帆
/// 创建日期:2021-06-15
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
public FrmMain()
{
InitializeComponent();
}
#region 公共变量
///
/// 入口模型
///
public DynamicProductionModel SysModel;
///
///查询条件控件
///
public MyControl SearchObj;
///
/// 主控件集
///
public MyControl ControlObj;
///
/// 基础模型
///
public ModuleModel MoudleObj;
///
/// 表格明细集合
///
public List GridDetailModelObjs;
///
/// 明细衍生到下侧数据
///
public List GridDetailAddObj;
///
/// 明细衍生到右侧数据
///
public List GridDetailRightObj;
#endregion
#region 私有变量
///
/// 数据索引
///
private int _dataIndex;
///
/// 初始化完成标记
///
private bool _isInitFinish;
///
/// 附件部分显隐
///
private bool _isFilePanelVisble;
///
/// 附件源sql
///
private string _fileSql;
///
/// 主键值
///
private string _keyValue;
///
/// 主键名
///
private string _primaryKey;
///
/// 附件地址
///
private string _filePath;
///
/// 选项卡刷新页签
///
private string[] _pageIndex;
///
/// 当前数据内容
///
private DataRow _rowItem;
///
/// 控件源数据
///
private DataTable _dtFields;
///
/// 扫码控件源数据
///
private DataTable _codeFields;
///
/// 动态加载右侧按钮
///
private DataTable _RightFields;
///
/// 主表数据
///
private DataTable _dtMainTable;
///
/// pdf附件资源
///
private DataTable _dtFiles;
///
/// 附件下拉菜单
///
private LabelComboxEdit _fileComboBox;
///
/// 查看附件
///
private ModuleWebView _moduleWebView;
///
/// 选项卡排序Sql
///
private Dictionary _dicOrder = new Dictionary();
#endregion
#region 事件
#region 窗体加载时
///
/// 说明:窗体加载时
/// 创建人:王一帆
/// 创建日期:2021-06-15
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The instance containing the event data.
protected override void OnLoad(EventArgs e)
{
WaitForm.ShowForm();
try
{
SysModel.Privilege = this.SysModel.Privilege.Equals("3") ? "1" : SysModel.ModuleId > 0 ? BaseImpl.GetUserPurviewsByMenuId(SysModel.ModuleId + "") + "" : BaseImpl.GetUserPurviewsByMenuCode(SysModel.ModuleCode) + "";
this._isInitFinish = false;
if (!this.SysModel.HasPrivilege())
{
MessageUtil.Show(ResourceKeys.UnPurview);
this.Close();
}
else
{
this.InitializeSetting();
this.InitializeControl();
this.InitializeDetailGrid();
this.InitlizeSpiltLocation();
}
}
catch (Exception ex)
{
throw;
}
finally
{
}
WaitForm.HideForm();
}
#endregion
#region 分隔条改变事件,保存分割位置
///
/// 说明:分隔条改变事件,保存分割位置
/// 创建人:王一帆
/// 创建日期:2021-06-16
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
private void OnSplitterPositionChanged(object sender, EventArgs e)
{
if (this._isInitFinish) IniHelper.Write(string.Format("base_SplitSweepCodeMain_{0}", this.SysModel.ModuleCode), this.splitMain.SplitterPosition + "");
}
#endregion
#endregion
#region 方法
#region 初始化属性
///
/// 说明:初始化属性设置
/// 创建人:王一帆
/// 创建日期:2021-06-16
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
private void InitializeSetting()
{
this._primaryKey = BaseImpl.GetBasePrimaryKey(this.SysModel.ModuleCode);
this.MoudleObj = new ModuleModel(MainImpl.GetSystemdllTab(this.SysModel.ModuleCode));
this.MoudleObj.ParmaryKey = BaseImpl.GetBasePrimaryKey(this.SysModel.ModuleCode);
this.GridDetailModelObjs = GetDetailGrids().Where(o => o.addVisible != 1 && o.rightVisible != 1).ToList();
this.GridDetailAddObj = this.GridDetailModelObjs.Where(o => o.addVisible == 1).ToList();
this.GridDetailRightObj = this.GridDetailModelObjs.Where(o => o.rightVisible == 1).ToList();
this._dtFields = BaseModuleImpl.GetControlLocation(this.MoudleObj.FormKey, this.SysModel.ModuleCode);
this._codeFields = BaseImpl.GetSweepCode(this.SysModel.ModuleCode);
this._RightFields = BaseModuleImpl.GetBaseGridRightMenus(this.SysModel.ModuleCode);
this.TabRight.Model = this.TabBottom.Model = this.detailTab.Model = this.SysModel;
if (!string.IsNullOrEmpty(this.SysModel.ParmaryValue))
{
this._keyValue = this.SysModel.ParmaryValue;
}
}
#endregion
#region 获取明细
///
/// 说明:获取报表明细
/// 创建人:王一帆
/// 创建日期:2021-06-16
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
private List GetDetailGrids()
{
List details = new List();
DataTable moduleDetailBottomTable = BaseModuleImpl.GetBaseDetailPages(this.SysModel.ModuleCode);
if (moduleDetailBottomTable.Rows.Count == 0)
{
moduleDetailBottomTable = BaseModuleImpl.GetBaseAddTabDetail(this.SysModel.ModuleCode);
}
foreach (DataRow item in moduleDetailBottomTable.Rows)
{
DataTable dtGridColumns = ReportImpl.GetReportDetailColumns(this.SysModel.ModuleCode, item["id"] + "");
details.Add(new GridDetailModel(item, dtGridColumns, GridCustomColumnStruct.BaseDetailGridView));
}
return details;
}
#endregion
#region 初始化控件
///
/// 说明:初始化控件
/// 创建人:王一帆
/// 创建日期:2021-06-16
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
private void InitializeControl()
{
this.ControlObj = new MyControl();
this.ControlObj.InitControl(_dtFields, this.pl_Main_Center);
int height = 0; int top = 0; int left = 0;
if (_codeFields.Rows.Count > 0)
{
for (int i = 0; i < _codeFields.Rows.Count; i++)
{
top += 17;
DataRow item = _codeFields.Rows[i];
SweepControl sweepControl = new SweepControl();
sweepControl.Parent = detailplControl;
sweepControl.TitleLabelObj.Text = item["username1"] + "";
sweepControl.Top = top;
sweepControl.Left = 32;
top += sweepControl.Height;
}
}
this.detailContorl.Height = top + 15;
if (_RightFields.Rows.Count > 0)
{
top = 22;
for (int i = 0; i < _RightFields.Rows.Count; i++)
{
left += 34;
SweepButton sweepButton = new SweepButton();
DataRow item = _RightFields.Rows[i];
sweepButton.Parent = detailControl_Right;
sweepButton.TitleLabelObj.Text = item["menuname"] + "";
sweepButton.Top = top;
sweepButton.Left = left;
if (left + sweepButton.Width + 34 > 406)
{
left = 0;
top += sweepButton.Height + 22;
}
else
{
left += sweepButton.Width;
}
}
}
}
#endregion
#region 初始化分割条位置
///
/// 说明:初始化分割条位置
/// 创建人:王一帆
/// 创建日期:2021-06-16
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
protected void InitlizeSpiltLocation()
{
try
{
string positionMain = IniHelper.Read(string.Format("base_SplitSweepCodeMain_{0}", this.SysModel.ModuleCode));
if (!string.IsNullOrEmpty(positionMain))
{
this.splitMain.SplitterPosition = Convert.ToInt32(positionMain);
}
}
catch (Exception ex)
{
LogHelper.Instance.WriteError(ex);
MessageUtil.Show(ex);
}
}
#endregion
#region 初始化右键模块(用于开工动态设置)
#endregion
#region 初始化扫码功能模块的明细数据
///
/// 说明:初始化扫码功能模块的明细数据
/// 创建人:王一帆
/// 创建日期:2021-06-16
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
private void InitializeDetailGrid()
{
this.detailTab.InitTabPages(GridDetailModelObjs);
this.TabBottom.InitTabPages(GridDetailAddObj);
this.TabRight.InitTabPages(GridDetailRightObj);
}
#endregion
#endregion
}
}