OrgRelationship.ascx.cs
上传用户:li2971742
上传日期:2021-11-18
资源大小:39096k
文件大小:6k
源码类别:

OA系统

开发平台:

C#

  1. using System;
  2. using System.Collections;
  3. using System.Configuration;
  4. using System.Data;
  5. using System.Web;
  6. using System.Web.Security;
  7. using System.Web.UI;
  8. using System.Web.UI.HtmlControls;
  9. using System.Web.UI.WebControls;
  10. using System.Web.UI.WebControls.WebParts;
  11. namespace OThinker.H3.Portal
  12. {
  13.     public partial class OrgRelationship : System.Web.UI.UserControl
  14.     {
  15.         private string EditID
  16.         {
  17.             get
  18.             {
  19.                 return this.Request.QueryString[PortalPage.Param_ID];
  20.             }
  21.         }
  22.         protected void Page_Load(object sender, EventArgs e)
  23.         {
  24.             // 检查是否存在
  25.             OThinker.Organization.Unit unit = OThinker.H3.Server.Engine.Organization.GetUnit(this.EditID);
  26.             if (unit == null)
  27.             {
  28.                 return;
  29.             }
  30.             // 直接父组
  31.             string[] directParentGroups = OThinker.H3.Server.Engine.Organization.GetParentGroups(this.EditID);
  32.             if (directParentGroups != null)
  33.             {
  34.                 Table table = new Table();
  35.                 this.PanelDirectParentGroup.Controls.Add(table);
  36.                 foreach (string group in directParentGroups)
  37.                 {
  38.                     TableRow row = new TableRow();
  39.                     table.Rows.Add(row);
  40.                     TableCell groupCell = new TableCell();
  41.                     row.Cells.Add(groupCell);
  42.                     // 显示组信息
  43.                     HyperLink lnkGroup = new HyperLink();
  44.                     lnkGroup.Text = OThinker.H3.Server.Engine.Organization.GetFullName(group);
  45.                     lnkGroup.NavigateUrl = PortalPage.PageName_EditGroup + "?" + PortalPage.Param_ID + "=" + group;
  46.                     groupCell.Controls.Add(lnkGroup);
  47.                     TableCell titleCell = new TableCell();
  48.                     row.Cells.Add(titleCell);
  49.                     // 获得用户的职务
  50.                     if (unit.UnitType == OThinker.Organization.UnitType.User)
  51.                     {
  52.                         OThinker.Organization.User user = (OThinker.Organization.User)unit;
  53.                         string[] titles = user.GetTitles(group);
  54.                         System.Text.StringBuilder titleBuilder = new System.Text.StringBuilder();
  55.                         if (titles != null && titles.Length != 0)
  56.                         {
  57.                             foreach (string titleId in titles)
  58.                             {
  59.                                 OThinker.Organization.Title title = OThinker.H3.Server.Engine.Organization.GetTitle(titleId);
  60.                                 if (title != null)
  61.                                 {
  62.                                     titleBuilder.Append(title.Name + "; ");
  63.                                 }
  64.                             }
  65.                         }
  66.                         if (titleBuilder.Length == 0)
  67.                         {
  68.                             titleBuilder.Append("设置职务");
  69.                         }
  70.                         HyperLink lnkEditTitle = new HyperLink();
  71.                         lnkEditTitle.Text = titleBuilder.ToString();
  72.                         lnkEditTitle.NavigateUrl = PortalPage.PageName_EditUserTitle + "?" + PortalPage.Param_UserID + "=" + user.UnitID + "&" + PortalPage.Param_Parent + "=" + group;
  73.                         lnkEditTitle.Target = "_blank";
  74.                         titleCell.Controls.Add(lnkEditTitle);
  75.                     }
  76.                 }
  77.             }
  78.             // 直接上级组织
  79.             string directParent = OThinker.H3.Server.Engine.Organization.GetParent(this.EditID);
  80.             OThinker.Organization.Unit directParentUnit = OThinker.H3.Server.Engine.Organization.GetUnit(directParent);
  81.             HyperLink lnkDirectParent = new HyperLink();
  82.             lnkDirectParent.Text = OThinker.H3.Server.Engine.Organization.GetFullName(directParent);
  83.             lnkDirectParent.NavigateUrl = PortalPage.GetEditPageName(directParentUnit.UnitType, directParent);
  84.             this.PanelDirectParent.Controls.Add(lnkDirectParent);
  85.             // 经理
  86.             string managerId = OThinker.H3.Server.Engine.Organization.GetManager(this.EditID);
  87.             this.lnkManager.Text = OThinker.H3.Server.Engine.Organization.GetFullName(managerId);
  88.             this.lnkManager.NavigateUrl = PortalPage.GetEditPageName(OThinker.Organization.UnitType.User, managerId);
  89.             // 隶属于
  90.             string[] parents = OThinker.H3.Server.Engine.Organization.GetParents(this.EditID, OThinker.Organization.UnitType.Unspecified, true);
  91.             if (parents != null)
  92.             {
  93.                 foreach (string parent in parents)
  94.                 {
  95.                     OThinker.Organization.Unit parentUnit = OThinker.H3.Server.Engine.Organization.GetUnit(parent);
  96.                     HyperLink lnkParent = new HyperLink();
  97.                     lnkParent.Text = OThinker.H3.Server.Engine.Organization.GetFullName(parent) + "<BR>";
  98.                     lnkParent.NavigateUrl = PortalPage.GetEditPageName(parentUnit.UnitType, parent);
  99.                     this.PanelAllParent.Controls.Add(lnkParent);
  100.                 }
  101.             }
  102.             // 我的下属
  103.             string[] underlings = OThinker.H3.Server.Engine.Organization.GetUserManagedUnits(this.EditID, OThinker.Organization.UnitType.Unspecified);
  104.             if (underlings != null)
  105.             {
  106.                 foreach (string underling in underlings)
  107.                 {
  108.                     OThinker.Organization.Unit underlingUnit = OThinker.H3.Server.Engine.Organization.GetUnit(underling);
  109.                     HyperLink lnkUnderling = new HyperLink();
  110.                     lnkUnderling.Text = OThinker.H3.Server.Engine.Organization.GetFullName(underling) + "<BR>";
  111.                     lnkUnderling.NavigateUrl = PortalPage.GetEditPageName(underlingUnit.UnitType, underling);
  112.                     this.PanelManagedUnit.Controls.Add(lnkUnderling);
  113.                 }
  114.             }
  115.         }
  116.     }
  117. }