ABAP--如何在打印报表上打印水印
来源:互联网 发布:微信加群 知乎 编辑:程序博客网 时间:2024/05/12 14:36
How it looks with Watermark?
There are couples of hurdles in the way to get it working:
一、First is the Graphics:
Watermark Graphics should have some specific property. This kind of graphics should not have the “Reserve Height Automatically” as ON in their attributes.
Whenever we import any .bmp file as the graphics in the SE78, system by default sets the indicator “Reserve Height Automatically” as ON. So, when we include this graphics in our SAPScript, system will reserve predefined space on the page which will prevent the next line to print in that space.
The Graphics with the “Reserve Height Automatically” as ON generates output like this:
二、Second is how to get the watermark on each page:
To get the graphics on every page we have couple of options:
Option 1: Create a GRAPHICS window on the center of the page and include the watermark.
This option is not working because: System starts the processing of the windows in the sequence maintained on the page window of SAPScript. So, Main window will be executed before Graphics window. This will overlap the content of the main window by the Graphics (which is not our purpose).
Option 2: Call a Graphics inside the MAIN window.
This option seems to work with little logic to print the watermark on each page.
I have attached my SAPScript, Little driver program code and the test watermark image for your reference.
三、报表脚本:
You can save this block as .txt file and use report RSTXSCRP to import into your system. You need to save this SAPScript with name ZTEST_WATERMARK.
SFORMZTEST_WATERMARK
HFORMZTEST_WATERMARK
OLANE
HEADFORM ZTEST_WATERMARK SAP DEF ETesting ZTEST_WATERMARK 00005NPATEL 640 20070716103554NPATEL 640 2008052016390213200010 E0 150
LINE/:FORM CPI 10; LPI 6; TAB-STOP 1 CM; START-PAGE FIRST; PARAGRAPH A1; RDI;
LINE/:FORM RDIDEV;
LINE/:PARAGRAPH A1 LINE-SPACE 1 LN;
LINE/:PARAGRAPH A1 TAB 1 2 CM LEFT;
LINE/:WINDOW GRAPHICS TYPE VAR;
LINE/:WINDOW LAST TYPE VAR;
LINE/:WINDOW MAIN
LINE/:PAGE FIRST NEXT FIRST;
LINE/:PAGE FIRST MAIN 0 1 CM 2 CM 10 CM 8 CM;
LINE/:PAGE FIRST WINDOW LAST 5 CM 15 CM 5 CM 2 CM;
END
HEADFORM ZTEST_WATERMARK SAP TXT ETesting ZTEST_WATERMARK 00005NPATEL 640 20070716103554NPATEL 640 2008052016390213200019 E0 150
LINE/:FORM TEXT 'Testing';
LINE/:PARAGRAPH A1 TEXT 'default';
LINE/:WINDOW GRAPHICS TEXT 'graphics';
LINE/:WINDOW LAST TEXT 'last windoe';
LINE/:WINDOW MAIN TEXT 'Main Window';
LINE/:PAGE FIRST TEXT 'First';
LINE/WLAST
LINE/ELAST
LINE* last window
LINE/WGRAPHICS
LINE/:BITMAP 'ZTEST_NP' OBJECT GRAPHICS ID BMAP TYPE BCOL DPI 75
LINE/WMAIN
LINE/:DEFINE &W_PAGE& := 0
LINE/EMAIN
LINEA1&W_COUNT&,,TESTING OF THE WATERMARK
LINE/:IF &PAGE& <> &W_PAGE&
LINE/:BITMAP 'ZTEST_NP' OBJECT GRAPHICS ID BMAP TYPE BCOL DPI 75
LINE/:DEFINE &W_PAGE& := &PAGE&
LINE/:ENDIF
END
ACTVSAP
E
四、代码:
*&---------------------------------------------------------------------*
*& Report ZTEST_NP_SCRIPT
*&
*&---------------------------------------------------------------------*
*& Test Program to test Watermark in SAPScript
*&---------------------------------------------------------------------*
REPORT ZTEST_NP_SCRIPT.
DATA: W_COUNT TYPE I.
PARAMETERS: P_NUM TYPE I DEFAULT 20.
START-OF-SELECTION.
IF P_NUM IS INITIAL.
P_NUM = 20.
ENDIF.
*
CALL FUNCTION 'OPEN_FORM'
EXPORTING
APPLICATION = 'TX'
DEVICE = 'PRINTER'
DIALOG = 'X'
FORM = 'ZTEST_WATERMARK'
LANGUAGE = SY-LANGU.
*
DO P_NUM TIMES.
W_COUNT = SY-INDEX.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'MAIN'
WINDOW = 'MAIN'.
ENDDO.
*
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'LAST'
WINDOW = 'LAST'.
IF SY-SUBRC <> 0.
ENDIF.
*
CALL FUNCTION 'CLOSE_FORM'
.
Watermark Image:
I have used this image for my testing:
Note: I have tried this on ECC 5.0. I am not sure about other systems.
source: https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/9789
- ABAP--如何在打印报表上打印水印
- ABAP--如何在打印报表上打印水印
- ABAP--如何在打印报表上打印水印
- ABAP--如何在打印报表上打印水印
- 报表在linux上打印问题
- TIPTOP GP5打印报表时如何在水晶报表中显示服务器上的图片
- 在打印或打印预览前如何获取报表页数
- 如何在C/S下打印报表
- ABAP--如何在ALV Grid打印页上加入页号
- ABAP--如何在ALV Grid打印页上加入页号
- ABAP--如何在ALV Grid打印页上加入页号
- ABAP--如何在SMARTFORMS里动态打印背景颜色
- ABAP--如何在选择屏幕上输出ALV GRID报表
- 在 Web 上打印水晶报表的四种方法
- 在 Web 上打印水晶报表的四种方法
- 在报表上打印"承上页""启下页"
- 在 Web 上打印水晶报表的四种方法
- 使用eclipse在jsp上进行水晶报表WEB打印
- 贝叶斯分类
- Java小程序之随机最大值最小值
- 主成分分析(PCA)
- Hello Mr.J——Docker
- 谈谈你对Activity生命周期的理解
- ABAP--如何在打印报表上打印水印
- 设计模式之抽象工厂模式
- 两种方法实现MFC 对话框最大化时控件也随比例最大化或者还原
- Java小程序之冒泡排序
- Hello Mr.J——Docker
- 17-08-31 JSP指令之include指令和jsp标签
- 调用百度地图出现的自动创建完成对象会清空输入框值的问题
- 2016.09-2017.08 一年总结 浪来浪去
- 再说ORACLE树查询