你可以用StringGrid,将记录一条条读到他的column里,
DBGrid,没这样的功能

解决方案 »

  1.   

    to pekiee(绿光) 
       谢谢,在存储过程外面已实现,就是因为那样代码有点多,而且前后都有,才考虑用,sql语句实现,试了多次列的变量总是付不上值,????
    帮想想有sql语句实现和临时表,如何实现,能否实现????谢谢!
      

  2.   

    这是我调试末成的代码,请大家看那里不妥,是否有实现的机会?谢谢declare @infeeprintmoney money ,@N int,@p char(10)
    create table #infeeitem_alldept(inpidno char(15),p1 money,p2 money,p3 money,p4 money,p5 money,p6 money,
                 p7 money,p8 money,p9 money,p10 money,p11 money,p12 money,p13 money,p14 money,p15 money)   insert #infeeitem_alldept(inpidno)
        values(20020000001)
    --从单据明细表得到该单据的内容(使用指针)
    create table #lx(feeprintitemname char(10),infeeprintmoney money,totalinmoney money,totalmoney money,lastmoney money)
     insert  #lx
     exec proc_infee '20020000001'
    set @N=0
    DECLARE infee CURSOR FOR  --声明
     select infeeprintmoney from #lx
    OPEN infee   --打开
    FETCH NEXT FROM infee
        INTO @infeeprintmoney
    WHILE (@@FETCH_STATUS <> -1)
        BEGIN
      set  @N=@N+1  set @p='p'+convert(char,@N)   update #infeeitem_alldept
       set @p=@infeeprintmoney
       where inpidno='20020000001'        FETCH NEXT FROM infee
            INTO @infeeprintmoney
        END
    CLOSE infee
    DEALLOCATE infeeselect *  from #infeeitem_alldept
    drop table #infeeitem_alldept
    drop table #lx
      

  3.   

    jlxlh(行者) : 方法不妥
    这种建立临时表的坐法很浪费其实这是一种电信的交叉表做法Sqlserver中有交叉表的例子不过下面是偶的一个输出交叉表的存储过程,比较通用
    //******************************************************************
    CREATE procedure CorssTab 
    @strTabName as varchar(50) = 'Employees', --此处放表名
    @strCol as varchar(50) = 'City', --表头分组依据字段
    @strGroup as varchar(50) = 'TitleOfCourtesy',--分组字段
    @strNumber as varchar(50) = 'ReportsTo', --被统计的字段
    @strSum as varchar(10) = 'Sum' --运算方式
    ASDECLARE @strSql as varchar(1000), @strTmpCol as varchar(100)
    EXECUTE ('DECLARE corss_cursor CURSOR FOR SELECT DISTINCT ' + @strCol + ' from ' + @strTabName + ' for read only ') --生成游标begin
    SET nocount ON 
    SET @strsql ='select ' + @strGroup + ', ' + @strSum + '(' + @strNumber + ') AS [' + @strSum + ' of ' + @strNumber + ']' --查询的前半段OPEN corss_cursor
    while (0=0)
    BEGIN
    FETCH NEXT FROM corss_cursor --遍历游标,将列头信息放入变量@strTmpCol
    INTO @strTmpCol
    if (@@fetch_status<>0) break
    SET @strsql = @strsql + ', ' + @strSum + '(CASE ' + @strCol + ' WHEN ''' + @strTmpCol + ''' THEN ' + @strNumber + ' ELSE Null END) AS [' + @strTmpCol + ' ' + @strCol + ']' --构造查询
    END
    SET @strsql = @strsql + ' from ' + @strTabname + ' group by ' + @strGroup --查询结尾EXECUTE(@strsql) --执行IF @@error <>0 RETURN @@error --如果出错,返回错误代码
    CLOSE corss_cursor 
    DEALLOCATE corss_cursor RETURN 0 --释放游标,返回0表示成功end
    GO
      

  4.   

    to h_S2000(处理器) 
      谢谢,立即调试,成功给分,再次感谢!
      

  5.   

    to h_S2000(处理器) :
       成功了,特来给分,十分感谢,十分感谢
    有问题常联系,我的email:[email protected]
    再次感谢