找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 303|回复: 0

查询库龄分析出现未响应的现象,无法查询

[复制链接]
发表于 2022-5-27 14:54:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

×
【问题现象】查询库龄分析出现未响应想象,无法查询!登录999演示账套是能正常查询的!

【问题原因】库龄分析的数据库存储过程有问题,需要重建存储过程

【处理方案】执行附件里的脚本可以解决问题
1、在操作之前请先进行数据备份,以防数据出错后无法恢复!
2、执行附件中的脚本:大概要等半个小时左右,建议多等一会。
问题即可解决。
已根据您发的账套修改了,请您视实际情况修改
set @year=2006  (为账套启用年度)
while  @year
@cAccNo = N'206',( 206 为账套的账套号)
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ST_InvRdBalance_test]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[ST_InvRdBalance_test]
GO



--计算年度账套的期初

CREATE   PROCEDURE [dbo].[ST_InvRdBalance_test]
@cAccNo Varchar(20),
@year int
As

        Declare @iPreYear As smallint
        Declare @iYear As smallint
        Declare @iFirst As bit
        Declare @acc  As Varchar(20)
        Declare @PreAcc  As Varchar(20)
        Declare @sSQL As nVarchar(1000)       
        Declare @inum as int
        Declare @sBegSQL As nVarchar(1000)
        Declare @CurDate As datetime
       
        begin tran T1

        --获得账套信息
        Set @iFirst = 1

        declare cur_no cursor for       
                Select distinct iYear
                        From UFSystem..UA_Account_Sub
                        Where cAcc_Id = @cAccNO And iYear
                        Order by iYear
        Open cur_no
        Fetch Next From cur_no Into @iYear
       
        While @@Fetch_Status = 0
        Begin
                --创建账套期初余额明细
                Set @Acc = 'UFDATA_' + @cAccNO + '_' + cast(@iYear as Varchar(4))

                Set @sSQL = N'select @Num = count(*) from ' + @Acc + '..sysobjects ' + ' Where name = ''ST_BegInvAge'''

                exec sp_executesql @sSQL,N'@Num int output', @iNum output                
               
                --第一个年度时,将导入记录类型为34的期初数据
                If @iFirst = 1
                Begin
                        if @iNum = 0
                        Begin
                                --创建期初余额表
                                Set @sBegSQL = N' Select R.[ID], [bRdFlag], [cVouchType], [cWhCode], [dDate], [cCode],
                                                        [cRdCode], [cDepCode], [cPersonCode], [cVenCode], [cHandler], [cMemo],
                                                        [cMaker], [cDefine1], [cDefine2], [cDefine3], [cDefine4], [cDefine5],
                                                        [cDefine6], [cDefine7], [cDefine8], [cDefine9], [cDefine10], [AutoID],
                                                        [cInvCode], [iNum], [iQuantity], [iUnitCost], [iPrice], [cBatch], [cFree1],
                                                        [cFree2], [dVDate], [cDefine22], [cDefine23], [cDefine24], [cDefine25],
                                                        [cDefine26], [cDefine27], [cItem_class], [cItemCode], [cName], [cItemCName]
                                                        Into '+ @Acc +'..ST_BegInvAge From '+@Acc+'..Rdrecord r Join ' + @Acc + '..Rdrecords rs On (r.id = rs.id) Where cVouchType = ''34'' '
                               
                                exec sp_executesql @sBegSQL
                                Set @iFirst = 0
                        End
                End
                Else  --计算其他
                Begin
                        --上一个账套名称
                        Set @PreAcc = 'UFDATA_' + @cAccNO + '_' + cast(@iYear - 1 as Varchar(4))
                        --计算账套期末结存
                        --取上期最大日期
                        Set @CurDate = (Select dEnd from UFSystem..ua_period
                                Where cAcc_id = @cAccNo
                                        And iYear = @iYear - 1
                                        And iId = (
                                                Select Max(iID)
                                                From UFSystem..ua_period
                                                Where cAcc_id = @cAccNo
                                                        And iYear = @iYear - 1 ))
                       
                        --计算上年余额,产生本年期初
                        if @iNum = 0
                        Begin
                                Exec ST_CalBegInvAge @PreAcc, @CurDate, @Acc
                        End
                       
                End
                Fetch Next From cur_no Into @iYear
        End        
        close cur_no
        deallocate cur_no

        commit tran T1
GO



DECLARE        @return_value int
declare @year int
set @year=2006
while  @year
begin
EXEC        @return_value = [dbo].[ST_InvRdBalance_test]
                @cAccNo = N'206',
                @year=@year
    set @year=@year +1
end
GO
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ST_InvRdBalance_test]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[ST_InvRdBalance_test]
GO
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-11-25 21:31 , Processed in 0.093320 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表