标签:php快速web应用开发 scriptcase php代码生成器
(关于Scriptcase产品,请查看 http://www.phpscriptcase.com 查看相关功能)
Scriptcase提供了方便的方式直接创建行式报表,可以一键生成简单、直接的报表。Scriptcase会根据数据机构,自动判断其数据类型,并且生成相应格式的字段(如整形、字符型、图片型等等)。
使用Scriptcase创建行式报表虽然方便,但是实际的工作中我们一定会遇到这样的问题:
这样的需求常见于各类业务系统中,要实现这样的需求并不复杂,只需要一小部分的代码工作就可以完成。
我们假设你使用了Scriptcase提供的『安全』模块作为系统的登录模块,安全模块登录系统后,会生成一个名为[usr_login]的全局变量,如果在任何一个界面该全局变量丢失,系统会提示当前登录已经失效并要求用户重新登录。
我们同时需要做的是当存储数据的时候,需要存储当前用户的用户名,比如,该字段名为createuser。
当Scriptcase自动生成行式报表的时候,在行式报表的『SQL设置』功能可以查看其自动生成的SQL语句,如下图所示:
为了实现『仅查看用户自己的数据』这一功能,非常简单,只需要为上面的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; } }
『行式报表』通过方法对数据进行过滤,布布扣,bubuko.com
标签:php快速web应用开发 scriptcase php代码生成器
原文地址:http://blog.csdn.net/scriptcase/article/details/32713221