搭建asp会议签到系统 第四章 会议统计

搭建asp会议签到系统


第一章 账密登录
第二章 生成会议签到二维码
第三章 会议签到
第四章 会议统计



前言

前文已说如何登录、生成会议二维码以及签到,本篇将继续说明如何进行签到信息统计。
这一章技术最简单但也是最终效果展示:围绕meetcheck做一些SQL操作。


提示:以下是本篇文章正文内容,下面案例可供参考

一、前端list view展示

员工扫码签到后,会议管理页面展示出席/缺席信息。
从产品角度来讲,展示缺席信息更为合理。

<SelectedItemTemplate>
   <tr style="">        
   <!--代码有点长这里仅展示关键部分-->
      <td>
  <asp:Label Text='<%# Eval("姓名") %>' runat="server" ID="姓名Label" />
      </td>
      <td>
  <asp:Label Text='<%# Eval("部门") %>' runat="server" ID="部门Label" />
       </td>
       <td>
       <asp:Label Text='<%# Eval("更新时间") %>' runat="server" ID="更新时间Label" />
         </td>
           <td>
  <asp:Label Text='<%# Eval("类型") %>' runat="server" ID="类型Label" />
                  </td>
          <td>
  <asp:Label Text='<%# Eval("事由") %>' runat="server" ID="事由Label" />
                  </td>
              </tr>
          </SelectedItemTemplate>
          
<asp:SqlDataSource runat="server" ID="SqlDataSource2" ConnectionString='<%$ ConnectionStrings:DC6 %>'
SelectCommand="PROC_MEETOUT" SelectCommandType="StoredProcedure">
<SelectParameters>
   <asp:ControlParameter ControlID="meetsub" PropertyName="SelectedValue"
    Name="MEETID" Type="String" DefaultValue=" "></asp:ControlParameter>
      </SelectParameters>
      </asp:SqlDataSource>

这里写了个存储过程PROC_MEETOUT,代码如下

CREATE PROC [dbo].[PROC_MEETOUT]
@MEETID nvarchar(50)
AS
declare @StrFilter nvarchar(4000)
declare @sql nvarchar(4000)
select @StrFilter = ' WHERE (STU=''3'' OR STU=''5'') AND 1=1 '
if @MEETID <> ''
SET @StrFilter =@StrFilter +' AND A.MEETID='''+@MEETID+''''
SET @sql='SELECT C.lastname 姓名,D.departmentname 部门,A.CHECKDT 更新时间,STUNA 类型,REASON 事由 FROM meetcheck A LEFT JOIN Meet B ON A.MEETID=B.MeeID LEFT JOIN HrmResource C ON A.USERID=C.workcode LEFT JOIN HrmDepartment D on C.departmentid = D.id  LEFT JOIN MEETSTU ON STU=STUID'+@StrFilter
select @StrFilter = '  ORDER BY A.CHECKDT '
SET @sql=@sql+@StrFilter
execute(@sql)
set nocount off

效果图:
在这里插入图片描述

二、后端帆软报表展示

报表做了好多个,会议维度、部门维度、员工维度等。
这里展示会议维度,以及其下面的几个关键SQL

//参会员工汇总(排除不在参会名单内的签到情况)
SELECT B.lastname,B.workcode,ISNULL(C.STU,9) STU,A.* FROM FWOA.ecology.dbo.VW_HYCHRY A LEFT JOIN FWOA.ecology.dbo.HrmResource B ON A.memberid=B.id 
LEFT JOIN (SELECT USERID,MEETID,STU,CHECKDT FROM meetcheck) C ON B.workcode=C.USERID AND A.meetingid=C.MEETID WHERE A.meetingid ='${MeetID}' AND SUBCOMPANYID1=1 ORDER BY case when ISNULL(C.STU,9)=1 or ISNULL(C.STU,9)=4 then 1 when ISNULL(C.STU,9)=2 then 2 when ISNULL(C.STU,9)=3 then 3 when ISNULL(C.STU,9)=5 then 4 else 9 end,CHECKDT

迟到统计

//注意签到时间晚于会议开始时间1分钟后算迟到
SELECT meetcheck.*,C.LASTNAME FROM meetcheck LEFT JOIN FWOA.ecology.dbo.HrmResource C ON USERID=C.workcode WHERE MEETID='${MeetID}' AND ((DATEDIFF(N,MEETBDT,CHECKDT)>1 AND LEN(IP)>1) OR STU='2') AND EXISTS (SELECT B.lastname,B.workcode,A.* FROM FWOA.ecology.dbo.VW_HYCHRY A LEFT JOIN FWOA.ecology.dbo.HrmResource B ON A.memberid=B.id WHERE USERID=B.workcode AND A.MEETINGID=MEETID) 

在这里插入图片描述

三、例外收获

可以通过一个人的参会率和填写理由情况,侧面小概率判断该员工是否稳定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

载河之舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值