帆软: js 控制隐藏空行详解(普通报表)

2024-02-12 01:18

本文主要是介绍帆软: js 控制隐藏空行详解(普通报表),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

帆软:js控制空行的隐藏的详细讲解

  • 1.视频效果
  • 2.非js隐藏空行的实现方法---自愿学习
  • 3.实现思路
  • 4.操作步骤
  • 5.页面操作说明
  • 6.截图效果
  • 7.注意
  • 8.附:代码展示

1.视频效果

帆软隐藏空行,显示空行--单个表格效果

2.非js隐藏空行的实现方法—自愿学习

  • 帆软:隐藏空行(适用于N条数据).
  • :帆软:隐藏空行(包括空字符串,null,数字0或0.000形式).

3.实现思路

  • 循环表格的行,然后拼接每行里所有需要计算的td,判断拼接后的字符串是否为空或0即可,根据判断是否需要隐藏,从而实现隐藏空行

4.操作步骤

  • 按钮控件–属性(注意控件名,js里用)–事件(点击事件)–js
  • 如图:
    在这里插入图片描述
    在这里插入图片描述

5.页面操作说明

  • 点击【显示空行】按钮,按钮切换为【隐藏空行】
  • 再次点击【隐藏空行】,按钮又切换为【显示空行】
  • 如果没有查询结果或者没有点击查询,点击按钮不含切换

6.截图效果

在这里插入图片描述
在这里插入图片描述

7.注意

  • 主要是语法需要注意
  • //获取表格tr对象 var trObj = $(".x-table tr");
  • 还有 var td = trObj.eq(i).find("td"); var button = this.options.form.getWidgetByName("button0"); 等,这个js里主要的也就这仨了,其他就是逻辑实现,想了解更多帆软js,自己去官网上多了解一下即可

8.附:代码展示

/** 通过遍历表格每行的单元格进行单元格的拼接,来控制表格空行的隐藏* 隐藏的条件:同行里所有的数据列都是 空值/空字符串/0/0.00形式 即隐藏*///获取表格tr对象
var trObj = $(".x-table tr");
//获取tr的行数
var rowsNum = trObj.length;
var hideFlag = false;//控制未查询时,按钮显示值不允许切换
//开始遍历单元格,从第二行开始(表头不遍历)--可根据需求自行修改
for(var i = 1; i < rowsNum; i++) {var td = trObj.eq(i).find("td");var trStrs = "";//用来拼接各行需要遍历的单元格//遍历tr中的对象td,从第二列开始----可根据需求自行修改for(var j = 1; j < td.length; j++) {//_val是每个单元格值var tdValue = td.eq(j).text();//去除空格tdValue = $.trim(tdValue);//判断是否是空,如果不为空弹出单元格值(可根据需要更改)if(tdValue!="" && tdValue!=0){//如果是td是0.0000格式,也可以用0来判断trStrs += tdValue;}}if(trStrs==null || trStrs=="" || trStrs==0){//隐藏空行或者0//alert("隐藏:::"+trStrs);   	   $("#r-"+i+"-0").toggle();hideFlag = true;//是否需要隐藏标志设为true}else{//非0 非空的 不隐藏//alert("展示:::"+trStrs);}}
//点击按钮显示值切换(“隐藏空行”与“显示空行”切换)
var button = this.options.form.getWidgetByName("button0");
//alert(button.getValue());
if((button.getValue()=="隐藏空行") && hideFlag==true){button.setValue("显示空行");
}else{button.setValue("隐藏空行");
}
//buttonValue.setVisible(false);
//$("#fr-btn-BUTTON0").html("显示空行");//注意:控件名button0字母必须大写 这个也可以,但是value值不改变,只改变了页面显示的值,样式也改了

这篇关于帆软: js 控制隐藏空行详解(普通报表)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/701305

相关文章

C++ move 的作用详解及陷阱最佳实践

《C++move的作用详解及陷阱最佳实践》文章详细介绍了C++中的`std::move`函数的作用,包括为什么需要它、它的本质、典型使用场景、以及一些常见陷阱和最佳实践,感兴趣的朋友跟随小编一起看... 目录C++ move 的作用详解一、一句话总结二、为什么需要 move?C++98/03 的痛点⚡C++

MySQL中between and的基本用法、范围查询示例详解

《MySQL中betweenand的基本用法、范围查询示例详解》BETWEENAND操作符在MySQL中用于选择在两个值之间的数据,包括边界值,它支持数值和日期类型,示例展示了如何使用BETWEEN... 目录一、between and语法二、使用示例2.1、betwphpeen and数值查询2.2、be

python中的flask_sqlalchemy的使用及示例详解

《python中的flask_sqlalchemy的使用及示例详解》文章主要介绍了在使用SQLAlchemy创建模型实例时,通过元类动态创建实例的方式,并说明了如何在实例化时执行__init__方法,... 目录@orm.reconstructorSQLAlchemy的回滚关联其他模型数据库基本操作将数据添

Java中ArrayList与顺序表示例详解

《Java中ArrayList与顺序表示例详解》顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构,:本文主要介绍Java中ArrayList与... 目录前言一、Java集合框架核心接口与分类ArrayList二、顺序表数据结构中的顺序表三、常用代码手动

JAVA线程的周期及调度机制详解

《JAVA线程的周期及调度机制详解》Java线程的生命周期包括NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING和TERMINATED,线程调度依赖操作系统,采用抢占... 目录Java线程的生命周期线程状态转换示例代码JAVA线程调度机制优先级设置示例注意事项JAVA线程

详解C++ 存储二进制数据容器的几种方法

《详解C++存储二进制数据容器的几种方法》本文主要介绍了详解C++存储二进制数据容器,包括std::vector、std::array、std::string、std::bitset和std::ve... 目录1.std::vector<uint8_t>(最常用)特点:适用场景:示例:2.std::arra

C++构造函数中explicit详解

《C++构造函数中explicit详解》explicit关键字用于修饰单参数构造函数或可以看作单参数的构造函数,阻止编译器进行隐式类型转换或拷贝初始化,本文就来介绍explicit的使用,感兴趣的可以... 目录1. 什么是explicit2. 隐式转换的问题3.explicit的使用示例基本用法多参数构造

Android使用java实现网络连通性检查详解

《Android使用java实现网络连通性检查详解》这篇文章主要为大家详细介绍了Android使用java实现网络连通性检查的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录NetCheck.Java(可直接拷贝)使用示例(Activity/Fragment 内)权限要求

MyBatis中的两种参数传递类型详解(示例代码)

《MyBatis中的两种参数传递类型详解(示例代码)》文章介绍了MyBatis中传递多个参数的两种方式,使用Map和使用@Param注解或封装POJO,Map方式适用于动态、不固定的参数,但可读性和安... 目录✅ android方式一:使用Map<String, Object>✅ 方式二:使用@Param

JAVA transient 关键字作用详解

《JAVAtransient关键字作用详解》Java的transient关键字用于修饰成员变量,使其不参与序列化过程,通过自定义序列化方法,可以手动控制transient变量的序列化行为,本文给大... 目录一、transient关键字作用二、原理详解三、典型使用场景四、代码示例五、注意事项六、与 stat