FastReport使用交流,FastReport中国社区FastReport联系电话 联系电话:023-68661681

如何在FastReport.Net中使用SQL函数

来源:   发布时间:2018-08-22   浏览:162次

【下载FastReport.Net最新版本】

要在MS SQL中获取数据,可以使用sql查询,存储过程和存储函数,之前我们已经讨论了如何使用动态查询和存储过程作为报表数据源,在本文中,我们将创建一个表和标量函数,并在报表中使用它们,表函数返回表,标量函数返回单个值。首先,在MS SQL中创建一个表函数:
USE [testdb]
GO
 
SET ANSI_NULLS ON
GO
 
SET QUOTED_IDENTIFIER ON
GO
 
-- =============================================
-- Description: Returns customers who live in the specified city
-- =============================================
 
CREATE FUNCTION [dbo].[GetCustomersFromCity]
(
 @city VARCHAR(20)
)
RETURNS TABLE
AS
RETURN
(
SELECT * FROM dbo.CUSTOMER WHERE CITY = @city
)
该函数采用一个参数——城市名称,并返回此城市中的客户列表。再添加一个现在的标量函数:
USE [testdb]
GO
 
SET ANSI_NULLS ON
GO
 
SET QUOTED_IDENTIFIER ON
GO
 
-- =============================================
-- Description: Returns last added customer
-- =============================================
CREATE FUNCTION [dbo].[GetLastCustomer]
()
RETURNS VARCHAR(30)
AS
BEGIN
 DECLARE @Name VARCHAR(30)
 SELECT TOP 1 @Name = CONCAT(ind.FIRST_NAME, ' ', ind.LAST_NAME) FROM dbo.Customer cus
 JOIN dbo.Individual ind ON ind.CUST_ID = cus.CUST_ID
 ORDER BY cus.CUST_ID
 RETURN @Name
END
此函数不接受参数,但返回最后注册的客户端名称。现在让我们继续查看报表。首先,在报表中创建一个参数,我们将使用它将城市名称转移到函数,以检索数据。
VectorBarcodes
添加到MS SQL数据库的连接:
VectorBarcodes
然后,在下一步中,我们被要求选择表,但我们将使用Add SQL query ...按钮
VectorBarcodes
在下一步中,设置新表的名称——TableFunction,点击Next:
VectorBarcodes
与存储过程不同,函数用作表,也就是说,需要使用Select来获取数据:
VectorBarcodes
在下一步中,我们需要添加city查询参数,在其Expression属性中,选择报表的Param参数,单击Finish,得到一个新的数据源:
VectorBarcodes
现在添加对话框窗体并将报表的Param参数拖到它上面,将字段从TableFunction表拖到Data band,运行报表,在对话框中输入值:
VectorBarcodes
从表函数中获取样本:
VectorBarcodes
文章开头我们创建了两个函数,这个例子更简单,因为我没有向这个函数添加一个传入参数。让我们再创建一个数据源,另外,至于第一次——connection to MS SQL,再次单击Add SQL query ...按钮,调用标量函数与调用表函数略有不同:
VectorBarcodes
跳过所有其他步骤:
VectorBarcodes
再添加一页报表并将数据拖动到新数据源的单个字段——ScalarFunc,运行报表,转到第二页:
VectorBarcodes
如上所示,使用函数获取数据非常简单,它们将帮助您在开发报表及其执行时节省时间。
FastReport教程合集
本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:FastReport控件中文网 [http://www.fastreportcn.com/]
本文地址:http://www.fastreportcn.com/post/2208.html

联系我们
  • 重庆总部 023-68661681 400-700-1020
  • 北京公司 010-56705895
购买
  • sales@evget.com
合作
  • business@evget.com