Abap 具有对话框和报告类型程序的程序的事务处理类型

Abap 具有对话框和报告类型程序的程序的事务处理类型,abap,Abap,我有一个带有选择屏幕的程序,可以生成alv网格。ALV网格有一个热点,它将用户发送到一个新屏幕,该屏幕允许用户根据自己在ALV网格中的选择编辑数据 这个程序有一个报告类型屏幕(选择屏幕)和对话框屏幕(第三个屏幕),我应该创建哪种类型的事务(报告或对话框)。因为我的起始屏幕是默认的选择屏幕,所以它应该是报表事务吗?或者我应该创建一个屏幕并使选择屏幕成为一个子屏幕(如果是,请您建议我如何做并用它创建一个alv网格)。这个程序“有一个报告类型”,您的意思是它是一个“可执行程序”或“报告”,所以使用“报

我有一个带有选择屏幕的程序,可以生成alv网格。ALV网格有一个热点,它将用户发送到一个新屏幕,该屏幕允许用户根据自己在ALV网格中的选择编辑数据


这个程序有一个报告类型屏幕(选择屏幕)和对话框屏幕(第三个屏幕),我应该创建哪种类型的事务(报告或对话框)。因为我的起始屏幕是默认的选择屏幕,所以它应该是报表事务吗?或者我应该创建一个屏幕并使选择屏幕成为一个子屏幕(如果是,请您建议我如何做并用它创建一个alv网格)。

这个程序“有一个报告类型”,您的意思是它是一个“可执行程序”或“报告”,所以使用“报告”事务,就像您可能尝试的那样,会发生什么

只有第一个屏幕对选择事务类型有一定的意义

如果是选择屏幕,则使用“报告”事务

如果是普通屏幕,请使用“对话”事务。

保持简单:
如果程序逻辑中的第一行代码以“REPORT”开头,则执行“REPORT”事务;如果没有,请选择对话交易类型。

在这种情况下,只要事务的屏幕编号指的是选择屏幕(默认情况下为'1000'),您创建的事务类型就不应该真正重要了。
就程序类型(模块池/对话框或报告)而言,这两种类型都是满足您需求的可能选项

我建议您使用对话框程序,如果您还没有这样做的话,因为它们允许更大的灵活性,并且通常是最佳实践,对于具有多个屏幕的更复杂程序,更容易坚持使用这些程序


报告与模块池/对话框程序的对比

报告通常用于显示/分析数据库中的数据,而在需要更新数据时使用对话框程序。
另一个区别是报告可以直接运行,对话程序只能通过事务代码执行。

第一个程序报告类型 它应该是报表事务。您还可以创建对话框事务。 如果为第一个ABAP程序编写对话事务,则可以将选择屏幕声明为子屏幕

SELECTION-SCREEN : BEGIN OF SCREEN 1010 AS SUBSCREEN.
SELECTION-SCREEN :  BEGIN OF BLOCK a WITH FRAME TITLE text-001.
PARAMETERS: rdb1 RADIOBUTTON GROUP rad1 DEFAULT 'X'.

SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: rdb2 RADIOBUTTON GROUP rad1,
            p_data TYPE c LENGTH 35 DEFAULT 'Reporting / Maintenance Data'.
SELECTION-SCREEN END OF LINE.
PARAMETERS     rdb3 RADIOBUTTON GROUP rad1.
PARAMETERS     rdb4 RADIOBUTTON GROUP rad1. " Membership Expiry Report
SELECTION-SCREEN :END OF BLOCK a.
SELECTION-SCREEN: END OF SCREEN 1010.
以下是选择屏幕作为子屏幕的示例

SELECTION-SCREEN : BEGIN OF SCREEN 1010 AS SUBSCREEN.
SELECTION-SCREEN :  BEGIN OF BLOCK a WITH FRAME TITLE text-001.
PARAMETERS: rdb1 RADIOBUTTON GROUP rad1 DEFAULT 'X'.

SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: rdb2 RADIOBUTTON GROUP rad1,
            p_data TYPE c LENGTH 35 DEFAULT 'Reporting / Maintenance Data'.
SELECTION-SCREEN END OF LINE.
PARAMETERS     rdb3 RADIOBUTTON GROUP rad1.
PARAMETERS     rdb4 RADIOBUTTON GROUP rad1. " Membership Expiry Report
SELECTION-SCREEN :END OF BLOCK a.
SELECTION-SCREEN: END OF SCREEN 1010.
第二个ABAP程序对话框/报告

第二个ABAP程序可以是对话框程序或可编辑ALV的报表程序。如果创建对话框程序,则必须创建事务。报表ABAP程序可以直接调用

问候,


Umar Abdullah

因此,如果第一个屏幕是选择屏幕,我将使用报告事务,但如果我希望该屏幕转到对话框屏幕,则使用报告事务将不会成为问题,对吗?如果这两个程序实际上都是一个程序呢?是的,两个程序都可以有一个ABAP程序。如果选择屏幕是第一个屏幕,您将创建什么,报表或对话框事务?事务可以是报表或对话框。如果创建报告事务,则必须在选择结束事件后调用屏幕xxxx。将使用屏幕xxxx的PBO和PAI模块。