知方号 知方号

自动生成统计报表功能 统计报表功能

自动生成统计报表功能

智遥工作流软件中,自带了一个自动生成统计报表功能(可以再网页上查看,也可以导出Excel);不用自己写代码,甚至都不需要调整一下,非常实用。作为一个懒人程序员,我很喜欢这个功能。

我们开发好一个流程后,比如“差旅报销单”有时候需要查询一下,一段时间内有多少人报销了,报销内容是什么。这样就需要一个查询统计功能了。之前用过的OA都没有这个功能,都要需要自己开发,而且要做成一个流程的模式。挺麻烦的,至少我这个懒人是这样觉得的。

先上个截图吧:

自动生成的报表默认只提供按日期范围查询,但是代码是开源的,其他的条件需要自己添加。源代码非常简单

using System;using System.Data;using System.Text;using System.Web.UI;using Ext.Net;using ZOA_DAL;using ZOA;public partial class WorkFlow_Form_CLBXD_R : BasePage{ Z_User u = new Z_User(); SqlHelper sh = new SqlHelper(); protected void Page_Init(object sender, EventArgs e) { } protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { } } protected void BQuery_Click(object sender, DirectEventArgs e) { StoreMain.DataSource = QueryMain(); StoreMain.DataBind(); } protected DataTable QueryMain() { StringBuilder sqlStr = new StringBuilder(); sqlStr.Append(" select F.*,W.subject,W.finishflag,start_time,end_time "); sqlStr.Append(" from CLFBX F "); sqlStr.Append(" inner join Z_WorkFlowSummary W ON F.workid=W.workid and W.status=1 "); if (TDateFrom.IsEmpty == false) { sqlStr.Append(" and datediff(D,W.start_time, + TDateFrom.SelectedDate + )=0 "); } //sqlStr.Append(" Where 1=1 "); //sqlStr.Append(" "); //sqlStr.Append(" "); return sh.Query(sqlStr.ToString()); } //导出数据 protected void BExportData_Click(object sender, EventArgs e) { ExportExcel ee = new ExportExcel(); DataTable dt = QueryMain(); dt.Columns["subject"].ColumnName = "流程名称"; dt.Columns["start_time"].ColumnName = "发起时间"; dt.Columns["end_time"].ColumnName = "结束时间"; dt.Columns["finishflag"].ColumnName = "是否完成"; dt.Columns["workid"].ColumnName = "编号"; dt.Columns["userid"].ColumnName = "工号"; dt.Columns["username"].ColumnName = "姓名"; dt.Columns["dept"].ColumnName = "部门"; dt.Columns["position"].ColumnName = "职位"; dt.Columns["reason"].ColumnName = "出差事由"; dt.Columns["datefrom"].ColumnName = "开始日期"; dt.Columns["dateto"].ColumnName = "结束日期"; dt.Columns["days"].ColumnName = "天数"; dt.Columns["totalmoney"].ColumnName = "合计金额"; dt.Columns["remark"].ColumnName = "备注"; dt.Columns["creator"].ColumnName = "创建人"; dt.Columns["ctime"].ColumnName = "创建日期"; dt.Columns["modifier"].ColumnName = "修改人"; dt.Columns["mtime"].ColumnName = "修改日期"; ee.ToExcel(dt, Response, "Report"); }}

 

注:

1.报表只会显示主表的内容,如果有明细表,明细表内容是不会显示的,但是可以自己加上去,改下SQL语句就好了 2.导出Excel功能和好用,之前我写的导出Excel都是直接将GridView用Excel显示,觉得不好用。 3.这个统计报表,还有权限控制功能,可以设置查看人员。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。