FR 参数为空时显示所有结果

【问题】

    制作一张订单信息报表,有两个输入参数:省份、地区。要求在无参数时查询能显示所有数据。

    但是完成后发现,当参数为空时,显示结果不全。

    

    数据库查询如下:

        SELECT * FROM 订单
        where ${ if( len(省份)==0, "1=1", "货主省份='" + 省份 + "'" ) }
	     ${ if( len(省份)==0, "and 货主地区='" + 地区 + "'", 
	 	    if( len(地区)==0, "", "and 货主地区='" + 地区 + "'" )
	     ) }

image.png


【原因】

    缺少了省份与地区都为空时的判断。


【解决】

    正确的数据库查询SQL:

    SELECT * FROM 订单
    where ${ if( len(省份)!=0,
		if( len(地区)!=0,
			"货主省份='" + 省份 + "' and 货主地区='" + 地区 + "'",
			"货主省份='" + 省份 + "'"
		),
		if( len(地区)!=0,
			"货主地区='" + 地区 + "'",
			"1=1"
		)
	) }


image.png


【注意点】

  • 在普通的SQL查询中,注释是使用“--”来完成的

  • 在FR的数据库查询中,“--”做注释会报出语法错误

image.png

猜你喜欢

转载自blog.51cto.com/10931223/2285428
Fr3
今日推荐