帆软报表中if语句写法以及多选下拉框的实现

if语句实现动态sql

语法格式为:

${ if( 判断条件,"true执行语句","false执行语句")}

//1.判断是否为空,为空情况下拼接一个and条件
//注:BG 是我下拉列表的控件名。这里一定要注意拼接的两个单引号的位置。
${if( len(BG)==0 , "" , "  and t.rbc1 = ' "+BG+" ' ")} 


//2.判断是否为某个值。
${if( unit=='a' , " and t.rbc1 is null " , "  and t.rbc1 is not null ")}


//3.多个条件同时判断,和java语法一样使用&&或者||连接即可。
//我这里的逻辑是满足条件就以千作为单位,不满足则以个位作为单位。
${if(unit=='aa' || unit=='bb' ," round( sum(t.quantity)/1000,2) qty, ","  sum(t.quantity) qty , ")} 

//4.要是你的下拉列表或者文本框以及其他控件设置的是必填项。那么就可以写的更加简单。
//这里就不需要if判断了直接等于该值值即可。
and t.rbc1 = ${BG}

多选下拉框实现动态语句

1.创建一个多选的下拉控件,设置好数据字典以及控件名。

        帆软报表中if语句写法以及多选下拉框的实现_第1张图片

 2.在高级中,将返回字符串进行勾选。同时分割符改成','的格式(注意是英文格式)。

注:如果需要拼接的条件字段类型不是varchar,则分割符不用变保持原样的,即可。

        帆软报表中if语句写法以及多选下拉框的实现_第2张图片

 3.在你的数据来源中编写对应if语句,完成动态语句拼接。

        帆软报表中if语句写法以及多选下拉框的实现_第3张图片

//实现in 语句,这里还是要格外注意下单引号的拼接位置。
//注:如果需要拼接的条件字段类型不是varchar ,则需要去掉这里的单引号
${if(len(BG)==0,"","  and t.rbc1 in(  ' "+BG+" ')")} 

报表单元格中的if写法

        比如现在有这样的需求,客户在报表中除了数据,还需要知道这个报表是根据哪些筛选条件查询出来的(甲查询导出后,可能会传阅给乙看,所以展示筛选条件也是有必要的)。

1.也是先创建你的对应下拉列表,同时设置好控件名,这里不在展示。

2.点击到你要插入筛选条件内容的单元格。在点击上方插入公式的按钮。

        帆软报表中if语句写法以及多选下拉框的实现_第4张图片

         帆软报表中if语句写法以及多选下拉框的实现_第5张图片

 3.编写if 语句。

    注:这里需要注意下,单元格中引入控件值,不在是${控件名}。而是直接$控件名。

//这里我直接把代码贴出,大家根据自己的格式修改即可。$后面的时控件名。
"筛选条件\n"+if(len($BG)==0,"","BG:'"+$BG+"';\t\t")
+if(len($rbc)==0,"","RBC:'"+$rbc+"';\t\t")
+if(len($comments)==0,"","业务单元:'"+$comments+"';\t\t")

4.效果

帆软报表中if语句写法以及多选下拉框的实现_第6张图片

快速复制模板数据集

        也就是复制下面这块内容了,我在开发时就遇到了这种情况。上面的控件还好可以直接复制。但是模板数据集帆软本身并没有提供复制方法。如果有小伙伴遇到下面这个需求可以参考链接中的文章。快速复制模板数据集。

帆软报表中if语句写法以及多选下拉框的实现_第7张图片

帆软报表 快速复用数据集,避免重复劳动 - 走看看 (zoukankan.com)http://t.zoukankan.com/xiaobaidejiucuoben-p-14945764.html

你可能感兴趣的:(帆软报表,sql,数据库,java,python)