用Smartforms实现化学分子式上下标动态打印
2012-01-31 15:59
232 查看
最近开发QM模块的检验报告,客户提出要按上下标打印分子式(此需求有点变态),对我来说无疑是个挑战,经过自己的摸索花了两天时间终于攻破了此问题,在此要感谢华哥,Feliz,tc_Edison在这个问题上给了我很多不错的建议,废话不多说了下面就说说具体的解决方案。
1、和业务讨论在录入化学分子式数据的时候需要加上下标标识符号,我这里用^表示上标,v标识下标
例如:Av3v4B^cJK即对应的分子式是A34BcJK(34是下标,c是上标)
2、在smartforms中创建一个全局内表,用于存放拆分后的字符
![](http://scnblogs.techweb.com.cn/wqbendan/files/2011/02/aaa.jpg)
3、在Smartforms的loop循环中,将当前记录的化学分子式字段按照上面的规则进行拆分到全局内表中
![](http://scnblogs.techweb.com.cn/wqbendan/files/2011/02/ccc.jpg)
![](http://scnblogs.techweb.com.cn/wqbendan/files/2011/02/bbb.jpg)
4、到此,拆分内表已经填充好了,下面要做的就是去遍历改内表按特定格式输出字符了,这里的做法是建立三个text,然后根据内表的style条件来输出相关的text,因为text放在Template中的(每一个text有特定的行列号)所以在默认情况下同一行列中输出多个text,SAP只会显示第一个text的值;为了满足上面的需求我们必须要把拆分内表的字符打印在同一行(必须保证分子式是连续的),经过本人的摸索,可通过对text做相关设置即可实现。
A、打印第一个字符时需要确定行列号
![](http://scnblogs.techweb.com.cn/wqbendan/files/2011/02/eee.jpg)
![](http://scnblogs.techweb.com.cn/wqbendan/files/2011/02/fff.jpg)
B、从第二个字符开始不需要设置行列号了且要将text设置为直接添加,否则显示的永远是第一个字符
![](http://scnblogs.techweb.com.cn/wqbendan/files/2011/02/ggg.jpg)
![](http://scnblogs.techweb.com.cn/wqbendan/files/2011/02/hhh.jpg)
C、根据字符的Style条件打印相关的text
![](http://scnblogs.techweb.com.cn/wqbendan/files/2011/02/iii.jpg)
5、效果图
1、和业务讨论在录入化学分子式数据的时候需要加上下标标识符号,我这里用^表示上标,v标识下标
例如:Av3v4B^cJK即对应的分子式是A34BcJK(34是下标,c是上标)
2、在smartforms中创建一个全局内表,用于存放拆分后的字符
![](http://scnblogs.techweb.com.cn/wqbendan/files/2011/02/aaa.jpg)
3、在Smartforms的loop循环中,将当前记录的化学分子式字段按照上面的规则进行拆分到全局内表中
![](http://scnblogs.techweb.com.cn/wqbendan/files/2011/02/ccc.jpg)
![](http://scnblogs.techweb.com.cn/wqbendan/files/2011/02/bbb.jpg)
4、到此,拆分内表已经填充好了,下面要做的就是去遍历改内表按特定格式输出字符了,这里的做法是建立三个text,然后根据内表的style条件来输出相关的text,因为text放在Template中的(每一个text有特定的行列号)所以在默认情况下同一行列中输出多个text,SAP只会显示第一个text的值;为了满足上面的需求我们必须要把拆分内表的字符打印在同一行(必须保证分子式是连续的),经过本人的摸索,可通过对text做相关设置即可实现。
A、打印第一个字符时需要确定行列号
![](http://scnblogs.techweb.com.cn/wqbendan/files/2011/02/eee.jpg)
![](http://scnblogs.techweb.com.cn/wqbendan/files/2011/02/fff.jpg)
B、从第二个字符开始不需要设置行列号了且要将text设置为直接添加,否则显示的永远是第一个字符
![](http://scnblogs.techweb.com.cn/wqbendan/files/2011/02/ggg.jpg)
![](http://scnblogs.techweb.com.cn/wqbendan/files/2011/02/hhh.jpg)
C、根据字符的Style条件打印相关的text
![](http://scnblogs.techweb.com.cn/wqbendan/files/2011/02/iii.jpg)
5、效果图
![](http://scnblogs.techweb.com.cn/wqbendan/files/2011/02/aaa2.jpg)
相关文章推荐
- SmartForms 连续打印实现
- SAP Smartforms实现二维条码打印
- 自定义动态生成页面打印以及打印预览的一个实现例子
- .net下实现Word动态填加数据打印
- .net下实现Word动态填加数据打印
- 【转载】实现SmartForms的分页打印
- Java 中jasperReport实现动态列打印的实现代码
- 实现SmartForms 连续打印
- ABAP--如何在SMARTFORMS里动态打印背景颜色
- reportviewer动态加载报表的实现以及动态控制报表,套打,存折打印模式等的一些探讨,欢迎批评指正!
- SmartForms 连续打印实现
- jasperReport实现动态列打印
- SAPScript、Smartforms动态打印图像或者背景图片
- 用内存申请实现动态二维数组的创建及打印(每行的元素个数不同)
- 实现SmartForms 连续打印
- 基于jQuery实现文字打印动态效果
- 巧用jsp页面用表单实现动态打印功能
- itext 实现pdf打印数字上标和下标
- logback动态修改配置文件实现打印不同级别日志
- .net下实现Word动态填加数据打印