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;
using Lskj.Model;
using Lskj.Control.Model;
using Lskj.Util;
using Lskj.Business.Impl;
using DevExpress.XtraGrid.Views.Grid;
using Lskj.Data;
using DevExpress.XtraBars;
using DevExpress.XtraTab;
using DevExpress.XtraEditors;
using System.Collections;
using Lskj.PubBillConcise.Model;
using DevExpress.Data;
using DevExpress.XtraGrid.Columns;
using System.IO;
using Lskj.Business;
using System.Text.RegularExpressions;
using DevExpress.XtraTreeList.Nodes;
using DevExpress.XtraEditors.Repository;
using DevExpress.XtraGrid.Views.Base;
using System.Threading;
using DevExpress.XtraGrid.Views.Grid.ViewInfo;
using Lskj.Core;
using DevExpress.XtraTreeList.Columns;
using System.Threading.Tasks;
using DevExpress.Utils;
using System.Data.SqlClient;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
namespace Lskj.PubBillConcise
{
public partial class BillModule : UserControl
{
///
/// 是否为初始化创建
///
private bool _isInitFinish;
///
/// 是否加载右侧控件数据
///
private bool _isLoadRightControlValue = true;
///
/// 是否手动选择了模版
///
private bool _isSelectedTemplete;
///
/// 是否直接打印
///
private bool _isExcPrint;
///
/// 是否选择关联下发
///
private bool _isCheck;
///
/// 主打印Sql
///
private string _mainPrintSql;
private string guidField = "xxxxx_guid";
///
/// 主键字段
///
private string mRecordPrimaryField;
///
/// 单据水印
///
private WaterMark _waterMark;
///
/// 导入单据明细数据、导入单据明细并更新
///
private BarButtonItem _itemImport, _itemImportUpdate;
///
/// 打印主sql中关联打印次数返回条件
///
private string _printModeCond;
///
/// 打印完成后添加数据用到的参数: 表名,列前缀,主键字段,主键值,模块编号,主打印Sql
///
private List _printSaveParams;
///
/// 单据明细列
///
private DataTable _detailColumns;
private bool IsCopying = false;
///
/// 单据来源明细拖拽删除当前行数据集合
///
private List RemoveRowitem = new List();
protected DataRow BillRowItem;
///
/// 主表控件
///
public MyControl ControlObj;
///
/// 入口参数
///
protected DynamicBillModel SysModel;
///
/// 是否为Brp模版
///
/// true if this instance is BRP templete; otherwise, false.
protected bool IsBrpTemplete { get { return SysModel is DynamicBillBrpModel; } }
///
///
///
public BillModel BillModel;
///
/// 快速扫码控件
///
/// The main bottom input object.
public PanelControl MainBottomInputObj { get { return this.pl_input; } }
///
/// Brp模版控件
///
/// The main bottom templete object.
public PanelControl MainBottomTempleteObj { get { return this.pl_templete; } }
///
/// 明细表格数据
///
/// The main bottom templete object.
public GridControlEx gcMainDetilObj { get { return this.gcMain; } }
///
/// Brp模版控件
///
/// 扫码框
public TextEdit txtinputobj { get { return this.txt_input; } }
///
/// 数量名称
///
public string NumberMc;
///
/// 红字单据的分配管理模块
///
public string rdRedUnionCode;
///
/// 蓝字单据的分配管理模块
///
public string rdBlueUnionCode;
///
/// 蓝字单据的分配管理模块
///
Dictionary pageNumKey = new Dictionary();
///
/// 是否拖拽换行展示
///
public bool isDragWrap = true;
///
/// 触发主表改变刷新来源限制
///
private bool IsBillMaster = true;
///
/// 是否执行了加载储存过程
///
//public bool ProcessExists = false;
///
/// 保存或修改时报错信息
///
public string SaveErrorMessage = string.Empty;
///
/// 单据明细删除的行
///
// private Dictionary ToWithdrawRows = new Dictionary();
private List> ToWithdrawRows = new List>();
///
///改变颜色行
///
private List ChangeColorRow = new List();
///
///
///
public string AssociatedField = string.Empty;
///
/// 注册设置公共事件私有类
///
private static PubEvenImpl _eventHandler;
///
/// 注册设置公共事件类
///
private static PubEvenImpl eventHandler;
///
/// 当前人员是否有导出权限
///
public bool ExportPermission;
///
/// 是否显示单据管理条数
///
public bool IsBillShowCount = false;
///
/// 来源明细的页面名字后缀(设置成全局变量,更好的处理语言翻译的情况)
///
public string DetailedSuffix = Business.Impl.LanguageTranslation.Translatable ? Business.Impl.LanguageTranslation.GetTranslatedText("-明细") : "-明细";
///
/// 单据来源控件集合
///
public Dictionary BillModuleModelDic = new Dictionary();
private volatile bool _moduleDisposed;
private readonly object _billModuleModelSync = new object();
///
/// 主表动态生成的日期列
///
public List DateColumnList = new List();
///
/// 主表动态生成的合计列
///
public GridColumn SumGridColumn = new GridColumn();
///
/// 附加右键菜单
///
public SimpleButton itemCommon = new SimpleButton();
///
/// 是否已经添加了多行汇总
///
public bool MultiLineSummary;
///
/// 扫码框
///
public TextEdit ScanCodeTextEdit = null;
///
/// 初始化时选中的页签
///
public XtraTabPage InitialSelectionTab = null;
public BillModule()
{
InitializeComponent();
this.Disposed += BillModule_Disposed;
}
private void BillModule_Disposed(object sender, EventArgs e)
{
_moduleDisposed = true;
// The preloading graph keeps delegates pointing at this module.
// Remove this owner from the cache as soon as the visual root is
// disposed so later lookups cannot resurrect a closed module.
try
{
if (SysModel != null && SysModel.DataCaches != null)
SysModel.DataCaches.RemoveCache(this);
}
catch
{
// Disposal must remain best-effort.
}
lock (_billModuleModelSync)
{
BillModuleModelDic.Clear();
}
DateColumnList.Clear();
RemoveRowitem.Clear();
ToWithdrawRows.Clear();
ChangeColorRow.Clear();
SysModel = null;
BillModel = null;
ControlObj = null;
}
#region 初始化操作
///
/// 说明:窗口加载
/// 创建人:龚宇超
/// 创建日期:2017-11-23
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The instance containing the event data.
public void OnLoad(DynamicBillModel Model)
{
try
{
this.SysModel = Model;// 单据动态链接库参数,入口参数
if (this.SysModel != null && this.SysModel.DataCaches == null)
this.SysModel.DataCaches = new Dictionary