帆软通过JavaScript注入sql,实现数据动态查询

news2024/10/1 7:57:09

将sql语句设置为参数

  1. 新建数据库查询
    新建数据库查询
  2. 设置数据库查询的sql语句
    设置数据库查询的sql语句
  3. 添加控件
    添加控件

JavaScript实现sql注入

  1. 添加事件
    添加事件
  2. 编写JavaScript代码
//获取评价人id
var pjrid = this.options.form.getWidgetByName("id").getValue();

//显示评价人id
alert("评价人:" + pjrid);

//根据评价人id获取评价人的个人信息
var name = FR.remoteEvaluate('=sql("数据连接名","select * from 数据库名.表名 where id=\'' + pjrid + '\'",2,1)');
var class1 = FR.remoteEvaluate('=sql("数据连接名","select * from 数据库名.表名 where id=\'' + pjrid + '\'",3,1)');
var spe = FR.remoteEvaluate('=sql("数据连接名","select * from 数据库名.表名 where id=\'' + pjrid + '\'",4,1)');
var post = FR.remoteEvaluate('=sql("数据连接名","select * from 数据库名.表名 where id=\'' + pjrid + '\'",5,1)');
var num = FR.remoteEvaluate('=sql("数据连接名","select * from 数据库名.表名 where id=\'' + pjrid + '\'",6,1)');

//显示评价人信息
alert("姓名:" + name + "\n" + "身份:" + post + "\n" + "班组:" + class1 + "\n" +  "小组:" + num + "\n" +"专业:" + spe + "\n");

//str设置默认值,str值注入sql
var str="select * from 数据库名.表名 where id=0 ";

//将本人的个人信息筛掉
var beside="and id!="+pjrid;

switch (post) {
	case "组长":
		str = "select * from 数据库名.表名 where post='组长' "
		break;
	case "修理工":
		if (class1 == "长白班") {
			str = "select * from 数据库名.表名 where (post='修理工' or post='技术员') and spe=\'"+ spe+"\'"
		} else {
			str = "select * from 数据库名.表名 where post='修理工' and class=\'"+ class1+"\'and spe=\'"+spe+"\' and num=\'"+num+"\'"
		}
		break;
	case "技术员":
		str = "select * from 数据库名.表名 where (post='修理工' or post='技术员') and spe=\'"+ spe+"\'"
		break;
	default:
		alert("无评价权限")
}

//字段拼接
str=str+beside;

//将str注入到sql中
_g().getParameterContainer().getWidgetByName("sql").setValue(str);

FR.remoteEvaluate('=sql("jb","select * from 数据库名.表名 where id=\'' + pjrid + '\'",2,1)');

用远程公式 FR.remoteEvaluate('=公式')来执行函数

帆软中sql函数的用法

_g().getParameterContainer().getWidgetByName("sql").setValue(str);

1)首先用全局接口 _g() 获取报表对象。
2)因为要获取参数面板上控件,所以先要获取到参数面板,使用 _g() 的 getParameterContainer 方法获取参数面板对象,即:
_g().getParameterContainer
3)获取到参数面板后,再获取参数面板上的「文本框」控件,使用参数面板的 getWidgetByName 接口获取控件,即:
_g().getParameterContainer().getWidgetByName(“sql”)

帆软中的JS API

报表安全设置

若不进行安全设置,则会报错
安全提示

确定数据库安全级别可以使用sql注入,如果涉及一些机密数据,不建议使用此方法(避免遭受sql注入攻击)

  1. 打开报表平台管理
    打开报表平台管理
  2. 关闭脚本调用公式限制
    关闭脚本调用公式限制
  3. 关闭对特殊关键字的禁用
    关闭对特殊关键字的禁用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2166218.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单片机串口AT指令操作SIM800、900拨打电话

文章目录 一、前言1.1 功能简介1.2 拨打电话功能的应用场景1.3 SIM900A与SIM800C模块介绍1.4 原理图 三、模块调试3.1 工具软件下载3.2 准备好模块3.3 串口调试助手的设置3.4 初始化配置3.5 拨打电话的测试流程 四、代码实现4.1 底层的命令发送接口4.2 底层数据接收接口4.3 检测…

Cisco Packet Tracer的安装加汉化

这个工具学计算机网络的同学会用到 1.下载安装 网盘链接:https://pan.baidu.com/s/1CmnxAD9MkCtE7pc8Tjw0IA 提取码:frkb 点击第一个进行安装,按步骤来即可。 2.汉化 (1)复制chinese.ptl文件 (2&…

四元组问题

目录 问题描述 输入格式 输出格式 样例输入 样例输出 说明 评测数据规模 运行限制 原题链接 代码思路 问题描述 从小学开始,小明就是一个非常喜欢数学的孩子。他喜欢用数学的方式解决各种问题。在他的高中时期,他遇到了一个非常有趣的问题&…

【Unity服务】如何使用Unity Version Control

Unity上的线上服务有很多,我们接触到的第一个一般就是Version Control,用于对项目资源的版本管理。 本文介绍如何为项目添加Version Control,并如何使用,以及如何将项目与Version Control断开链接。 其实如果仅仅是对项目资源进…

华盈伯乐 | Bio-Plex多重细胞因子检测技术培训及研讨会现场回顾

精彩华盈现场回顾 迎着朝霞,与会的伙伴们一早踏上了旅程,参与华盈生物与伯乐生命科学联合举办的Bio-Plex多重细胞因子检测技术培训及研讨会活动。随着活动的序幕缓缓拉开,我们迎来了一段充实而富有成效的学习之旅。 精彩开幕 华盈生物的副总…

SpringMVC4-SpringMVC获取请求参数

test_param.html&#xff1a; <!DOCTYPE html> <html lang"en" xmlns:th"http://www.thymeleaf.org"> <head><meta charset"UTF-8"><title>测试请求参数</title> </head> <body> <h1>测…

解决Pymysql has no attribute ‘escape_string‘ 并且无法引入该模块

打印出的pymysql版本是1.4.6 需要import这个module&#xff0c;并且根据pymysql的版本import的方式还不同 import pymysqlif pymysql.__version__ >1.0.0:from pymysql.converters import escape_string else:escape_string lambda x: pymysql.escape_string(x)然而&am…

如何借助Java批量操作Excel文件?

最新技术资源&#xff08;建议收藏&#xff09; https://www.grapecity.com.cn/resources/ 前言 | 问题背景 在操作Excel的场景中&#xff0c;通常会有一些针对Excel的批量操作&#xff0c;批量的意思一般有两种&#xff1a; 对批量的Excel文件进行操作。如导入多个Excel文件…

鸿蒙OpenHarmony【小型系统基础内核(虚实映射)】子系统开发

虚实映射 基本概念 虚实映射是指系统通过内存管理单元&#xff08;MMU&#xff0c;Memory Management Unit&#xff09;将进程空间的虚拟地址与实际的物理地址做映射&#xff0c;并指定相应的访问权限、缓存属性等。程序执行时&#xff0c;CPU访问的是虚拟内存&#xff0c;通…

实现微信小程序中点击单词显示在input的交互功能指南

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

卷积神经网络-学习率

文章目录 一、学习率的定义二、学习率的作用三、学习率的调整方法1.有序调整(1).有序调整StepLR(等间隔调整学习率&#xff09;(2).有序调整MultiStepLR(多间隔调整学习率)(3).有序调整ExponentialLR (指数衰减调整学习率)(4).有序调整CosineAnnealing (余弦退火函数调整学习率…

TypeScript 设计模式之【单例模式】

文章目录 **单例模式**: 独一无二的特工我们为什么需要这样的特工?单例模式的秘密&#xff1a;如何培养这样的特工?特工的利与害代码实现单例模式的主要优点单例模式的主要缺点单例模式的适用场景总结 单例模式: 独一无二的特工 单例模式就像是一个秘密组织里的特殊特工。这…

Java介绍及JDK 21详细安装教程

文章目录 1. 文章简介2. Java和JDK的介绍与关系2.1 Java2.2 JDK 3. Java版本的发展历程4. Java 21安装步骤 1. 文章简介 本文介绍如何Java、JDK、Java的发展及如何快速安装JDK 21。内容详细充实&#xff0c;旨在帮助您快速了解并使用Java。 2. Java和JDK的介绍与关系 2.1 Jav…

828华为云征文|华为云Flexus云服务器X实例——部署EduSoho网校系统、二次开发对接华为云视频点播实现CDN加速播放

EduSoho 是一款功能强大的网校系统&#xff0c;能够帮助教育机构快速搭建在线学习平台。本文将详细介绍如何在华为云服务器上安装和部署 EduSoho 网校系统&#xff0c;以及二次开发对接华为云视频点播VOD来实现CDN加速播放。 edusoho本地存储的视频播放存在诸多弊端。一方面&a…

「C++系列」命名空间

【人工智能教程】&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。 点击跳转到网站&#xff1a;【人工智能教程】 文章目录 一、命名空间1. 定义命名空间2. 使用命名空间中的成员3. 命名空间的…

SAP 利润分配-未分配利润的年初余额和年末余额不一致的问题

SAP OB53 本年利润科目的年初余额和年末余额不一致的问题 关于OB53科目的问题 OB53维护的本年利润科目 现象&#xff1a;为何去年年末的本年利润金额和今年年初的本年利润金额不一致。 解释原因&#xff1a; 本年利润科目的这种现象归根结底是“表结法”产生的&#xff0c;换…

QT----Creater14.0,qt5.15无法启动调试,Launching GDB Debugger报红

问题描述 使用QT Creater 14.0 和qt5.15,无法启动调试也没有报错,加载debugger报红 相关文件都有 解决方案 尝试重装QT,更换版本5.15.2,下载到文件夹,shift鼠标右键打开powershell输入 .\qt-online-installer-windows-x64-4.8.0.exe --mirror http://mirrors.ustc.edu.cn…

VMware 虚拟机配置固定 IP

1. VMware 配置 参考&#xff1a;https://blog.csdn.net/jsryin/article/details/123304582 参考&#xff1a;https://zhuanlan.zhihu.com/p/455097916 1.1. 点击编辑 -> 虚拟网络编辑器 1.2. Net 设置 选择VMnet8 进行配置 查看当前虚拟机的网关是192.168.17.2&#x…

HAproxy-7层负载均衡集群根据不同服务请求分配服务器

搭建HAproxy----7层负载均衡集群的补充 https://blog.csdn.net/qq_73990369/article/details/142500451?spm1001.2014.3001.5501 一、再准备两台虚拟机进行测试 192.168.229.15/24 ----php1 192.168.229.16/24 ----php2 1、PHP1 & php2(192.168.229.15/24 ,192…

做网站建设公司为客户着想方面

作为一家专业的网站建设公司&#xff0c;我们始终将客户的需求置于首位&#xff0c;致力于为客户打造独具特色、功能强大的网站&#xff0c;助力他们在激烈的市场竞争中脱颖而出。 专业团队&#xff0c;定制化服务 我们的团队由技术精湛、经验丰富的专业人才组成&#xff0c;能…