首页 > 其他分享 >Smartforms在同一页中打印多份模板,打印动态表格

Smartforms在同一页中打印多份模板,打印动态表格

时间:2024-08-01 12:40:41浏览次数:13  
标签:Smartforms 表格 打印 输出表 belnr output 模板

要求:

一:需要在一份A4纸中打印上下两个表格,每个表格行只有5行,不够的需要补齐,超出的需要打印到第二个表格中.

二:表格不是固定的,需要根据某个字段,确定使用的表格格式

 

解决方法,我们只需要创建一个模板高度的数据模板,通过循环来打印我们的模板,相当于每次印半页,印两次就是一页.

 

 

下面是详细步骤

  1. 根据要求一,Smartforms初始化时,需要对表做补行处理.具体代码如下

 

 1 LOOP AT gt_output INTO gs_output.
 2   IF line_exists( gt_item[ belnr = gs_output-belnr ] ).
 3     "计算表中数据除5求余
 4     gv_line = lines( VALUE znfit0010_i( FOR wa IN gt_item WHERE ( belnr = gs_output-belnr ) ( wa ) ) ) MOD 5.
 5     "余数大于0,添加5-余数的空白行
 6     IF gv_line > 0.
 7       DO 5 - gv_line TIMES.
 8         APPEND VALUE #( belnr = gs_output-belnr ) TO gt_item.
 9       ENDDO.
10     ENDIF.
11   ENDIF.
12 ENDLOOP.
13 
14 GV_COUNTS = LINES( GT_OUTPUT ).”用于计算总凭证数量

 

 

  1. Smartforms使用双循环

先循环Header,再循环Item

 

计算里面获取一下循环次数到GV_COUNT

 

循环ITEM

 

条件是Header的凭证号

获取Item行的循环计数,用于创建新表格

 

  1. 创建一个新变量,用于控制表头输出

 

当值为Y时,输出表头,值为N时,不输出

  1. 输出表尾的时候的条件,其中包括输出表头条件

 

表尾输出后,把值改为Y,从而输出表头

 

当不满足输出表尾和表头的时候,把值设置为N,从而不输出表头

 

根据要求二,我们要根据不同的货币输出不同的表内容

解决方法是我们可以通过条件判断什么时候输出表格一,什么时候输出表格二.只要两个条件不重合,那系统只会输出符合条件的表格.

 

 

 

标签:Smartforms,表格,打印,输出表,belnr,output,模板
From: https://www.cnblogs.com/anter/p/18336419

相关文章

  • 在AWS Lightsail建立WordPress Multisite & Route 53 subdomains & Hexo Blog & WordP
    1.0前言玩Startup比賽,因需高效快速地做POC原型產品,所以利用AWS云端服務來更快地開發。你會學到:LightSail建立WordpressmultisiteRoute53註冊WordpressSubdomains&GithubCuostomDomainLightSailCustomDomain&SSLHexo快速搭建GihubPages博客+ Route53 Custom......
  • 打印流
    PrintStream是OutputStream的子类,PrintWriter是Writer的子类。打印流具有以下几个特点:可以自动进行数据类型转换:打印流可以将各种数据类型转换为字符串,并输出到指定的输出流中。可以自动进行换行操作:打印流可以在输出字符串的末尾自动添加换行符,方便输出多个字符串时的......
  • [USACO5.1] 圈奶牛Fencing the Cows /【模板】二维凸包
    凸包,顾名思义,就是凸多边形包围,具体定义见OI-wiki(既是周长最小也是面积最小)有Graham算法和Andrew算法,后者精度更高常数更小(因为不涉及求角度)Andrew算法:1.将点排序(横坐标为第一关键字,纵坐标为第二关键字)2.从左到右维护上半部分,再从右到左维护下半部分。具体见OI-wiki。最后说的......
  • Django模板、模版语言和静态文件
    1.templates模板(html)在app目录下创建一个templates目录,用于存放网页模板利用url返回网页点击查看代码defuser_list(request):returnrender(request,"user_list.html");输入url地址时,会去app目录下的templates目录下寻找名为user_list的HTML文件(根据app注册顺......
  • 六种方式涵盖了Vue 3中定义和使用模板的主要方法
    1.单文件组件(SFC)单文件组件(SingleFileComponent,SFC)是Vue组件开发中最常见的方式。使用.vue文件来定义一个组件,包含<template>、<script>和<style>块。示例1<template>2<div>3<p>{{message}}</p>4</div>5</template>6......
  • 关于使用C#注入C++的封装DLL后打印内容乱码
    最近因需要,用C++写了个钩子的DLL,一切工作测试通过后,放到C#里使用P/Invoke调用,发现部分乱码,最后反复测试,才发现一个问题,原来SetWindowsHookEx这个函数,也是分A版和W版,最后换了就正常了,附上对比。。乱码[DllImport("user32.dll",SetLastError=true]publicstaticex......
  • L1-002 打印沙漏
    重点找递推公式,推导层数//8'39"#include<iostream>#include<cmath>usingnamespacestd;intmain(){intn;cin>>n;charc;cin>>c;intcur=1;for(inti=0;i<=n;++i)if(2*(i*i)......
  • P10814 【模板】离线二维数点 题解
    题目传送门思路一眼主席树板子题,但是一看数据范围\(n,m\le2\times10^6\),似了。在线做法应该是似完了,考虑离线做法。我们知道树状数组是可以做二维偏序的,大家应该都知道一个经典问题:对于一个序列,多次询问下标\(\lea\)且数值\(\leb\)的数的个数。回到这道题,相比上面......
  • 易优CMS模板标签language语言列表罗列所有语言列表
    【基础用法】标签:languagename值:web_language_switch描述:语言列表标签,获取多语言列表内容。用法:{eyou:languagetype='default'}<ahref="{$field.url}"><imgsrc="{$field.logo}"alt="{$field.title}">{$field.title}</a>{/eyou:......
  • 公众号 发送模板消息
    <?php$toUserOpenid=$this->request->post("to_user_openid");$config=get_addon_config('equipment');if(!$config||!$config['weappid']||!$config['weappsecret']){......