SAP ABAP 打印(smartforms方式)

 程序代码

*&---------------------------------------------------------------------*
*& Report Z3TEST004
*&---------------------------------------------------------------------*
*&  打印 采购发票 查询
*&---------------------------------------------------------------------*
REPORT zprint001.

TABLES:EKET,MAKT,MKPF,EKKO,EKPO,RBKP,RSEG,EKBE.


" 数据类型1
*
*TYPES: BEGIN OF TY_EKKPO,
*         LIFNR TYPE EKKO-LIFNR,
*         EKORG TYPE EKKO-EKORG,
*         WERKS TYPE EKPO-WERKS,
*         EBELN TYPE EKKO-EBELN,
*         AEDAT TYPE EKKO-AEDAT,
*       END OF TY_EKKPO.


DATA: GSD_EKKPO TYPE ZMMPRINT01 ,
      GTD_EKKPO TYPE STANDARD TABLE OF ZMMPRINT01.






"数据类型2

*TYPES: BEGIN OF TY_ITEM,
*          EBELN TYPE EKKO-EBELN,
*          EBELP TYPE EKPO-EBELP,
*          MATNR TYPE MAKT-MATNR,
*          MAKTX TYPE MAKT-MAKTX,
*          MENGE TYPE EKPO-MENGE,
*          MEINS TYPE EKPO-MEINS,
*          NETPR TYPE EKPO-NETPR,
*          WAERS TYPE EKKO-WAERS,
*          EINDT TYPE EKET-EINDT,
*       END OF TY_ITEM.


DATA: GSD_ITEM TYPE ZMMPRINT02,
      GTD_ITEM TYPE STANDARD TABLE OF ZMMPRINT02.



*--------------------------------------------------------------------------*

*                      选择屏幕

*--------------------------------------------------------------------------*

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

  SELECT-OPTIONS:S_EKGRP FOR EKKO-EKORG  ,
                 S_EKDAT FOR EKKO-BEDAT .

SELECTION-SCREEN END OF BLOCK B1.




*----------------------------------------------------------------------*

*       START-OF-SELECTION

*----------------------------------------------------------------------*

START-OF-SELECTION.










SELECT

  EKKO~EKORG "财务组织
  RBKP~BLDAT"发票日期
  RBKP~BELNR "发票号

  EKKO~LIFNR "供应商编号
             "供方名称
  EKKO~EKGRP "采购部门

              "扣款小计(计算)
  RBKP~WMWST1 "税额
              "应付金额

  RBKP~BVTYP "开户行
  RBKP~HBKID "账户名称
  RBKP~BANKN "银行帐户号码

  "MEPOITEM_PROP~AFNAM "制单人


INTO CORRESPONDING FIELDS OF TABLE GTD_EKKPO

FROM EKKO
INNER JOIN EKPO ON EKKO~EBELN = EKPO~EBELN
INNER JOIN RSEG ON EKKO~EBELN = RSEG~EBELN
INNER JOIN RBKP ON RSEG~BELNR = RBKP~BELNR
"INNER JOIN MEPOITEM_PROP ON




WHERE  EKKO~EKGRP IN S_EKGRP
  AND EKKO~BEDAT IN S_EKDAT.



BREAK-POINT."断点


READ TABLE GTD_EKKPO INTO GSD_EKKPO INDEX 1.




SELECT
   EKKO~EBELN "
   MAKT~MATNR "物料号
   MAKT~MAKTX "物料描述
   EKPO~MENGE "数量
   EKPO~MEINS "单位
   EKPO~NETPR "价格


INTO CORRESPONDING FIELDS OF TABLE GTD_ITEM
  FROM EKKO

  INNER JOIN EKPO ON EKKO~EBELN = EKPO~EBELN
  LEFT JOIN EKET ON EKPO~EBELN = EKET~EBELN AND EKPO~EBELP = EKET~EBELP
  LEFT JOIN MAKT ON EKPO~MATNR = MAKT~MATNR
WHERE EKKO~AEDAT IN S_EKDAT
 AND EKKO~EKGRP IN S_EKGRP.




  READ TABLE GTD_ITEM INTO GSD_ITEM INDEX 1.



** 设置调用表单  **

DATA:FM_NAME TYPE RS38L_FNAM.

  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
      FORMNAME = 'ZPRINT001' " 调用 表单程序
    IMPORTING
      FM_NAME  = FM_NAME.






CALL FUNCTION FM_NAME
 EXPORTING
*   ARCHIVE_INDEX              =
*   ARCHIVE_INDEX_TAB          =
*   ARCHIVE_PARAMETERS         =
*   CONTROL_PARAMETERS         =
*   MAIL_APPL_OBJ              =
*   MAIL_RECIPIENT             =
*   MAIL_SENDER                =
*   OUTPUT_OPTIONS             =
*   USER_SETTINGS              = 'X'
    GSD_EKKPO                  = GSD_EKKPO
    GSD_ITEM                   = GSD_ITEM
  TABLES
    GTD_ITEM                   = GTD_ITEM
* IMPORTING
*   DOCUMENT_OUTPUT_INFO       =
*   JOB_OUTPUT_INFO            =
*   JOB_OUTPUT_OPTIONS         =

* 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.







** 设置调用表单  **

 

定义表单模板

事务代码 smartforms

 

 

 

 

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值