Refresh SAP screen after certain action?

2019-05-13 21:33发布

I have a screen with a table in it (generated with the screen painter) that shows records from a database table. The screen also has a button, which shows a popup when it's clicked. The popup has a form to add a record to the database table.

When the form is submitted the record is added to the database, but when the popup is closed, the screen that shows the database records isn't refreshed. The new record isn't shown. Any ideas how I could make the table refresh? Simply calling the screen again doesn't seem to work..

3条回答
姐就是有狂的资本
2楼-- · 2019-05-13 21:51

Be sure to update the lines variable of your tableview after adding the new line.

CONTROLS: gr_table TYPE TABLEVIEW USING SCREEN <your_screen_here>.
DATA: gt_data TYPE STANDARD TABLE OF <your_type_here>,
      gs_data LIKE LINE OF gt_data.

PROCESS BEFORE OUTPUT.
DESCRIBE TABLE gt_data LINES gr_table-lines.
LOOP AT gt_data INTO gs_data 
        WITH CONTROL gr_table 
              CURSOR gr_table-current_line.
ENDLOOP.


PROCESS AFTER INPUT.
<adding_the_new_line_somewhere_here>
查看更多
劳资没心,怎么记你
3楼-- · 2019-05-13 22:02

You have to make sure that the data that you want to display is actually in the internal table that is displayed by the screen.

  • You can reread the database table or
  • append the line generated by the pop-up form to the internal table (If the line types aren't identical you will have to move the fields to a similar structure first).

If the internal table has all the data, but it still does not display in the table control, make sure that the field in the table control that has the number of lines is updated to reflect the extra line.

查看更多
该账号已被封号
4楼-- · 2019-05-13 22:03

Just because your table refers to database fields does not mean it will be updated/populated automatically to reflect the state of the database. You need to programmatically populate the table during the PBO (Process Before Output) event that occurs before the screen is displayed.

To gain an understanding of how this works, you may need to spend some time understanding table controls in ABAP dynpros (screens). Here is a good place to get started:

http://help.sap.com/saphelp_nw04/helpdata/en/9f/dbac1d35c111d1829f0000e829fbfe/frameset.htm

查看更多
登录 后发表回答