带选择屏幕。





写了个测试程序,玩儿的。





首先写了一个取数report:





RS_REFRESH_FROM_SELECTOPTIONS <wbr>Submit <wbr>report <wbr>很实用

​​

然后写了个调用的report
​​

RS_REFRESH_FROM_SELECTOPTIONS <wbr>Submit <wbr>report <wbr>很实用

​​

测试结果:
​​

RS_REFRESH_FROM_SELECTOPTIONS <wbr>Submit <wbr>report <wbr>很实用

​​





spfli 表数据:



RS_REFRESH_FROM_SELECTOPTIONS <wbr>Submit <wbr>report <wbr>很实用

​​



我两个report的,选择屏幕 字段顺序不一样,这个没关系,即使只有部分,也没问题。





RADIOBUTTON、CHECKBOX、SELECT-OPTIONS、PARAMETERS 都行。





代码如下;





取数程序代码:



zlm_get_spfli .

TABLES spfli .
PARAMETERS  :p_carrid  TYPE spfli -carrid .
PARAMETERS pc_max  AS  CHECKBOX  DEFAULT  '' .
PARAMETERS rd_test1  RADIOBUTTON  GROUP g1  DEFAULT  'X' .
PARAMETERS rd_test2  RADIOBUTTON  GROUP g1 .
SELECT-OPTIONS :s_connid  FOR spfli -connid .


DATA : lt_spfli  TYPE  TABLE  OF spfli .

START-OF-SELECTION .

    IF pc_max  IS  NOT  INITIAL .
        SELECT *  FROM spfli  INTO  TABLE lt_spfli  UP  TO  2  ROWS
        where carrid  = p_carrid
            and connid  in s_connid .
    ELSE .
        SELECT *  FROM spfli  INTO  TABLE lt_spfli
            WHERE carrid  = p_carrid
                AND connid  IN s_connid .
    ENDIF .

    IF rd_test1  IS  INITIAL .
        WRITE  :  'rd_test1' .
    ELSE .

        CALL  FUNCTION  'REUSE_ALV_GRID_DISPLAY'
            EXPORTING
                i_structure_name  =  'SPFLI'
            TABLES
                t_outtab                  = lt_spfli
            EXCEPTIONS
                program_error        =  1
                OTHERS            =  2 .
        IF sy -subrc  <>  0 .
* Implement suitable error handling here
        ENDIF .
   











调用程序



ztest_submit .


TABLES spfli .
PARAMETERS  :p_carrid  TYPE spfli -carrid .
SELECT-OPTIONS :s_connid  FOR spfli -connid .
PARAMETERS pc_max  AS  CHECKBOX  DEFAULT  '' .
PARAMETERS rd_test1  RADIOBUTTON  GROUP g1  DEFAULT  'X' .
PARAMETERS rd_test2  RADIOBUTTON  GROUP g1 .

DATA t_rsparams  TYPE  TABLE  OF rsparams .

CALL  FUNCTION  'RS_REFRESH_FROM_SELECTOPTIONS'
    EXPORTING
        curr_report          = sy - repid
*IMPORTING
*   SP              =
    TABLES
        selection_table  = t_rsparams
    EXCEPTIONS
        not_found              =  1
        no_report              =  2
        OTHERS           =  3 .

SUBMIT zlm_get_spfli  WITH  SELECTION-TABLE t_rsparams
                                                                    AND