FineReport单行与数据库交互的方法
admin
2023-05-25 13:41:34
0

1.   问题描述

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

2.   实现思路

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

3.   示例

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

3.1打开报表

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

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

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

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

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

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

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

 

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

 

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

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

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

 

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

 

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

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

3.5保存并预览

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

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

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

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

 


相关内容

热门资讯

调解方:美国和伊朗依然分歧巨大... 【文/观察者网 陈思佳】自美国和伊朗宣布停火以来,两国持续通过外交渠道接触,但始终未能在核问题、霍尔...
民进党当局很不安?英媒:特朗普... 海峡导报综合报道 英媒《经济学人》以“特朗普正在出卖台湾吗?”为题,撰文分析在美国总统特朗普访华后,...
邱臣远获民众党征召战竹北市长,... 海峡导报综合报道 面对2026年选战布局,台湾民众党主席黄国昌20日正式宣布,20日下午将正式征召新...
赖清德称“没有‘台独’问题”,... 海峡导报综合报道 5月20日是台湾地区领导人赖清德就职满两周年,针对美国总统特朗普说“不希望看到有人...
柯文哲还要继续戴电子脚镣,台湾... 海峡导报综合报道 台湾民众党前主席柯文哲被控于京华城容积率等案重判,应执行有期徒刑17年,他审判中交...
集邦咨询:2026Q1全球OL... IT之家 5 月 19 日消息,TrendForce 集邦咨询今天(5 月 19 日)报告指出,20...
中欧空间科学深度合作 “微笑”... 中新网北京5月19日电 (记者 孙自法)中文“微笑”和对应的英文“SMILE”,可以说是人类社会交流...
原创 存... “内存涨价没完没了,终于要降价了!” 对于普通消费者、电脑装机党、数码爱好者而言,这无疑是近期最好的...
半个俄罗斯政府都来了,普京这次... 中国外交今年收获满满。在短短一周的时间里,美俄总统前后脚访华。5月15日,特朗普刚走,四天之后,普京...
专家:“全产业链”合作,中俄非... 中国商务部数据显示,中俄经贸连续三年突破2000亿美元。本次中俄元首会晤,会促进中俄哪些方面达成进一...