using DevExpress.XtraEditors.Controls; using DevExpress.XtraGrid.Views.Grid; using DevExpress.XtraGrid.Views.Grid.ViewInfo; using Gs.DevApp.Entity; using Gs.DevApp.ToolBox; using Newtonsoft.Json; using System; using System.Data; using System.Windows.Forms; namespace Gs.DevApp.DevFrm.Sys { public partial class DocNoRule : DevExpress.XtraEditors.XtraForm { public DocNoRule() { InitializeComponent(); this.toolBarMenu1.btnAddClick += ToolBarMenu1_btnAddClick; this.toolBarMenu1.btnEdtClick += ToolBarMenu1_btnEdtClick; this.toolBarMenu1.btnSaveClick += ToolBarMenu1_btnSaveClick; this.toolBarMenu1.btnLoadClick += ToolBarMenu1_btnLoadClick; this.toolBarMenu1.btnDelClick += ToolBarMenu1_btnDelClick1; this.toolBarMenu1.btnEscClick += ToolBarMenu1_btnEscClick; gcMain.MouseDoubleClick += GcMain_MouseDoubleClick; gridView1.ColumnFilterChanged += GridView1_ColumnFilterChanged; pageBar1.PagerEvent += PageBar1_PagerEvent; getPageList(1, UtilityHelper.GetPageSize()); getTree(); txt_docCode.EditValueChanged += Txt_docCode_EditValueChanged; txxtItem1.EditValueChanged += TxxtItem1_EditValueChanged; txxtItem2.EditValueChanged += TxxtItem1_EditValueChanged; txxtItem3.EditValueChanged += TxxtItem1_EditValueChanged; txxtItem4.EditValueChanged += TxxtItem1_EditValueChanged; txt_noLength.ValueChanged += Txt_noLength_ValueChanged; txt_flagIncludeDocCode.CheckedChanged += Txt_flagIncludeDocCode_CheckedChanged; txt_flagSpilitNo.CheckedChanged += Txt_flagIncludeDocCode_CheckedChanged; } private void GridView1_ColumnFilterChanged(object sender, EventArgs e) { //// 获取GridView组件 //GridView view = sender as GridView; //// 确保view不为null //if (view == null) return; //// 获取应用的筛选器信息 //string filter = view.ActiveFilterString; //MessageBox.Show(filter); //getPageList(1, UtilityHelper.GetPageSize()); } /// /// 双击事件 /// /// /// private void GcMain_MouseDoubleClick(object sender, MouseEventArgs e) { GridHitInfo info = gridView1.CalcHitInfo(e.Location); if (info.InRow) { GridView view = info.View as GridView; if (view != null) { DataRow row = view.GetDataRow(info.RowHandle); if (row != null) { string rowGuid = (row["guid"].ToString()); getModel(rowGuid, false, 999); } } } } /// /// 分页事件 /// /// /// private void PageBar1_PagerEvent(int curPage, int pageSize) { getPageList(curPage, pageSize); } /// /// 取消事件 /// /// /// private void ToolBarMenu1_btnEscClick(object sender, EventArgs e) { UtilityHelper.ChangeTab(xtraTabControl1, 0); } /// /// 删除事件 /// /// /// private void ToolBarMenu1_btnDelClick1(object sender, EventArgs e) { DataRow dr = gridView1.GetFocusedDataRow(); if (dr == null || string.IsNullOrEmpty(dr["guid"].ToString())) { ToolBox.MsgHelper.Warning("请先选择你要操作的行!"); return; } if (!MsgHelper.AskQuestion("你选择了【" + dr["docCode"].ToString() + "】,确定删除吗?")) return; var _obj = new { guidList = dr["guid"].ToString(),//主建 }; string strJson = ""; try { strJson = UtilityHelper.HttpPost("", "DocNoRule/DeleteModel", JsonConvert.SerializeObject(_obj)); ReturnModel _rtn = ToolBox.UtilityHelper.GetDataByJson(strJson); if (_rtn.rtnCode > 0) { UtilityHelper.ChangeTab(xtraTabControl1, 0); getPageList(1, UtilityHelper.GetPageSize()); } ToolBox.MsgHelper.Warning("提示:" + _rtn.rtnMsg); } catch (Exception ex) { ToolBox.MsgHelper.Warning("提示:" + ex.Message); } } /// /// 刷新事件 /// /// /// private void ToolBarMenu1_btnLoadClick(object sender, EventArgs e) { UtilityHelper.ChangeTab(xtraTabControl1, 0); getPageList(1, UtilityHelper.GetPageSize()); } /// /// 修改事件 /// /// /// private void ToolBarMenu1_btnEdtClick(object sender, EventArgs e) { DataRow dr = gridView1.GetFocusedDataRow(); if (dr == null || string.IsNullOrEmpty(dr["guid"].ToString())) { ToolBox.MsgHelper.Warning("请先选择你要操作的行!"); return; } txxtItem1.Enabled = txxtItem2.Enabled = txxtItem3.Enabled = txxtItem4.Enabled = false; getModel(dr["guid"].ToString(), true, 1); txxtItem1.Enabled = txxtItem2.Enabled = txxtItem3.Enabled = txxtItem4.Enabled = true; } /// /// 新增事件 /// /// /// private void ToolBarMenu1_btnAddClick(object sender, EventArgs e) { UtilityHelper.ChangeTab(xtraTabControl1, 1); lbGuid.Text = ""; UtilityHelper.CleanValue(this.panel1.Controls, true); txxtItem1.SelectedIndex = txxtItem2.SelectedIndex = txxtItem3.SelectedIndex = txxtItem4.SelectedIndex = 0; } /// /// 保存事件 /// /// /// private void ToolBarMenu1_btnSaveClick(object sender, EventArgs e) { toolBarMenu1.isSetBtn = false; if (txt_docCode.EditValue == null || string.IsNullOrEmpty(txt_docCode.EditValue.ToString())) { ToolBox.MsgHelper.Warning("请先选择单据类型!"); txt_docCode.Focus(); return; } if (txt_ruleFormat.Text.Length <= 0) { ToolBox.MsgHelper.Warning("请先配置参数!"); txt_docCode.Focus(); return; } if (txt_resetZero.SelectedIndex <= 0) { Gs.DevApp.ToolBox.MsgHelper.Warning("请选择归零方式!"); txt_resetZero.Focus(); return; } var _obj = new { guid = lbGuid.Text.Trim(),//主建 docCode = txt_docCode.EditValue.ToString(), ruleFormat = txt_ruleFormat.Text.ToString(), //currentValue = txt_currentValue.Text.ToString(), noLength = txt_noLength.Value.ToString(), resetZero = txt_resetZero.SelectedIndex.ToString(), flagSpilitNo = txt_flagSpilitNo.Checked ? 1 : 2, flagIncludeDocCode = txt_flagIncludeDocCode.Checked ? 1 : 2, }; try { string strJson = UtilityHelper.HttpPost("", "DocNoRule/EditModel", JsonConvert.SerializeObject(_obj)); ReturnModel _rtn = ToolBox.UtilityHelper.GetDataByJson(strJson); ToolBox.MsgHelper.Warning("提示:" + _rtn.rtnMsg); if (_rtn.rtnCode > 0) { lbGuid.Text = _rtn.rtnData; toolBarMenu1.isSetBtn = true; UtilityHelper.ChangeEnable(this.panel1.Controls, false); } } catch (Exception ex) { ToolBox.MsgHelper.Warning("提示:" + ex.Message); } } /// /// /// /// 第几页 /// 每页几条 private void getPageList(int curPage, int pageSize) { PageQueryModel pgq = new PageQueryModel(curPage, pageSize, "docCode", "asc", "", ""); string json = JsonConvert.SerializeObject(pgq); try { string strReturn = UtilityHelper.HttpPost("", "DocNoRule/GetListPage", json); ReturnModel dd = UtilityHelper.GetTableByJson(strReturn); DataTable dt = dd.rtnData.list; gcMain.BindingContext = new BindingContext(); gcMain.DataSource = dt; gcMain.ForceInitialize(); int dddd = dd.rtnData.pages;//总页 pageBar1.TotalPages = dddd; pageBar1.RecordCount = dd.rtnData.total;//记录总数 pageBar1.CurrentPage = curPage;//当前页 pageBar1.RowsCount = pageSize;//每页显示 pageBar1.setTxt(); } catch (Exception ex) { ToolBox.MsgHelper.Warning("提示:" + ex.Message); } } private void getModel(string strGuid, bool isEdit, int tabIdx) { if (string.IsNullOrEmpty(strGuid)) { ToolBox.MsgHelper.Warning("请先选择你要操作的行!"); return; } UtilityHelper.ChangeTab(xtraTabControl1, tabIdx); var _obj = new { guid = strGuid,//主建 }; try { string strJson = UtilityHelper.HttpPost("", "DocNoRule/GetModel", JsonConvert.SerializeObject(_obj)); ReturnModel _rtn = ToolBox.UtilityHelper.GetDataByJson(strJson); if (_rtn.rtnCode > 0) { dynamic dy = _rtn.rtnData; lbGuid.Text = strGuid; UtilityHelper.SetValueByObj(this.panel1.Controls, dy, isEdit); txt_docCode.EditValue = dy.docCode.ToString(); txxtItem1.Enabled = txxtItem2.Enabled = txxtItem3.Enabled = txxtItem4.Enabled = false; string _rule = dy.ruleFormat.ToString(); string[] _ary = _rule.Split(new char[] { '<' }, StringSplitOptions.RemoveEmptyEntries); if (_ary.Length > 0) txxtItem1.Text = "<" + _ary[0]; if (_ary.Length > 1) txxtItem2.Text = "<" + _ary[1]; if (_ary.Length > 2) txxtItem3.Text = "<" + _ary[2]; if (_ary.Length > 3) txxtItem4.Text = "<" + _ary[3]; } else ToolBox.MsgHelper.Warning("提示:" + _rtn.rtnMsg); } catch (Exception ex) { ToolBox.MsgHelper.Warning("提示:" + ex.Message); } } private void getTree() { // 创建数据表 DataTable dataTable = new DataTable(); dataTable.Columns.Add("docCode", typeof(string)); // 添加数据行 dataTable.Rows.Add("DH(到货单)"); dataTable.Rows.Add("QO(报价单)"); dataTable.Rows.Add("PO(采购订单)"); dataTable.Rows.Add("IA(库存调整)"); dataTable.Rows.Add("IO(出库单)"); dataTable.Rows.Add("AR(应收款)"); dataTable.Rows.Add("SO(销售订单)"); dataTable.Rows.Add("AP(应付款)"); dataTable.Rows.Add("IV(销售发票)"); dataTable.Rows.Add("IV(销售发票)"); dataTable.Rows.Add("IN(入库)"); dataTable.Rows.Add("PN(生产库)"); // 设置LookUpEdit的数据源 txt_docCode.Properties.DataSource = dataTable; txt_docCode.Properties.DisplayMember = "docCode"; // 显示的列 txt_docCode.Properties.ValueMember = "docCode"; // 实际值的列 txt_docCode.Properties.TextEditStyle = TextEditStyles.Standard; } private void Txt_flagIncludeDocCode_CheckedChanged(object sender, EventArgs e) { DoPreviewCode(); } private void Txt_noLength_ValueChanged(object sender, EventArgs e) { DoPreviewCode(); } private void TxxtItem1_EditValueChanged(object sender, EventArgs e) { DoPreviewCode(); } private void DoPreviewCode() { if (txt_docCode.Enabled == false || txxtItem1.Enabled==false || txxtItem2.Enabled == false || txxtItem3.Enabled == false || txxtItem4.Enabled == false) return; var text = txxtItem1.Text + txxtItem2.Text + txxtItem3.Text + txxtItem4.Text; txt_ruleFormat.Text = text; if (txt_docCode.EditValue == null) { ToolBox.MsgHelper.Warning("请先选择单据类型"); txt_docCode.Focus(); return; } if (txt_ruleFormat.Text == "") { lblPreview.Text = "请定义规则."; } else { // txtRuleFormat="<年年>", "<年年年年>", "<月月>", "<日日>" }); var preview = txt_ruleFormat.Text; var length = int.Parse(txt_noLength.Value.ToString()); var docCode = ""; if (txt_flagIncludeDocCode.Checked) { docCode = txt_docCode.EditValue.ToString(); } preview = docCode + preview; preview = preview.Replace("<无>", ""); preview = preview.Replace("<年年年年>", "2024"); preview = preview.Replace("<年年>", "24"); preview = preview.Replace("<月月>", "06"); preview = preview.Replace("<日日>", "18"); preview = preview + (txt_flagSpilitNo.Checked ? "-" : "") + "8".PadLeft(length, '0'); lblPreview.Text = "生成编号:" + preview; } } private void Txt_docCode_EditValueChanged(object sender, EventArgs e) { DoPreviewCode(); } } }