ABAP-Smartforms表单打印
上传图片
t-code:se78-->表图形-->存储在凭证服务器
-->GRAPHICS常规图形-->删除标志左边按钮-->选择上传路径,选择.bmp图像上传-->然后确认。
SMARTFORMS中怎么插入图片
通过调整分辨率调整图片的大小
SMARTFORMS中自定义纸张
在sap做一个打印报表,要先设置一个纸张打印格式,下面以工厂中常用来打印的针孔纸为例,在sap设置该纸张的打印格式,以用于报表:
1、运行事务代码SPAD;选择工具栏上的【完全管理】按钮——>选择【设备类型】页面(在该页面上有四个按钮:【设备类型】、【打印控制】、【格式类型】、【页格式】);
2、选择【页格式】进入页格式列表界面,选择工具栏上的【修改】图标,工具栏左边会出现【新建】图标(注:不点【修改】图标是不会出现【新建】图标的);选择【新建】图标进入新建页格式界面,输入页格式名称“zkz”,方向选择肖像“Portrait”即竖向,纸张大小为:纸宽“215mm”、纸长“140mm”;(注:方向选为竖向则纸打印时是按竖向来作打印,如方向选横向则按横向打印,当你纸张设为140*215时才可横向打印);保存退出;
3、选择【格式类型】进入格式列表界面,选择工具栏上的【新建】图标进入新建格式界面,格式类型输入“215*140”,类型选择“sapscript”或“abap列表”均可;属性选择前面设置的页格式名称“zkz”,填写注释“xxxxx”;保存退出;
4、选择【设备类型】进入设备类型列表界面,在列表中选择设备类型为“CNSAPWIN”双击进入设备类型(更改)界面,选择工具栏上的【格式】按钮图标进入设备类型格式修改界面,选择【新建】图标,在弹出的对话框的“格式化”框内填入上面所设置的格式类型“215*140”,确定即可。
5、对于是使用write输出报表的,可以双击上述做好的格式类型“215*140”进入maintain format界面,双击要编辑的地方,进入代码编写界面,可在代码中写打印的行间距、字间距、字体、字体大小。
至此就为SAP的报表打印设置了针孔纸的纸张打印格式,接着是在报表中的使用:
6、write输出的方式,不需要在程序中设置,只是在打印时要求用户选择“格式类型”为上面所设置的“215*140”;
7、smarform方式,在使用事务代码smartforms画表格时,在“表格属性”栏的“输出选项”中的“页格式”选择上面所设置的“215*140”即可。
8、对于针式打印机,其默认纸张都是A4,我们需要自定义一种纸张的大小,定义纸张格式为215*140,实际尺寸可设置为214.5mm/139.5mm。
至此,你的ABAP报表就可以使用针式打印打印出正确的格式出来了。
注意:由于SAP与针式打印机之间接口的问题,如果表格线太细,打印出来的表格会有时缺少部分横线和竖线,纠正办法是:加粗表格的表框线,最好设置到20TW。
SMARTFORMS打印PDF格式
DATA:L_FM_NAME TYPE RS38L_FNAM, OUTPUT TYPE SSFCOMPOP, CONTROL_PARAMETERS TYPE SSFCTRLOP, LW_SSFCRESCL TYPE SSFCRESCL, OPTION TYPE SSFCRESCL, GT_PDFTAB TYPE TABLE OF TLINE, G_BINFILESIZE TYPE I. DATA :LS_ZZS_11 TYPE ZTEST_14062. DATA :GT_L TYPE TABLE OF ZTEST_14062, GS_L TYPE ZTEST_14062. CONTROL_PARAMETERS-LANGU = '1'. CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING FORMNAME = 'ZSF_14062' "smartfroms的名字 IMPORTING FM_NAME = L_FM_NAME. "打印设置 CONTROL_PARAMETERS-GETOTF = 'X'."表示不真的打印 CALL FUNCTION l_fm_name EXPORTING control_parameters = control_parameters output_options = output user_settings = 'X' "和直接打印不同的点 zsf_14062 = ls_zzs_11 page_num = page_num IMPORTING job_output_info = option TABLES gt_14062 = gt_l EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4. CALL FUNCTION 'CONVERT_OTF' EXPORTING format = 'PDF' IMPORTING bin_filesize = g_binfilesize TABLES otf = option-otfdata lines = gt_pdftab EXCEPTIONS err_max_linewidth = 1 err_format = 2 err_conv_not_possible = 3 err_bad_otf = 4 OTHERS = 5. CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING bin_filesize = g_binfilesize filename = 'D:\TEST.PDF' filetype = 'BIN' TABLES data_tab = gt_pdftab.
SMARTFORMS一维码和二维码
-
登录SAP,使用事务码SE73,定义一个新的BARCODE
-
-
Code128
Code128码于1981年推出,是一种长度可变、连续性的字母数字条码。与其他一维条码比较起来,相对较为复杂,支持的字元也相对较多,又有不同的编码方式可供交互运用,因此其应用弹性也较大。
Code128特性:
1、具有A、B、C三种不同的编码类型,可提供标准ASCII中128个字元的编码使用;
2、允许双向扫描;
3、可自行决定是否加上检验位;
4、条码长度可调,但包括开始位和结束位在内,不可超过232个字元;
5、同一个128码,可以由A、B、C三种不同编码规则互换,既可扩大字元选择的范围,也可缩短编码的长度。
Code128各编码方式的编码范围:
1、Code128A:标准数字和字母,控制符,特殊字符;
2、Code128B:标准数字和字母,小写字母,特殊字符;
3、Code128C/EAN128:[00]-[99]的数字对集合,共100个,即只能表示偶数位长度的数字。
Code128编码规则:开始位 + [FNC1(为EAN128码时加)] + 数据位 + 检验位 + 结束位
Code128检验位计算:(开始位对应的ID值 + 每位数据在整个数据中的位置×每位数据对应的ID值)% 103
PDF417
PDF417二维条码[1] 是一种高密度、高信息含量的便携式数据文件,是实现证件及卡片等大容量、高可靠性信息自动存储、携带并可用机器自动识读的理想手段。
PDF417条码可表示数字、字母或二进制数据,也可表示汉字。一个PDF417条码最多可容纳1850 个字符或1108 个字节的二进制数据,如果只表示数字则可容纳2710 个数字。
PDF417的纠错能力分为9级,级别越高,纠正能力越强。由于这种纠错功能,使得污损的417条码也可以正确读出
QR Code码
QR Code码,是由Denso公司于1994年9月研制的一种矩阵二维码符号, 它具有一维条码及其它二维条码所具有的信息容量大、可靠性高、可表示汉字及图象多种文字信息、保密防伪性强等优点。
主要特点 1、符号规格从版本1(21×21模块)到版本40(177×177 模块),每提高一个版本,每边增加4个模块。
2、数据类型与容量(参照最大规格符号版本40-L级):
数字数据:7,089个字符
字母数据: 4,296个字符
8位字节数据: 2,953个字符
汉字数据:1,817个字符
3、数据表示方法:
深色模块表示二进制"1",浅色模块表示二进制"0"。
4、纠错能力:
L级:约可纠错7%的数据码字
M级:约可纠错15%的数据码字
Q级:约可纠错25%的数据码字
H级:约可纠错30%的数据码字
5、结构链接(可选)
可用1-16个QR Code码符号表示一组信息。每一符号表示100个字符的信息。
-
-
Module Size 调节二维码的尺寸
Mode:这个参数控制了生成二维码数据的编码格式,有以下几种常用选择:A : automatic 由系统根据字符串自动判断编码格式
N : numeric 只支持数字格式(Only digits 0…9)
L : alphanuberic 数字、字母和一些特殊字符(空格)
K : KANJI only double-byte Japanese Kanji characters can be represented, the binary encoding is Shift-JIS) and BYTE (arbitrary 8-bit values).
U : byte_UTF8 支持中文、拉丁文等
Module Size: 像素值,确定了二维码的最大size,也就是字符串长度为255时,二维码的大小。如果字符串的长度不足255,会自动缩小。具体计算逻辑可以参考note的官方文档。
Module Size 为13时,二维码的最大size为 5cm x 5cm, 可供参考。
ErrCorrLev : 容错率,由低至高为 L,M, Q, H, 默认为H,不必改动。
L – 7 % Error Correction capability
M – 15% Error Correction capability
Q – 25% Error Correction capability
H – 30% Error Correction capability
-
-
这里必须写入值,才会显示二维码,不然不会出来,图中的D1#即为自己要写入的值
PS:二维码的大小不仅仅通过module size设置,当二维码里面的值的长度变化也会改变其大小,所以设置值的时候一定要注意啊!
找标准事务码对应的打印表单
TCODE:NACE进入
点击输出类型
双击采购订单
双击处理程序
这里找到了对应的程序和FORM表单
SMARTFORMS打断点
SMARTFORMS表单翻译
T-Code:SE63
SMARTFORMS 字段格式
&field+& 对于字符变量设置从何位置显示数据,如果offset大于字符变量长度时,系统就不会显示任何数据
&field()& 设置输出长度.
&field(*)& 如果该字段类型是abap数据字典里定义的类型,系统将按照字典定义的长度设置输出长度
&field(S)& 禁止输出符号位
&field(<)& 符号位显示在数据的左边
&field(.)& 设置显示小数的位数
&field(E)& 设置为科学标示法
&field(T)& 禁止千分位的显示(适用于: DEC, CURR, INT和QUAN几种数据类型).
&field(Z)& 禁止数字前导0的显示
&field(I)& 禁止显示空值
&field(K)& 禁止类型系统按数据字典定义的转换函数进行输出转换
&field(R)& 右对齐(只有在定义了输出长度时才有效)
&field(F)& 用指定的字符替换左边的空格.
&field(L)& 将日期转换为本地显示格式,使用JDAT指定的格式
&field(C)& 该设置效果和ABAP的CONDENSE语句相同.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示