我有一张包含员工详细信息的表格,其中还列出了每种类型的员工有多少叶子。该表的脚本为:
CREATE TABLE [dbo].[Employee]
(
[emp_ID] [numeric](18, 0) IDENTITY(1,1) NOT NULL,
[username] [nvarchar](50) NOT NULL,
[emp_name] [nvarchar](max) NOT NULL,
[gender] [nvarchar](max) NOT NULL,
[password] [nvarchar](max) NOT NULL,
[pay_roll_num] [nvarchar](max) NOT NULL,
[designation] [nvarchar](max) NOT NULL,
[earned_leave] [numeric](18, 0) NOT NULL,
[halfpay_leave] [numeric](18, 0) NOT NULL,
[casual_leave] [numeric](18, 0) NOT NULL,
[primary_address] [nvarchar](max) NOT NULL,
[primary_phone] [nvarchar](max) NOT NULL,
[email_ID] [nvarchar](max) NOT NULL,
[manager_ID] [nvarchar](max) NOT NULL,
CONSTRAINT [PK_Employee] PRIMARY KEY CLUSTERED ([username] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]
TEXTIMAGE_ON [PRIMARY]
我正在使用Visual Studio Ultimate 2013和SQL Server 2014。
问题1:
现在,要求在每年的1月1日和7月1日,每个员工的账户中有12个叶子记入所赚和半薪类别。这些都是转发的。
EG。如果ABC有
Earned Leave = 20
Half-Pay Leave = 10
然后在午夜随着年份的变化和1月1日的开始,应该发生自动增量,导致,
Earned Leave = 50
Half-Pay Leave = 40
我尝试在管理端的page_load事件上执行此操作,方法是创建一个比较id datetime.now
返回01/01的简单函数,如果是,则递增。但后来我意识到,每次管理员登录上述2个日期时都会发生这种情况。我想到这样做的任何其他方法或页面都要求启动应用程序,而我希望在没有任何人为干预的情况下在后端发生这种情况。
问题2:
应向管理员显示每个用户帐户中发生的信用卡和借记卡的记录,如日志。如何在gridview或表格中以任何方式显示此内容?
例如,当管理员登录并选择员工姓名以查看他们的休假资产负债表时,它应该类似于下面(对于所有类型的叶子具有相同类型的详细信息)
Employee name: Abc Designation: Xyz Date of joining: 01/01/2008 **Credit Leaves**
Earned Leave
Credit for Leave Availed No. of Days
From To D C Balance
1/1/12 12 50
7/4 10/4 4 46
1/7/12 12 58
13/08 23/08 11 47
04/09 08/09 05 42
23/10 Leave Encashment 10 32
1/1/13 12 34
1/7/13 12 46
22/12 31/12 10 36
1/1/14 12 48
正如上面的临时表显示的那样,一定数量的叶子将在特定日期和休假时被记入贷方。 现在,管理员应该能够在员工兑现他的叶子时添加叶子,方法是单击Credit Leaves按钮(加粗文本)。此外,应显示年度日志,在更改年份时,应显示该年份的日志。
我完全不知道如何在gridview中进行这种日志发布。请帮帮我。
答案 0 :(得分:0)
你有一些选择:
SQL代理作业 - 您可以在指定日期运行特定存储过程,如果已配置,则可以重复运行。请参阅http://msdn.microsoft.com/en-IN/library/ms189237.aspx
Hangfire.io提供了名为“Hangfire”的ASP.NET软件包 - 它有很好的文档,可通过NuGET获得。
还有很多其他的,但这两个是非常可靠的