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();
}
}
}
}