ABAP:SmartForms 之二--设计

本文介绍了如何在ABAP中使用SmartForms设计和打印报表,满足特定要求,如非套打、每页8行记录等。首先创建样式文件,包括段落格式和字体样式。接着创建SmartForm,设置表格属性、导入参数和全局定义。在全局数据中定义工作区和内表,并在初始化中恢复内表数据。通过循环输出数据,计算页码和空行,确保完整打印报表。此外,处理分页和窗口布局,确保正确显示表头和表尾。最后,解决打印输出可能出现的问题,如表格线和针式打印机的兼容性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导读:
  报表要求:(见下表)
  
  
  要求:
  1、不是套打,表格线也需要输出
  2、每张报表打印8行记录,不足的空白行也需要输出
  3、按凭证号打印单据,可以连续打印多张报表。
   、创建样式 :在创建Form之前,需要创建多种段落和字体样式,供Form中的文字使用。需要设置多种“段落格式”,并且必须在“表头数据”中设定“标准段落”
  1.创建段落格式,一般有RH(Report Header),PD(Page Header), PB(Page Bottom),LD(Line Header and Details),字体:CNSONG,9pt。注意最好在各段落的“首行缩”中设定1mm的缩进,否则,在Form中表格线和文字之间会没有任何间隙。2.设置“表头数据”中“标准段落”3、保存并激活样式文件。
   二、创建SmartForm
  1、在“全局设置”-〉“表格属性”-〉“输出选项”中设定“页格式”:即纸张的大小“样式”:设定本Form使用的默认样式文件,这里指定为第一步创建的样式文件。
  2、在“全局设置”-〉“表格接口”-〉“导入”设置两个参数:ptr_header type cptr_items type c这两个参数用来传入我们在Report中Export内表数据的句柄(ID key)。
  3、在“全局设置”-〉“全局定义”中进行多项设定a、“类型”设定,在这里需要定义4个类型,一个用来保存表头数据的工作区和内表,一个用来保存明细数据的工作区和内表,它们的结构必须与Report中Export到数据库中的内表的结构完全对应一致,否则,我们将不能从传入的句柄(ID key)中恢复内表数据。
  * 领料单抬头信息
  TYPES:
  BEGIN OF TYP_header_ROW ,
  mblnr LIKE mseg-mblnr, " 凭证号
  bldat LIKE rkpf-rsdat, " 凭证日期
  c_so(16) TYPE c, " 销售订单号
  c_issdt LIKE sy-datum, " 发货日期
  werks LIKE mseg-werks, " 地点
  PLNAT_NAME LIKE t001w-name1, " 出货单位名称
  kokrs LIKE mseg-kokrs, " 控制范围
  kostl LIKE mseg-kostl, " 成本中心
  cc_name LIKE cskt-ktext, " 成本中心名称名称
  c_depart(45) TYPE c, " 领料部门
  bwart LIKE mseg-bwart, " 移动类型代码
  btext_mt LIKE t156t-btext, " 移动类型描述
  c_btext_mt(60) TYPE c, " 移动类型次数
  C_TOTAL(17) TYPE C, "合计输出时由用户手工填写
  END OF TYP_header_ROW .
  TYPES: TYP_HEADER_TABLE TYPE TYP_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值