帆软Json数据集插件,数据查询及参数控件传参

先看Demo

文本查询,下拉复选框查询,无参数时查全部

有参数传参时

 

1.定义数据连接

 测试地址:

http://fine-doc.oss-cn-shanghai.aliyuncs.com/book.json

2.新建json数据集,查询全表

2.1.查询全表

 

2.2.查询单个字段

 

3. 上述是简单的接口数据查询,做参数控件传参时有点复杂,该用另一种方法-->json程序数据集

3.1 .json程序数据集(js写的)

 

//获取存储的图书列表
var books = $.store.book;
//获取图书列表的长度 
var rowCount = books.length;
//定义一个空数组用于存储图书信息 
var table = [];
//定义一个空数组用于存储图书信息的键名 
var column = [];
//遍历图书列表 
books.forEach(function(value, index) {
//定义一个空数组用于存储当前遍历到的图书的信息 
    var row = [];
	//若没有指定任何筛选条件 
	if ('${category}'==0 && '${author}'==0 && '${title}'==0  && '${price}'==0  && '${isbn}'==0  ){
			//遍历当前遍历到的图书的信息 
			for (var key in value) {
			//将该图书的信息存入row数组 
				row.push(value[key]);
				 //将该图书的键名存入column数组 
				column.push(key);
			}
			//将row数组作为一行信息存入table数组 
			table.push(row);
	} 
	
	else { 
	// 以逗号(,)分割字符串,生成一个数组
	var authorArray = '${title}'.split(','); 
	//若该图书满足筛选条件 
		if (value.category =='${category}' || value.author =='${author}' || authorArray.indexOf(value.title) !== -1|| value.price <='${price}' || value.isbn =='${isbn}' ) {
			 //遍历当前遍历到的图书的信息
			for (var key in value) {
			 //将该图书的信息存入row数组 
				row.push(value[key]);
				 //将该图书的键名存入column数组 
				column.push(key);
			}
			//将row数组作为一行信息存入table数组 
			table.push(row);
			}
	
	  }       
});
 //返回合并后的table数组并去重column数组
return merge(table, unique(column));

 IF说明:

上半段IF,如果控件为空则遍历全表

if ('${category}'==0 && '${author}'==0 && '${title}'==0  && '${price}'==0  && '${isbn}'==0  )

 遍历全表

for (var key in value) {
		row.push(value[key]);
		column.push(key);
			}
		table.push(row);

下半段IF,如果上半段IF有一个控件参数不为空则执行ELSE

var authorArray = '${title}'.split(','); //参数控件传多个值时使用
		if (value.category =='${category}' || value.author =='${author}' || authorArray.indexOf(value.title) !== -1 || value.price <='${price}' || value.isbn =='${isbn}' ) {
			for (var key in value) {
				row.push(value[key]);
				column.push(key);
			}
			table.push(row);
			}

假设title传参为(Sayings of the Century , Sword of Honour)则 查询的数据为

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
帆软报表是一款强大的报表设计与生成工具,它支持使用动态JSON数据集。动态JSON数据集是指在报表设计过程中,通过使用取数公式来动态获取JSON数据,并将其作为报表数据源。 动态JSON数据集的取数公式可以使用JSONVAL函数来实现,该函数可以从JSON字符串中提取指定的值。例如,JSONVAL('{"k1":"v1", "k2":["v21", "v22"], "k3":{"k31":"v31"}}', 'k1')将返回v1,表示提取JSON字符串中键k1对应的值。 在帆软报表中,可以使用动态JSON数据集来实现各种复杂的报表需求,例如根据用户选择的条件动态生成报表数据,或者从外部系统获取实时的JSON数据作为报表数据源。 使用动态JSON数据集的步骤如下: 1. 在报表设计界面中,选择数据源为动态JSON数据集。 2. 设置取数公式,根据需要从JSON数据中提取所需的字段值。 3. 将取得的字段值与报表设计中的数据项进行映射,以便在报表中显示。 通过使用帆软报表的动态JSON数据集,可以轻松实现报表数据的动态加载与展示,满足不同的报表需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [这是一个针对ECharts3.x(2.x)版本的Java类库,实现了所有ECharts中的Json结构对应的Java对象,并且可](https://download.csdn.net/download/hanzhuhuaa/88245563)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [帆软报表自定义函数-取json数据](https://blog.csdn.net/meism5/article/details/104510295)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值