REPORT传值到SMARTFORMS的三种方式

来源:互联网 发布:软件数据保密协议范本 编辑:程序博客网 时间:2024/05/16 09:30

1.最通常的用法是通过SE11中建立STRUCTURE,在REPORT中申明此结构的数据类型,在SMARTFORMS中的FORM接口申明同样的结构后就可以传值了

2.第二种是不用建立STRUCTURE,省了一个建表的麻烦,不过还是挺麻烦的!

1).程序中申明一个TYPE

2).SMARTFORMS中在全局定义中要在三处地方进行相应的操作

 

***全局定义的类型中进行和REPORT中相同的类型申明

程序中:

DATA:begin OF it_head,
       FKDAT TYPE VBRK-FKDAT,
       VBELN TYPE VBRK-VBELN,
      we_kunnr type vbpa-kunnr,
      we_name1 type kna1-name1,
      we_name2 type kna1-name2,
      we_STR_SUPPL1 type ADRC-STR_SUPPL1, "街道2
      WE_STR_SUPPL2 TYPE ADRC-STR_SUPPL2, "街道3
      we_STREET type ADRC-STREET, "街道
      we_HOUSE_NUM1 type ADRC-HOUSE_NUM1, "门牌号
      we_POST_CODE1 TYPE ADRC-POST_CODE1, "邮政编码
      we_CITY1 type ADRC-CITY1, "城市
      we_COUNTRY type ADRC-COUNTRY,"国家
      we_REGION type ADRC-REGION, "地区
     END OF It_head.

 

SMARTFORMS全局定义的类型中:

TYPES:begin OF WY_head,
       FKDAT TYPE VBRK-FKDAT,
       VBELN TYPE VBRK-VBELN,
      we_kunnr type vbpa-kunnr,
      we_name1 type kna1-name1,
      we_name2 type kna1-name2,
      we_STR_SUPPL1 type ADRC-STR_SUPPL1, "街道2
      WE_STR_SUPPL2 TYPE ADRC-STR_SUPPL2, "街道3
      we_STREET type ADRC-STREET, "街道
      we_HOUSE_NUM1 type ADRC-HOUSE_NUM1, "门牌号
      we_POST_CODE1 TYPE ADRC-POST_CODE1, "邮政编码
      we_CITY1 type ADRC-CITY1, "城市
      we_COUNTRY type ADRC-COUNTRY,"国家
      we_REGION type ADRC-REGION, "地区
    END OF  WY_head.

这两个结构是要一样的,因为在传值时会把相同字段的进行传递。

***全局定义的全局数据中申明变量,申明的类型是在全局定义中定义的类型,若是申明一个内表,把TYPE改成TYPE TABLE OF 就OK了。

      WA_HEAD  TYPE    WY_HEAD

***全局定义的初始化中进行数据的传递操作,也就是把REPORT中的值传到SMARTFORMS中

    DATA: FIELD(70) type c.
FIELD-SYMBOLS: <dbcnt> type any table ,
               <wa> type any.

FIELD = '(ZSDST0009)IT_HEAD'.                      "要加程序名哦,不然哪里来,在调用SMART中和全局数据啥关系都没有
ASSIGN (field) TO <WA>.
IF SY-SUBRC = 0.
  WA_HEAD = <WA>.
endif.

IF <WA> is ASSIGNED.
  UNASSIGN <WA>.
ENDIF.

这是值的初始化也就是值传递的过程。

 

3.若是传递一两个很单一的变量,比较简单的做法是在REPORT中 EXPORT这个变量,在SMARTFORMS中IMPORT这个变量,两句话搞定.

说来说去,这个SMARTFORMS还是挺难用的,麻烦!不在麻烦中解决麻烦,就在麻烦中纠结吧!

   

原创粉丝点击