如何创建每周时间表 [英] How to create weekly timesheet
问题描述
大家好,对于人力资源项目,我正在研究基于Web的时间表.我能够创建每日工时表(
hi all, for hrm project i''m working on web based timesheet. I''m able to create daily basis timesheet(
employeeid, projectid, hours, totaltime(entry date + hours ), weeknumber
),还可以显示每周时间表(按选择的星期进行过滤),其功能包括:按行可编辑,分组.
现在,我的客户要求是按周为基础(而不是每天)填写时间表.与exel时间表相同.像(数据透视表)一样为差异项目添加新行
), and also able to show weekly timesheet(filtered by select week) with features: editable row wise, grouping.
Now my client requirement is to fill timesheet on week bases(not daily). Same as the exel timesheets. add new row for diffeernt project just like(pivot table)
Project Name | Monday | Tuesday |... | Sunday
Sample1 6 2
Sample2 2 8
... ... ...
小时数受限于文本框.
在此先感谢
P.S.抱歉,语法错误.
Hours are bounded to textbox.
Thanks in advance
P.S. sorry for grammer mistakes.
推荐答案
嘿,我正在同一个...我也实现了它.
Hey i m working on same...i also implemented it .i m giving u my code accrding u change ur query n also code..
public void calculateWeek()
{
try
{
DateTime date = Convert.ToDateTime(txtenddate2.Text);
DateTime startDate = date;
DateTime lastdate = DateTime.Now;
DateTime endDate = startDate.AddMonths(1).AddDays(-1);
int i = 0;
for (DateTime result = startDate; result <= endDate; result = lastdate.AddDays(1))
{
if (result.Day != 31)
{
weeks[i, 0] = result.ToString();
if (result.AddDays(14) >= endDate)
{
weeks[i, 1] = endDate.ToString();
lastdate = result.AddDays(14);
}
else
{
weeks[i, 1] = result.AddDays(14).ToString();
lastdate = result.AddDays(14);
}
}
else
{
weeks[i - 1, 1] = result.ToString();
lastdate = result.AddDays(14);
}
i++;
}
if (weeks.Length > 0)
{
Session["frt_1"] = Convert.ToDateTime(weeks[0, 0].ToString());
Session["frt_2"] = Convert.ToDateTime(weeks[0, 1].ToString());
Session["frt_3"] = Convert.ToDateTime(weeks[1, 0].ToString());
Session["frt_4"] = Convert.ToDateTime(weeks[1, 1].ToString());
}
}
catch (Exception ex)
{
}
}
//Response.Redirect("~/report1.aspx?dt=" + date + "&job=" + DropJob.SelectedValue + "&comp=" + ViewState["compid"].ToString() + "&pagename=WeekwiseJob");
string str = "select s.StaffName,isnull(t.HourlyCharges,0) as HourlyCharges,isnull(sum(convert(float,TotalTime)),0)as TotalTime, " +
" isnull((isnull(sum(convert(float,TotalTime)),0)* t.HourlyCharges),0)as Charges,isnull(sum(OpeAmt),0)as OpeAmt,dbo.TotalTime(isnull(sum(convert(float,TotalTime)),0)) as mints,convert(varchar(50),dbo.TotalTime(isnull(sum(convert(float,TotalTime)),0))/60) + '.' + convert(varchar(50),dbo.TotalTime(isnull(sum(convert(float,TotalTime)),0))%60) as timet " +
" from dbo.Staff_Master as s right join dbo.Job_Staff_Table as j on s.StaffCode=j.StaffCode " +
" left join dbo.TimeSheet_Table as t on t.JobId=j.JobId and t.StaffCode=j.StaffCode and t.Date>='" + Convert.ToDateTime(weeks[0, 0].ToString()) + "' " +
" and t.Date <='" + Convert.ToDateTime(weeks[1, 1].ToString()) + "' where j.JobId='" + DropJob.SelectedValue + "' and t.CLTId='" + DropClient.SelectedValue + "' group by s.StaffName,t.HourlyCharges";
DataTable dt = db.GetDataTable(str);
感谢回复...
计算周数不是问题...我可以根据参数
thanks for reply...
Calculating week isn''t a problem... I''m able to fetch data according to week by parameter
@WeekStartDate and @WeekEndDate or @Weeknumber
..
select * from (select e.AccountProjectId, dbo.GetWeekDayNameOfDate(e.totaltime) as weekd, e.Hours from AccountEmployeeTimeEntry e where CONVERT(date, StartTime)= @start and CONVERT(date, EndTime)=@end and AccountEmployeeId =@AccountEmployeeId) P pivot (
dbo.sumFunction(hours) for weekd in([Monday], [Tuesday], [Wednesday], [thursday], [Friday], [Saturday], [Sunday] ) ) as pvt
我想以每周格式(而不是每日格式)进行插入和更新...请提供有关以周格式插入n更新的信息
i want to insert and update in weekly format(not in daily format) ... please provide info regarding insert n update in week format
这篇关于如何创建每周时间表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!