WEB开发网
开发学院数据库MSSQL Server 使用存储过程实现分页打印 阅读

使用存储过程实现分页打印

 2007-11-11 04:45:11 来源:WEB开发网   
核心提示:使用存储过程实现分页打印,这个存储过程是一个小区宽带用户管理系统,项目里代码的一部分,使用存储过程实现分页打印,功能是:实现把表userinfo里的用户资料按IP网段排序进行分页打印!!比如172.20.128.XX的IP简称为128网段的用户,172.20.119.XX的IP简称为119网段的用户,每个网段的用户打印


使用存储过程实现分页打印。

这个存储过程是一个小区宽带用户管理系统,项目里代码的一部分。

功能是:
实现把表userinfo里的用户资料按IP网段排序进行分页打印!!
比如172.20.128.XX的IP简称为128网段的用户,
172.20.119.XX的IP简称为119网段的用户,

每个网段的用户打印在一张A4纸上,
不足一张的按一张打印,其余的可空出。
大于一张小于两张的按二张打印,其余空出.
经过估算一页最多只能打印37行.
思路是:先把select出的按IP分组的用户信息和计算出的空格行insert进一个临时表中
然后多此临时表打印就行了。

--首先清空表
--truncate table subip

declare @result int
declare @subip varchar(20)
declare cur_e scroll cursor for
  select substring(ip_address,8,3) from userinfo group by substring(ip_address,8,3)

open cur_e--打开游标
--print 'aaa'+convert(char(13),@@cursor_rows)
 fetch first from cur_e into @subip

while(@@fetch_status=0)
 begin
  --insert into subip (supip)values (@subip)
  insert into subip select userinfo.username,userinfo.catalyst_port,userinfo.home_address,
userinfo.ip_address,userinfo.phone,catalyst.label,' from userinfo,
catalyst where userinfo.catalyst_id=catalyst.id and substring(userinfo.ip_address,8,3) =@subip
  set @result=@@rowcount
    if(@result>37)
     begin
      while(@result<74)
      begin
      insert into subip select

username=',catalyst_port=',home_address=',ip_address=',phone=',label=',account='
      set @result=@result+1
      end
     end
    else
     begin
      while (@result<37)
      begin
       insert into subip select

username=',catalyst_port=',home_address=',ip_address=',phone=',label=',account='
      set @result=@result+1
      end
     end
  --select @@rowcount
  fetch next from cur_e into @subip
 end
close cur_e
deallocate cur_e

Tags:使用 存储 过程

编辑录入:coldstar [复制链接] [打 印]
赞助商链接