ABAP:SMARTFORMS

一、SmartForms 是什么

SmartForms 是 SAP 从 4.6C 起推出的图形化表单设计工具,用于替代老旧的 SAPScript,用来制作发票、采购订单、交货单、工资条等可打印 / 可导出(PDF / 邮件)的业务单据。

  • 事务码:SMARTFORMS(设计表单)、SMARTSTYLES(定义样式:字体、段落、条码)。
  • 核心理念:可视化拖拽 + 少量代码 + 激活生成函数模块
  • 输出介质:打印机、传真、PDF、邮件、XML。

  • 表单

    • 创建 Smartforms 及相关对象属性设置
  • 样式

    • 指定 FORM 中的文本属性
    • 字体 / 颜色 / 大小等
  • 文本模块

    • 很多对象、文本、消息、提示内容都可以预先设定,可以复用的文本模块多在此设定

二、核心架构与组件

点击创建后可以看到有三个编辑框

  • 1.Navigation Menu(导航菜单)

    • Smart Form 开发的 Form element(表单元素)、节点,在此显示,在窗口左边显示。
  • 2.Maintenance Frame(维护框架)

    • 选择的节点属性在此设定,在窗口的中间部分显示。
  • 3.Form Painter(表单绘制器)

    • 点击 Form Painter 按钮出现 Form Painter,在窗口的最右边,显示 windows(窗口)和 graphics(图形)的位置、大小、布局。

  • 表格属性:主要是这个窗体的一般属性和输出选择。
  • 表格接口:这个属性很重要!它主要用来描述这个SMARTFORM的接口属性,比如IMPORT、EXPORT、TABLES、EXCEPTION。当我们做好了一个SMARTFOR以后,如果想从ABAP程序中调用这个FORM的话,就会用到这些接口来传递参数,这个将在下面详细说明。
    全局定义:主要用来定义一些全局的数据,还有FIELD SYMBOLS、初始化

三、核心架构与组件

每个选项说明:

选项说明
页面不同的页面允许维护不同的格式
窗体包括主窗体和子窗体,后续节点包括 Window 和 Page 外的所有节点
图形输出页面中的图片
地址包含数据库中的标准地址
模板输出包含静态数据的表格(固定行列)
输出包含应用数据的表格(可自动扩展)
命令命令操作(如分页)
文件夹将多个后续节点组合为一个组

最近的做的小Demo

手工画线确实体力活了,三个窗口主要对应表头、页脚、主窗口


主窗口-LOOP循环到全局变量工作区,创建文本用工作区赋值

表画了⑤列,则创建表头和主要区域会自动生成五列



接下来就是代码了:


TABLES:ekpo,ekko.

DATA: lv_formname  TYPE tdsfname,          " Smart Forms 名称
      lv_fmname    TYPE rs38l_fnam,        " 实际函数模块名
      ls_control   TYPE ssfctrlop,         " 控制参数
      ls_outputopt TYPE ssfcompop.         " 输出选项

DATA gt_data TYPE zkj_wl_t.
DATA gs_head TYPE zkj_sm_head.

PARAMETERS p_ebeln TYPE  ekpo-ebeln.

START-OF-SELECTION.

  p_ebeln = |{ p_ebeln ALPHA = IN }|.

  SELECT SINGLE * INTO CORRESPONDING FIELDS OF gs_head FROM ekko WHERE ebeln = p_ebeln.

  SELECT ekko~ebeln
         ekpo~ebelp
         ekpo~matnr
         ekpo~menge
         makt~maktx
    FROM ekpo
    LEFT JOIN ekko ON ekpo~ebeln = ekko~ebeln
    LEFT JOIN makt ON ekpo~matnr = makt~matnr
    INTO CORRESPONDING FIELDS OF TABLE gt_data    " 关键改动
    WHERE ekpo~ebeln = p_ebeln.

* ========== 1. 根据 Smart Forms 名称获取函数模块名称 ==========
  lv_formname = 'ZKJ_SMARTFORMS'.                     " 改成你自己的 Smart Forms 名称

  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
      formname           = lv_formname
    IMPORTING
      fm_name            = lv_fmname
    EXCEPTIONS
      no_form            = 1
      no_function_module = 2
      OTHERS             = 3.

  IF sy-subrc <> 0.
    MESSAGE 'Smart Forms 不存在,请检查名称' TYPE 'E'.
  ENDIF.

* ========== 2. 设置控制参数 ==========
"  ls_control-no_dialog = 'X'.      " 不弹出打印对话框
"  ls_control-preview   = 'X'.      " 仅预览,不直接打印

* ========== 3. 打开 Smart Forms 输出 ==========
 " CALL FUNCTION 'SSF_OPEN'
 "   EXPORTING
  "    control_parameters = ls_control.

* ========== 4. 调用 Smart Forms 函数模块 ==========
  CALL FUNCTION lv_fmname
    EXPORTING
  "    control_parameters = ls_control
  "    output_options     = ls_outputopt
  "    user_settings      = space   " 重要:不读取用户默认设置
      gw_head            = gs_head   " 抬头参数(按你的接口命名调整)
    TABLES
      t_data             = gt_data     " 行项参数(按你的接口命名调整)
    EXCEPTIONS
      formatting_error   = 1
      internal_error     = 2
      send_error         = 3
      user_canceled      = 4
      OTHERS             = 5.

* ========== 5. 关闭 Smart Forms 输出 ==========
 " CALL FUNCTION 'SSF_CLOSE'.

四、注意点

        在使用数量的时候,会报错,要定义全局变量替换。

    

内容概要:本文档详细介绍了基于直驱永磁同步发电机(PMSG)的1.5MW风力发电系统在Simulink环境下的建模与仿真全过程,涵盖了风力机空气动力学模型、PMSG电磁特性建模、不可控整流与逆变电路、直流环节、空间矢量脉宽调制(SVPWM)技术以及核心控制策略的设计。重点实现了最大功率点跟踪(MPPT)控制以提升风能捕获效率,并构建了电压外环与电流内环协同工作的双闭环控制系统,通过仿真验证了系统在不同风速条件下稳定运行的能力及动态响应性能。; 适合人群:适用于具备电力系统、电机控制理论基础及Simulink仿真操作经验的研究生、科研人员和从事新能源发电系统开发的工程技术人员;特别适合正在进行风电系统建模、控制算法研究或完成相关毕业设计的专业人士。; 使用场景及目标:①深入理解直驱式PMSG风力发电系统的整体架构与工作机理;②掌握从物理部件建模到控制策略实现的完整Simulink仿真流程;③学习并复现MPPT控制、双闭环控制等关键技术方案;④为后续开展低电压穿越、并网稳定性分析、故障诊断等高级课题提供可靠的仿真平台支撑。; 阅读建议:建议结合Matlab/Simulink软件动手实践,逐模块搭建模型,重点关注各控制环节的参数设计与调试方法,同时可参照文中提供的其他风电相关资源进行拓展学习与对比分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值