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 CoreFS.CA06; using Core.Mes.Client.Comm.Server; using Infragistics.Win.UltraWinGrid; using System.Collections; using Core.Mes.Client.Comm.Tool; using Core.Mes.Client.Comm.Control; namespace Core.StlMes.Client.SaleBase { public partial class FrmStation : FrmBase { string strShift = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserOrder(); string strTerm = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserGroup(); string strOperator = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName(); string regIonID = ""; public FrmStation() { InitializeComponent(); this.ComBelongsCity.AfterExpand += new TreeViewEventHandler(ComBelongsCity_AfterExpand); this.ComBelongsCity.AfterCollapse += new TreeViewEventHandler(ComBelongsCity_AfterCollapse); } //刷新Tree public void QueryTree() { this.ComBelongsCity.Nodes.Clear(); DataTable dt = new DataTable(); dt = ServerHelper.GetData("com.steering.pss.sale.base.CoreStation.GetTivCode", new Object[] { }, this.ob); //树控件递归绑定方法。 Bind_Tv(dt, ComBelongsCity.Nodes, null, "REGION_NO", "P_REGION_NO", "REGION_NM"); } protected override void OnLoad(EventArgs e) { try { base.OnLoad(e); ultraGridRegion.DisplayLayout.Override.FilterUIType = Infragistics.Win.UltraWinGrid.FilterUIType.FilterRow; ultraGridRegion.DisplayLayout.Override.FilterOperatorDefaultValue = Infragistics.Win.UltraWinGrid.FilterOperatorDefaultValue.Contains; //ultraGridRegion.DisplayLayout.Override.CellClickAction = Infragistics.Win.UltraWinGrid.CellClickAction.RowSelect; } catch (System.Exception ex) { } } private void Bind_Tv(DataTable dt, TreeNodeCollection tnc, string pid_val, string id, string pid, string text) { DataView dv = new DataView(dt);//将DataTable存到DataView中,以便于筛选数据 TreeNode tn;//建立TreeView的节点(TreeNode),以便将取出的数据添加到节点中 //以下为三元运算符,如果父id为空,则为构建“父id字段 is null”的查询条件,否则构建“父id字段=父id字段值”的查询条件 string filter = string.IsNullOrEmpty(pid_val) ? pid + " is null" : string.Format(pid + "='{0}'", pid_val); dv.RowFilter = filter;//利用DataView将数据进行筛选,选出相同 父id值 的数据 foreach (DataRowView drv in dv) { tn = new TreeNode();//建立一个新节点(学名叫:一个实例) tn.Tag = drv[id].ToString();//节点的Value值,一般为数据库的id值 tn.Text = drv[text].ToString();//节点的Text,节点的文本显示 tn.Name = drv["REGION_LVL_NO"].ToString();//区域属性代码 tn.ImageKey = drv["REGION_LVL_NM"].ToString(); if (!string.IsNullOrEmpty(drv["P_REGION_NO"].ToString())) { tn.ToolTipText = drv["P_REGION_NO"].ToString(); } else { tn.ImageIndex = 0; } tnc.Add(tn);//将该节点加入到TreeNodeCollection(节点集合)中 Bind_Tv(dt, tn.Nodes, tn.Tag.ToString(), id, pid, text);//递归(反复调用这个方法,直到把数据取完为止) } } void ComBelongsCity_AfterCollapse(object sender, TreeViewEventArgs e) { if (e.Node.ImageIndex == 1) e.Node.ImageIndex = e.Node.SelectedImageIndex = 0; } void ComBelongsCity_AfterExpand(object sender, TreeViewEventArgs e) { if (e.Node.ImageIndex == 0) e.Node.ImageIndex = e.Node.SelectedImageIndex = 1; } //展开下拉列表树节点, public void treeSelect(string Name) { if (!string.IsNullOrEmpty(Name)) { for (int e = 0; e < this.ComBelongsCity.Nodes.Count; e++) { ComBelongsCity.Nodes[e].Collapse(); //展开一级节点 //if (this.ComBelongsCity.Nodes[e].Name.Equals(tNode.Name)) //{ // this.ComBelongsCity.Nodes[e].Expand(); // return; //} //展开二级节点 for (int w = 0; w < this.ComBelongsCity.Nodes[e].Nodes.Count; w++) { if (this.ComBelongsCity.Nodes[e].Nodes[w].Tag.Equals(Name)) { this.ComBelongsCity.Nodes[e].Expand(); this.ComBelongsCity.Nodes[e].Nodes[w].ExpandAll(); return; } } //展开三级子节点 for (int w = 0; w < this.ComBelongsCity.Nodes[e].Nodes.Count; w++) { for (int r = 0; r < this.ComBelongsCity.Nodes[e].Nodes[w].Nodes.Count; r++) { if (this.ComBelongsCity.Nodes[e].Nodes[w].Nodes[r].Tag.Equals(Name)) { this.ComBelongsCity.Nodes[e].Expand(); this.ComBelongsCity.Nodes[e].Nodes[w].Expand(); this.ComBelongsCity.Nodes[e].Nodes[w].Nodes[r].ExpandAll(); return; } } } //展开四级子节点 for (int w = 0; w < this.ComBelongsCity.Nodes[e].Nodes.Count; w++) { for (int r = 0; r < this.ComBelongsCity.Nodes[e].Nodes[w].Nodes.Count; r++) { for (int x = 0; x < this.ComBelongsCity.Nodes[e].Nodes[w].Nodes[r].Nodes.Count; x++) { if (this.ComBelongsCity.Nodes[e].Nodes[w].Nodes[r].Nodes[x].Tag.Equals(Name)) { this.ComBelongsCity.Nodes[e].Expand(); this.ComBelongsCity.Nodes[e].Nodes[w].Expand(); this.ComBelongsCity.Nodes[e].Nodes[w].Nodes[r].Expand(); this.ComBelongsCity.Nodes[e].Nodes[w].Nodes[r].Nodes[x].ExpandAll(); return; } } } } } } } /// /// 重写基类方法 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "doQuery": doQuery(); break; case "doAdd": if (MessageUtil.ShowQuestion("是否新增数据?").ToString().ToLower().Equals("yes")) { string dosave = doSave(); if (dosave.Equals("SetAddStation")) { MessageUtil.ShowTips("添加成功!"); } else if (dosave.Equals("doAddFalse")) { MessageUtil.ShowTips("添加失败!"); } else if (dosave.Equals("saveCoint")) { MessageUtil.ShowTips("已经存在该到站名称!"); } doQuery(); } break; case "doDelete": if (MessageUtil.ShowQuestion("是否作废数据?").ToString().ToLower().Equals("yes")) { if (doDelete()) { MessageUtil.ShowTips("作废成功!"); } else { MessageUtil.ShowTips("作废失败!"); } doQuery(); } break; case "doRecovery": if (MessageUtil.ShowQuestion("是否恢复数据?").ToString().ToLower().Equals("yes")) { if (doResume()) { MessageUtil.ShowTips("恢复成功!"); } else { MessageUtil.ShowTips("恢复失败!"); } doQuery(); } break; case "doUpdate": if (doUpdate()) { MessageUtil.ShowTips("修改成功!"); doQuery(); } break; case "doLoad": DataTable isx = new DataTable(); DataTable unLoad = new DataTable(); unLoad.Columns.Add("Name", typeof(System.String)); unLoad.Columns.Add("Code", typeof(System.String)); isx = ServerHelper.GetData("com.steering.pss.sale.base.CoreStation.GetRegIonCode", new Object[] { }, this.ob); for (int i = 0; i < isx.Rows.Count; i++) { unLoad.Rows.Add(isx.Rows[i]["STATION_NM"].ToString(), isx.Rows[i]["RAWY_BURU"].ToString()); } TextEditorTLJ.DataSource = unLoad; TextEditorTLJ.DisplayMember = "Name"; TextEditorTLJ.ValueMember = "Code"; cobxRailroadOf.DataSource = unLoad; cobxRailroadOf.DisplayMember = "Name"; cobxRailroadOf.ValueMember = "Code"; QueryTree(); break; case "doClose": this.Close(); break; } } /// /// 查询 /// /// /// public void doQuery() { string sqlTjl = ""; string sqlDz = ""; string sqllike = ""; bool validTJLNameFlag = CheckEditorTJLName.Checked; bool validDzFlag = CheckEditorDzName.Checked; bool validLikeFlag = CheckEditorLike.Checked; //铁路局 if (validTJLNameFlag) { if (string.IsNullOrEmpty(TextEditorTLJ.Text)) { MessageUtil.ShowTips("铁路局已经勾选,铁路局不能为空,请选择铁路局!"); return; } else { sqlTjl = " and RAWY_BURU='" + TextEditorTLJ.Value + "'"; } } //到站 if (validDzFlag) { if (string.IsNullOrEmpty(TextEditorDz.Text)) { MessageUtil.ShowTips("到站已经勾选,到站不能为空,请选择铁到站!"); return; } else { sqlDz = " and STATION_NM='" + TextEditorDz.Text + "'"; } } //是否包含有效 if (!validLikeFlag) { sqllike = " and VALIDFLAG='" + "1" + "'"; } DataTable dts = ServerHelper.GetData("com.steering.pss.sale.base.CoreStation.ToQuery", new Object[] { sqlTjl, sqlDz, sqllike }, this.ob); GridHelper.CopyDataToDatatable(ref dts, ref this.dataTableRegion, true); if (dts.Rows.Count > 0) { foreach (UltraGridRow ugr in this.ultraGridRegion.Rows) { if (ugr.Cells["VALIDFLAG"].Value.ToString().ToLower() == "0") { ugr.Cells["VALIDFLAG"].Value = false; this.ultraGridRegion.Rows[ugr.Index].CellAppearance.ForeColor = Color.Red; } if (ugr.Cells["VALIDFLAG"].Value.ToString().ToLower() == "1") { ugr.Cells["VALIDFLAG"].Value = true; } } ////内容自适应 //GridHelper.RefreshAndAutoSizeExceptRows(ultraGridRegion, new UltraGridColumn[] { //ultraGridRegion.DisplayLayout.Bands[0].Columns["MEMO"] //}); } else { uldtsCoupling.Tables[0].Clear(); } foreach(UltraGridRow row in this.ultraGridRegion.Rows) { if (row.Cells["STATION_NM"].Value.ToString() == txtArrival.Text) { row.Selected = true; row.Activated = true; break; } } } //保存 public string doSave() { if (string.IsNullOrEmpty(txtArrival.Text)) { MessageUtil.ShowTips("到站名称不能为空!"); return "no"; } //if (string.IsNullOrEmpty(telegraphCode.Text)) //{ // MessageUtil.ShowTips("电报码不能为空!"); // return "no"; //} //if (string.IsNullOrEmpty(textFee.Text)) //{ // MessageUtil.ShowTips("费用不能为空!"); // return "no"; //} //if (string.IsNullOrEmpty(kilometerSum.Text)) //{ // MessageUtil.ShowTips("公里数不能为空!"); // return "no"; //} if (string.IsNullOrEmpty(cobxRailroadOf.Text)) { MessageUtil.ShowTips("属性铁路局不能为空,请选择!"); return "no"; } if (string.IsNullOrEmpty(ComBelongsCity.Text)) { MessageUtil.ShowTips("所属城市不能为空,请选择!"); return "no"; } //到站名称 string regName = txtArrival.Text; //电报码 string teleCode = ""; //费用 string fee = ""; //公里数 string kilometer = ""; //备注 string memo = textBoxMeMo.Text; //属性铁路局 string regionnm = cobxRailroadOf.Text; string regionno = cobxRailroadOf.Value.ToString(); //所属城市 string pregionnm = ComBelongsCity.Text; string pregionno = ComBelongsCity.SelectedNode == null ? ComBelongsCity.Tag.ToString() : ComBelongsCity.SelectedNode.Tag.ToString(); DataTable dts = ServerHelper.GetData("com.steering.pss.sale.base.CoreStation.GetQuerySave", new Object[] { regName }, this.ob); if (dts.Rows.Count > 0) { return "saveCoint"; } //if (MessageUtil.ShowYesNoAndQuestion("是否保存数据?") == DialogResult.No) return "no"; ArrayList parm = new ArrayList(); parm.Add(regionno); parm.Add(regionno); parm.Add(regName); parm.Add(pregionno); parm.Add(kilometer); parm.Add(fee); parm.Add(teleCode); parm.Add(regionno); parm.Add(memo); parm.Add(strOperator); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.sale.base.CoreStation"; ccp.MethodName = "SetAddStation"; ccp.ServerParams = new object[] { parm }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode == -1) { return "doAddFalse"; } return "doAddTrue"; } //修改 public bool doUpdate() { if (string.IsNullOrEmpty(regIonID)) { MessageUtil.ShowTips("请选择需要修改的数据!"); return false; } if (string.IsNullOrEmpty(txtArrival.Text)) { MessageUtil.ShowTips("到站名称不能为空!"); return false; } //if (string.IsNullOrEmpty(telegraphCode.Text)) //{ // MessageUtil.ShowTips("电报码不能为空!"); // return false; //} //if (string.IsNullOrEmpty(textFee.Text)) //{ // MessageUtil.ShowTips("费用不能为空!"); // return false; //} //if (string.IsNullOrEmpty(kilometerSum.Text)) //{ // MessageUtil.ShowTips("公里数不能为空!"); // return false; //} if (string.IsNullOrEmpty(cobxRailroadOf.Text)) { MessageUtil.ShowTips("属性铁路局不能为空,请选择!"); return false; } if (string.IsNullOrEmpty(ComBelongsCity.Text)) { MessageUtil.ShowTips("所属城市不能为空,请选择!"); return false; } if (MessageUtil.ShowYesNoAndQuestion("是否修改数据?") == DialogResult.No) return false; ArrayList parm = new ArrayList(); parm.Add(txtArrival.Text); //到站名称 parm.Add(ComBelongsCity.SelectedNode == null ? ComBelongsCity.Tag.ToString() : ComBelongsCity.SelectedNode.Tag.ToString()); //所属城市ID parm.Add("");//公里数 parm.Add("");//费用 parm.Add("");//电报码 parm.Add(cobxRailroadOf.Value);//所属铁路ID parm.Add(textBoxMeMo.Text);//备注 parm.Add(strOperator);//修改人 parm.Add(regIonID);//ID CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.sale.base.CoreStation"; ccp.MethodName = "SetUpdateStation"; ccp.ServerParams = new object[] { parm }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode == -1) { return false; } return true; } //作废 public bool doDelete() { if (string.IsNullOrEmpty(regIonID)) { MessageUtil.ShowTips("请选择需要修改的数据!"); return false; } ArrayList parm = new ArrayList(); parm.Add("0"); //0删除 parm.Add(strOperator);//删除人 parm.Add(regIonID); //ID CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.sale.base.CoreStation"; ccp.MethodName = "SetDeleteStation"; ccp.ServerParams = new object[] { parm }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode == -1) { return false; } return true; } //恢复 public bool doResume() { if (string.IsNullOrEmpty(regIonID)) { MessageUtil.ShowTips("请选择需要修改的数据!"); return false; } ArrayList parm = new ArrayList(); parm.Add("1"); //0恢复 parm.Add(regIonID); //ID CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.sale.base.CoreStation"; ccp.MethodName = "SetRecoveryStation"; ccp.ServerParams = new object[] { parm }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode == -1) { return false; } return true; } private void frmStation_Load(object sender, EventArgs e) { DataTable isx = new DataTable(); DataTable unLoad = new DataTable(); unLoad.Columns.Add("Name", typeof(System.String)); unLoad.Columns.Add("Code", typeof(System.String)); isx = ServerHelper.GetData("com.steering.pss.sale.base.CoreStation.GetRegIonCode", new Object[] { }, this.ob); for (int i = 0; i < isx.Rows.Count; i++) { unLoad.Rows.Add(isx.Rows[i]["STATION_NM"].ToString(), isx.Rows[i]["RAWY_BURU"].ToString()); } TextEditorTLJ.DataSource = unLoad; TextEditorTLJ.DisplayMember = "Name"; TextEditorTLJ.ValueMember = "Code"; cobxRailroadOf.DataSource = unLoad; cobxRailroadOf.DisplayMember = "Name"; cobxRailroadOf.ValueMember = "Code"; QueryTree(); doQuery(); } private void CheckEditorTJLName_CheckedChanged(object sender, EventArgs e) { if (this.TextEditorTLJ.ReadOnly) { this.TextEditorTLJ.ReadOnly = false; } else { this.TextEditorTLJ.ReadOnly = true; } } private void CheckEditorDzName_CheckedChanged(object sender, EventArgs e) { if (this.TextEditorDz.ReadOnly) { this.TextEditorDz.ReadOnly = false; } else { this.TextEditorDz.ReadOnly = true; } } private void ultraGridRegion_AfterRowActivate(object sender, EventArgs e) { DataTable unLoad = new DataTable(); unLoad.Columns.Add("Name", typeof(System.String)); unLoad.Columns.Add("Code", typeof(System.String)); Infragistics.Win.UltraWinGrid.UltraGridRow row = ultraGridRegion.ActiveRow; if (row != null) { //到站名称 txtArrival.Text = row.Cells["STATION_NM"].Text.Trim(); //到站ID regIonID = row.Cells["STATION_NO"].Value.ToString(); //所属铁路局 cobxRailroadOf.Text = row.Cells["RAWY_BURU"].Value.ToString(); cobxRailroadOf.Value = row.Cells["RAWY_BURU_NO"].Text.ToString(); treeSelect(row.Cells["RAWY_BURU"].Value.ToString()); ////所属城市 //unLoad.Rows.Add(row.Cells["REGION_NM"].Value.ToString(), row.Cells["REGION_NO"].Value.ToString()); treeSelect(row.Cells["REGION_NO"].Value.ToString()); ComBelongsCity.Text = row.Cells["REGION_NM"].Value.ToString(); ComBelongsCity.Tag = row.Cells["REGION_NO"].Value.ToString(); if (ComBelongsCity.SelectedNode != null) { ComBelongsCity.SelectedNode.Tag = row.Cells["REGION_NO"].Value.ToString(); } ////公里数 //kilometerSum.Text = row.Cells["DISTANCE"].Value.ToString(); ////费用 //textFee.Text = row.Cells["FREIGHT"].Value.ToString(); ////电报码 //telegraphCode.Text = row.Cells["TELEGRP_NO"].Value.ToString(); //备注 textBoxMeMo.Text = row.Cells["MEMO"].Value.ToString(); } } } }