1.自建barcode:

se73->System bar code->change->create->new input the name of the bar code you want,and the short text about this bar code.Then select the code 128 witch was supported by symbologies->normal Alignment,Then you can set the width and the height of this barcode(Mode A will be the best).

2.设置页格式(貌似对于最后没多大影响):

spad->F7 or click the full Administration->select the 'Device Types' tab,Display the page formats->change->create最后保存

创建format type,使用刚才创建的页格式,然后在Device types中将刚建的format加入进来。这样就能完全使用自己建的页格式了。

3.建立格式和表格:

1)smartforms新建格式,在字符格式中新建格式BC,在条形码处选择自己新建的条码,如果还有其他格式需要也一并建了。

2)新建表格,在全局设置的表格属性中的输出tab页中,可以将之前建的页格式选用。

3)在表格中需要的位置加上条码格式<BC>&XXXXX&</>

4)鉴于一般表的一行值为一页的打印,说一下表格的布局,因为系统是从上到下的来处理表格的,所以,主窗口需要放在其他子窗口上面,这样的话,循环操作就可以直接在主窗口的中建一个循环来实现表的循环,其他窗口中可直接使用相应的工作区。这样的话,分页和分页控制也都需要放在主窗口中来实现。

code1来实现读表累加计数,condition1来判断计数器和整个表的行数,command1中强制分页,还是使用的同样的page1。

全局定义:DESCRIBE TABLE it_tab LINES g_lines.

5)用三个窗口的原因是因为系统默认bar code占50MM,即使实际长度很短,但是还是会占用空格,这样在打印的条码中会空出一行来(如果该条码所在的text没分到50宽度的话)。三个窗口各50MM,然后窗口重叠,就能很好的解决页面布局的难题了。

6)将条码保存到本地成pdf文件:

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZLYBARTEST04'
* VARIANT = ' '
* DIRECT_CALL = ' '
IMPORTING
fm_name = sf_name
EXCEPTIONS
no_form =
no_function_module =
OTHERS = .
IF sy-subrc <> .
* Implement suitable error handling here
ENDIF. w_cparam-no_dialog = 'X'.
w_cparam-preview = space. " Suppressing the dialog box
w_cparam-getotf = 'X'. " for print preview
* Printer name to be used is provided in the export parameter
* OUTPUT_OPTIONS
w_outoptions-tddest = 'LP01'. CALL FUNCTION sf_name
EXPORTING
* ARCHIVE_INDEX =
* ARCHIVE_PARAMETERS =
control_parameters = w_cparam
* MAIL_APPL_OBJ =
* MAIL_RECIPIENT =
* MAIL_SENDER =
output_options = w_outoptions
* USER_SETTINGS = 'X'
IMPORTING
* DOCUMENT_OUTPUT_INFO =
job_output_info = t_otf_from_fm
* JOB_OUTPUT_OPTIONS =
TABLES
it_tab = it_tab
EXCEPTIONS
formatting_error =
internal_error =
send_error =
user_canceled =
OTHERS = .
IF sy-subrc <> .
* <error handling>
ENDIF. t_otf[] = t_otf_from_fm-otfdata[]. CALL FUNCTION 'CONVERT_OTF'
EXPORTING
FORMAT = 'PDF'
MAX_LINEWIDTH =
IMPORTING
BIN_FILESIZE = W_BIN_FILESIZE
* BIN_FILE =
TABLES
otf = T_OTF
lines = T_PDF_TAB
EXCEPTIONS
ERR_MAX_LINEWIDTH =
ERR_FORMAT =
ERR_CONV_NOT_POSSIBLE =
ERR_BAD_OTF =
OTHERS =
.
IF sy-subrc <> .
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF. CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = W_BIN_FILESIZE
filename = 'D:\CTS_program\test\test.pdf'
FILETYPE = 'BIN'
NO_AUTH_CHECK = 'X'
tables
DATA_TAB = T_PDF_TAB
.
IF sy-subrc <> .
write sy-subrc.
ENDIF.

这是固定死的文件名和路径。如果想要弹出保存对话框的话,可以在最后的FM之前加上:

CALL METHOD cl_gui_frontend_services=>file_save_dialog
CHANGING
filename = W_FILENAME
path = W_FILE_PATH
fullpath = W_FULL_PATH
EXCEPTIONS
CNTL_ERROR =
ERROR_NO_GUI =
NOT_SUPPORTED_BY_GUI =
others =

因为电脑是win8系统,保存的时候总是没权限,所以最后这个没有测试。

ABAP-smartform-一页3列的条码打印的更多相关文章

  1. smartforms 条码打印

    转自:http://blog.csdn.net/zhongguomao/article/details/6759642 SAP 条码打印有 新旧 两种技术方法:1.传统的(旧):将数据发送到打印机上, ...

  2. AX 条码打印

    AX 条码打印集成在BarCode类及其之类barcode*. 由子类的defaultFont方法指定字体属性. eg, BarcodeCode39 指定条码字体"BC C39 3 to 1 ...

  3. BarTender SDK 实现调用模板条码打印

    Demo:MyZebraPrint 基于BatTender .Net SDK 实现调用模板进行条码打印 有需要的朋友可以拿去研究下 在已经安装了BatTender10.1的电脑里测试通过. 下载地址: ...

  4. PowerBuilder -- 条码打印

    # 使用ocx控件 使用微软的MSBCODE9.OCX,但是注册老不成功,需要安装office之后才能注册成功,不知道有没有好的处理方法?? # 使用字体 字体下载:http://download.c ...

  5. Microsoft Excel 准确按照一页的宽度和高度打印

    设置 Microsoft Excel 准确按照一页的宽度和高度打印 Sheet1. VBA复制  With Worksheets("Sheet1").PageSetup  .Zoo ...

  6. C#.Net集成Bartender条码打印,VS调试运行可以打印,发布到IIS运行打印报错

    C#.Net集成Bartender条码打印,VS调试运行可以打印,发布到IIS运行打印报错 问题原因: 问题出现在iis账户权限. 解决方法: iis默认是用network service这个账户去执 ...

  7. [转]Formatting the detail section to display multiple columns (水晶报表 rpt 一页多列)

    本文转自:http://www.bofocus.com/formatting-the-detail-section-to-display-multiple-columns/ Format the de ...

  8. BarTender出现条码打印位置不准的情况怎么办

    在使用BarTender 2016设计打印条码标签,往往在打印时会遇到各种各样的问题,比如说:打印内容错位,内容发生偏移,与设置好的BarTender 2016条码标签的相对位置发生较为严重的偏差,这 ...

  9. ABAP 内表的行列转换-发货通知单-打印到Excel里-NEW-(以运单号为单位显示ALV然后保存输出)

    *********************************************************************** * Title           : ZSDF003  ...

随机推荐

  1. Servlet&jsp基础:第一部分

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  2. JQ将数组转换为Json

    var ArrComList; try { //接口传进来的数据格式为 A,B,C,D,这里根据逗号分隔返回数组. ArrComList = WeighControl.GetComList().spl ...

  3. CATransition(过渡)

    属性动画只对图层的可动画属性起作用,所以如果要改变一个不能动画的属性(比如图片),或者从层级关系中添加或者移除图层,属性动画将不起作用. 于是就有了过渡的概念.过渡并不像属性动画那样平滑地在两个值之间 ...

  4. linux配置IP地址

    1. ifconfig命令临时配置IP地址 ifconfig命令:查看与配置网络状态命令 如:  ifconfig eht0 192.168.0.200 netmask 255.255.255.0 # ...

  5. 3.27考试总结(hnoi难度)

    1 duel1.1 DescriptionK·⁄¶("“uƒ¢y%¥§H5|+ (?1’m" ’m·ø?1§z<k§⁄k<⁄§lm?0,1,2...§zg ‹‰ª«mS ...

  6. 关于Android构建

    “IDE都是给小白程序员的,大牛级别的程序员一定是命令行控,终端控,你看大牛都是使用vim,emacs 就一切搞定” 这话说的虽然有些绝对,但是也不无道理,做开发这行要想效率高,自动化还真是缺少不了命 ...

  7. v9 推荐位 排序问题解决办法

    原网站:http://bbs.phpcms.cn/thread-879943-1-1.html 简介: 用phpcms做网站的时候,有些地方要用到推荐位列表,如幻灯片,特别推荐等.有时候因为文章的重要 ...

  8. input与lable水平对齐

    CSSinput,label { vertical-align:middle;}  html 格式 <label><input/></label> <labe ...

  9. javascript练习----复选框全选,全不选,反选

    第一种方式: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  10. Getuserpassword

    将[新注册的用户的用户名和密码]保存到服务端本地 /*将注册成功的用户名和密码保存到本地*/ /*定位*/ File f = new File("D:/lab_2/用户名和密码.qq&quo ...