『行式报表』通过方法对数据进行过滤
2018-03-13 17:23
267 查看
(关于Scriptcase产品,请查看 http://www.phpscriptcase.com 查看相关功能)
Scriptcase提供了方便的方式直接创建行式报表,能够一键生成简单、直接的报表。
Scriptcase会依据数据机构,自己主动推断其数据类型,而且生成对应格式的字段(如整形、字符型、图片型等等)。
使用Scriptcase创建行式报表尽管方便,可是实际的工作中我们一定会遇到这种问题:
当前用户仅仅同意查看自己的记录;
组管理员(或者部门管理员)同意查看本组(部门)的数据,对自己的数据可改动、删除,对其它人的数据仅仅能查看(或者能够添加评论);
系统管理员能够查看所有的数据。
这种需求常见于各类业务系统中,要实现这种需求并不复杂,仅仅须要一小部分的代码工作就能够完毕。
我们假设你使用了Scriptcase提供的『安全』模块作为系统的登录模块。安全模块登录系统后,会生成一个名为[usr_login]的全局变量,假设在不论什么一个界面该全局变量丢失,系统会提示当前登录已经失效并要求用户又一次登录。
我们同一时候须要做的是当存储数据的时候。须要存储当前用户的username。比方,该字段名为createuser。
当Scriptcase自己主动生成行式报表的时候。在行式报表的『SQL设置』功能能够查看其自己主动生成的SQL语句。例如以下图所看到的:
为了实现『仅查看用户自己的数据』这一功能,很easy。仅仅须要为上面的SQL语句添加一个条件就可以。条件语句为: WHERE createuser='[usr_login]' 。例如以下图所看到的:
这样,当行式报表载入的时候。仅仅显示当前用户创建的数据,其它数据将不会显示。
当然。这是最简单的方法,往往在实际情况中无法依据这个方案来对数据进行过滤。比方,假设是普通用户,仅仅能查看个人数据。假设是管理员。则能够查看其所在组的所有成员的数据。这又怎样实现呢?
Scriptcase仍然有方法能够实现,就是OnScriptInit事件。
OnScriptInit在页面载入或重载时执行。在执行SQL语句之前执行,因此能够在此事件中对SQL条件进行设置,生成你须要的SQL条件。而且拼凑成终于的SQL语句。
Scriptcase提供了方便的方式直接创建行式报表,能够一键生成简单、直接的报表。
Scriptcase会依据数据机构,自己主动推断其数据类型,而且生成对应格式的字段(如整形、字符型、图片型等等)。
使用Scriptcase创建行式报表尽管方便,可是实际的工作中我们一定会遇到这种问题:
当前用户仅仅同意查看自己的记录;
组管理员(或者部门管理员)同意查看本组(部门)的数据,对自己的数据可改动、删除,对其它人的数据仅仅能查看(或者能够添加评论);
系统管理员能够查看所有的数据。
这种需求常见于各类业务系统中,要实现这种需求并不复杂,仅仅须要一小部分的代码工作就能够完毕。
我们假设你使用了Scriptcase提供的『安全』模块作为系统的登录模块。安全模块登录系统后,会生成一个名为[usr_login]的全局变量,假设在不论什么一个界面该全局变量丢失,系统会提示当前登录已经失效并要求用户又一次登录。
我们同一时候须要做的是当存储数据的时候。须要存储当前用户的username。比方,该字段名为createuser。
当Scriptcase自己主动生成行式报表的时候。在行式报表的『SQL设置』功能能够查看其自己主动生成的SQL语句。例如以下图所看到的:
为了实现『仅查看用户自己的数据』这一功能,很easy。仅仅须要为上面的SQL语句添加一个条件就可以。条件语句为: WHERE createuser='[usr_login]' 。例如以下图所看到的:
这样,当行式报表载入的时候。仅仅显示当前用户创建的数据,其它数据将不会显示。
当然。这是最简单的方法,往往在实际情况中无法依据这个方案来对数据进行过滤。比方,假设是普通用户,仅仅能查看个人数据。假设是管理员。则能够查看其所在组的所有成员的数据。这又怎样实现呢?
Scriptcase仍然有方法能够实现,就是OnScriptInit事件。
OnScriptInit在页面载入或重载时执行。在执行SQL语句之前执行,因此能够在此事件中对SQL条件进行设置,生成你须要的SQL条件。而且拼凑成终于的SQL语句。
if ($condition != ""){ if (empty({sc_where_current})) { sc_select_where(add) = " where " . $condition; } else { sc_select_where(add) = " AND " . $condition; } }
相关文章推荐
- 『行式报表』通过方法对数据进行过滤
- 通过httpclient进行打包进行采集数据方法。
- 思达报表工具Style Report基础教程—用组合框进行数据过滤
- 通过Ajax进行POST提交JSON类型的数据到SpringMVC Controller的方法
- jQuery的ajax()检验用户名;通过jQuery的load()/get()/post()方法实现;使用XMLHTTPRequest对象来进行AJAX的异步数据交互
- 利用GPGPU方法将大量数据通过纹理传输至GPU进行计算
- PatentTips - 在物联网中进行数据过滤的方法和装置
- 通过Ajax进行POST提交JSON类型的数据到SpringMVC Controller的方法
- PHP calss类与extends继承、通过调用类的方法与表单数据进行交互
- 通过Ajax进行Post提交Json数据的方法
- JS对大量数据进行多重过滤的方法
- Java通过MyBatis框架对MySQL数据进行增删查改的基本方法
- 通过Ajax进行POST提交JSON类型的数据到SpringMVC Controller的方法
- Matlab函数间通过workspace进行数据共享的方法
- jquery通过select列表选择框对表格数据进行过滤示例
- jquery通过select列表选择框对表格数据进行过滤示例
- JAVA中通过自定义注解进行数据验证的方法
- 思达报表工具Style Report基础教程—用选择列表,选择树进行数据过滤
- 使用 Apache Lucene 和 Solr 进行位置感知搜索——通过合并非结构化文本和空间数据改进搜索应用程序
- 利用DataView的RowFilter进行数据过滤