求解reporting services报表引用自定义程序集(C#)问题

zhangsan03 2005-04-18 02:37:50
1、报表要完成的任务是:计算一项工作从开始到结束所用的工作时间,工作时间从8:30-17:30且不包括双休日。
2、我的报表通过引用自己写的程序集来进行计算的。
3、我的C#代码为:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;

namespace gzrClass
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class gzClass
{
public TimeSpan get_totalTime(string start1,string end1)
{
if(start1== "" || end1=="")
{
TimeSpan aa=new TimeSpan (0,0,0,0,0);
return aa;//
}

else
{
DateTime start=Convert.ToDateTime(start1);
DateTime end=Convert.ToDateTime(end1);

//
// TODO: 在此处添加构造函数逻辑
//
///////////首先给程序默认工作开始和结束的时间合法,即均在8:30和17:30之间//////////////////////
DateTime startend=new DateTime() ; //开始那天的下班时间
startend=start.Date;
startend=startend.AddHours(17);
startend=startend.AddMinutes(30); //下班时间为17:30
DateTime endstart=new DateTime (); //结束那天的上班时间
endstart=end.Date ;
endstart=endstart.AddHours (8);
endstart=endstart.AddMinutes (30); //上班时间为8:30
DateTime temp=new DateTime(); //临时变量
TimeSpan ts=new TimeSpan(); //工作时间
int dayNum=0; //中间经过的工作日天数(不是这天开始也不是这天结束的)
//法定节假日
//请假时间
//加班时间
temp=start;
if(temp.Date.Equals(end.Date)) //开始和结束在同一天
{ts=end-start;} //总时间=(结束时间-开始时间)
else
{ //开始和结束不在同一天
while(!temp.Date.Equals(end.Date)) //总时间=(17:30-开始时间)+中间经过的工作日的天数*9小时+(结束时间-8:30)
{
temp=temp.AddDays(1);
if(temp.DayOfWeek.ToString().Equals("Sunday")||temp.DayOfWeek.ToString().Equals("Saturday")) //去除周末休息
{
//
}
else if(!temp.Date.Equals(end.Date))
{
dayNum++; //中间经过的工作日的天数
}
}
TimeSpan daynum=new TimeSpan(0,(9*dayNum),0,0,0);
ts=(startend-start)+daynum+(end-endstart);
}
return ts;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////

}

}
}

4、数据库中的时间用varchar(20)保存
5、我遇到的问题是:
数据库中的时间(工作开始和结束)均存在或都为空时报表能正确显示,当其中只有一个为空时,报表无法显示。
那位大虾指教,我的问题出在哪里?能否给我一个正确的解决方案?
...全文
183 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangxunjian 2005-04-27
  • 打赏
  • 举报
回复
gz
battlerstar 2005-04-23
  • 打赏
  • 举报
回复
学习,我目前也在研究Reporting Service

4,820

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧