2025-03-27 15:05:14 +08:00

245 lines
12 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SuperMap.RealEstate.Web.Utility;
using HWSB = SuperMap.RealEstate.HighWay.Storage.Business;
using SuperMap.RealEstate.CoreFrameWork.Dictionary.Business;
using SuperMap.RealEstate.CoreFrameWork;
namespace SuperMap.RealEstate.Personnel.Modules.Staff
{
public partial class ObjectTreeNew : BasePage
{
private Storage.Business.DEPARTMENT _DEPARTMENT = null;
private HWSB.SERVERPART _SERVERPART = null;
string FieldExplain_ID
{
get
{
FieldExplain _FieldExplain = new FieldExplain(this.Transaction);
_FieldExplain.AddSearchParameter("FieldExplain_Field", "DIVISION_CODE");
if (_FieldExplain.Search())
{
return _FieldExplain.FieldExplain_ID.ToString();
}
else
{
throw new Exception("未配置对应的服务区数据!");
}
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack) return;
try
{
ButtonAddType.OnClientClick = GetOpenPopDialogClientScript("StaffPageGs.aspx", "StaffPage", 950, 800, true, false, true);
ButtonBatchAdd.OnClientClick = GetOpenPopDialogClientScript("ImportStaff.aspx", "ImportStaff", 1200, 800, true, false, true);
this.FixTreeViewDoubleClick(MyTreeView, true);
SetControlClientAction(ButtonSearch);
TreeViewBinding(false);
}
catch (Exception ex)
{
throw ex;
}
finally
{
}
}
private void TreeViewBinding(bool withChildNodes)
{
_SERVERPART = new HWSB.SERVERPART(this.Transaction);
string PartString = "";
string ProwerString = "";
foreach (string _str in PassportInfo.CityAuthority.Split(','))
{
PartString += PartString == string.Empty ? "'" + _str + "'" : ",'" + _str + "'";
}
foreach (FieldEnum _FieldEnum in (new FieldEnum(this.Transaction)).FillCollection("where FieldEnum_Value in(" + PartString + ")"))
{
ProwerString += ProwerString == "" ? _FieldEnum.FieldEnum_ID.ToString() : "," + _FieldEnum.FieldEnum_ID;
}
string serverPartWhere = " AND FIELDENUM_ID IN (" + ProwerString + ") AND STATISTICS_TYPE IN (1000,2000,1001)";
MyTreeView.Nodes.Clear();
if (string.IsNullOrWhiteSpace(PassportInfo.ProvinceCode))
{
DataTable UserTable = new FrameWork.Business.User(Transaction).ExecuteDataTable(
"SELECT USER_MOBILEPHONE,USER_PROVINCE,PROVINCE_UNIT FROM T_USER WHERE User_ID = " + PassportInfo.ID);
if (UserTable.Rows.Count > 0)
{
PassportInfo.UserMobilephone = UserTable.Rows[0]["USER_MOBILEPHONE"].ToString();
PassportInfo.ProvinceCode = UserTable.Rows[0]["USER_PROVINCE"].ToString();
}
}
TreeNode _Node = new TreeNode();
_Node.Text = "全部";
_Node.ImageToolTip = "FieldEnum";
_Node.ImageUrl = TreeNodeImageUrl.FieldEnum;
_Node.NavigateUrl = "StaffListGs.aspx";
MyTreeView.Nodes.Add(_Node);
if (!string.IsNullOrWhiteSpace(PassportInfo.ProvinceCode))
{
FieldEnum _FieldEnum = DictionaryHelper.GetFieldEnum("DIVISION_CODE", PassportInfo.ProvinceCode, Transaction);
BindingTreeView_Enum(FieldExplain_ID, _FieldEnum.FieldEnum_ID.ToString(), _Node.ChildNodes,
TextBoxSearch.Text, withChildNodes, "12", "", null, null, true, "StaffListGs.aspx", true, serverPartWhere,"");
}
else
{
BindingTreeView_Enum(FieldExplain_ID, (GoodsProvinceCode == "" ? "620000" : GoodsProvinceCode), _Node.ChildNodes,
TextBoxSearch.Text, withChildNodes, "12", "", null, null, true, "StaffListGs.aspx", true, serverPartWhere, "");
}
MyTreeView.ExpandAll();
}
protected void MyTreeView_TreeNodePopulate(object sender, TreeNodeEventArgs e)
{
if (_SERVERPART == null)
{
_SERVERPART = new HWSB.SERVERPART(this.Transaction);
}
string PartString = "";
string ProwerString = "";
foreach (string _str in PassportInfo.CityAuthority.Split(','))
{
PartString += PartString == string.Empty ? "'" + _str + "'" : ",'" + _str + "'";
}
foreach (FieldEnum _FieldEnum in (new FieldEnum(this.Transaction)).FillCollection("where FieldEnum_Value in(" + PartString + ")"))
{
ProwerString += ProwerString == "" ? _FieldEnum.FieldEnum_ID.ToString() : "," + _FieldEnum.FieldEnum_ID;
}
string serverPartWhere = " AND FIELDENUM_ID IN (" + ProwerString + ") AND STATISTICS_TYPE IN (1000,2000,1001)";
BindingTreeView_Enum(FieldExplain_ID, e.Node.Value, e.Node.ChildNodes,TextBoxSearch.Text,
true,"12", "", null, null, true, "StaffListGs.aspx", true, serverPartWhere,"");
}
protected void ButtonSearch_Click(object sender, EventArgs e)
{
TreeViewBinding(true);
}
protected void Expand_Click(object sender, EventArgs e)
{
if (Expand.Text == "收起↑")
{
//foreach (TreeNode _TreeNode in MyTreeView.Nodes)
//{
// _TreeNode.Expanded = false;
//}
MyTreeView.CollapseAll();
Expand.Text = "展开↓";
}
else if (Expand.Text == "展开↓")
{
MyTreeView.ExpandAll();
Expand.Text = "收起↑";
}
}
#region
/// <summary>
/// 绑定服务区树(根据服务区枚举值进行绑定)
/// </summary>
/// <param name="Typeid">服务区枚举类别内码</param>
/// <param name="Pid">父级内码</param>
/// <param name="Nodes">树节点</param>
/// <param name="ObscureName">查询条件:服务区名称</param>
/// <param name="WithChildNodes">是否展示子节点</param>
/// <param name="BindEncrypted">是否加密显示节点值域</param>
/// <param name="ID_Encrypt">加密内码参数</param>
/// <param name="OtherCondition">其他查询条件</param>
/// <param name="_DataAll">服务区枚举列表</param>
/// <param name="ServerPartTable">服务区数据列表,用于判断对应枚举是否为服务区,跳转页面时可传递服务区参数</param>
/// <param name="EditType">跳转页面是否编辑服务区</param>
/// <param name="_NavigateUrl">树节点跳转地址</param>
/// <param name="RemoveNoChild">是否移除无服务区节点枚举值</param>
/// <param name="ServerPartWhereSQL">服务区查询条件</param>
/// <param name="OtherRequest">树节点跳转参数</param>
public void BindingTreeView_Enum(string Typeid, string Pid, TreeNodeCollection Nodes, string ObscureName, bool WithChildNodes,
string ID_Encrypt, string OtherCondition, DataTable _DataAll, DataTable ServerPartTable, bool EditType, string _NavigateUrl,
bool RemoveNoChild, string ServerPartWhereSQL, string OtherRequest)
{
string _ServerpartID = ""; //服务区内码
DataRow[] _DataRowList = null; //服务区枚举集合
_SERVERPART = new HWSB.SERVERPART(Transaction);
if (_DataAll == null)
{
//查询服务区枚举列表
_DataAll = GetBindingDataSource(Typeid, "", string.Empty, OtherCondition);
}
if (EditType && ServerPartTable == null)
{
//查询服务区列表
ServerPartTable = _SERVERPART.FillDataTable("WHERE 1 = 1 " + ServerPartWhereSQL);
}
_DataRowList = _DataAll.Select("FieldEnum_PID = " + Pid);
foreach (DataRow _DataRow in _DataRowList)
{
TreeNode _Node = new TreeNode();
_Node.Text = "【" + _DataRow["FieldEnum_Value"].ToString() + "】" + _DataRow["FieldEnum_Name"].ToString();
_Node.Value = _DataRow["FieldEnum_ID"].ToString();
_Node.ImageToolTip = "FieldEnum";
_Node.ImageUrl = TreeNodeImageUrl.FieldEnum;
_Node.Expanded = Pid == "-1" ? true : false;
_Node.SelectAction = TreeNodeSelectAction.None;
#region
if (ServerPartTable != null && ServerPartTable.Select("FIELDENUM_ID=" + _DataRow["FieldEnum_ID"].ToString()).Length > 0)
{
_ServerpartID = ServerPartTable.Select("FIELDENUM_ID=" + _DataRow["FieldEnum_ID"].ToString())[0]["SERVERPART_ID"].ToString();
_Node.Value = _ServerpartID;
_Node.ImageToolTip = "ServerPart";
_Node.ImageUrl = TreeNodeImageUrl.FieldEnum;
_Node.Expanded = false;
_Node.SelectAction = TreeNodeSelectAction.Expand;
}
else
{
_ServerpartID = "0";
}
#endregion
#region
_Node.NavigateUrl = _NavigateUrl + (_NavigateUrl.Contains("?") ? "&" : "?") + "SERVERPART_ID=" + _ServerpartID.ToEncrypt() + OtherRequest;
#endregion
Nodes.Add(_Node);
_Node.PopulateOnDemand = true;
if (!string.IsNullOrEmpty(ObscureName) || WithChildNodes)
{
//循环绑定子节点
BindingTreeView_Enum(Typeid, _DataRow["FieldEnum_ID"].ToString(), _Node.ChildNodes,
ObscureName, WithChildNodes, ID_Encrypt, OtherCondition, _DataAll, ServerPartTable,
EditType, _NavigateUrl, RemoveNoChild, ServerPartWhereSQL, OtherRequest);
_Node.PopulateOnDemand = false;
}
}
}
public DataTable GetBindingDataSource(string fieldExplain_ID, string pid, string obscureName,
string OtherCondition, string orderindex = " ASC")
{
FieldEnum _FieldEnum = new FieldEnum(this.Transaction);
string _SQLStr1 = "SELECT FIELDENUM_ID,FIELDENUM_VALUE,FIELDENUM_NAME,FIELDENUM_STATUS,FIELDENUM_PID" +
" FROM T_FIELDENUM A WHERE FIELDEXPLAIN_ID = {0} {1} {2} {3} ORDER BY FIELDENUM_PID,FIELDENUM_INDEX" + orderindex;
string _SQLStr2 = string.IsNullOrEmpty(pid) ? "" : "AND FIELDENUM_PID = " + pid;
string _SQLStr3 = string.IsNullOrEmpty(obscureName) ? "" : "AND FIELDENUM_NAME LIKE '%" + obscureName + "%'";
string _SQLStr4 = string.IsNullOrEmpty(OtherCondition) ? "" : "AND " + OtherCondition;
string _SQLStr = string.Format(_SQLStr1, fieldExplain_ID, _SQLStr2, _SQLStr3, _SQLStr4);
return _FieldEnum.ExecuteDataTable(_SQLStr);
}
#endregion
}
}