2016-08-02 134 views

回答

1

该示例中的代码具有该子程序:

*&--------------------------------------------------------------* 
*&  Form FILL_FIELDCAT          * 
*&--------------------------------------------------------------* 
*  To Fill the Field Catalog        * 
*---------------------------------------------------------------* 
* Three Parameters are passed         * 
* pv_field TYPE any for Field        * 
* pv_tabname TYPE any for Table Name       * 
* pv_coltext TYPE any for Header Text       * 
*---------------------------------------------------------------* 
FORM fill_fieldcat USING pv_field TYPE any 
          pv_tabname TYPE any 
          pv_coltext TYPE any . 

    wa_fieldcat-fieldname = pv_field. 
    wa_fieldcat-tabname = pv_tabname. 
    wa_fieldcat-coltext = pv_coltext. 

    APPEND wa_fieldcat TO t_fieldcat. 
    CLEAR wa_fieldcat. 
ENDFORM.        " FILL_FIELDCAT 

结构wa_fieldcat被用作该即将被加入到t_fieldcat的信息的容器。

由于pv_fieldpv_tabnamepv_coltext三个不相交的变量,你不能APPEND他们t_fieldcat将它们放在一个中心,统一结构之前。

这就是说,我没有看到为什么你指出的变量声明不能放在子程序FILL_FIELDCAT中,而不是一个全局变量。保持变量的范围只有他们需要的那么大才是良好的编码实践。