InstanceDataReport.aspx.cs
资源名称:H3_OA.rar [点击查看]
上传用户:li2971742
上传日期:2021-11-18
资源大小:39096k
文件大小:9k
源码类别:
OA系统
开发平台:
C#
- using System;
- using System.Collections;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Web;
- using System.Web.SessionState;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.HtmlControls;
- namespace OThinker.H3.Portal
- {
- /// <summary>
- /// Summary description for CaseDataReport.
- /// </summary>
- public partial class InstanceDataReport : ReportPage
- {
- protected void Page_Load(object sender, System.EventArgs e)
- {
- if(!this.IsPostBack)
- {
- // 验证是否具有管理员权限
- if (!this.UserValidator.ValidateViewReport())
- {
- this.NotifyMessage(LackOfAuth);
- }
- // 设置默认的搜索时间
- System.DateTime today = System.DateTime.Now;
- System.DateTime tomorrow = today.Add(new System.TimeSpan(1, 0, 0, 0, 0));
- this.txtFromTime.Text = today.ToShortDateString();
- this.txtToTime.Text = tomorrow.ToShortDateString();
- string[] catalogs = OThinker.H3.Server.Engine.WorkflowManager.GetWorkflowPackages();
- // 添加一空元素表示全部
- this.lstWorkflowPackage.Items.Add(NullItemValue);
- foreach(string catalog in catalogs)
- {
- this.lstWorkflowPackage.Items.Add(catalog);
- }
- }
- }
- #region Web Form Designer generated code
- override protected void OnInit(EventArgs e)
- {
- //
- // CODEGEN: This call is required by the ASP.NET Web Form Designer.
- //
- InitializeComponent();
- base.OnInit(e);
- }
- /// <summary>
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- /// </summary>
- private void InitializeComponent()
- {
- this.btnQuery.Click += new System.Web.UI.ImageClickEventHandler(this.btnQuery_Click);
- this.btnExport.Click += new System.Web.UI.ImageClickEventHandler(this.btnExport_Click);
- }
- #endregion
- protected void lstWorkflowPackage_SelectedIndexChanged(object sender, System.EventArgs e)
- {
- string catalog = this.lstWorkflowPackage.SelectedValue;
- if(this.IsSelectedNull(catalog))
- {
- this.lstWorkflowName.Items.Clear();
- this.lstWorkflowName.Items.Add(NullItemValue);
- this.lstWorkflowVersion.Items.Clear();
- this.lstWorkflowVersion.Items.Add(NullItemValue);
- }
- else
- {
- string[] names = OThinker.H3.Server.Engine.WorkflowManager.GetWorkflowNames(catalog, OThinker.H3.WorkflowTemplate.WorkflowState.Unspecified);
- this.lstWorkflowName.Items.Clear();
- this.lstWorkflowName.Items.Add(NullItemValue);
- foreach(string name in names)
- {
- this.lstWorkflowName.Items.Add(name);
- }
- }
- }
- protected void lstWorkflowName_SelectedIndexChanged(object sender, System.EventArgs e)
- {
- string catalog = this.lstWorkflowPackage.SelectedValue;
- string name = this.lstWorkflowName.SelectedValue;
- if(this.IsSelectedNull(name))
- {
- this.lstWorkflowVersion.Items.Clear();
- this.lstWorkflowVersion.Items.Add(NullItemValue);
- }
- else
- {
- int[] versions = OThinker.H3.Server.Engine.WorkflowManager.GetWorkflowVersions(
- catalog,
- name);
- this.lstWorkflowVersion.Items.Clear();
- this.lstWorkflowVersion.Items.Add(NullItemValue);
- if(versions != null)
- {
- foreach(int version in versions)
- {
- this.lstWorkflowVersion.Items.Add(version.ToString());
- }
- }
- }
- }
- protected void lstWorkflowVersion_SelectedIndexChanged(object sender, System.EventArgs e)
- {
- string catalog = this.lstWorkflowPackage.SelectedValue;
- string name = this.lstWorkflowName.SelectedValue;
- string strVersion = this.lstWorkflowVersion.SelectedValue;
- WorkflowTemplate.WorkflowTemplate workflow = null;
- this.lstDataItem.Items.Clear();
- if(
- this.IsSelectedNull(strVersion) ||
- (workflow = this.GetWorkflow(
- catalog,
- name,
- int.Parse(strVersion))) == null ||
- workflow.DataItems == null)
- {
- this.lstDataItem.Items.Add(NullItemValue);
- }
- else
- {
- // 获得所有数据项
- foreach(OThinker.H3.Data.WorkflowDataItem item in workflow.DataItems)
- {
- // 能够进行统计的数据有两个条件:1、不是公式计算出来的值,2、是能够进行统计的类型
- if(item.Source == OThinker.H3.Data.DataSourceType.Common && OThinker.Data.Convertor.CanStatistic(item.RealType))
- {
- this.lstDataItem.Items.Add(item.ItemName);
- }
- }
- }
- }
- private System.Data.DataTable StatTable
- {
- get
- {
- string sessionName = OThinker.H3.WorkSheet.Sessions.GetInstanceDataStatTable();
- return (System.Data.DataTable)this.Session[sessionName];
- }
- set
- {
- string sessionName = OThinker.H3.WorkSheet.Sessions.GetInstanceDataStatTable();
- this.Session[sessionName] = value;
- }
- }
- #region 查询
- private void btnQuery_Click(object sender, System.Web.UI.ImageClickEventArgs e)
- {
- this.Query();
- }
- protected void lnkQuery_Click(object sender, System.EventArgs e)
- {
- this.Query();
- }
- private void Query()
- {
- string catalog;
- if(this.IsSelectedNull(this.lstWorkflowPackage.SelectedValue))
- {
- catalog = null;
- }
- else
- {
- catalog = this.lstWorkflowPackage.SelectedValue;
- }
- string name;
- if(this.IsSelectedNull(this.lstWorkflowName.SelectedValue))
- {
- name = null;
- }
- else
- {
- name = this.lstWorkflowName.SelectedValue;
- }
- int version = OThinker.H3.WorkflowTemplate.WorkflowTemplate.NullWorkflowVersion;
- if(!this.IsSelectedNull(this.lstWorkflowVersion.SelectedValue))
- {
- try
- {
- version = int.Parse(this.lstWorkflowVersion.SelectedValue);
- }
- catch
- {
- version = OThinker.H3.WorkflowTemplate.WorkflowTemplate.NullWorkflowVersion;
- }
- }
- string dataItemName = null;
- if(this.IsSelectedNull(this.lstDataItem.SelectedValue))
- {
- dataItemName = null;
- }
- else
- {
- dataItemName = this.lstDataItem.SelectedValue;
- }
- System.DateTime from = System.DateTime.MinValue;
- try
- {
- from = System.DateTime.Parse(this.txtFromTime.Text);
- }
- catch
- {
- from = System.DateTime.MinValue;
- }
- System.DateTime to = System.DateTime.MaxValue;
- try
- {
- to = System.DateTime.Parse(this.txtToTime.Text);
- }
- catch
- {
- to = System.DateTime.MaxValue;
- }
- // 检查是否所有参数都填写了
- if(catalog == null ||
- name == null ||
- version == OThinker.H3.WorkflowTemplate.WorkflowTemplate.NullWorkflowVersion ||
- dataItemName == null)
- {
- this.NotifyMessage("您需要输入模板类型、模板名称、模板版本和数据项名称参数!");
- }
- // 查询到这些流程
- string[] instances = OThinker.H3.Server.Engine.InstanceManager.Query(
- null,
- null,
- OThinker.H3.Instance.InstanceContext.UnspecifiedID,
- OThinker.H3.Instance.InstanceState.Unspecified,
- catalog,
- name,
- version,
- from,
- to,
- null);
- // 获得统计信息
- OThinker.H3.Data.InstanceDataStatistics statistics = OThinker.H3.Server.Engine.InstanceDataManager.Stat(
- catalog,
- name,
- version,
- instances,
- dataItemName);
- if(statistics != null)
- {
- // 查询
- System.Data.DataTable statTable = new DataTable();
- statTable.TableName = "数据报表";
- statTable.Columns.Add("ItemName");
- statTable.Columns.Add(OThinker.H3.Data.InstanceDataStatistics.PropertyName_Times);
- statTable.Columns.Add(OThinker.H3.Data.InstanceDataStatistics.PropertyName_Sum);
- statTable.Columns.Add(OThinker.H3.Data.InstanceDataStatistics.PropertyName_MinValue);
- statTable.Columns.Add(OThinker.H3.Data.InstanceDataStatistics.PropertyName_AverageValue);
- statTable.Columns.Add(OThinker.H3.Data.InstanceDataStatistics.PropertyName_MaxValue);
- statTable.Rows.Add(new object[]{
- dataItemName,
- statistics.Times,
- statistics.Sum,
- statistics.MinValue,
- statistics.AverageValue,
- statistics.MaxValue});
- this.StatTable = statTable;
- // 绑定显示
- this.DataStatisticsGrid.DataSource = this.StatTable;
- this.DataStatisticsGrid.DataBind();
- }
- }
- #endregion
- #region 导出
- protected void btnExport_Click(object sender, System.EventArgs e)
- {
- this.Export();
- }
- protected void btnExport_Click(object sender, System.Web.UI.ImageClickEventArgs e)
- {
- this.Export();
- }
- private void Export()
- {
- if(this.StatTable != null)
- {
- byte[] content = this.Export(this.StatTable);
- this.Response.ContentType = "application/vnd.ms-excel";
- this.Response.OutputStream.Write(content, 0, content.Length);
- }
- }
- #endregion
- }
- }