一、开发需求:

1.A4横打,每20行换页,不足20行补空行,每页均显示表头表尾

2.物料描述需要读取长文本

3.需要调整字体大小和对齐方式

二、打印样张:

image

三、碰到的问题和一些解决办法

1.每20页换行,采用了在SAMRTFORM中设置全局变量的方法,每次自增1,和20求余为0则换页

每次G_NUM自增1,模G_SIZE=20的结果放在G_NEWPAGE中,G_NEWPAGE为0就换页。

image

image

image

image

image

2.不足20行补空行,则是在ALV程序中网内表中插入空白工作区

image

3.SMARTFORMS中读取长文本

在建的文本元素中可以设置类型,有四种:

  • 文本元素,默认,最普通的,自己手动输入内容
  • 文本模块,在smartforms进来的地方有个文本模块,这个是用来包含建立的文本模块的
  • 包含文本,这就是长文本了,填入文本名称,文本对象,文本ID和语言即可

image

  • 还有一种是动态文本,具体做什么的还没试过,大家可以自行研究

4.SMARTFORM中QUAN类型的显示

报表中要显示的VBFA-RFMNG为QUAN类型的字段,可以有两种方法处理:

(1)转为CHAR型,这是我推荐的方法,这样做程序中要用CONDENSE去空格处理,在SMARTFORM中无需特别处理

image

(2)在全局定义的货币/数量字段中重新定义一次,但这样有个不好的地方,当补空行时,空行的对应字段上总是会显示0.000而不是空白,不太美观

image

5.每页均显示表头表尾,其实这可以用TABLE比较容易的实现,但这次开发中全用了TEMPLATE,走了点弯路。

 
 
分类: SAP
标签: SAPABAPSMARTFORM打印