Files
lserp_cs_6.0/插件库/Lskj.LserpAll/Lskj.SweepCode/FrmMain.cs
T
2026-07-02 10:11:39 +00:00

363 lines
13 KiB
C#

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
{
/// <summary>
/// <para>说明:初始化后构造方法</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2021-06-15 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
public FrmMain()
{
InitializeComponent();
}
#region 公共变量
/// <summary>
/// 入口模型
/// </summary>
public DynamicProductionModel SysModel;
/// <summary>
///查询条件控件
/// </summary>
public MyControl SearchObj;
/// <summary>
/// 主控件集
/// </summary>
public MyControl ControlObj;
/// <summary>
/// 基础模型
/// </summary>
public ModuleModel MoudleObj;
/// <summary>
/// 表格明细集合
/// </summary>
public List<GridDetailModel> GridDetailModelObjs;
/// <summary>
/// 明细衍生到下侧数据
/// </summary>
public List<GridDetailModel> GridDetailAddObj;
/// <summary>
/// 明细衍生到右侧数据
/// </summary>
public List<GridDetailModel> GridDetailRightObj;
#endregion
#region 私有变量
/// <summary>
/// 数据索引
/// </summary>
private int _dataIndex;
/// <summary>
/// 初始化完成标记
/// </summary>
private bool _isInitFinish;
/// <summary>
/// 附件部分显隐
/// </summary>
private bool _isFilePanelVisble;
/// <summary>
/// 附件源sql
/// </summary>
private string _fileSql;
/// <summary>
/// 主键值
/// </summary>
private string _keyValue;
/// <summary>
/// 主键名
/// </summary>
private string _primaryKey;
/// <summary>
/// 附件地址
/// </summary>
private string _filePath;
/// <summary>
/// 选项卡刷新页签
/// </summary>
private string[] _pageIndex;
/// <summary>
/// 当前数据内容
/// </summary>
private DataRow _rowItem;
/// <summary>
/// 控件源数据
/// </summary>
private DataTable _dtFields;
/// <summary>
/// 扫码控件源数据
/// </summary>
private DataTable _codeFields;
/// <summary>
/// 动态加载右侧按钮
/// </summary>
private DataTable _RightFields;
/// <summary>
/// 主表数据
/// </summary>
private DataTable _dtMainTable;
/// <summary>
/// pdf附件资源
/// </summary>
private DataTable _dtFiles;
/// <summary>
/// 附件下拉菜单
/// </summary>
private LabelComboxEdit _fileComboBox;
/// <summary>
/// 查看附件
/// </summary>
private ModuleWebView _moduleWebView;
/// <summary>
/// 选项卡排序Sql
/// </summary>
private Dictionary<string, string> _dicOrder = new Dictionary<string, string>();
#endregion
#region 事件
#region 窗体加载时
/// <summary>
/// <para>说明:窗体加载时</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2021-06-15 </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)
{
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 分隔条改变事件,保存分割位置
/// <summary>
/// <para>说明:分隔条改变事件,保存分割位置</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2021-06-16 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
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 初始化属性
/// <summary>
/// <para>说明:初始化属性设置</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2021-06-16 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
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 获取明细
/// <summary>
/// <para>说明:获取报表明细</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2021-06-16 </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(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 初始化控件
/// <summary>
/// <para>说明:初始化控件</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2021-06-16 </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_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 初始化分割条位置
/// <summary>
/// <para>说明:初始化分割条位置</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2021-06-16 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
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 初始化扫码功能模块的明细数据
/// <summary>
/// <para>说明:初始化扫码功能模块的明细数据</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2021-06-16 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
private void InitializeDetailGrid()
{
this.detailTab.InitTabPages(GridDetailModelObjs);
this.TabBottom.InitTabPages(GridDetailAddObj);
this.TabRight.InitTabPages(GridDetailRightObj);
}
#endregion
#endregion
}
}