首页 > 其他分享 >ABAP-QA33打印增强

ABAP-QA33打印增强

时间:2023-10-30 16:23:57浏览次数:36  
标签:control 打印 ABAP ls error QA33 output TYPE

效果如下:

 

 实施方法:

步骤1:增强点:QSS10001,事务码:CMOD,创建增强ZQM001,功能出口'EXIT_SAPLQSS1_001'传入选中的检验批次'I_LOT_NUMBER'以及检验类型'I_INSP_TYPE'

 

 

 步骤2:在功能出口处调用打印smartforms函数即可,打印函数如下:

FUNCTION zfm_qm_print.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     REFERENCE(I_LOT_NUMBER) TYPE  QALS-PRUEFLOS
*"     REFERENCE(I_INSP_TYPE) TYPE  QALS-ART
*"----------------------------------------------------------------------

  DATA: ls_control TYPE ssfctrlop, "打印传入参数
        ls_output  TYPE ssfcompop, "打印传入参数
        ls_outotf  TYPE ssfcrescl, "打印传入参数
        ls_jobout  TYPE ssfcresop. "打印传出参数
  DATA: fn_name TYPE rs38l_fnam. ""定义子例程

  DATA:ls_return TYPE ssfcrescl.    "打印返回值
  DATA: ls_head TYPE zqms001, "定义表头内表
        lt_item TYPE TABLE OF zqms001 . "定义表值内表

  IF i_insp_type <> 'Z01'.
    MESSAGE '非IQC检验'TYPE 'E'.
    EXIT.
  ENDIF.

  ls_output-tddest = 'LP01'.
  ls_output-tdiexit = 'X'.
  ls_output-tdimmed  = 'X'.
  ls_output-tddelete = 'X'.
  ls_output-tdnoprev = ''.

  ls_control-preview = 'X'. "打印预览
  ls_control-no_dialog = ' '.
  ls_control-no_open   = 'X'.
  ls_control-no_close   = 'X'.


  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' ""调用smartforms名称函数
    EXPORTING
      formname           = 'ZQMF001' ""调用smartforms
*     VARIANT            = ' '
*     DIRECT_CALL        = ' '
    IMPORTING
      fm_name            = fn_name ""传出smartfroms名称参数
    EXCEPTIONS
      no_form            = 1
      no_function_module = 2
      OTHERS             = 3.
  IF sy-subrc <> 0.
  ENDIF.

  CALL FUNCTION 'SSF_OPEN' ""打印开启
    EXPORTING
      user_settings      = ''
      output_options     = ls_output
      control_parameters = ls_control
    IMPORTING
      job_output_options = ls_jobout
    EXCEPTIONS
      formatting_error   = 1
      internal_error     = 2
      send_error         = 3
      user_canceled      = 4
      OTHERS             = 5.
  IF sy-subrc <> 0.
  ENDIF.


  CALL FUNCTION fn_name
    EXPORTING
      control_parameters = ls_control
      output_options     = ls_output
      user_settings      = ''
      ls_head            = ls_head
    IMPORTING
      job_output_info    = ls_outotf
    TABLES
      lt_item            = lt_item ""传值进入smartforms
    EXCEPTIONS
      formatting_error   = 1
      internal_error     = 2
      send_error         = 3
      user_canceled      = 4
      OTHERS             = 5.
  IF sy-subrc <> 0.
  ENDIF.

  CALL FUNCTION 'SSF_CLOSE' ""打印关闭
    IMPORTING
      job_output_info  = ls_return
    EXCEPTIONS
      formatting_error = 1
      internal_error   = 2
      send_error       = 3
      OTHERS           = 4.
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.


ENDFUNCTION.

 

标签:control,打印,ABAP,ls,error,QA33,output,TYPE
From: https://www.cnblogs.com/lixiangchen/p/17798152.html

相关文章

  • 一套适合 ABAP 初级和中级开发人员,从入门到提高的 ABAP 学习教程
    曾几何时,ABAP就是SAP的代名词。ABAP这门编程语言造就了SAP名噪一时的R/3产品,同时也是如今SAP旗舰级产品,SAPS/4HANA底层的实现语言。ABAP不仅代表着SAP这家公司在企业级管理软件市场辉煌的过去,ABAP自身也在不断地进化着。SAP不仅在本地部署(On-Premise)领域继续......
  • while语句练习(打印1-10)(加入continue)
    #include<stdio.h>intmain(){  inti=1;  //i从1开始  while(i<=10)//i小于等于10  {    i++;  //由于i++,所以从i=2开始,到11结束    if(i==5)    continue;//continue-继续,达到5时该代码从while重新循环    pri......
  • Linux lp命令(-o选项,-d目标打印机,-p页码范围)
     原文主要介绍lp命令的参数和描述。常见命令包括:lpfilename(打印filename)-d打印机名称(指定打印机)-P1,2-5,6(指定页码范围)-osides=two-sided-long-edge(选项,长边翻转,竖直打印)-onumber-up(指定一页几版)……有趣的打印命令详见下文lp命令原文:通过命令行,manlp得到:NAME......
  • win11 打印机故障 0x000000709
    0x000000709无需删除任何更新,新建打印机凭证即可;  无需重启电脑,再次连接打印机 ......
  • CAD Revit 二次开发开启控制台打印调试信息
    第一步:编写控制台帮助类,调用kernel32.dll中控制台API控制台帮助类publicclassConsoleHelper{privateconstuintSTD_INPUT_HANDLE=0xfffffff6;privateconstuintSTD_OUTPUT_HANDLE=0xfffffff5;privateconstuintSTD_ERROR_HANDLE......
  • Java拾贝第十一天——IO流之打印流
    Java拾贝不建议作为0基础学习,都是本人想到什么写什么在整个IO包中,打印流是输出信息最方便的类。主要包括字节打印流(PrintStream)和字符打印流(PrintWriter)打印流没有输入流,所以没有输入输出这个说法,都是输出PrintStream字节打印属于OutputStream的子类,PrintStream的构造方......
  • 在Bash中打印回车换行符(literal)
    内容来自DOC[https://q.houxu6.top/?s=在Bash中打印回车换行符(literal)](https://q.houxu6.top/?s=在Bash中打印回车换行符(literal))如何打印一个换行符?这只会打印:$echo-e"Hello,World!"Hello,World!使用printf代替:printf"helloworld"printf在不同的......
  • 业务日志打印规范
    业务日志打印规范参考文档Java开发手册https://github.com/alibaba/p3c内容【强制】应用中不可直接使用日志系统(Log4j、Logback)中的API,而应依赖使用日志框架(SLF4J、JCL--JakartaCommonsLogging)中的API,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一......
  • vue打印浏览器页面功能的两种实现方法
    目录方法一:通过npm安装插件方法二:手动下载插件到本地总结推荐使用方法二方法一:通过npm安装插件1,安装npminstallvue-print-nb--save2,引入安装好以后在main.js文件中引入1importPrintfrom'vue-print-nb'Vue.use(Print);//注册3,现在......
  • Java基础 字符打印流
    字符流底层有缓冲区,所以效率更高,想自动刷新需要手动开启 字符打印流的构造方法: 字符打印流的成员方法: 代码示例:PrintWriterpw=newPrintWriter(newFileWriter("E:\\Java基础资料\\b.txt"),true);pw.println("黑马程序员");pw.print("成就it黑马");pw.println();p......