如何在gridview中显示总时间 [英] How to display total time in gridview
问题描述
MealO MealOut MealBreak TeaIn TeaOut TeaBreak OutTime TimeSpent
12 :52PM 12 :55PM 1 :05PM 00 : 10 1 :13PM 1 :45PM 00 : 32 4 :21PM 02 : 47
12 :52PM 12 :55PM 1 :05PM 00 : 10 2 :11PM 2 :23PM 00 : 12 4 :21PM 03 : 07
12 :52PM 12 :55PM 1 :05PM 00 : 10 3 :11PM 3 :15PM 00 : 04 4 :21PM 03 : 15
小计 09 : 09
Grand Total 09 : 09
这是我的输出。我登录的是(26 / 10.2016)下午12:52
首先我们休息10分钟。然后我喝茶休息32分钟所以时间是2:47。现在我在同一天吃另一个茶歇12分钟我是第三次喝茶休息4分钟所以总休息时间为48分钟
我的开始时间是下午12:52,结束时间是下午4:21所以在开始时间和结束时间之间 - 总休息时间如3:29-48 = 2 :41所以我花了总时间2:41。但在我的情况下,我能够得到它。
我想这样输出..
< pre lang = C# >
MealO MealOut MealBreak TeaIn TeaOut TeaBreak TeaIn TeaOut TeaBreak Tea $
12 :52PM 12 :55PM 1 :05PM 00 : 10 1 :13PM 1 :45PM 00 : 32 2 :11PM 2 :23PM 00 : 12 3 :11PM
TeaOut TeaBreak OutTime TimeSpent
3 :15PM 00 : 04 4 :21PM 02 : 41
小计 02 : 41
总计 02 : 41 < / pre >
我想在asp.net的gridview中输出这样的结果。你能帮帮我。我会发送我的gridview代码和程序。
我尝试过:
gridview代码。
< ASP:GridView的跨度> < span class =code-attribute> ID = grdView runat = server AutoGenerateColumns = false CssClass = table table-bordered TabIndex = 1 宽度 = 100%
< span class =code-attribute> GridLines = 垂直 OnRowCreated = grdView_RowCreated1 OnRowDataBound = grdView_RowDataBound1 >
< 温泉n> 列 >
< asp:BoundField DataField < span class =code-keyword> = LoginDate HeaderText = LoginDate SortExpression = LoginDate / >
< asp:BoundField DataField = FullName < span class =code-attribute> HeaderText = EmployeeName SortExpression = FullName / >
< asp:BoundField DataField = STime HeaderText = 及时 SortExpression = STime / >
< asp:BoundField DataField = MTimeIn HeaderText = MealIn SortExpression = MTimeIn / < span class =code-keyword>>
< asp:BoundField DataField = MTimeOut HeaderText = MealOut SortExpression = MTimeOut < span class =code-keyword> / >
< asp:BoundField DataField = MealTimeSpent HeaderText = MealBreak SortExpression = MealTimeSpent / >
< asp:BoundField DataField = TTimeIn HeaderText = TeaIn SortExpression = TTimeIn / >
< asp:BoundField DataField = TTimeOut HeaderText = TeaOut SortExpression = TTimeOut / >
< asp: BoundField DataField = TeaTimeSpent HeaderText = TeaBreak SortExpression = TeaTimeSpent / >
< asp:BoundField DataField = TeaTimeSpentMinutes HeaderText = TimeSpentMinutes SortExpression = TeaTimeSpentMinutes 可见 = false / >
< asp:BoundField DataField = OTimeIn HeaderText = Oth.In SortExpression = OTimeIn / >
< asp:BoundField DataField = OTimeOut HeaderText = Oth.Out SortExpression = OTimeOut / >
< asp:BoundField DataField = OtherTimeSpent HeaderText = OtherBreak SortExpression = OtherTimeSpent / >
< asp:BoundField DataField = OtherTimeSpentMinutes HeaderText = TimeSpentMinutes SortExpression = OtherTimeSpentMinutes 可见 = false / >
< ASP:BoundF ield DataField = ETime HeaderText = OutTime SortExpression = ETime / >
< asp:BoundField DataField < span class =code-keyword> = TimeSpentWork HeaderText = TimeSpent SortExpression = TimeSpentWork / >
< asp:BoundField DataField = EmployeeId HeaderText = EmployeeId SortExpression = EmployeeId 可见 = false > < / asp :BoundField >
< asp:BoundField DataField = TimeSpentMinutes HeaderText < span class =code-keyword> = TimeSpentMinutes SortExpression = TimeSpentMinutes 可见 = false / >
< / Columns >
< / asp:GridView >
程序。
SELECT CONVERT(VARCHAR,T.CreateDateTime,105)AS [LoginDate],
E.FullName,
T.StartTimeIn,
T.EndTimeOut,
CONVERT( varchar(15),CAST(StartTimeIn AS TIME),100)AS [STime],
CONVERT(varchar(15),CAST(EndTimeOut AS TIME),100)AS [ETime],
CONVERT(varchar(15),CAST(MealTimeIn AS TIME),100)AS [MTimeIn],
CONVERT(varchar(15),CAST(MealTimeOut AS TIME),100)AS [MTimeOut],
CONVERT(varchar(15),CAST(D.TeaTimeIn AS TIME),100 )AS [TTimeIn],
CONVERT(varchar(15),CAST(D.TeaTimeOut AS TIME),100)AS [TTimeOut],
CONVERT(varchar(15) ),CAST(其他时间在时间),100)AS [OTimeIn],
CONVERT(varchar(15),CAST(OtherTimeOut AS TIME),100)AS [OTimeOut],
CONVERT(varchar(5),DATEADD(分钟,DATEDIFF(分钟,StartTimeIn,ISNULL(EndTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(),''+ 05 :30''))),0),114)AS [TimeSpent],
DATEDIFF(分钟,StartTimeIn,ISNULL(EndTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(),''+ 05:30''' )))AS [TimeSpentMinutes],
CONVERT(varchar(5),DATEADD(分钟,DATEDIFF(分钟,MealTimeIn,ISNULL(MealTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET()) ,''+ 05:30''))),0),114)AS [MealTimeSpent],
DATEDIFF(分钟,MealTimeIn,ISNULL(MealTimeOut,SWITCHO) FFSET(SYSDATETIMEOFFSET(),''+ 05:30'')))AS [MealTimeSpentMinutes],
CONVERT(varchar(5),DATEADD(分钟,DATEDIFF) (分钟,D.TeaTimeIn,ISNULL(D.TeaTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(),''+ 05:30'))),0),114)AS [TeaTimeSpent],
DATEDIFF (分钟,D.TeaTimeIn,ISNULL(D.TeaTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(),'+ 05:30')))AS [TeaTimeSpentMinutes],
CONVERT(varchar(5),DATEADD(分钟,DATEDIFF(分钟,OtherTimeIn,ISNULL(OtherTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(),''+ 05:30'))),0),114)AS [OtherTimeSpent],
DATEDIFF(分钟,OtherTimeIn,ISNULL(OtherTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(),''+ 05:30')))AS [OtherTimeSpentMinutes],
CONVERT(varchar(5),ISNULL(DATEADD(分钟,DATEDIFF(分钟,StartTimeIn,ISNULL(EndTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(),''+ 05:30'))),0), 0) -
(ISNULL(DATEADD(分钟,DATEDIFF(mi nute,MealTimeIn,ISNULL(MealTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(),''+ 05:30'))),0),0)+
ISNULL(DATEADD(分钟,DATEDIFF(分钟, D.TeaTimeIn,ISNULL(D.TeaTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(),''+ 05:30'))),0),0)+
ISNULL(DATEADD(分钟,DATEDIFF(分钟,OtherTimeIn,ISNULL(OtherTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(),''+ 05:30'))),0),0)),114)AS [TimeSpentWork],
DATEDIFF(分钟,StartTimeIn,ISNULL(EndTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(),''+ 05:30'))) -
(ISNULL(DATEDIFF(分钟,MealTimeIn) ,ISNULL(MealTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(),''+ 05:30''))),0)+
ISNULL(DATEDIFF(分钟,D.TeaTimeIn,ISNULL(D.TeaTimeOut, SWITCHOFFSET(SYSDATETIMEOFFSET(),''+ 05:30''))),0)+
ISNULL(DATEDIFF(分钟,OtherTimeIn,ISNULL(OtherTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(),''+ 05:30''))),0))AS [TimeSpentMinu tesWork],
E.EmployeeId
FROM
DailyTimeRecord T
INNER JOIN Employees E ON E.EmployeeId = T.EmployeeId
INNER JOIN TeaBreak D ON T.DailyTimeRecordId = D.DailyTimeRecordId
1.你可以在页脚中使用这一个
和在Gridview中使用ShowFooter =True
2.添加这个在GridView
< span class =code-keyword>< TemplateField >
< ItemTemplate >
< asp:标签 ID = lblsum runat = server 文字 = 标签 > < / asp:Label >
< / ItemTemplate >
< FooterTemplate >
< asp:标签 ID = lbltotal runat = server 文字 = 标签 > < / asp:Label >
< / FooterTemplate >
< / TemplateField >
3 跨度>。
decimal sumFooterValue = 0 ;
protected void GridView1_RowDataBound( object sender,GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string sponsorBonus =((Label)e.Row.FindControl( Label2\" 的跨度>))的文本。
decimal totalvalue = Convert.ToDecimal(sponsorBonus);
e.Row.Cells [ 6 ]。Text = totalvalue.ToString();
sumFooterValue + = totalvalue
}
if (e.Row.RowType == DataControlRowType.Footer)
{
Label lbl =(Label)e.Row.FindControl( lblTotal );
lbl.Text = sumFooterValue.ToString();
}
}
建议将标签转换为DateTime格式,而计算 in RowDataBound
如果你很好 in C#
谢谢你
In MealIn MealOut MealBreak TeaIn TeaOut TeaBreak OutTime TimeSpent
12:52PM 12:55PM 1:05PM 00:10 1:13PM 1:45PM 00:32 4:21PM 02:47
12:52PM 12:55PM 1:05PM 00:10 2:11PM 2:23PM 00:12 4:21PM 03:07
12:52PM 12:55PM 1:05PM 00:10 3:11PM 3:15PM 00:04 4:21PM 03:15
Sub Total 09:09
Grand Total 09:09
This is my output.I am login at (26/10.2016) 12:52PM
first we take meal break for 10 minutes.then I was take tea break 32 minutes so timespent is 2:47.now I am taking another tea break at same date for 12 minutes time and third time I was take tea break for 4 minutes so total break is 48 minutes
My start time is 12:52PM and EndTime is 4:21PM so between start time and endtime duration -total break time like 3:29-48=2:41 so I spent total time 2:41.but in my case i can able to get it.
I want to output like this..
<pre lang="C#">
In MealIn MealOut MealBreak TeaIn TeaOut TeaBreak TeaIn TeaOut TeaBreak TeaIn
12:52PM 12:55PM 1:05PM 00:10 1:13PM 1:45PM 00:32 2:11PM 2:23PM 00:12 3:11PM
TeaOut TeaBreak OutTime TimeSpent
3:15PM 00:04 4:21PM 02:41
Sub Total 02:41
Grand Total 02:41</pre>
I want to output like this in gridview in asp.net .can you please help me.I will send my gridview code and procedure.
What I have tried:
gridview code.
<asp:GridView ID="grdView" runat="server" AutoGenerateColumns="false" CssClass="table table-bordered" TabIndex="1" Width="100%"
GridLines="Vertical" OnRowCreated="grdView_RowCreated1" OnRowDataBound="grdView_RowDataBound1">
<Columns>
<asp:BoundField DataField="LoginDate" HeaderText="LoginDate" SortExpression="LoginDate" />
<asp:BoundField DataField="FullName" HeaderText="EmployeeName" SortExpression="FullName" />
<asp:BoundField DataField="STime" HeaderText="In Time" SortExpression="STime" />
<asp:BoundField DataField="MTimeIn" HeaderText="MealIn" SortExpression="MTimeIn" />
<asp:BoundField DataField="MTimeOut" HeaderText="MealOut" SortExpression="MTimeOut" />
<asp:BoundField DataField="MealTimeSpent" HeaderText="MealBreak" SortExpression="MealTimeSpent" />
<asp:BoundField DataField="TTimeIn" HeaderText="TeaIn" SortExpression="TTimeIn" />
<asp:BoundField DataField="TTimeOut" HeaderText="TeaOut" SortExpression="TTimeOut" />
<asp:BoundField DataField="TeaTimeSpent" HeaderText="TeaBreak" SortExpression="TeaTimeSpent" />
<asp:BoundField DataField="TeaTimeSpentMinutes" HeaderText="TimeSpentMinutes" SortExpression="TeaTimeSpentMinutes" Visible="false" />
<asp:BoundField DataField="OTimeIn" HeaderText="Oth.In" SortExpression="OTimeIn" />
<asp:BoundField DataField="OTimeOut" HeaderText="Oth.Out" SortExpression="OTimeOut" />
<asp:BoundField DataField="OtherTimeSpent" HeaderText="OtherBreak" SortExpression="OtherTimeSpent" />
<asp:BoundField DataField="OtherTimeSpentMinutes" HeaderText="TimeSpentMinutes" SortExpression="OtherTimeSpentMinutes" Visible="false" />
<asp:BoundField DataField="ETime" HeaderText="OutTime" SortExpression="ETime" />
<asp:BoundField DataField="TimeSpentWork" HeaderText="TimeSpent" SortExpression="TimeSpentWork" />
<asp:BoundField DataField="EmployeeId" HeaderText="EmployeeId" SortExpression="EmployeeId" Visible="false"></asp:BoundField>
<asp:BoundField DataField="TimeSpentMinutes" HeaderText="TimeSpentMinutes" SortExpression="TimeSpentMinutes" Visible="false" />
</Columns>
</asp:GridView>
procedure.
SELECT CONVERT(VARCHAR, T.CreateDateTime,105) AS [LoginDate],
E.FullName,
T.StartTimeIn,
T.EndTimeOut,
CONVERT(varchar(15),CAST(StartTimeIn AS TIME),100) AS [STime],
CONVERT(varchar(15),CAST(EndTimeOut AS TIME),100) AS [ETime],
CONVERT(varchar(15),CAST(MealTimeIn AS TIME),100) AS [MTimeIn],
CONVERT(varchar(15),CAST(MealTimeOut AS TIME),100) AS [MTimeOut],
CONVERT(varchar(15),CAST(D.TeaTimeIn AS TIME),100) AS [TTimeIn],
CONVERT(varchar(15),CAST(D.TeaTimeOut AS TIME),100) AS [TTimeOut],
CONVERT(varchar(15),CAST(OtherTimeIn AS TIME),100) AS [OTimeIn],
CONVERT(varchar(15),CAST(OtherTimeOut AS TIME),100) AS [OTimeOut],
CONVERT(varchar(5), DATEADD(minute, DATEDIFF(minute, StartTimeIn, ISNULL(EndTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), ''+05:30''))), 0), 114) AS [TimeSpent] ,
DATEDIFF(minute, StartTimeIn, ISNULL(EndTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), ''+05:30''))) AS [TimeSpentMinutes],
CONVERT(varchar(5), DATEADD(minute, DATEDIFF(minute, MealTimeIn, ISNULL(MealTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), ''+05:30''))), 0), 114) AS [MealTimeSpent] ,
DATEDIFF(minute, MealTimeIn, ISNULL(MealTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), ''+05:30''))) AS [MealTimeSpentMinutes],
CONVERT(varchar(5), DATEADD(minute, DATEDIFF(minute, D.TeaTimeIn, ISNULL(D.TeaTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), ''+05:30''))), 0), 114) AS [TeaTimeSpent] ,
DATEDIFF(minute, D.TeaTimeIn, ISNULL(D.TeaTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), ''+05:30''))) AS [TeaTimeSpentMinutes],
CONVERT(varchar(5), DATEADD(minute, DATEDIFF(minute, OtherTimeIn, ISNULL(OtherTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), ''+05:30''))), 0), 114) AS [OtherTimeSpent] ,
DATEDIFF(minute, OtherTimeIn, ISNULL(OtherTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), ''+05:30''))) AS [OtherTimeSpentMinutes],
CONVERT(varchar(5),ISNULL(DATEADD(minute, DATEDIFF(minute, StartTimeIn, ISNULL(EndTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), ''+05:30''))), 0),0)-
(ISNULL(DATEADD(minute, DATEDIFF(minute, MealTimeIn, ISNULL(MealTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), ''+05:30''))), 0),0) +
ISNULL(DATEADD(minute, DATEDIFF(minute, D.TeaTimeIn, ISNULL(D.TeaTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), ''+05:30''))), 0),0) +
ISNULL(DATEADD(minute, DATEDIFF(minute, OtherTimeIn, ISNULL(OtherTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), ''+05:30''))), 0),0)),114) AS [TimeSpentWork],
DATEDIFF(minute, StartTimeIn, ISNULL(EndTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), ''+05:30'')))-
(ISNULL(DATEDIFF(minute, MealTimeIn, ISNULL(MealTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), ''+05:30''))),0)+
ISNULL(DATEDIFF(minute, D.TeaTimeIn, ISNULL(D.TeaTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), ''+05:30''))),0)+
ISNULL(DATEDIFF(minute, OtherTimeIn, ISNULL(OtherTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), ''+05:30''))),0) ) AS [TimeSpentMinutesWork],
E.EmployeeId
FROM
DailyTimeRecord T
INNER JOIN Employees E ON E.EmployeeId = T.EmployeeId
INNER JOIN TeaBreak D ON T.DailyTimeRecordId = D.DailyTimeRecordId
1 .you can to Use This One In For Footer and in Gridview ShowFooter="True" 2 .Add this In GridView <TemplateField> <ItemTemplate> <asp:Label ID="lblsum" runat="server" Text="Label"></asp:Label> </ItemTemplate> <FooterTemplate> <asp:Label ID="lbltotal" runat="server" Text="Label"></asp:Label> </FooterTemplate> </TemplateField>
3. decimal sumFooterValue = 0; protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { string sponsorBonus = ((Label)e.Row.FindControl("Label2")).Text; decimal totalvalue = Convert.ToDecimal(sponsorBonus) ; e.Row.Cells[6].Text = totalvalue.ToString(); sumFooterValue += totalvalue } if (e.Row.RowType == DataControlRowType.Footer) { Label lbl = (Label)e.Row.FindControl("lblTotal"); lbl.Text = sumFooterValue.ToString(); } } Suggestion Convert label To DateTime Format while Counting in RowDataBound If you are good in C# Thank You
这篇关于如何在gridview中显示总时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!