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

301 lines
15 KiB
C#

using SuperMap.RealEstate.ServiceModel;
using SuperMap.RealEstate.Web.Utility;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using Business = SuperMap.RealEstate.Personnel.Storage.Business;
using FWB = SuperMap.RealEstate.FrameWork.Business;
namespace SuperMap.RealEstate.Personnel.Modules.Rank
{
public partial class BasePage : SuperMap.RealEstate.Web.UI.PageValid
{
#region -> GetBindingDataSource
public static DataTable GetBindingDataSource(string pid, string obscureName, Transaction _Transaction,
string DataType = "UserType", string OtherCondition = "")
{
DataTable DataSource = new DataTable();
string format = "", arg2 = "", arg3 = "", fullSQLString = "";
switch (DataType)
{
case "RoleType":
format = "select * from T_RoleType where {0} {1} order by RoleType_PID,RoleType_Index,RoleType_ID";
arg2 = string.IsNullOrEmpty(pid) ? "1 = 1" : "RoleType_PID = " + pid;
arg3 = string.IsNullOrEmpty(obscureName) ? "" : " AND RoleType_Name LIKE '%" + obscureName + "%'";
fullSQLString = string.Format(format, arg2, arg3 + OtherCondition);
FWB.RoleType _RoleType = new FWB.RoleType(_Transaction);
DataSource = _RoleType.ExecuteDataTable(fullSQLString, null, 0, 0);
break;
case "UserType":
format = "SELECT * FROM PLATFORM_FRAMEWORK.T_USERTYPE WHERE {0} {1} ORDER BY USERTYPE_PID,USERTYPE_INDEX,USERTYPE_NAME";
arg2 = string.IsNullOrEmpty(pid) ? "1 = 1" : "USERTYPE_PID = " + pid;
arg3 = string.IsNullOrEmpty(obscureName) ? "" : " AND USERTYPE_NAME LIKE '%" + obscureName + "%'";
fullSQLString = string.Format(format, arg2, arg3 + OtherCondition);
FWB.UserType _USERTYPE = new FWB.UserType(_Transaction);
DataSource = _USERTYPE.ExecuteDataTable(fullSQLString, null, 0, 0);
break;
}
return DataSource;
}
#endregion
#region -> BindingTreeView
public static void BindingTreeView(Transaction _Transaction, string pid, TreeNodeCollection nodes, string DataType, string obscureName,
bool withChildNodes, string ID_Encrypt, bool IsUser = false, string CanUrl = "", string UserCanUrl = "", bool ShowCheckBoxes = false,
string OtherCondition = "", string OtherUserCondition = "", DataTable _DataTable = null, DataTable UserTable = null, int? _Owner_ID = null)
{
bool RemoveState = _Owner_ID != null;//默认要移除没有子节点的数据
FWB.UserType _USERTYPE = new FWB.UserType(_Transaction);
if (_DataTable == null || UserTable == null)
{
_DataTable = GetBindingDataSource("", string.Empty, _Transaction, DataType, OtherCondition);
}
DataRow[] DataRowList = null;
string NextPID = "";
switch (DataType)
{
case "RoleType":
DataRowList = _DataTable.Select("RoleType_PID = " + (string.IsNullOrEmpty(pid) ? "-1" : pid));
if (UserTable == null)
{
UserTable = _USERTYPE.ExecuteDataTable("SELECT * FROM PLATFORM_FRAMEWORK.T_Role WHERE 1 = 1" + OtherUserCondition);
}
break;
case "UserType":
DataRowList = _DataTable.Select("USERTYPE_PID = " + (string.IsNullOrEmpty(pid) ? "-1" : pid));
if (UserTable == null)
{
UserTable = _USERTYPE.ExecuteDataTable("SELECT * FROM PLATFORM_FRAMEWORK.T_USER WHERE 1 = 1" + OtherUserCondition);
}
break;
case "ProDefType":
DataRowList = _DataTable.Select("PRODEFTYPE_PID = " + (string.IsNullOrEmpty(pid) ? "-1" : pid));
break;
case "ProDef":
DataRowList = _DataTable.Select("PRODEFTYPE_ID = " + (string.IsNullOrEmpty(pid) ? "-1" : pid));
break;
}
foreach (DataRow _DataRow in DataRowList)
{
#region
TreeNode treeNode = new TreeNode();
treeNode.ShowCheckBox = ShowCheckBoxes;
switch (DataType)
{
case "RoleType":
#region
NextPID = _DataRow["RoleType_ID"].ToString();
treeNode.Text = _DataRow["RoleType_NAME"].ToString();
if (CanUrl == "")
{
treeNode.NavigateUrl = UriHelper.AddRequestToUrl("RoleTypePage.aspx?ID=" +
_DataRow["RoleType_ID"].ToEncrypt(), "Module_ID", ID_Encrypt);
}
else if (CanUrl == "#")
{
treeNode.NavigateUrl = "#";
}
else
{
treeNode.NavigateUrl = UriHelper.AddRequestToUrl(CanUrl + "ID=" +
_DataRow["RoleType_ID"].ToEncrypt(), "Module_ID", ID_Encrypt);
}
treeNode.Value = _DataRow["RoleType_ID"].ToString();
treeNode.ImageToolTip = "RoleType";
treeNode.ImageUrl = TreeNodeImageUrl.RoleType;
#endregion
break;
case "UserType":
#region
NextPID = _DataRow["UserType_ID"].ToString();
treeNode.Text = _DataRow["USERTYPE_NAME"].ToString();
if (CanUrl == "")
{
treeNode.NavigateUrl = UriHelper.AddRequestToUrl("USERTYPEPage.aspx?ID=" +
_DataRow["USERTYPE_ID"].ToEncrypt(), "Module_ID", ID_Encrypt);
}
else if (CanUrl == "#")
{
treeNode.NavigateUrl = "#";
}
else
{
treeNode.NavigateUrl = UriHelper.AddRequestToUrl(CanUrl + "ID=" +
_DataRow["USERTYPE_ID"].ToEncrypt(), "Module_ID", ID_Encrypt);
}
treeNode.Value = _DataRow["USERTYPE_ID"].ToString();
treeNode.ImageToolTip = "UserType";
treeNode.ImageUrl = TreeNodeImageUrl.UserType;
if (_Owner_ID != null && _DataRow["OWNERUNIT_ID"].ToString() == _Owner_ID.ToString())
{
RemoveState = false;
}
else if (_Owner_ID != null)
{
RemoveState = true;
}
else
{
RemoveState = false;
}
#endregion
break;
case "ProDefType":
#region
NextPID = _DataRow["ProDefType_ID"].ToString();
treeNode.Text = _DataRow["ProDefType_NAME"].ToString();
if (CanUrl == "")
{
treeNode.NavigateUrl = UriHelper.AddRequestToUrl("ProDefTypePage.aspx?ID=" +
_DataRow["ProDefType_ID"].ToEncrypt(), "Module_ID", ID_Encrypt);
}
else if (CanUrl == "#")
{
treeNode.NavigateUrl = "#";
}
else
{
treeNode.NavigateUrl = UriHelper.AddRequestToUrl(CanUrl + "ID=" +
_DataRow["ProDefType_ID"].ToEncrypt(), "Module_ID", ID_Encrypt);
}
treeNode.Value = _DataRow["ProDefType_ID"].ToString();
treeNode.ImageToolTip = "ProDefType";
treeNode.ImageUrl = TreeNodeImageUrl.ProDefType;
#endregion
break;
case "ProDef":
#region
treeNode.Text = _DataRow["ProDef_NAME"].ToString();
if (CanUrl == "")
{
treeNode.NavigateUrl = UriHelper.AddRequestToUrl("ProDefPage.aspx?ID=" +
_DataRow["ProDef_ID"].ToEncrypt(), "Module_ID", ID_Encrypt);
}
else if (CanUrl == "#")
{
treeNode.NavigateUrl = "#";
}
else
{
treeNode.NavigateUrl = UriHelper.AddRequestToUrl(CanUrl + "ID=" +
_DataRow["ProDef_ID"].ToEncrypt(), "Module_ID", ID_Encrypt);
}
treeNode.Value = _DataRow["ProDef_ID"].ToString();
treeNode.ImageToolTip = "ProDef";
treeNode.ImageUrl = TreeNodeImageUrl.ProDef;
#endregion
break;
}
treeNode.Expanded = new bool?(false);
//treeNode.PopulateOnDemand = true;
#endregion
if (!string.IsNullOrEmpty(obscureName) || withChildNodes)
{
BindingTreeView(_Transaction, NextPID, treeNode.ChildNodes, DataType,
obscureName, withChildNodes, ID_Encrypt, IsUser, CanUrl, UserCanUrl, ShowCheckBoxes,
OtherCondition, OtherUserCondition, _DataTable, UserTable, _Owner_ID);
//treeNode.PopulateOnDemand = false;
}
if (IsUser)
{
if (DataType == "RoleType")
{
#region
foreach (DataRow UserRow in UserTable.Select("RoleType_ID = " + _DataRow["RoleType_ID"].ToString() +
(string.IsNullOrEmpty(obscureName) ? "" : " AND RoleType_ID_NAME LIKE '%" + obscureName + "%'")))
{
TreeNode _TreeNode = new TreeNode();
_TreeNode.ShowCheckBox = ShowCheckBoxes;
_TreeNode.Text = UserRow["Role_NAME"].ToString();
_TreeNode.Value = UserRow["Role_ID"].ToString();
if (UserCanUrl == "")
{
_TreeNode.NavigateUrl = UriHelper.AddRequestToUrl("RolePage.aspx?ID=" +
UserRow["Role_ID"].ToEncrypt(), "Module_ID", ID_Encrypt);
}
else if (UserCanUrl == "#")
{
_TreeNode.NavigateUrl = "#";
}
else
{
_TreeNode.NavigateUrl = UriHelper.AddRequestToUrl(UserCanUrl + "ID=" +
_DataRow["RoleType_ID"].ToEncrypt(), "Module_ID", ID_Encrypt);
}
_TreeNode.ImageToolTip = "Role";
_TreeNode.ImageUrl = TreeNodeImageUrl.Role;
treeNode.ChildNodes.Add(_TreeNode);
}
#endregion
}
else if (DataType == "UserType")
{
#region
foreach (DataRow UserRow in UserTable.Select("USERTYPE_ID = " + _DataRow["USERTYPE_ID"].ToString() +
(string.IsNullOrEmpty(obscureName) ? "" : " AND (USER_NAME LIKE '%" + obscureName +
"%' OR USER_PASSPORT LIKE '%" + obscureName + "%')") + (_Owner_ID == null ? "" :
" AND PROVINCE_UNIT = '" + _Owner_ID + "'"), "USER_INDEX,USER_ID"))
{
TreeNode _TreeNode = new TreeNode();
_TreeNode.ShowCheckBox = ShowCheckBoxes;
_TreeNode.Text = UserRow["USER_NAME"].ToString() + (UserRow["USER_STATUS"].ToString() == "0" ?
"[<a style=\"color:Red\">无效</a>]" : "");
_TreeNode.Value = UserRow["USER_ID"].ToString();
if (UserCanUrl == "")
{
_TreeNode.NavigateUrl = UriHelper.AddRequestToUrl("USERPage.aspx?ID=" + UserRow["USER_ID"].ToEncrypt() +
"&RoleType=" + HttpContext.Current.Request["RoleType"], "Module_ID", ID_Encrypt);
}
else if (UserCanUrl == "#")
{
_TreeNode.NavigateUrl = "#";
}
else
{
_TreeNode.NavigateUrl = UriHelper.AddRequestToUrl(UserCanUrl + "ID=" + UserRow["USER_ID"].ToEncrypt() +
"&RoleType=" + HttpContext.Current.Request["RoleType"], "Module_ID", ID_Encrypt);
}
_TreeNode.ImageToolTip = "User";
_TreeNode.ImageUrl = TreeNodeImageUrl.User;
treeNode.ChildNodes.Add(_TreeNode);
}
#endregion
}
}
nodes.Add(treeNode);
if (!string.IsNullOrEmpty(obscureName))
{
if (treeNode.ChildNodes.Count == 0)
{
if (treeNode.Text.IndexOf(obscureName, StringComparison.CurrentCultureIgnoreCase) < 0)
{
nodes.Remove(treeNode);
}
}
else
{
treeNode.Expanded = new bool?(true);
}
}
else if (RemoveState && treeNode.ChildNodes.Count == 0)
{
nodes.Remove(treeNode);
}
}
}
#endregion
}
}