点击打开链接public void CommuertReportExcel()
{
DataTable dtshow = new DataTable();
DataTable dt = new DataTable();
string sql = "select LogTime,AttendantWorkNo,ActionName from AttendantLogInfo where ActionName in('登录','下班') " + search_condition() + " order by LogTime";
dt = share.rdtable(sql);
if (dt.Rows.Count == 0)
{
dgVidicon.Visible = false;
return;
}
else
dgVidicon.Visible = true;
ArrayList al = new ArrayList();
string showcolumns = "";
for (int j = 0; j < dt.Rows.Count; j++)
{
if (j == 0)
{
dtshow.Columns.Add("工号", Type.GetType("System.String"));
}
DateTime logtime = Convert.ToDateTime(dt.Rows[j][0]);
//string nyr = logtime.GetDateTimeFormats('D')[0].ToString();
string nyr = string.Format("{0:d}", logtime);
//string sf = logtime.GetDateTimeFormats('t')[0].ToString();
string workno = dt.Rows[j][1].ToString();
if (showcolumns != nyr)
{
dtshow.Columns.Add(nyr, Type.GetType("System.String"));
showcolumns = nyr;
}
if (!al.Contains(workno))
{
al.Add(workno);
DataRow dr = dtshow.NewRow();
dr[dtshow.Columns[0].ColumnName] = workno;
dtshow.Rows.Add(dr);
dtshow.AcceptChanges();
}
}
for (int k = 0; k < dtshow.Rows.Count; k++)
{
for (int m = 1; m < dtshow.Columns.Count; m++)
{
string workno = dtshow.Rows[k][0].ToString();
string day = dtshow.Columns[m].ColumnName;
dtshow.Rows[k][m] = getValue(dt, workno, day);
}
}
dgVidicon.DataSource = dtshow;
dgVidicon.DataBind();
}
public string getValue(DataTable dt, string workno, string day)
{
object obj1 = dt.Compute("min(LogTime)", "AttendantWorkNo='" + workno + "' and Logtime>='" + day + " 00:00:00' and Logtime<='" + day + " 23:59:59' and ActionName='登录'");
if (obj1 == null || obj1.ToString().Length == 0)
obj1 = "0";
else
{
DateTime logtime = Convert.ToDateTime(obj1);
obj1 = logtime.GetDateTimeFormats('t')[0].ToString();
}
object obj2 = dt.Compute("max(LogTime)", "AttendantWorkNo='" + workno + "' and Logtime>='" + day + " 00:00:00' and Logtime<='" + day + " 23:59:59' and ActionName='下班'");
if (obj2 == null || obj2.ToString().Length == 0)
obj2 = "0";
else
{
DateTime logtime = Convert.ToDateTime(obj2);
obj2 = logtime.GetDateTimeFormats('t')[0].ToString();
}
string value = "";
if (obj1 == "0" && obj2 == "0")
{
value = "0";
}
else
value = "上班[" + obj1 + "]<br />" + "下班[" + obj2 + "]";
return value;
}
分享到:
相关推荐
用C#实现数据统计图,我只画了柱状图。。
怎样使用asp.net c# 统计在线人数
C#.NET员工考勤系统,源码分享C#.NET员工考勤系统,源码分享
一个统计C#代码的小工具,只需指定C# Project所在的目录即可统计出整个项目的代码行数。
数据分组统计C#实例
C#有效代码行数统计, 暂时支持C#语言,包括一些基本的统计功能
C# 监测服务器使用情况(CPU、内存、硬盘、网络宽带1、进程).zip
学生成绩统计程序c# 学生成绩统计程序c# 学生成绩统计程序c#
员工考勤管理系统 功能介绍: ...统计信息并导出excel表格。 普通员工可以签到和签退,修改自己密码等信息。 使用说明:打开sln解决方案,修改app.config里修改数据库连接语句,附加sql 色热热数据库
C# 绘制图形.rar,柱状图,曲线图,饼状图
C# 课程设计 员工管理信息系统 案例 可以作为个人学习C#winform 编程 案例学习 也可以作为课程设计 代码都以实现,且编程风格良好
asp.net c# 统计图 GoogleChartSharp 含实例
使用c# vs2005设计开发 工具小巧,代码简洁
●客户端情况统计 ※用户操作系统统计 ※用户浏览器统计 ※访问地区统计 ※屏幕分辨率统计 ※访问者省份统计 ※C段IP地址分析 ●用户管理选项 ※获取统计代码 ※统计数据重置 ※退出系统
C#编写的员工管理信息系统,简明易懂。强力推荐的项目源码
在线统计在线统计在线统计在线统计在线统计在线统计在线统计在线统计在线统计在线统计在线统计在线统计
C#Winform 开发项目 员工管理系统
MSCHART C#生成统计图控件 可生成条形、饼形、线形以及更多种类的统计图表。 ------------------------------------- 本资源来自 Hao513网络技术中心 http://jishu.hao513.com
C# C# C# C# C# C# C# C# 适合初学者
ERP CSharp C# 报表 C# 打印 excel c# C# erp 报表设计 Excel的操作,其中可以读取及写入Excel 文件