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一维码和二维码

  1. 登录SAP,使用事务码SE73,定义一个新的BARCODE

  2.  然后点击创建,选中“新”,创建一个新的条形码或者二维码,并进行相关的命名即可。

     

  3.  然后选择对应需要创建的条形码格式或者二维码格式。

    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个字符的信息。

  4.  继续下一步
  5.  继续下一步

    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

  6.  进入SMARTFORMS
    先设置SMARTFORMS STYLE

  7.  然后就可以在smartforms里面使用了

     

    这里必须写入值,才会显示二维码,不然不会出来,图中的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语句相同.

posted @   阿胖的阿多  阅读(1457)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示