Abap 删除的表控件导致运行时错误

Abap 删除的表控件导致运行时错误,abap,dynpro,Abap,Dynpro,我有一个带有一个表控件的屏幕,它显示来自内部db的值。 结果是完美的 我添加了另一个表控件,它没有按照我想要的方式工作 我使用屏幕9000删除了控件CONTROLS:tc\u两种类型的TABLEVIEW。 现在我得到一个运行时错误未找到控制变量 问:如果我声明了新控件,会发生什么?它们在哪里得到实施 我试图调试代码,错误出现在呼叫屏幕9000。 以下是完整的代码: REPORT zsch_test. CONTROLS: tc_one TYPE TABLEVIEW USING SCREEN 90

我有一个带有一个表控件的屏幕,它显示来自内部db的值。 结果是完美的

我添加了另一个表控件,它没有按照我想要的方式工作

我使用屏幕9000删除了控件
CONTROLS:tc\u两种类型的TABLEVIEW。

现在我得到一个运行时错误
未找到控制变量

问:如果我声明了新控件,会发生什么?它们在哪里得到实施

我试图调试代码,错误出现在
呼叫屏幕9000。

以下是完整的代码:

REPORT zsch_test.

CONTROLS: tc_one TYPE TABLEVIEW USING SCREEN 9000.

DATA: it_uebung  TYPE TABLE OF zsch_uebung,
      ok_code    TYPE sy-ucomm,
      fill       TYPE i.

TABLES zsch_uebung.

DATA: lines TYPE i,
      limit TYPE i.

SELECT * FROM zsch_uebung INTO CORRESPONDING FIELDS OF TABLE it_uebung WHERE status = '1'.

CALL SCREEN 9000.

MODULE status_9000 OUTPUT.
  SET PF-STATUS 'STATUS9000'.
*  SET TITLEBAR 'xxx'.
  DESCRIBE TABLE it_uebung LINES fill.
  tc_one-lines = fill.
ENDMODULE.

MODULE fill_table_control OUTPUT.
  READ TABLE it_uebung INTO zsch_uebung INDEX tc_one-current_line.
ENDMODULE.

MODULE cancel INPUT.

  LEAVE PROGRAM.

ENDMODULE.

MODULE read_table_control INPUT.
  lines = sy-loopc.
  MODIFY it_uebung FROM zsch_uebung INDEX tc_one-current_line.

ENDMODULE.

MODULE user_command_9000 INPUT.
  ok_code = sy-ucomm.
  CASE ok_code.
    WHEN 'EXIT'.
      LEAVE PROGRAM.
    WHEN OTHERS.
  ENDCASE.
ENDMODULE.
屏幕9000:

PROCESS BEFORE OUTPUT.
MODULE STATUS_9000.
LOOP WITH CONTROL TC_ONE.
MODULE fill_table_control.
ENDLOOP.

PROCESS AFTER INPUT.

MODULE cancel AT EXIT-COMMAND.

LOOP WITH CONTROL TC_ONE.
MODULE read_table_control.
ENDLOOP.
MODULE USER_COMMAND_9000.

谢谢


不幸的是,在德语中

由于问题显然在没有采取进一步行动的情况下消失了,人们可能会认为这是缓冲区问题(这就是为什么在测试更改的程序时应该重新启动整个事务),或者您意外地未能激活整个程序(例如,仅激活了报告源,但未激活屏幕定义)。

由于问题在未采取进一步措施的情况下明显消失,因此可能认为这是缓冲区问题(这就是为什么在测试更改的程序时应重新启动整个事务的原因)或者您意外地未能激活整个程序(例如,仅激活了报告源,但未激活屏幕定义)。

再次:向我们展示整个问题,而不仅仅是某个片段。尝试将自己置于其他人的位置—“我做了某件事,然后更改了某件事,现在它不再工作,问题出在哪里?”我想了解如果我声明新控件会发生什么。如果有人能告诉我答案,我可以修复它:)。我无法从我的控件中找到任何剩余代码:tc_two。这就是为什么我认为不仅仅是我通常使用的代码。当然有-屏幕定义(它比处理逻辑更重要),您还没有将其添加到问题中(尚未)-请这样做。您所说的“屏幕定义”是什么意思?请再次尝试事务ST22:向我们展示整个问题,而不仅仅是一些片段。试着把自己放在别人的位置——“我做了一些事情,然后改变了一些东西,现在它不再工作了,问题在哪里?”我想了解如果我声明新控件会发生什么。如果有人能告诉我答案,我可以解决:)。我无法从我的控件中找到任何剩余代码:tc_two。这就是为什么我认为不仅仅是我通常使用的代码。当然有-屏幕定义(它比处理逻辑更重要),你还没有把它添加到问题中-请这样做。你说的“屏幕定义”是什么意思?尝试事务st22如果我再次遇到此问题,我将重新启动事务。谢谢你的帮助!如果我再次遇到这个问题,我将重新启动事务。谢谢你的帮助!