当前位置:软件学习 > 其它软件 >>

smartform的问题

smartform已经做好,调用的时候内表条目超过大概30条左右,出现一直等待,初步估计是进入了死循环,用sm50进去调试,debug发现进入了一个死循环,代码如下: 

    l_index = l_blockend. 
    while l_flag  eq c_true. 
      l_index = l_index - 1. 
      read table p_cell_otf into l_otfline index l_index. 
      if l_otfline-tdprintcom <> pc_id_codepage    and 
        l_otfline-tdprintcom <> pc_id_call_font  and 
        l_otfline-tdprintcom <> pc_id_space_width and 
        l_otfline-tdprintcom <> pc_id_uline      and 
        l_otfline-tdprintcom <> pc_id_color_text  and 
        l_otfline-tdprintcom <> pc_id_move_to    and 
        l_otfline-tdprintcom <> pc_id_md_after_par. 

        l_flag = c_false. 
      endif. 
    endwhile. 
debug的值:l_blocked = 7,c_true = 'X', c_false = ''. l_flag 原始值是X 
debug 发现,满足l_flag = ''的条目只有一个,刚好在第7行,所以一直读不到,又没有判断l_index的地方,进入死循环,请问这个要怎么办啊,标准程序,不能修改的 --------------------编程问答-------------------- 这段代码在:include LSTXBCTB3 中的第1087行 --------------------编程问答-------------------- 这段程序本身写的有问题,容易造成死循环。

要么改程序,要么调用这段程序之前保证p_cell_otf表中,在1到l_blocked之间符合条件的值。别无他法。
补充:企业软件 ,  ERP/CRM
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,