如何在FastReport.Net中使用动态查询
【下载FastReport.Net最新版本】
FastReport.Net构建的大多数用户报表从SQL DBMS接收数据,并希望在他们的报表中利用Sql。在本文中,我们将了解如何在创建报表数据源时使用动态查询。 此类查询用于绕过SQL语言的语法限制,但是由于次优查询计划,这些请求可以执行得更长,并且需要以不同方式构建安全性。但动态查询很方便,因此在FastReport中使用它们。 假设用户希望在显示报表之前过滤数据似乎很简单,但是,如果要更改将过滤数据的字段?就可以使用动态查询,可以向查询主体添加变量,其中一个是强加条件的字段名称,第二个是该字段的值。
创建报表,以前,需要创建两个报表参数,添加字符串类型的ParamName和ParamValue。现在创建与数据库的连接,我们连接到SQL server:
在选择表格的阶段,单击Add SQL query...按钮,运行查询向导:
设置future表的名称,然后单击Next。
手动输入动态查询,此查询有两个参数:@Param1——字段名称,@ Param2——字段值,在这里,可以添加第三个参数——操作符号(=,in,<,>,<,>),但在本文中设置两个参数,由于查询表示为文本值,因此我们使用Execute语句来执行,单击“Next”按钮。
在参数定义窗口中,使用与SQL查询中相同的名称创建两个,必须指定Expression。对于第一个参数,这是[ParamName],对于第二个参数——[ParamValue],这些是我们之前创建的报表参数名称,单击“Finish”按钮,得到了数据来源:
将字段从Product表拖到band的数据中。
现在,让我们添加一个对话框表单,将两个参数从“Data”窗口拖到它,现在我们可以指定字段的名称及其过滤样本的值,运行报表。
设置参数值,然后单击“Ok”。
得到了需要的记录,尝试在不同的字段上过滤报表,再次运行报表。
结果如下图所示:
因此,可以使用动态查询来帮助用户避免不必要的代码或报表设置,如果需要处理大量数据,则可以通过在接收数据的过程中切断不必要的数据来加快报表生成的时间。