ABAP 实现选择屏幕字段输入默认日期

*&增加默认起始日期逻辑:
*&选择屏幕默认日期逻辑修改
*&(1)当前系统日期若为15号及以前日期,则选择屏幕默认为上月1号到最后1天;
*&(2)当前系统日期若为15号以后日期,则选择屏幕默认为当月1号到最后1天。
  IF sy-datum+6(2) LE 15.
    IF sy-datum+4(2) NE '01'.
      s_ftrmi-low+0(4) = sy-datum.
      s_ftrmi-low+4(2) = sy-datum+4(2) - 1.
      s_ftrmi-low+6(2) = '01'.
       CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'     输入当月第一天,获取当月最后一天
        EXPORTING
          i_date = s_ftrmi-low
        IMPORTING
          e_date = s_ftrmi-high.
      macro_add: s_ftrmi 'I' 'BT' s_ftrmi-low s_ftrmi-high.
    ELSE.
      s_ftrmi-low+0(4) = sy-datum+0(4) - 1.
      s_ftrmi-low+4(4) = '1201'.
       CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'
        EXPORTING
          i_date = s_ftrmi-low
        IMPORTING
          e_date = s_ftrmi-high.
      macro_add: s_ftrmi 'I' 'BT' s_ftrmi-low s_ftrmi-high.
    ENDIF.
  ELSE.
    s_ftrmi-low+0(6) = sy-datum.
    s_ftrmi-low+6(2) = '01'.

     CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'
      EXPORTING
        i_date = s_ftrmi-low
      IMPORTING
        e_date = s_ftrmi-high.
    macro_add: s_ftrmi 'I' 'BT' s_ftrmi-low s_ftrmi-high.
  ENDIF.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用以下代码来实现ABAP ALV 中根据按钮选择动态变化屏幕字段的功能: 1. 首先,在屏幕上添加一个选择按钮(例如,单选按钮或复选框)。 2. 然后,在 ALV 中添加一个自定义字段,用于显示屏幕字段。 3. 接下来,您需要编写一些代码来检测选择按钮的状态并根据需要显示或隐藏屏幕字段。以下是示例代码: ``` DATA: lr_table TYPE REF TO cl_salv_table, lr_functions TYPE REF TO cl_salv_functions_list, lr_column TYPE REF TO cl_salv_column_table, lt_alv_data TYPE STANDARD TABLE OF <table_type>. * Create ALV object and display data lr_table = cl_salv_table=>factory( ). lr_table->get_functions( )->set_all( abap_true ). lr_functions = lr_table->get_functions( ). lr_functions->set_function( 'SELECT' ). lr_table->get_columns( )->set_optimize( abap_true ). lr_column = lr_table->get_columns( )->get_column( 'SCREEN_FIELD' ). lr_column->set_technical_type( if_salv_c_col_ty_tech=>e_technical ). lr_column->set_function_id( 'SCREEN_FIELD' ). lr_table->bind_table( <table_name> ). lr_table->display( ). * Handle button selection MODULE handle_toolbar. DATA: lr_toolbar TYPE REF TO cl_salv_toolbar, lr_button TYPE REF TO cl_salv_button. lr_toolbar = lr_functions->get_toolbar( ). lr_button = lr_toolbar->get_function( 'SELECT' ). IF lr_button->get_checked( ) = abap_true. lr_column->set_visible( abap_true ). ELSE. lr_column->set_visible( abap_false ). ENDIF. ENDMODULE. ``` 在这个例子中,我们假设屏幕字段与一个名为 "SCREEN_FIELD" 的 ALV 列相关联,并且我们已经在 ALV 中绑定了一个名为 <table_name> 的表格。 在处理程序中,我们使用 MODULE 语句来处理 ALV 工具栏上的选择按钮。如果按钮被选中,则我们将屏幕字段设置为可见。否则,我们将屏幕字段设置为隐藏。 请注意,这只是一个示例代码,您需要根据自己的需求进行修改,以使其适合您的具体情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值