首页 > 其他分享 >打印选择一个单据行 相同的行打印出来

打印选择一个单据行 相同的行打印出来

时间:2024-01-22 17:33:45浏览次数:29  
标签:SY 相同 WA ALV2 打印 HEAD PARAM ITEM 单据

 SELFIELD-REFRESH = 'X'.
  CASE UCOMM.
    WHEN 'PRINT'.

      DATA IT_HEAD TYPE TABLE OF ZSDS006_H WITH HEADER LINE.
      DATA IT_ITEM TYPE TABLE OF ZSDS006_I WITH HEADER LINE.
      DATA WA_HEAD LIKE LINE OF IT_HEAD.
      DATA WA_ITEM LIKE LINE OF IT_ITEM.




      DATA: LS_CONTROL_PARAM TYPE SSFCTRLOP .   "打印参数"
      DATA: LS_COMPOSER_PARAM TYPE SSFCOMPOP .
      DATA: OUTOPT TYPE SSFCRESOP.
      DATA: FM_NAME TYPE RS38L_FNAM.
      DATA: I_JOB_OUTPUT_INFO TYPE SSFCRESCL.

      LS_CONTROL_PARAM-LANGU =  '1'.
      LS_CONTROL_PARAM-NO_OPEN = 'X'.
      LS_CONTROL_PARAM-NO_CLOSE = 'X'.
      LS_CONTROL_PARAM-NO_DIALOG = ''.
      LS_CONTROL_PARAM-PREVIEW = 'X'.

      CALL FUNCTION 'SSF_OPEN'
        EXPORTING
          CONTROL_PARAMETERS = LS_CONTROL_PARAM
*         OUTPUT_OPTIONS     = LS_COMPOSER_PARAM
        IMPORTING
          JOB_OUTPUT_OPTIONS = OUTOPT
        EXCEPTIONS
          FORMATTING_ERROR   = 1
          INTERNAL_ERROR     = 2
          SEND_ERROR         = 3
          USER_CANCELED      = 4
          OTHERS             = 5.

      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        EXIT.
      ENDIF.

      IF P_VBTYP = 'J'.
        CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
          EXPORTING
            FORMNAME           = 'ZSDS006_FORM'
*           VARIANT            = ' '
*           DIRECT_CALL        = ' '
          IMPORTING
            FM_NAME            = FM_NAME
          EXCEPTIONS
            NO_FORM            = 1
            NO_FUNCTION_MODULE = 2
            OTHERS             = 3.
        IF SY-SUBRC <> 0.
* Implement suitable error handling here
        ENDIF.

      ENDIF.

      IF P_VBTYP = 'T'.

        CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
          EXPORTING
            FORMNAME           = 'ZSDS006_FORM1'
*           VARIANT            = ' '
*           DIRECT_CALL        = ' '
          IMPORTING
            FM_NAME            = FM_NAME
          EXCEPTIONS
            NO_FORM            = 1
            NO_FUNCTION_MODULE = 2
            OTHERS             = 3.
        IF SY-SUBRC <> 0.
* Implement suitable error handling here
        ENDIF.
      ENDIF.

      LOOP AT IT_ALV2 INTO WA_ALV2 WHERE CBOX = 'X'.
        WA_HEAD-BUTXT = WA_ALV2-BUTXT.
        WA_HEAD-VBELN = WA_ALV2-VBELN.
        WA_HEAD-NAME1 = WA_ALV2-NAME1.
        WA_HEAD-WADAT = WA_ALV2-WADAT.
        WA_HEAD-ZHWMC = WA_ALV2-ZHWMC.

        APPEND WA_HEAD TO IT_HEAD.
      ENDLOOP.
      SORT IT_HEAD BY VBELN.
      DELETE ADJACENT DUPLICATES FROM IT_HEAD COMPARING VBELN.
      LOOP AT IT_HEAD INTO WA_HEAD.
        CLEAR WA_ITEM.
        CLEAR: IT_ITEM,IT_ITEM[].
        LOOP AT IT_ALV2 INTO WA_ALV2 WHERE VBELN = WA_HEAD-VBELN.



          WA_ITEM-NAME = WA_ALV2-NAME.
          WA_ITEM-ZBZGG = WA_ALV2-ZBZGG.
          WA_ITEM-LFIMG = WA_ALV2-LFIMG1.
          WA_ITEM-MEINS = WA_ALV2-MEINS.
          WA_ITEM-CHARG = WA_ALV2-CPPC.
          WA_ITEM-BZSL  = WA_ALV2-BZSL.
          WA_ITEM-WADAT = WA_ALV2-WADAT.
          WA_ITEM-VBTYP = WA_ALV2-VBTYP.

          APPEND WA_ITEM TO IT_ITEM.
        ENDLOOP.

        CALL FUNCTION FM_NAME
          EXPORTING
*           ARCHIVE_INDEX      =
*           ARCHIVE_INDEX_TAB  =
*           ARCHIVE_PARAMETERS =
            CONTROL_PARAMETERS = LS_CONTROL_PARAM
            WA_HEAD            = WA_HEAD
*           MAIL_APPL_OBJ      =
*           MAIL_RECIPIENT     =
*           MAIL_SENDER        =
            OUTPUT_OPTIONS     = LS_COMPOSER_PARAM
*           USER_SETTINGS      = 'X'
*         IMPORTING
*           DOCUMENT_OUTPUT_INFO       =
*           JOB_OUTPUT_INFO    =
*           JOB_OUTPUT_OPTIONS =
          TABLES
            IT_ITEM            = IT_ITEM
*          EXCEPTIONS
*           FORMATTING_ERROR   = 1
*           INTERNAL_ERROR     = 2
*           SEND_ERROR         = 3
*           USER_CANCELED      = 4
*           OTHERS             = 5
          .
        IF SY-SUBRC <> 0.
* Implement suitable error handling here
        ENDIF.

      ENDLOOP.
      CALL FUNCTION 'SSF_CLOSE'
        IMPORTING
          JOB_OUTPUT_INFO  = I_JOB_OUTPUT_INFO
        EXCEPTIONS
          FORMATTING_ERROR = 1
          INTERNAL_ERROR   = 2
          SEND_ERROR       = 3
          OTHERS           = 4.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.

  ENDCASE.

 

标签:SY,相同,WA,ALV2,打印,HEAD,PARAM,ITEM,单据
From: https://www.cnblogs.com/Anyohh233/p/17980568

相关文章

  • 17、基于SLF4J中打印日志的方法,实现字符串中{}快速替换需要的内容
    转载自一、String工具类:publicclassStringUtils{privatestaticfinalcharDELIM_START='{';privatestaticfinalStringDELIM_STR="{}";privatestaticfinalcharESCAPE_CHAR='\\';/***基于slf4j中打印日志的......
  • 利用指针打印数组内容
    #include<stdio.h>#include<assert.h>//因为只是读取数组的数据,而不需要做任何修改//所以我们给形参int*p前面修饰上一个const,以防写出BugvoidPrint_arr(constint*p,intsz){ assert(p); inti=0; for(i=0;i<sz;i++) { printf("%d",*(p+i)); }}......
  • Verdi信号平移+研发管理体系+malloc和calloc函数区别+使用__FILE__只打印文件名+使用i
    Verdi信号平移信号左移是将光标移动在双引号以内的信号名左边,然后先输入数字,可以带上单位,如[ns|n]、[ps|p],然后按<<-按键。https://blog.csdn.net/qq_40268672/article/details/132915499信号右移信号右移是数字在右边,信号在左边,用右移符号,其它不变。研发管理体系https://......
  • [操作系统] 打印进程树 pstree
    打印进程树简介这是jyy老师的操作系统课程的M1实验,为了弥补一些欠缺的操作系统相关的知识。在这里实现的的pstree并不是严格的按照实验要求而设计的(一个原因是按要求实现的代码不可以公开),这里会看到一些不一样的简单实现,比如直接运行,没有命令行可选参数,输出格式会有所不同......
  • 云打印原理,云打印服务是什么意思?
    最近一段时间云打印的概念非常火热,很多App和个人用户都来到易绘创开放平台寻求对接云打印服务。那么云打印服务是什么意思?云打印的原理又是怎么样的?今天就来给大家介绍一下。 云打印原理,云打印服务是什么意思?其实云打印就是一种基于云计算技术的打印方式,云打印即通过App、小......
  • 云打印服务怎么启动?云打印服务怎么使用?
    最近一段时间,易绘创云打印服务开始在各个App和高校中火热了起来。很多没有打印机或者觉得线下打印店较贵的用户都想使用云打印服务。那么云打印服务怎么启动?云打印服务怎么使用呢?今天小易就带大家来了解一下。 云打印服务怎么启动?云打印服务怎么使用?目前打印市场上的云打印......
  • 让cp 产生的文件和源文件 时间戳相同
     要让 cp 命令产生的文件与源文件的时间戳相同,可以使用 -p选项。这个选项会保留文件的权限、所有者以及时间戳信息。以下是一个示例:cp-psourcefiledestinationfile在这个命令中,sourcefile 是源文件的名称,destinationfile 是目标文件的名称。通过使用 -p 选项,destin......
  • 易飞ERP抛转钉钉签核,并自动审核易飞单据
    支持易飞ERP所有单据送签到钉钉(+v: rainholy)1、钉钉界面 2、易飞ERP单据配置 3、钉钉审批完后,自动审核易飞ERP单据 ......
  • 云打印自助服务系统有哪些?云打印自助服务系统怎么用?
    随着当下云打印服务的火热发展,越来越多的人开始选择云打印服务。那么云打印自助服务系统有哪些?云打印自助服务系统怎么用?接下来带大家来了解一下。云打印自助服务系统有哪些?云打印自助服务系统怎么用?当前市场上的云打印自助服务系统还是有一些的,不过大多是需要自备打印机才能完......
  • 云打印机介绍,云打印机是什么意思?
    随着当下云打印服务的火热发展,越来越多的人开始选择云打印服务。那么当下的云打印软件有哪些?云打印平台怎么选?接下来带大家来了解一下。 云打印软件有哪些?当前市场上的云打印软件还是有一些的,不过要找到合适靠谱的云打印平台的话,我们还是要根据自己的定位来寻找合适的云打印......