根据数据决定选择那个checkbox

来源:互联网 发布:淘宝劲舞团 编辑:程序博客网 时间:2024/05/16 10:48

第一步:创建Domain ZCHECKVALUE

1-1.png

1-1.png

第二步:创建Data Element ZCHECKVALUE ,它所使用的Domain是ZCHECKVALUE。1-1.png

第三步:Form和abap程序之间的接口数据结构中,增加一个名称为CHECKVALUE的组件,这个组件使用Data Element ZCHECKVALUE

1-1.png

第四步:在PDF Form中给Form画三个checkbox

这三个checkbox全都绑定 ztestf01_data 中的组件CHECKVALUE,而且它们的check Style要选择check。

如下图所示的check style的选择1-1.png

但是,这三个checkbox置为on状态的时候,所需要的条件是不一样的。

1-1.png1-1.png1-1.png

第五步:写abap程序实现测试

*&---------------------------------------------------------------------*
*& Report  HSAPIQE0
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ztest06.


*定义Form的名字

data: lv_form_name TYPE fpwbformname.
DATA: form_data TYPE ztestf01_data  .
DATA: form_data_table_struc TYPE ztabeetest_struct.
form_data-comp1 = 'comp1'.
form_data-CHECKVALUE  = '2'.
*DATA : name1 TYPE string.
*DATA: idx TYPE string.
*DO 200 TIMES.
*  idx = sy-index .
*  CONCATENATE  'partno-' idx INTO name1 .
*  form_data_table_struc-partno = name1.
*  APPEND form_data_table_struc  TO form_data-tabee.
*ENDDO.

*定义得到的函数名字,这个函数就是form的接口

DATA: lv_fm_name TYPE rs38l_fnam.

*定义打印参数

DATA: lwa_fp_params TYPE sfpoutputparams.

*定义处理结果

DATA: lv_result TYPE sfpjoboutput.



START-OF-SELECTION.

*取得函数的名字:根据Form的名称lv_form_name ,调用函数FP_FUNCTION_MODULE_NAME得到的

  lv_form_name = 'ZTESTIF01_FORM_2'.

  CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
    EXPORTING
      i_name     = lv_form_name
    IMPORTING
      e_funcname = lv_fm_name.

* 这个是RFC的名字

  lwa_fp_params-connection = 'ADS'.

* 打开一个打印job

  CALL FUNCTION 'FP_JOB_OPEN'
    CHANGING
      ie_outputparams = lwa_fp_params
    EXCEPTIONS
      cancel          = 1
      usage_error     = 2
      system_error    = 3
      internal_error  = 4
      OTHERS          = 5.

  IF sy-subrc <> 0.

    MESSAGE ID sy-msgidTYPEsy-msgty NUMBER sy-msgno

    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

  ENDIF.



*调用真正的form接口函数

  CALL FUNCTION lv_fm_name
    EXPORTING
      im_data = form_data.



*   关闭打印job

  CALL FUNCTION 'FP_JOB_CLOSE'
    IMPORTING
      e_result       = lv_result
    EXCEPTIONS
      usage_error    = 1
      system_error   = 2
      internal_error = 3
      OTHERS         = 4.

  IF sy-subrc <> 0.

    MESSAGE ID sy-msgidTYPEsy-msgty NUMBER sy-msgno

    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

  ENDIF.

运行效果如下图所示:

1-1.png

原创粉丝点击