- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
U8自定义报表存储过程的调用方法
U8 自定义报表存储过程的调用方法:(参照U850二次开发手册修改)
使用储过程作为报表数据源
自定义报表虽然提供了灵活的编程接口,但使用比较复杂。我们提供了另外一种组织复杂数据源的方法:在数据源语句中直接调用存储过程。这种方法的优点是无须其他编程语言,也不必去学习自定义报表那些令人头晕的接口,使用简单;缺点是只能通过单一字符串提供条件,这会限制存储过程的执行效率和程序设计的灵活性。
调用存储过程语法
with pocedure procedure name temp table name
说明:
with pocedure 关键字,说明当前数据源取自存储过程
procedure name 存储过程名称,必须
temp table name 存储过程生成的临时表名,必须
例28:
with procedure sp_test tempdb..tmptable
存储过程设计规范
被调用的存储过程有且必须只有一个字符串参数,该参数接收条件字符串(如果报表没有定义条件项则该参数为空字符串),该参数应留出足够的长度以接收条件字符串;存储过程最终必须生成临时表,临时表名是在调用时指定的哪个。
使用存储过程举例
1. 在数据库创建存储过程
例28:
CREATE PROCEDURE Sp_Test
( --条件参数
@chrWhere varchar(1000)=
)
AS
Declare @chrsql varchar(2000)
--删除已经存在的临时表
If exists(select name from tempdb..sysobjects where name =sa_tmpupdate)
Drop table tempdb..Sa_tmpUpdate
--生成临时表
set @chrsql =select * into tempdb..sa_tmpupdate from inventory
--加上条件
if ltrim(rtrim(@chrwhere))
set @chrsql = @chrsql + where + @chrwhere
exec(@chrsql )
select * from tempdb..sa_tmpupdate
GO
2.创建测试报表,直接在SQL视图中书写调用存储过程语句如图:
?
?
3.保存报表,设置格式和条件。
如下图,在报表查询时
传递字符串实际执行命令:
exec sp_test cinvcode=010101 and cinvcode=010102
目前存储过程只接受一个参数,可通过此参数传递过滤条件。
文档评论(0)