联系
我们

工作日 9:00-18:00

13632615190

任务列表(SP)控件

我们已经介绍了《任务列表控件》,现在介绍“任务列表(SP)”控件,表示用存储过程取数后在系统首页进行提醒或者展示,如下图红框中的任务列表就是“任务列表(SP)”。

image.png


要实现存储过程取数提醒,首先我们需要写好存储过程,如下(SQLServer的,MySQL的请自行修改):

-- 员工业绩报表
-- DROP PROCEDURE sp_EmployeeReport
-- EXEC sp_EmployeeReport @StartTime='2023-01-01'
CREATE PROCEDURE sp_EmployeeReport
  @StartTime             SMALLDATETIME = NULL,
  @EndTime               SMALLDATETIME = NULL,
  @DeptName              NVARCHAR(50)  = NULL,   --部门
  @EmployeeName          NVARCHAR(50)  = NULL,   --部门
  @InsuranceCompanyName  NVARCHAR(50)  = NULL,   --保险公司
  @ProductName           NVARCHAR(50)  = NULL    --险种
AS

SELECT d.__Name__ AS DeptName,
       e.__Name__ AS EmloyeeName,
       pt.__Name__ AS ProductName,
       SUM(p.baodanbaofei) AS baodanbaofei,
       SUM(p.shishoubaofei) AS shishoubaofei,
	e.__ID__
FROM __Policy__ p 
     LEFT JOIN __Employee__ e ON p.__FK_Employee_ = e.__ID__
     LEFT JOIN __Department__ d ON e.__FK_Department_=d.__ID__
     LEFT JOIN __InsuranceCompanyProductType__ insu ON p.__FK_InsuranceCompanyProductType_=insu.__ID__
     LEFT JOIN __InsuranceCompany__ insuComp ON insu.__FK_InsuranceCompany_=insuComp.__ID__
     LEFT JOIN __ProductType__ pt ON insu.__FK_ProductType_=pt.__ID__
WHERE (@StartTime IS NULL OR p.__SignDate__>=@StartTime)
      AND (@EndTime IS NULL OR p.__SignDate__<=@EndTime)
      AND (@EmployeeName IS NULL OR e.__Name__ LIKE '%'+@EmployeeName+'%')
      AND (@DeptName IS NULL OR d.__Name__ LIKE '%'+@DeptName+'%')
      AND (@InsuranceCompanyName IS NULL OR insuComp.__Name__ LIKE '%'+@InsuranceCompanyName+'%')
      AND (@ProductName IS NULL OR pt.__Name__ LIKE '%'+@ProductName+'%')
GROUP BY d.__Name__,e.__Name__,e.__ID__,pt.__Name__
ORDER BY d.__Name__,e.__Name__,pt.__Name__

从上面存储过程sp_EmployeeReport中,我们返回了6个字段,字段名请记住,在下面会用到;

写好存储过程后,就可以增加“任务列表(SP)”了,如下图:

image.png

从“工具箱\常规控件”中选择“任务列表(SP)”后添加到首页合适区域,如上图,并设置属性。

任务:

任务

任务ID:必填,每个任务必须要有一个ID,用于设置任务权限;

任务说明:客户端首页任务上面的标题,如下图红框中的就是“任务说明”:

image.png

自动刷新:True表示任务会自动刷新

刷新频率:“自动刷新”为True设置多少分钟自动刷新一次此任务列表;


数据属性

取数类型:选“SP”;

存储过程:填我们上面编写好的存储过程名sp_EmployeeReport;

过滤条件:前面我们编写的SQLServer存储过程有6个可Null的参数(@StartTime,@EndTime,@DeptName,@EmployeeName,@InsuranceCompanyName,@ProductName ),所以这里设置过滤条件的“字段名”必须和存储过程参数名保存一致(不包括@)。“比较”随便选(因为存储过程的参数不能传入比较符的)。“值”支持固定字符串或者E6脚本,这里用ToDay(-365)的E6脚本,表示StartTime传入“今天-365天”的日期值。

image.png

自动生成列:如果您的存储过程返回的列是不固定的(比如根据条件动态拼接的SQL语句返回列可能不固定)则这里选择True;

列设置:点击右侧的按钮设置“任务列表(SP)”的列。如下,由于我们存储过程返回的列有如下图的(DeptName,EmployeeName,ProductName,baodanbaofei,shishoubaofei,__ID__)等等。

image.png

根据实际的存储过程中SELECT返回的值类型,选择正确的“自定义列类型”后“添加”

设置每一列的“列表头”属性和“数据库字段”属性,如下图“部门名称”列的“数据库字段”属性就设置和存储过程的列DeptName一致。

image.png


设置好上述属性以后,我们的任务列表就可以运行了!发布后登录客户端即可显示。

image.png


完结!