帆软按钮控件变查询_帆软报表(多sheet)自定义分页查询

3108c1a0da7436744db904c559ff6263.png

三、添加自定义按钮以及JS事件

1、打开‘模板Web属性’

3471868

3471868

2、选中‘填报页面设置’,修改2)为‘为模板单独设置‘,3)中是前面七个是添加的自定义按钮;通过4)按钮进行设置;5)操作是添加‘加载结束’事件;接下来详细讲述每个步骤;

3471868

3471868

3、点击4)之后弹出下面页面,自上而下七个按钮分别为首页、上一页、页码显示框、斜杠、总页数、下一页、末页

通过‘编辑’按钮可以改图标,然后依次添加自定义事件

3471868

3471868

3471868

3471868

自定义事件:

首页:

var sheet = _g().parameterEl.getWidgetByName('sheet').getValue();

if(sheet==1)

{

_g().parameterEl.getWidgetByName('page1').setValue(1);

}else{

_g().parameterEl.getWidgetByName('page2').setValue(1);

}

_g().parameterEl.getWidgetByName('Search').fireEvent('click');//Search为查询按钮的名字

上一页:

var beforepage = contentPane.curLGP.getCellValue("A1");

if(beforepage > 0){

var sheet = _g().parameterEl.getWidgetByName('sheet').getValue();

if(sheet==1)

{

_g().parameterEl.getWidgetByName('page1').setValue(beforepage);

}else{

_g().parameterEl.getWidgetByName('page2').setValue(beforepage);

}

_g().parameterEl.getWidgetByName('Search').fireEvent('click');

}

页码显示框:

var toolbar = contentPane.toolbar;

var items = toolbar.options.items;

var customButton = items[2];

var inner = customButton.$btnWrap;

var btnWrapper = $("em", inner);

var $input = $("input", btnWrapper);

//取这个控件

$input.blur(function() {

var targetpage = $input.val();

var endpage = contentPane.curLGP.getCellValue("C1");

if (parseInt(targetpage) > parseInt(endpage) || parseInt(targetpage) < parseInt(1)) {

alert("你输出的页数不再指定范围内");

} else

var sheet = _g().parameterEl.getWidgetByName('sheet').getValue();

if(sheet==1)

{

_g().parameterEl.getWidgetByName('page1').setValue(targetpage);

}else{

_g().parameterEl.getWidgetByName('page2').setValue(targetpage);

}

_g().parameterEl.getWidgetByName('Search').fireEvent('click');

});

斜杆:无

总页数:无

下一页:

var nextpage = contentPane.curLGP.getCellValue("B1");

var endpage = contentPane.curLGP.getCellValue("C1");

if(nextpage<=endpage){

var sheet = _g().parameterEl.getWidgetByName('sheet').getValue();

if(sheet==1)

{

_g().parameterEl.getWidgetByName('page1').setValue(nextpage);

}else{

_g().parameterEl.getWidgetByName('page2').setValue(nextpage);

}

_g().parameterEl.getWidgetByName('Search').fireEvent('click');

}

末页:

var endpage = contentPane.curLGP.getCellValue("C1");

var sheet = _g().parameterEl.getWidgetByName('sheet').getValue();

if(sheet==1)

{

_g().parameterEl.getWidgetByName('page1').setValue(endpage);

}else{

_g().parameterEl.getWidgetByName('page2').setValue(endpage);

}

_g().parameterEl.getWidgetByName('Search').fireEvent('click');

4、添加‘结束事件’

如下:

var toolbar = contentPane.toolbar;

var items = toolbar.options.items;

//JQUERY取我们的工具栏上的按钮.items[2]代表的是第三个,也就是那个显示成文本框按钮。

var customButton=items[2];

var inner = customButton.$btnWrap;

var btnWrapper = $("em", inner);

//修正这个按钮的属性,让它变成文本类型,居中,鼠标放上次图标是编辑状态。

btnWrapper.html("");

//获取D1单元格的值就是page,也就是当前页。

var cellValue = contentPane.curLGP.getCellValue("D1");

var $input = $("input", btnWrapper);

//给这个文本控件复制,用的是JQUERY的方法,可以COPY。

$input.val(cellValue);

var total=contentPane.curLGP.getCellValue("C1");

//把总页数显示在第5个控件上,因为这个数值可能是小数,所以判断下要不要加一处理。

contentPane.toolbar.options.items[4].setText(total);

//把斜线写在第4个控件上。

contentPane.toolbar.options.items[3].setText(contentPane.curLGP.getCellValue("E1"));

$(".fr-sheetbutton-container").click(function()//切换sheet时

{var a=contentPane.$contentPane.data('TabPane').tabBtns[contentPane.selectedIndex].options.name;//获取当前sheet的名字

if(a=="sheet1")  //表示第一个sheet,sheet1需要替换成自己对应的sheet名称

{

_g().parameterEl.getWidgetByName('sheet').setValue(1);

//当前sheet需要显示或者隐藏的 控件

_g().parameterEl.getWidgetByName('当前面板所需要显示的控件名称').setVisible(true);

_g().parameterEl.getWidgetByName('当前面板所需要隐藏的控件名称').setVisible(true);

//获取D1单元格的值就是page,也就是当前页。

cellValue = contentPane.curLGP.getCellValue("D1");

//给这个文本控件复制,用的是JQUERY的方法,可以COPY。

$input.val(cellValue);

var total=contentPane.curLGP.getCellValue("C1");

//把总页数显示在第5个控件上,因为这个数值可能是小数,所以判断下要不要加一处理。

contentPane.toolbar.options.items[4].setText(total);

}

else

{

_g().parameterEl.getWidgetByName('sheet').setValue(2);

//当前sheet需要显示或者隐藏的 控件

_g().parameterEl.getWidgetByName('当前面板所需要显示的控件名称').setVisible(true);

_g().parameterEl.getWidgetByName('当前面板所需要隐藏的控件名称').setVisible(true);

//获取D1单元格的值就是page,也就是当前页。

cellValue = contentPane.curLGP.getCellValue("D1");

//给这个文本控件复制,用的是JQUERY的方法,可以COPY。

$input.val(cellValue);

var total=contentPane.curLGP.getCellValue("C1");

//把总页数显示在第5个控件上,因为这个数值可能是小数,所以判断下要不要加一处理。

contentPane.toolbar.options.items[4].setText(total);

}

});

四、添加模板数据集

1、oracle分页查询sql语句:

SELECT * FROM

(

SELECT A.*, ROWNUM RN

FROM (SELECT * FROM table_name) A

WHERE ROWNUM <= ${page}*${amount}

)

WHERE RN >= ((${page}-1)*${amount})+1

2、查询总页数sql语句:

SELECT ceil(count(*)/${amount}) as totalpage FROM table_name

注意:如果需要添加where条件,一定两条语句同时添加

五、面板设计

关于查询面板设计,不多做说明。多sheet切换时改变面板显示的功能在 (三).4 中的‘加载结束’事件的js代码中有说明。自行理解应用。

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

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

相关文章

使用Python-Flask框架开发Web网站系列课程(一)构建项目

版权声明&#xff1a;如需转载&#xff0c;请注明转载地址。 https://blog.csdn.net/oJohnny123/article/details/81907475 前言 使用IDE&#xff1a;PyCharm 操作系统: Mac Python版本&#xff1a;3.6 我的邮箱:51263921qq.com 交流群: 372430835 请注意&#xff0c;既然要学习…

PHP学习方向-进阶2(三)

实践篇 给定二维数组&#xff0c;根据某个字段排序如何判断上传文件类型&#xff0c;如&#xff1a;仅允许 jpg 上传不使用临时变量交换两个变量的值 $a1; $b2; > $a2; $b1; strtoupper 在转换中文时存在乱码&#xff0c;你如何解决&#xff1f;php echo strtoupper(ab你好c…

关于xml文件 xsi:schemaLocation

原文连接&#xff1a;https://www.jianshu.com/p/7f4cbcd9f09f ------------------------------------------------------相信很多人对xml 头上一大堆得东西都是拿来主义&#xff0c;copy过来就行了&#xff0c;并不理解那是什么意思先来一段<?xml version"1.0" …

authentication java_HTTP基本认证(Basic Authentication)的JAVA实例代码

大家在登录网站的时候&#xff0c;大部分时候是通过一个表单提交登录信息。但是有时候浏览器会弹出一个登录验证的对话框&#xff0c;如下图&#xff0c;这就是使用HTTP基本认证。下面来看看一看这个认证的工作过程:第一步:客户端发送http request 给服务器,服务器验证该用户是…

Linux VirtualBox安装及使用指南

2019独角兽企业重金招聘Python工程师标准>>> VirtualBox是一款虚拟机软件。虽然它的功能并不及VMware Workstation Pro&#xff0c;但它对开源精神的坚持使得它在Linux中依然深受欢迎。 唯一难以令人接受的是&#xff0c;VirtualBox的安装步骤较为复杂。不过&#x…

Android studio gradle 无法获取 pom文件

Android studio 3.1 导入app项目后&#xff0c;gradle无法获取 pom文件 具体保存内容如下&#xff1a; Could not GET https://dl.google.com/dl/android/maven2/com/android/tools/build/transform-api/2.0.0-deprecated-use-gradle-api/transform-api-2.0.0-deprecated-use-g…

生产环境linux下安装两个及两个以上tomcat实践

前言: 在生产环境部署程序项目中&#xff0c;有时候由于服务器紧张或缺少服务器等原因,往往都需要安装两个及两个以上tomcat。我们需要在/etc/profile中增加tomcat的环境变量&#xff0c;然后在新增加的tomcat的bin目录下的catalina.sh中引用自己在/etc/profile中配置的环境变量…

java set方法赋值_java方面:private属性,没有set方法,只有get方法,如何给这个属性赋值?...

富国沪深用反射吧&#xff0c;然后设置setAccessible为true就可以了&#xff0c;如下&#xff1a;public class Test {private String readOnly;public String getReadOnly() {return readOnly;}public static void main(String[] args) throws SecurityException, NoSuchField…

SpringBoot项目在IntelliJ IDEA中实现热部署

spring-boot项目热部署idea工具&#xff1a; &#xff08;1&#xff09;、pom文件引入&#xff1a;都需要为true<!-- 热部署模块 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId…

使用Notepad++来比较文件

原文连接&#xff1a;https://blog.csdn.net/sanqima/article/details/50467154 -----------------------------------------------------------------------------Notepad&#xff0c;也叫npp&#xff0c;是一款类似于记事本的开源小软件。它运行便携&#xff0c;体积小、资源…

利用lamda函数 的函数式编程 实现scrapy审计外网安全问题

2019独角兽企业重金招聘Python工程师标准>>> import scrapy from scrapy.spiders import Spiderdef parse_response(response, ip_in):title response.xpath("/html/head/title").extract()[0]filename quotes.txtwith open(filename, a) as f:f.write(…

Linux 如何通过某一台服务器调用执行多台远程服务器上的脚本,结果显示在本地?...

现在都流行自动化运维了&#xff0c;可能目前技术不够&#xff0c;很多自动化工具还不怎么会用&#xff0c;所以本次只是通过ssh来实现功能。 说明&#xff1a;自己写的一个简单脚本&#xff0c;只是实现了基础功能&#xff0c;还有待优化。 一共三台机器&#xff1a; master&a…

mysql 跳表 b 树_简单谈谈Mysql索引与redis跳表

摘要面试时&#xff0c;交流有关mysql索引问题时&#xff0c;发现有些人能够涛涛不绝的说出B树和B树&#xff0c;平衡二叉树的区别&#xff0c;却说不出B树和hash索引的区别。这种一看就知道是死记硬背&#xff0c;没有理解索引的本质。本文旨在剖析这背后的原理&#xff0c;欢…

Windows配置tomcat环境

1、安装JDK 参考教程&#xff1a; https://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.htmlCLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jarCLASSPATH这个环境变量一定要配好&#xff0c;否则tomcat起不来&#xff0c;直接复制上面的内容&#xff0c;…

java 抽奖 高并发处理_如何设计高并发下的抽奖?

关于抽奖,需要考虑的点有很多,这里稍微整理了下主要需要考虑以下三点:用户抽奖次数限制奖品数量限制奖品发放的分布中奖的概率的可控性用户抽象次数限制一个用户必须限制抽奖的次数,而同一个用户的并发几率其实是很小的,所以这里可以用悲观锁来控制用户的抽奖次数。奖品数量限制…

WPF圆角按钮与触发颜色变化

原文:WPF圆角按钮与触发颜色变化<Button x:Name"button1" Content"按钮1" Margin"10,10,0,0" Cursor"Pen"><Button.Template><ControlTemplate><Border CornerRadius"15,15,15,15"><Border.Back…

咖啡豆的励志故事

好多年前就听过这个故事&#xff0c;以前没感触&#xff0c;最近特有感触。

PowerDesigner V16.5 安装教程以及汉化(数据库建模)

原文地址&#xff1a;https://blog.csdn.net/tgbyn/article/details/72809116 ----------------------------------------------------------------------一、power designer是什么以及是干什么的&#xff1f; power designer是能进行数据库设计的强大的软件&#xff0c;是一款…

nginx 代理多个服务器——多个server方式

原文链接&#xff1a;https://blog.csdn.net/wild46cat/article/details/52997005 ------------------------------------------------------------- 配置文件下载地址&#xff1a;https://download.csdn.net/download/zengmingen/10462400nginx 代理多个服务器——多个server方…

SQL Server如何链接到 Oracle并查询其中的数据?并实现做接口

今天用Oracle的驱动教大家如何从SQL Server链接到Oracle. 1. 服务器上需要安装Oracle 64位的客户端或者服务端&#xff0c;安装过程就省略了。不会的同学可以网上搜索一下安装方法&#xff0c;很详细&#xff0c;这里不赘述。 安装完成后SQL Server的访问接口上会新增”OraOLE…