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