【问题标题】:Making dynamic selections field required使动态选择字段成为必填项
【发布时间】:2017-09-19 12:46:08
【问题描述】:

我需要根据需要定义一个动态选择字段。

我创建了一个带有起始变体的事务代码。

对于属性屏幕分配中的这个变体,动态选择没有“必填字段”选项,只有“保护字段”。

知道如何实现吗?

【问题讨论】:

  • 完全不清楚您已经尝试过什么以及您想要在这里实现什么......
  • 您使用的是 ABAP Dynpro 还是标准选择屏幕?基本上,您应该决定选择字段的类型。您可以在 Dynpro 中输出之前的流程中执行此操作,以及标准选择屏幕中的 AT SELECTION-SCREEN OUTPUT 事件部分。
  • 你说的是abap报表的选择画面?也许您正在搜索 screen-required 属性,这将根据需要设置一个字段。示例:在屏幕上循环。案例屏幕名称。当'P_PARAM'。屏幕要求 = '1'。 ENDLOOP 您需要将其放置在符合您要求的正确入口点中(例如,在选择屏幕输出处)
  • 明天将上传屏幕,所以我定义了这个问题。谢谢!

标签: abap sap-erp


【解决方案1】:

在变体属性屏幕分配上没有必填字段 动态选择选项

屏幕变体中有 Required 属性,它非常适用于强制常规字段和in dynamic selections too

如果您缺少它,请检查您的版本,或者您的安装可能已损坏。我不相信它依赖于 tcode。

【讨论】:

    【解决方案2】:

    如果您在谈论Dynamic Selections,那么您只能保护字段。演示程序DEMO_LIST_OUTPUT 示例(基于F1S 逻辑数据库):

    您只能保护这些字段不被输入,并且所有其他属性都被停用(它们未实现,如您在程序 SAPLSSEL 的子例程 MODIFY_SCREEN 中看到的那样)。

    模拟必填字段的唯一可能解决方法是在用户输入(或不输入)选择后实施 ABAP 代码。例如,在程序DEMO_LIST_OUTPUT 中,您可以添加此ABAP 代码,该代码在用户执行程序时检查屏幕字段“连接编号” 是否包含值:

    TABLES sscrfields.
    AT SELECTION-SCREEN.
      DATA dynsel TYPE rsds_trange.
      CALL FUNCTION 'RS_REFRESH_FROM_DYNAMICAL_SEL'
        EXPORTING
          curr_report        = sy-repid
          mode_write_or_move = 'W'
        IMPORTING
          p_trange           = dynsel
        EXCEPTIONS
          not_found          = 1
          wrong_type         = 2.
      DATA(connid) = VALUE spfli-connid(
        dynsel[ tablename = 'SPFLI'
            ]-frange_t[ fieldname = 'CONNID'
                ]-selopt_t[ 1 ]-low OPTIONAL ).
      IF sscrfields-ucomm = 'ONLI' AND connid IS INITIAL.
        MESSAGE 'Flight Connection number is required' TYPE 'E'.
      ENDIF.
    

    注意:使用 ABAP 7.52 测试。动态选择可以通过逻辑数据库隐式实现(自 ABAP 7.02 或 7.31 起已过时)或通过调用函数模块 FREE_SELECTIONS_INITFREE_SELECTIONS_DIALOG 显式实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-27
      • 1970-01-01
      • 2020-11-22
      • 2015-12-10
      • 2018-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多