帆软报表学习笔记③——下拉框的简单应用:输入提示以及时间的选择

    在一般的报表中,都会有数据查询,为了有更好用户体验可以通过输入一个字然后有提示,如下图的样式

    这种样式说起来还是很好实现的,首先拉入一个下拉框到顶部的编辑区域,然后选择下拉框控件,在帆软的右边有它的属性名 选择 数据字典 类型选择公式,然后在利用sql()函数得到你想要的数组

    sql函数的在上面的注解是: SQL(connectionName,sql,columnIndex,rowIndex)返回通过sql语句从connectionName中获得数据表的第columnIndex列第rowIndex行所对应的元素。 connectionName:数据库库的名字,字符串形式;sql:SQL语句,字符串形式;columnIndex:列序号,整形;rowIndex:行序号,整形。备注:行序号可以不写,这样返回值为数据列。示例:以我们提供的数据源HSQL为例SQL("HSQL","SELECT * FROM CUSTOMER",2,2)等于王先生。

    这个时候回到控件的编辑界面然后运行一下就可以了,原本笔者在写sql语句的时候,本来认为是需要用到 like ‘%##%’ 关键字的,但是没有添加,他也有自动匹配的功能,这个我觉得应该是这个控件本身自带的功能,具体是不是还有待进一步研究。

    

    在下拉框中实现时间以月的方式供于选择

    在帆软报表中的有日期控件,初始化是这样的,当然你可以选择,右边的属性名栏下的有格式 改变格式也改变它显示的格式 默认是 yyyy-MM-dd ,改成yyyyMM如下图中间的的样式,但是有的时候会有需求,让你以下拉列表的方式来选择某一个月,或者某一天某一年,这个时候用日期控件就很难实现了(我捣鼓了半天没发现有好的办法用日期控件来实现这种需求,如果有的话,请教教我 :) ),最后我退而求下拉框控件。

    因为一般的需求是从今天或者当月到某一时间供于选择,当时想把一个个值都输入进去也不现实啊,假如到明天或者下个月了不就不行了,所以我想应该动态的获取,这个时候我想到了从数据库中获取这些数据,利用西面的语句可以实现:

           SELECT to_char(ADD_MONTHS(trunc(sysdate),1-rownum),'yyyyMM') as monthlist FROM DUAL CONNECT BY rownum<= 13

这样一来也可以通过to_char来改变想要的显示格式,也可以实时的获取到当前的时间。有了这条语句了下面操作就容易多了。方法类似上门的 提示,我利用sql()语句可以把 上面语句获取的值存放到下拉框的控件中之后就可以供于选择了

    这样一来,这两个小需求就实现了:笔者认为主要还是数据库的知识,奈何笔者非常菜 ,泪奔啊~~~ 还需努力!!

原文地址:https://www.cnblogs.com/eoooxy/p/5891644.html