dfasdf

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go







----------------1编写说明 start-----------------
--*名称:业务关系购货企业目录查询,设置业务关系
--备注:
--*编写人:付强
--*创建时间:2008-11-27
----------------2修改日志 end-----------------

--[QN_CORPORATION_LIST_STD] 1,'6,',''

ALTER proc [dbo].[QN_CORPORATION_LIST_STD]
    @UserID int,
    @Parastr varchar(1000) = '',   
    ----------------- 2参数说明 start--------------------------
    -- 如果@parastr = '' , 则不能检索数据
        --企业检索码
    ----------------- 2参数说明 end--------------------------
    @WebPara varchar(100) = ''
as
    set nocount on
    ------------------3查询输出初始化 start --------------------
    declare @rid int --关联企业
    --3a.获取操作者的关联信息
    select @rid = rid from person
        where p_lsm = @userid
    --3b.创建输出列表
    create table #ts
        ( sortid int  identity(1,1)        --序号
        , DataKey    varchar(30)            -- 企业ID
        , corpcode varchar(100)        --企业编码    
        , corpname varchar(200)        --企业名称        
        , districtcode varchar(10)            --行政区号
        , corptype varchar(100)            -- 企业类别
        , address varchar(200)        -- 企业地址
        , link varchar(100)  --联系方式
        , spellcode varchar(50)        -- 助记码
        )
    
    --3c 条件初判    
    if @rid is null
    begin
        select * from #ts
        return
    end
    ------------------3查询输出初始化 end --------------------
    ------------------4 查询条件参数拆解 start----------------
    declare @outstr varchar(1000)
    declare @gtype varchar(30)
    declare @corpid int
    declare @Ctype int
    exec v6_popfirstword @parastr output, @outstr output
    if isnumeric(@outstr) = 1
        set @corpid = @outstr
    else
        set @corpid = 0
    exec v6_popfirstword @parastr output, @outstr output
    set @gtype = @outstr    
    ------------------4 查询条件参数拆解 end----------------------
    ------------------5 数据获取 start----------------------
    ---5.a 基本查询构架
    declare @sqlstr varchar(2000)
    set @sqlstr = ' insert #ts (
        DataKey    
        , corpcode
        , corpname
        , districtcode
        , corptype
        , address
        , link
        , spellcode
        )
        select
            CORPID  
            ,corpid
            ,CORPNAME
            ,DistrictCode
            ,CorpType
            ,Address
            ,link
            ,spellcode    
        from BDO_CORPORATION a where a.isvalid = 1
        and not exists(select * from DPV_CORPCORPINFO where CorpID='+cast(@corpid AS VARCHAR)+' and
        RelationCorp='+cast(@rid AS VARCHAR)+' and RelationCorp=a.corpid)  '

    -- 5.b 查询条件组合
    --select * from #ts
    declare @clause varchar(1000)
    set @clause = ' and iscustom = 1'
    --and isprovider = 1
    if @gtype != ''
        begin
            if isnumeric(@gtype)=1
                set @sqlstr = @sqlstr + ' and corpid='+str(@gtype)+' '
            else
            begin
                set @ctype = dbo.PUB_GETCODETYPE(@gtype)
                if @ctype = 3
                    set @sqlstr = @sqlstr + ' and corpname like ''%' + @gtype + '%'''
                else
                    set @sqlstr = @sqlstr + ' and spellcode like ''%' + @gtype + '%'''
            end
        end
    set @sqlstr = @sqlstr + @clause
    
    ---- 5.c 排序、分页拆解
    declare @sortstr varchar(100)
    declare @pagenum int
    declare @pageno int
    exec PUB_WEB_PAGEPARA @WebPara, @SortStr output, @PageNum output , @PageNo output
    -- 5.d 排序处理
        --注意:很多时候,排序字段与输出字段不一致,需要做变更处理
    if @sortstr is null or @sortstr = ''
        set @sqlstr = @sqlstr + ' order by DistrictCode '
    else
    begin
        -- 对排序字段进行名称变更
        set @sqlstr = @sqlstr + ' order by ' + @sortstr
    end
    -- 5.e 数据获取
    print @sqlstr
    exec (@sqlstr)
    ------------------5 数据获取 end----------------------
    ------------------6 分页输出 start----------------------
    declare @count int
    select @count = count(*) from #ts
    if @pagenum is null or @count < @pagenum -- 行数少于每页行数
        select @count as totalcount, *  from #ts
    else
        select @count as totalcount, * from #ts
            where sortid > (@pageno - 1) * @pagenum and sortid <= @pageno * @pagenum
    ------------------6 分页输出 start----------------------
    








你可能感兴趣的:(AS)