zoukankan      html  css  js  c++  java
  • SMARTFORM 传值的4种方法

    *& 20161019 160300
    smartform传值的方法

    • 1.通过结构 传值;

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

    • 2.Fieldsimble 传值;

    DATA:FIELD(100).
    FIELD-SYMBOLS:<FS_PRINT> TYPE ANY,
    <FS_ITEM> TYPE ANY.

    FIELD = '(ZZCPPRP_0018)GS_ALV'. "zx为程序名,output为内表名
    ASSIGN (FIELD) TO <FS_PRINT>.
    IF SY-SUBRC EQ 0.
    * WA_PRINT = <FS_PRINT>."notes:dump 【Operation not supported for incompatible data objects.
    MOVE-CORRESPONDING <FS_PRINT> TO GS_HEAD.
    ENDIF.

    FIELD = '(ZZCPPRP_0018)GT_ITEM'.
    ASSIGN (FIELD) TO <FS_ITEM>.
    IF SY-SUBRC EQ 0.
    MOVE-CORRESPONDING <FS_ITEM> TO GT_ITEM.
    ENDIF.


    Step1.创建FORM (需求:打印页面格式, 横打/竖打, 字体有无特殊要求, 有无图片 )

     

    2.设置页格式 和 样式

     

    3.如果不是用自建表传值, 表格接口可以不用修改

    4.使用 Field-symble 指针方式传值,全局定义中设置,

    FORM 类型中参考结构定义和程序的打印内表保持一致

    动态赋值, 注意输入输出参数

    然后,就是FORM 中表头,表身,表尾 的设计

    • 3.通过SAP内存( export,import )传值;

    SAP内存语句含义:
    使用EXPORT TO MEMORY语句在内存中存储数据对象。
    使用IMPORT FROM MEMORY语句从内存中读取数据对象。
    使用FREE MEMORY语句从内存中删除数据簇。

    若是传递一两个很单一的变量,比较简单的做法是在REPORT程序中用EXPORT,在SMARTFORMS中用IMPORT。
    IMPORT和EXPORT我们一般能不用就不用,后续维护难以跟踪。

    • 4.通过数据库中的簇数据库方式

    SAP数据库中的簇数据库语句含义:
    使用EXPORT TO DATABASE语句将数据对象存储到簇数据库中。
    使用IMPORT FROM DATABASE语句为数据簇生成目录表,并从簇数据库中取数据对象。
    使用DELETE FROM DATABASE语句从簇数据库中删除数据簇。

  • 相关阅读:
    策略模式-观察者模式-装饰者模式-工厂模式-单例模式
    mac下 tomcat8+jdk1.8+servlet+Spring环境搭建中的问题
    删除部分字符使其变成回文串问题——最长公共子序列(LCS)问题
    JAVA锁的膨胀过程和优化
    单例模式
    简单工厂模式(静态工厂)和工厂方法模式和抽象工厂模式
    从基层容器类看万变不离其宗的JAVA继承体系
    响应式布局1
    网页加载速度优化4--图片懒加载
    jquery选择器返回值
  • 原文地址:https://www.cnblogs.com/rainysblog/p/7783448.html
Copyright © 2011-2022 走看看