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

OA系统

开发平台:

C#

  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Web;
  7. using System.Web.SessionState;
  8. using System.Web.UI;
  9. using System.Web.UI.WebControls;
  10. using System.Web.UI.HtmlControls;
  11. namespace OThinker.H3.Portal
  12. {
  13. /// <summary>
  14. /// Summary description for WorkflowVersionReport.
  15. /// </summary>
  16.     public partial class WorkflowVersionReport : WorkflowReportBase
  17. {
  18. protected void Page_Load(object sender, System.EventArgs e)
  19. {
  20.             this.OriginatorSelector.SelectUserUrl = PageName_SelectUser;
  21.             this.OriginatorSelector.SelectUserImageUrl = PageName_SelectUserImage;
  22. if(!this.IsPostBack)
  23.             {
  24.                 // 验证是否具有管理员权限
  25.                 if (!this.UserValidator.ValidateViewReport())
  26.                 {
  27.                     this.NotifyMessage(LackOfAuth);
  28.                 }
  29. // 设置默认的搜索时间
  30. System.DateTime today = System.DateTime.Now;
  31. System.DateTime tomorrow = today.Add(new System.TimeSpan(1, 0, 0, 0, 0));
  32. this.txtFromTime.Text = today.ToShortDateString();
  33. this.txtToTime.Text = tomorrow.ToShortDateString();
  34.                 string[] catalogs = OThinker.H3.Server.Engine.WorkflowManager.GetWorkflowPackages();
  35. // 添加一空元素表示全部
  36. this.lstWorkflowPackage.Items.Add(NullItemValue);
  37. foreach(string catalog in catalogs)
  38. {
  39. this.lstWorkflowPackage.Items.Add(catalog);
  40. }
  41. }
  42. }
  43. #region Web Form Designer generated code
  44. override protected void OnInit(EventArgs e)
  45. {
  46. //
  47. // CODEGEN: This call is required by the ASP.NET Web Form Designer.
  48. //
  49. InitializeComponent();
  50. base.OnInit(e);
  51. }
  52. /// <summary>
  53. /// Required method for Designer support - do not modify
  54. /// the contents of this method with the code editor.
  55. /// </summary>
  56. private void InitializeComponent()
  57. {    
  58. this.btnQuery.Click += new System.Web.UI.ImageClickEventHandler(this.btnQuery_Click);
  59. this.btnExport.Click += new System.Web.UI.ImageClickEventHandler(this.btnExport_Click);
  60. }
  61. #endregion
  62. protected void lstWorkflowPackage_SelectedIndexChanged(object sender, System.EventArgs e)
  63. {
  64. string catalog = this.lstWorkflowPackage.SelectedValue;
  65. if(this.IsSelectedNull(catalog))
  66. {
  67. this.lstWorkflowName.Items.Clear();
  68. this.lstWorkflowName.Items.Add(NullItemValue);
  69. this.lstWorkflowVersion.Items.Clear();
  70. this.lstWorkflowVersion.Items.Add(NullItemValue);
  71. }
  72. else
  73. {
  74.                 string[] names = OThinker.H3.Server.Engine.WorkflowManager.GetWorkflowNames(catalog, OThinker.H3.WorkflowTemplate.WorkflowState.Unspecified);
  75. this.lstWorkflowName.Items.Clear();
  76. this.lstWorkflowName.Items.Add(NullItemValue);
  77. foreach(string name in names)
  78. {
  79. this.lstWorkflowName.Items.Add(name);
  80. }
  81. }
  82. }
  83. protected void lstWorkflowName_SelectedIndexChanged(object sender, System.EventArgs e)
  84. {
  85. string catalog = this.lstWorkflowPackage.SelectedValue;
  86. string name = this.lstWorkflowName.SelectedValue;
  87. if(this.IsSelectedNull(name))
  88. {
  89. this.lstWorkflowVersion.Items.Clear();
  90. this.lstWorkflowVersion.Items.Add(NullItemValue);
  91. }
  92. else
  93. {
  94. int[] versions = OThinker.H3.Server.Engine.WorkflowManager.GetWorkflowVersions(
  95. catalog, 
  96. name);
  97. this.lstWorkflowVersion.Items.Clear();
  98. this.lstWorkflowVersion.Items.Add(NullItemValue);
  99. if(versions != null)
  100. {
  101. foreach(int version in versions)
  102. {
  103. this.lstWorkflowVersion.Items.Add(version.ToString());
  104. }
  105. }
  106. }
  107. }
  108. protected override string ReportTableSessionName
  109. {
  110. get
  111. {
  112. return OThinker.H3.WorkSheet.Sessions.GetWorkflowVersionPerformance();
  113. }
  114. }
  115. #region 查询
  116. protected void lnkQuery_Click(object sender, System.EventArgs e)
  117. {
  118. this.Query();
  119. }
  120. private void btnQuery_Click(object sender, System.Web.UI.ImageClickEventArgs e)
  121. {
  122. this.Query();
  123. }
  124. private void Query()
  125. {
  126. string catalog = this.ParseWorkflowPackage(this.lstWorkflowPackage.SelectedValue);
  127. string name = this.ParseWorkflowName(this.lstWorkflowName.SelectedValue);
  128. int version = this.ParseWorkflowVersion(this.lstWorkflowVersion.SelectedValue);
  129. System.DateTime from = this.ParseFromTime(this.txtFromTime.Text);
  130. System.DateTime to = this.ParseToTime(this.txtToTime.Text);
  131. // 获得发起人
  132. string[] originators = this.ParseOriginators(this.OriginatorSelector.SelectedUser);
  133. // 设置查询的结果表
  134. this.ReportTable = this.Query(
  135. catalog, 
  136. name, 
  137. version, 
  138. originators, 
  139. from, 
  140. to);
  141. this.PerformanceGrid.DataSource = this.ReportTable;
  142. this.PerformanceGrid.DataBind();
  143. }
  144. private System.Data.DataTable Query(
  145. string WorkflowPackage, 
  146. string WorkflowName, 
  147. int WorkflowVersion, 
  148. string[] Originators, 
  149. System.DateTime From, 
  150. System.DateTime To)
  151. {
  152. System.Data.DataTable performances = this.CreatePerformanceTable();
  153. if(WorkflowPackage == null || WorkflowName == null)
  154. {
  155. this.NotifyMessage("请选择模板类型和模板名称");
  156. }
  157. if(
  158.                 WorkflowVersion == OThinker.H3.WorkflowTemplate.WorkflowTemplate.AllWorkflowVersion ||
  159.                 WorkflowVersion == OThinker.H3.WorkflowTemplate.WorkflowTemplate.NullWorkflowVersion)
  160. {
  161. int[] versions = OThinker.H3.Server.Engine.WorkflowManager.GetWorkflowVersions(
  162. WorkflowPackage, 
  163. WorkflowName);
  164. foreach(int version in versions)
  165. {
  166. this.GetPerformance(
  167. performances, 
  168. WorkflowPackage, 
  169. WorkflowName, 
  170. version, 
  171. Originators, 
  172. From, 
  173. To);
  174. }
  175. }
  176. else
  177. {
  178. this.GetPerformance(
  179. performances, 
  180. WorkflowPackage, 
  181. WorkflowName, 
  182. WorkflowVersion, 
  183. Originators, 
  184. From, 
  185. To);
  186. }
  187. return performances;
  188. }
  189. #endregion
  190. protected void btnExport_Click(object sender, System.Web.UI.ImageClickEventArgs e)
  191. {
  192. this.Export();
  193. }
  194. protected void lnkExport_Click(object sender, System.EventArgs e)
  195. {
  196. this.Export();
  197. }
  198. }
  199. }