FineReport单行与数据库交互的方法

1.   问题描述

我们在做一张报表填报的时候经常会遇到需要在一行进行添加动作,将该行数据直接与数据库交互,执行存储过程过程。我们可以通过每一行增加帆软“插入”按钮实现插入动作,并且在控件事件中增加和数据库的交互,但当事件过多时帆软无法稳定地实现交互,会出现数据丢失或者数据库连接出错等问题。因此,这篇文档介绍一种单行数据和数据库交互的方法

2.   实现思路

在帆软报表的设计思路中,通过模板-->报表填报属性实现和数据库的交互才是常规手段,且过程稳定不容易出错。因此,采用在按钮事件中写入JS事件,调用填报属性,并且用填报条件来限制入库数据来实现单行填报。

3.   示例

我们假设产品库存量为现有量,然后申请订购后就从库存量里减去订购的数量,在每一行的数据进入数据库后,可以看到库存量的变化

3.1打开报表

3.2编辑Js语句记录订购产品名

右键产品名称-->控件设置-->事件编辑-->新建事件-->编辑结束。写js语句,contentPane.setCellValue("G1",null,this.getValue());。将新增记录在G1单元格。

3.3调用填报功能,设置填报条件

模板-->报表填报属性-->内置SQL-->提交类型选择智能提交,在提交内容中分别将要提交的字段和单元格一一对应。

通过验证添加的数据是否是最新的数据来进行筛选。注意,G1单元格一定要设置成文本控件

3.4编辑添加按钮,调用填报事件

在倒数第二个单元格添加按钮控件,并对该控件的图标、类型进行设置。注意,所有的单元格都要设置成向下的扩展方向,带有sql语句的单元格插入行策略都是原值,按钮对应的扩展单元格是B3。

对按钮进行事件编辑,点击-->编写Js语句:_g().writeReport();调用填报功能。

3.5保存并预览

保存模板,点击填报预览,效果如下

可以看到库存量发生了变化(此处为demo数据库,无法增加新的字段,读者在实际使用的时候可以在数据库中增加一个字段,专门用来存放原始的库存量,为了页面美观,可以将H列隐藏

FineReport 技术

帆软报表调用mysql存储过程_FineReport单行与数据库交互的方法相关推荐

  1. 帆软报表调用mysql存储过程_FineReport调用存储过程

    "总结一下本人在项目中遇到的问题,如何在数据库表名未知且作为一种查询条件的情况下查询出数据集,仅能通过FineReport+Oracle实现. 首先分析这个问题的条件和要求: 条件:只有一个 ...

  2. 帆软报表调用python脚本_直连数据库实时更新数据,比python强大,可视化报表这么做简直牛...

    会数据库,会python,会做报表,到底有多吃香?我趁着周五没事,打开了某招聘,不到10分钟,竟然有好多HR让我换工作,不是说现在基本上不招人吗?是我太优秀了吗? 甚至还有不止一个跟我说报表+决策分析 ...

  3. 帆软报表调用python脚本_帆软报表(finereport)实现自动滚屏效果

    例如Demo:IOS平台年度数据报表. 展示内容丰富,一个页面中存在多个图表.内容,超出了浏览器窗口的大小导致内容展示不全. 为了能够预览这个报表的全部内容,可以使用JS滚屏效果来实现. 操作步骤: ...

  4. FineReport单行与数据库交互的方法

    1.   问题描述 我们在做一张报表填报的时候经常会遇到需要在一行进行添加动作,将该行数据直接与数据库交互,执行存储过程过程.我们可以通过每一行增加帆软"插入"按钮实现插入动作,并 ...

  5. 帆软报表嵌入python程序_FineReport 报表工具的使用与集成

    一直以来,报表功能的开发都是应用系统开发的重点难点.近年来,一些基于Excel 的报表工具的涌现使得报表开发变得越来越简便,极大地减轻了系统开发人员的负担.本文将介绍一款优秀的报表工具---java报 ...

  6. 帆软报表嵌入python程序_FineReport -帆软报表开发步骤

    在线学习视频: https://bbs.fanruan.com/edu/guide/finereport/3.html 1.新建数据连接 新建数据连接的目的是让 FineReport 设计器连接数据库 ...

  7. 组态王调用mysql存储过程_组态王与数据库通讯

    记录体 "一节: ◆ 连接数据库: 新建画面"数据库连接", 在画面上作一个按钮, 按钮文本为: "连接数据库",在按钮"弹起时" ...

  8. 帆软报表跨域之插件开发中Controller中定义的方法实现CROS的GET跨域,且请求头带自定义属性

    当我们采用CROS的跨域方案,并且header上需要加上自定义属性的时候,如果仅仅在方法中加上res.setHeader("Access-Control-Allow-Origin" ...

  9. 帆软报表跨域之插件开发中Controller中定义的方法实现JSONP跨域

    在插件开发中,我们自己开发的Controller中的接口有时候需要对外提供,这时就涉及到跨域,常见的跨域有很多,本专栏只介绍JSONP与跨域资源共享(CORS). JSONP由于只支持GET方式,所以 ...

最新文章

  1. RocketMQ 实战 集群监控平台搭建
  2. Top100论文导读:深入理解卷积神经网络CNN(Part Ⅱ)
  3. 移动端屏幕自适应布局
  4. vue键盘事件:@keyup.down下方向键绑定事件
  5. python pip命令无法运行_Pip-启动程序中的致命错误:无法使用“”创建进程
  6. LeetCode 60. 第k个排列(回溯 康托展开)
  7. 【Java】异常和IO在Gourmet咖啡系统中的应用
  8. delphi中move函数的用法 转
  9. python软件设置代码字体的大小_Pycharm4.5设置字体大小以及背景颜色的方法
  10. 蓝天模具风扇调速软件_联力UNI FAN SL120风扇体验:模组化拼装的风扇
  11. ArcGis如何创建/连接企业级地理数据库
  12. 计算机无法打开注册表,电脑无法打开注册表怎么办
  13. 四、Oracle 视图
  14. 用Python寻找质数
  15. tkmybatis 子查询_最全的真假童子命查询方法!不想被忽悠就看看
  16. MySQL Error 1048 奇遇记
  17. R的可视化以及ggplot2
  18. 博客营销的一般流程及案例
  19. 多线程设计模式——Master-Salave(主仆)模式
  20. 一维到三维的推广(1D and 3D generalizations of models)

热门文章

  1. 移位运算[c][code]
  2. 妙招避免网络IP地址被非法修改
  3. WP8中 ListBox x下拉刷新 以及 ScrollViewer/ListBox 的ManipulationCompleted 失效的解决方案
  4. 解决启动不了VMware虚拟机以及VM升级到新的版本后出现黑屏的问题
  5. 基于webpack的前端工程化开发解决方案探索(一):动态生成HTML
  6. nginx 配置https 并解决重定向后https协议变成了http的问题
  7. 如何找到域名的权威名称服务器?
  8. 在Python中将整数附加到列表的开头
  9. 如何确定Windows服务器上是否打开了端口? [关闭]
  10. Tensorflow:如何保存/恢复模型?