『行式报表』通过方法对数据进行过滤

帆软报表优化总结 date: 2019/1/24 11:17:16 前言 之前在做报表时没有注意那么多细节,上次给甲方公司做他们总公司汇总,明细报表,这种报表动辄几十万上百万的数据量,明细表还好使用控件进行分批查询的策略可以解决问题,但是汇总,统计的报表没办法进行分批或者限制查询量进行处理,因为那样处理必定导致统计结果和表达运算不够准确。因此找到了帆软官方中对于报表性能优化的多个文章,进行仔细查看和对SQL优化处... 阅读详情

(关于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; 
             } 
         } 



FineReport 填报报表数据自定义提交 FineReport 填报式表报自定义提交 阅读详情

相关推荐

第八章 BIRT交叉报表

8.1 创建交叉报表和统计 一、创建报表和配置数据源 新建一个报表,改好自己的名字,然后next进行下一步。 选择一个空白报表(Blank Report),单击finish完成。 新建数据源,这里使用的是协同数据库,选择Date Explore标签 右键单击Data Sources 新建一个数据源。选择JDBC Data Source 命名为 clmpdemo 然后

BIRT的世界-BIRT技术漫谈 1万+

帆软报表操作

通过 父子格 章节,我们知道,数据列在同一行时会自动形成父子关系。若数据列都来自于同一个数据集,就会自动形成附属关系,产生分组效果。而纵向分组报表,组头单独一行,数据列不在同一行,组头与数据间就没有父格关系了,即其他数据列就不会将地区字段作为过滤条件了。因此,这样的分组报表,只要将数据字段的父格重新设置为组头字段,就会产生分组效果了。在「单元格元素>数据设置」位置,通过自定义公式分组实现。

格子杰的博客 6816

【SAP】ABAP——获取ALV显示后过滤的数据

背景:报表ALV显示数据后,需要将过滤后的数据推送到另一个系统。 实现:通过类CL_GUI_ALV_GRID的方法GET_FILTERED_ENTRIES获取被过滤掉的内表数据行号,筛选后的ALV内表数据=内表数据-被过滤掉的内表数据。 DATA: lo_grid TYPE REF TO cl_gui_alv_grid, filt_table TYPE lvc_t_fidx, l_filt_table TYPE int4 . CALL FUNCTION 'G

Mona_1220的博客 2696

帆软报表列表_帆软入门与报表设计

填报报表1. 创建模板(报表设计)就以Oracle最简单的emp和dept为例把。模板设计如下2. 添加控件右击单元格,选择控件设置选择对应的属性3. 设置填报属性菜单栏选择模板=》填表填报属性打开后按顺序设置点击智能添加单元格,随后根据字段进行点击再复选框中,设置勾选主键4. 填报录取点击填报预览点击后就如图所示,填写完成后,点击提交在其中关于下拉设置和单选以及外键字段设置下拉控件设置我们以上级...

weixin_39716877的博客 2124

皕杰报表中的过滤分组函数与过滤分组报表

过滤分组报表是什么样的呢?见下图。 从图中可以看出,“华北”组中的一部分记录被过滤,并单独拎出来在“其中:北京”组和“其中:天津”组中进行了统计,便于用户一目了然,既了解总的统计数据,又了解“北京”和“天津”的统计数据,这种同一部分记录在不同组中统计的分组报表称为过滤分组报表。 这种报表是如何设计的呢?当然是用了皕杰报表中的过滤分组函数groupex。 函数说明: 对每一条记录依次计算过虑条件表达式,如果满足则把该条记录加入到相应的组里。如果有多个组满足,则这些组中都会含有此条记录。如果都不满足并且有缺省

bjbb_2007的博客 388

行式报表—筛选数据与过滤

行式报表的数据筛选和过滤,很方便的选择自己所需要的数据

[财务][数据化分析][帆软]行式报表-行式引擎适用于大数据量情形下。

[财务][数据化分析][帆软]行式报表-行式引擎适用于大数据量情形下。 这个设计器,只能用FineReport搞。没关系的,FineBI里面可以兼容展示FineReport报表。 在公司采买的时候,如果资金上允许,请直接购买FineBI。 行式引擎适用于大数据量情况下。使用此引擎很多报表特性将不再支持,详细内容清查看文档相关章节。 通过配置工作目录连接FineBI并进行设计。 ...

浩秦的博客 1290

如何在水晶报表中过滤数据

此软件介绍如何在水晶报表中过滤数据。

帆软报表多源数据过滤为何不显示数据

写下来,给自己提个醒喔! 昨天改个别人做的帆软报表,数据源来自于两个数据库:一个oracle一个sqlserver。 在进行数据过滤的时候发现咋都出不来,以为是自己的过滤方法错了,查了下官方文档关于过滤的,我的就两个数据源很简单没发现啥问题啊!? 但是为什么出不来呢?是不是配置方面的问题?然后去查关于过滤方面的有关配置~ 在工具栏的  模板/报表引擎属性 用行式的引擎来执行报表   将这

博客驿站 5472

基于 Python 的 LIF 模型:探索神经元同步与小世界网络

首先,我们定义了一个LIFNeuronself.soma.L = self.soma.diam = 12.6157 # 固定神经元形状self.cm = cm # 电容self.V_rest = V_rest # 静息电位self.V = V_rest # 初始化膜电位在初始化过程中,每个神经元被赋予初始的静息电位,并且其膜电位会在后续的模拟过程中动态变化。

qq_36224726的博客 1424

告别‘小爱同学’:用ESP32-S3和esp-sr SDK,从零打造一个离线语音助手(含完整代码)

本文详细介绍了如何利用ESP32-S3芯片和esp-sr SDK从零构建一个离线语音助手,涵盖硬件选型、声学设计、SDK配置及低功耗优化等关键步骤。通过实战案例和完整代码,帮助开发者实现自定义唤醒词和命令词,打造低成本、高隐私的本地语音控制解决方案。

weixin_29041195的博客 371

java 数据过滤_在Java报表软件中实现数据过滤

阅读提示:文章中与FineReport软件使用的相关内容,基于软件的V7.0旧版本编写,不代表软件最新的使用方式。FineReport最新版免费试用:https://www.finereport.com/product/activeFineReport最新版使用教程:https://help.fanruan.com/finereport/当我们想从大量的数据中找到符合一定条件的数据时,我们就会想到...

weixin_31937913的博客 879

告别设备管理器混乱!3分钟学会用STM32CubeMX+Zadig定制专属虚拟串口名称

本文详细介绍了如何利用STM32CubeMX和Zadig工具,为STM32的USB虚拟串口(VCP)定制专属设备名称,从而彻底解决多设备连接时设备管理器端口混乱的难题。通过修改产品字符串描述符并替换驱动,开发者可以在设备管理器中清晰识别不同开发板,显著提升调试效率,尤其适用于多设备协同的竞赛或项目开发场景。

a2b3c4d5e的博客 478

帆软报表开发学习笔记(六)

`帆软报表开发学习笔记`报表美化_报表美化(20200921)报表美化_使用特殊符号美化报表(20200922)报表美化_倒计时消息提示框(20200923)报表美化_色彩与配色基础(20200924)报表美化_报表的设计与配色技巧(20200925)报表美化_报表&界面风格(20200926)报表美化_决策报表块风格(20200927) 帆软报表开发学习笔记 报表美化_报表美化(20200921) 报表美化: 描述:帆软为报表的显示外观提供了全面细致的属性设置,可从各个细节灵活美化报表。加上预

asdene的博客 1670

239号资源-simulink仿真:MATLAB/Simulink教程(PDF文档)-----已提供下载资源

电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python,机器学习,计算机视觉,深度学习,神经网络,数据挖掘领域.电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python,机器学习,计算机视觉,深度学习,神经网络,数据挖掘领域.《《《《《《《《更多资源还请持续关注本专栏》》》》》》》《《《《《《《《更多资源还请持续关注本专栏》》》》》》》论文与完整源程序_电网论文源程序的博客-优快云博客。电网论文源程序-优快云博客。

LIANG674027206的博客 1076

[事件相机1]2024CVPR:Event Stream-based Visual Object Tracking: A High-Resolution Benchmark Dataset

作者:Xiao Wang, Shiao Wang, Chuanming Tang, Lin Zhu, Bo Jiang, Yonghong Tian, Jin Tang代码:https://github.com/Event-AHU/EventVOT_Benchmark。

m0_37412775的博客 1707

使用eclipse在jsp上显示水晶报表(三)用sql语句过滤数据

在.net中,你可以很容易的用sql语句过滤报表数据,但在CR4E中没这样的功能设定,但可以通过编写代码完成。这里是我做的简单用sql语句过滤数据的例子。项目还是用(二)里面的tomcat项目。建一个实现这个功能的类  JRC_ResultSet_DataSource.javapackage com.JRC.util;import java.sql.*;import jav

lin49940的专栏 4265

2024年游戏策划最新面试题及答案

1. **游戏策划**:负责游戏设计和开发的创意和技术过程。2. **主要职责**:设计游戏玩法、故事、角色、世界等。4. **游戏机制**:定义玩家如何与游戏世界互动的规则。13. **引人入胜的角色**:深入的背景故事、个性特征。3. **游戏平衡**:确保游戏公平、有趣且具有挑战性。7. **RPG特点**:角色发展、故事驱动、玩家选择。12. **关卡设计技巧**:挑战性、流动性、视觉引导。11. **游戏关卡设计**:创建游戏世界的不同阶段。5. **游戏循环**:玩家在游戏中重复的行为模式。

guo162308的博客 2320

报表控件stimulsoft操作:过滤仪表板中的数据

创建仪表板时,您经常需要过滤数据。我们在之前的文章中介绍了一些方法,制作了其他方法的视频,有些信息仅在文档中提供。本文将作为仪表板中过滤数据的所有方法的指南,从查询中的过滤开始。

励志做最业余的专业博主,控件产品可以私我~ 803

【人工智能】国产开源大模型聊天 AquilaChat 快速开始上手实战&效果评测

Aquila语言大模型在技术上继承了GPT-3、LLaMA等的架构设计优点,替换了一批更高效的底层算子实现、重新设计实现了中英双语的tokenizer,升级了BMTrain并行训练方法,在Aquila的训练过程中实现了比Magtron+DeepSpeed zero-2将近8倍的训练效率。Aquila语言大模型是在中英文高质量语料基础上从0开始训练的,通过数据质量的控制、多种训练的优化方法,实现在更小的数据集、更短的训练时间,获得比其它开源模型更优的性能。

AI天才研究院 2万+

【雷达通信】雷达信号处理仿真【含Matlab源码 2509期】

雷达信号处理仿真 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 904

Excel报表和如意报表过滤参数构件

每张Excel报表的过滤参数是不一样的,本模块是为每张报表设置过滤参数,在报表打印预览模块中预览报表时,报表预览打印模块会根据每张报表的过滤参数设置进行取值,以便用户进行打印预览。如下图: 其字段说明如下: 参数标签名:过滤参数在界面上的汉字标签名。 报表名称:报表的名称,选择一个已做好的报表名称,指示该参数属于该报表。 参数物理名:

iPlatForm的博客 1089

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

FastReport.NET报表工具,你的报表帮手

一、页面设置   情景:FastReport设计器页面默认设置为A4纸,但如果需要显示的字段过多,这时就出现了页面的大小无法满足完整显示所需内容的问题。   解决:出现这个问题后,我们可以在来到"文件"—"页面设置"选项中进行设置,在这里可以直接调整页面的纸张类型和尺寸,但是我使用的时候更多的会调整Portrait为Landscape,所谓Portrait按词霸的翻译就是“纸短的一边在

Pokemogo的博客 3574

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

报表模板实现网格式自定义报表

需求描述: 一般报表模板设计的报表都是固定格式和字段的报表,如果要修改列字段或者排列顺序,需要设计人员修改报表模板。用户需求为可以选择预添加的字段,并且可以增删,最终根据用户选择,生成结果报表,实现web端报表结果自定义功能。如下图所示。 报表实现: 下面例子实现四列的自定义网格式报表。 参数表单: 利用参数,前端js,隐藏行属性等,为用户提供报表自定义的参数页面,用户可以添加或

xd754117689的专栏 2463
上一篇: Scriptcase演示程序,马上查看使用SC开发系统多么简单
下一篇: Scriptcase v8推出内部测试版及价格调整
scriptcase
博客等级 码龄14年 8粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值