SAP SMARTFORMS-基于内存方式在report程序中传递数据到smartforms显示

时间:2023-03-09 02:48:48
SAP  SMARTFORMS-基于内存方式在report程序中传递数据到smartforms显示

一、准备工作

   1、新建include程序

      1> include程序名字:ZDD_INC_0104

      2> ZDD_INC_0104  程序中的内容为

         SAP  SMARTFORMS-基于内存方式在report程序中传递数据到smartforms显示

   2、使用T-CODE :SE11新建两个数据库表ZTDD、ZTDD2

    SAP  SMARTFORMS-基于内存方式在report程序中传递数据到smartforms显示SAP  SMARTFORMS-基于内存方式在report程序中传递数据到smartforms显示

    新建完数据库表后往表中添加数据即可

    3、新建一个程序名为:ZDD_TEST_0104

      REPORT ZDD_TEST_0104.
      INCLUDE ZDD_INC_0104.
      TABLES:ZTDD,ZTDD2.

      TYPES:BEGIN OF ZITAB,
              NAME LIKE ZTDD-NAME,
              AGE  LIKE ZTDD-AGE,
              SCHOOL LIKE ZTDD2-SCHOOL,
            YEARTOSCHOOL   LIKE ZTDD2-YEARTOSCHOOL,
        END OF ZITAB.
      DATA:ZITAB_ZTDD TYPE ZITAB OCCURS 0.
      DATA:WA_ZTDD TYPE ZITAB.
      DATA:fm_name TYPE rs38l_fnam.
        DATA:itemsname(32) TYPE c.

    START-OF-SELECTION.
      SELECT-OPTIONS: age FOR ZTDD-AGE.

     PERFORM GETDATA.
        PERFORM PRINT_DATA.
    END-OF-SELECTION.
    FORM GETDATA.
       SELECT z1~NAME z1~AGE z2~SCHOOL z2~YEARTOSCHOOL
           INTO CORRESPONDING FIELDS OF TABLE ZITAB_ZTDD
           FROM ZTDD as z1 INNER JOIN ZTDD2 AS z2
           ON z1~NAME = z2~NAME
           WHERE z1~AGE in  age.

  ENDFORM.

  FORM PRINT_DATA.
         call function 'SSF_FUNCTION_MODULE_NAME'
       EXPORTING
         formname = 'ZDD_FORM_1231'
       IMPORTING
          fm_name = fm_name
       EXCEPTIONS
           no_form = 1
           no_function_module = 2
           OTHERS = 3.

  CONCATENATE 'ZSPMMF1002IT' SY-UZEIT INTO itemsname.
   savebuffer ZITAB_ZTDD[] itemsname.
*调用 smartForms
   call function fm_name
     EXPORTING
         ptr_items = itemsname   "这个ptr_items是smartforms中表接口的参数,下面会有描述
     EXCEPTIONS
         formatting_error = 1
         internal_error = 2
         send_error = 3
         user_canceled = 4.
     clearbuffer itemsname.
  ENDFORM.

程序里的内容就到此为止了,下面是smartforms里的内容了

================================================================================================================

   4、使用T-CODE :smartforms新建一个为:ZDD_FORM_1231的表单,样式随便选择

     1>  定义表格接口—>导入

        SAP  SMARTFORMS-基于内存方式在report程序中传递数据到smartforms显示

      2>  全局定义中的设置

        全局定义—>类型

        SAP  SMARTFORMS-基于内存方式在report程序中传递数据到smartforms显示

        全局定义—>全局数据

        SAP  SMARTFORMS-基于内存方式在report程序中传递数据到smartforms显示

        全局定义—>初始化

        SAP  SMARTFORMS-基于内存方式在report程序中传递数据到smartforms显示

        全局定义—>格式化程序

        SAP  SMARTFORMS-基于内存方式在report程序中传递数据到smartforms显示

      到此全局定义中的设置完毕了,下面是要在窗口中显示内容了

==========================================================================================================

   5、先在主窗口中新建个一个表

      SAP  SMARTFORMS-基于内存方式在report程序中传递数据到smartforms显示

      1>  在表头里新建一个新行,行类型就选%LTYPE1即出现四个新列,然后在每一个列里右击新建文本,内容依次为:姓名、年龄、学校、入学日期等文本

      SAP  SMARTFORMS-基于内存方式在report程序中传递数据到smartforms显示

      2>  双击新表1—>数据

       SAP  SMARTFORMS-基于内存方式在report程序中传递数据到smartforms显示

      3>  在主要区域里新建一个行,选择行类型为%LTYPE1,然后出现四个列,在每一个列的文本中输入变量参数字段

      SAP  SMARTFORMS-基于内存方式在report程序中传递数据到smartforms显示

      注意:在全局数据中有两个参数:wa_items和IT_ITEMS,wa_items在smartforms中是工作区,it_items是内表结构

二、演示结果

      SAP  SMARTFORMS-基于内存方式在report程序中传递数据到smartforms显示

      SAP  SMARTFORMS-基于内存方式在report程序中传递数据到smartforms显示