如何在gridview中显示总时间 [英] How to display total time in gridview

查看:78
本文介绍了如何在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 >
< >
< 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)),11​​4)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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆