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