帆软报表实现通过js查询数据库设置表格数据

最近做的一直在做报表相关的需求,自己也是一边学一边做。有一个有意思的需求是在表格中某个单元格在编辑完以后其它的表格中的数据自动填充,当也是根据一定的规则与数据来源才能填充的。
先来点基础概念,就是帆软给我们提供了这个编辑后的事件或者说是一些按钮事件

文本中提供的事件

在这里插入图片描述
根据需求选择一个事件就开始编写了,我直接把需求中用到的js代码贴过来,然后分段给大家解释一下
这个是获取点击单元格坐标位置,为什么要获取位置呢,是因为需求中有说到要更改其它单元格的参数,所以要以当前的单元格的行列索引为参考推出来要修改的单元格的行列索引

//获取当前坐标
var location = this.options.location;
//根据当前坐标获取点击单元个的行列索引
var cr = FR.cellStr2ColumnRow(location)

这个是要去数据库中查询数据,提前定义好的sql,通过使用FR.remoteEvaluate来调用帆软内置的sql函数,就是下面这张图中的,这个sql函数的入参一共是4个,第一个是我们在帆软中定义的数据集链接的名称,第二个就是我们自己写的sql了,这个就不截图了,第三个和第四个其实就是对应在数据库中查询出的数据第几列,第几行了,因为是取一个参数,我目前的需求是这么做的
在这里插入图片描述
第一个参数对应的就是定义的数据连接的名称
在这里插入图片描述

var sql2 = "select * from student";
var res = FR.remoteEvaluate('=sql("本地MySQL","' + sql2 + '",1,1)');//示例1,1要取的是第一行第一列的这个数据,自己说的时候是行在前,列在后,但是给参数的时候,第三个是列,第四个是行
var res2 = FR.remoteEvaluate('=sql("本地MySQL","' + sql2 + '",2,1)');//2,1要取第一行第二列的数据

这个是给指定的单元个赋值,我这里是给置空了所以入参是null,其实可以根据上面数据库查询到的数据直接放进去即可。

contentPane.curLGP.setCellValue(col1,ro,null)
contentPane.curLGP.setCellValue(col2,ro,null)

在这里插入图片描述

在帆软报表设计器中,contentPane.curLGP.setCellValue 是一个 JavaScript 函数,用于设置当前内容面板(contentPane)中的数据网格(ListGridPanel,简称LGP)的单元格的值。

具体来说,contentPane 是一个报表设计器中的一个重要对象,代表了当前的内容面板,而 curLGP 则表示当前选中的数据网格面板。通过 setCellValue 函数,你可以指定数据网格中某个单元格的行号和列号,并设置其对应的数值。
请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【论文笔记】基于预训练模型的持续学习(Continual Learning)(增量学习,Incremental Learning)

论文链接:Continual Learning with Pre-Trained Models: A Survey 代码链接:Github: LAMDA-PILOT 持续学习(Continual Learning, CL)旨在使模型在学习新知识的同时能够保留原来的知识信息了,然而现实任务中&#xff…

ubuntu下boa服务器编译运行

一.下载boa源码并解压 官网网站:BOA源码 点击箭头所指的位置即可下载 解压: tar -xvf boa-0.94.13.tar.gz 解压完成得到目录: 二.安装环境所缺依赖,否则编译会报错 sudo apt install bison sudo apt install flex 三.编译 1…

Web前端框架/库/工具

前言 前端从步枪(原生js)到了半自动武器(jQuery)并进化为全自动武器(三大框架(angular,react,vue及其生态链))。 常说工欲善其事必先利其器。对于那些想要提…

立创·实战派ESP32-C3开发板 with lv_micropython

一、lv_micropython对驱动芯片的支持 ESP32-C3开发板的Display drivers:ST7789,Input drivers:FT6336,从LVGL的官方文档了解到lv_micropython包含了这两颗IC的驱动。 参考文档: lv_micropython already contains these drivers: 链接:Micro…

如何在一台服务器上同时运行搭载JDK 8, JDK 17, 和 JDK 21的项目:终极指南

🐯 如何在一台服务器上同时运行搭载JDK 8, JDK 17, 和 JDK 21的项目:终极指南 🚀 摘要 在企业开发环境中,常常需要在同一台服务器上运行使用不同Java开发工具包(JDK)版本的多个项目。本文详细介绍如何在L…

uni-app 如何添加模拟器

uni-app 如何添加模拟器 使用微信开发者工具运行微信小程序使用 HBuilderX 内置模拟器使用第三方 Android 模拟器 下载并安装:配置环境:连接模拟器: 总结 有哪些可以使用的安卓模拟器软件 uni-app 如何添加模拟器 Uni-App 是一个基于 Vue.js…

Golang那些违背直觉的编程陷阱

目录 知识点1:切片拷贝之后都是同一个元素 知识点2:方法集合决定接口实现,类型方法集合是接口方法集合的超集则认定为实现接口,否则未实现接口 切片拷贝之后都是同一个元素 package mainimport ("encoding/json"&quo…

Redis入门到通关之数据结构解析-Dict

文章目录 概述构成Dict的扩容Dict的rehash总结 概述 我们知道Redis是一个键值型(Key-Value Pair)的数据库,我们可以根据键实现快速的增删改查。而键与值的映射关系正是通过Dict来实现的。 Dict由三部分组成,分别是:哈…

从头开始构建自己的 GPT 大型语言模型

图片来源: Tatev Aslanyan 一、说明 我们将使用 PyTorch 从头开始构建生成式 AI、大型语言模型——包括嵌入、位置编码、多头自注意、残差连接、层归一化,Baby GPT 是一个探索性项目,旨在逐步构建类似 GPT 的语言模型。在这个项目中&#xff…

Microchip 32位MCU CAN驱动图文教程-附源码

文章目录 创建一个新的32位MCU工程Microchip MCC Harmony配置界面说明在MCC下配置系统的时钟在MCC下配置所需要使用的模块配置调试打印模块配置CAN模块配置管脚功能修改系统堆栈大小生成代码 添加用户代码 创建一个新的32位MCU工程 确保电脑上已经安装最新的MPlab X IDE、XC32编…

C# WPF布局

布局&#xff1a; 1、Grid: <Window x:Class"WpfApp2.MainWindow" xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d"http://schemas.microsoft.com…

matplotlib从起点出发(15)_Tutorial_15_blitting

0 位图传输技术与快速渲染 Blitting&#xff0c;即位图传输、块传输技术是栅格图形化中的标准技术。在Matplotlib的上下文中&#xff0c;该技术可用于&#xff08;大幅度&#xff09;提高交互式图形的性能。例如&#xff0c;动画和小部件模块在内部使用位图传输。在这里&#…