根据数据决定选择那个checkbox

本文档详细介绍了如何在ABAP中创建一个数据域和数据元素,用于控制PDF表单上Checkbox的状态。步骤包括创建Domain ZCHECKVALUE,Data Element ZCHECKVALUE,以及在Form中设置Checkbox,并在ABAP程序中实现不同条件下的Checkbox选中状态。通过调用函数模块完成表单的显示和关闭操作。
摘要由CSDN通过智能技术生成

第一步:创建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-msgidTYPE sy-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-msgidTYPE sy-msgty NUMBER sy-msgno

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

  ENDIF.

运行效果如下图所示:

1-1.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值