咨询管理yua可以实现一个datatable表格每一行生成一张表
可以实现一个datatable表格每一行生成一张表进行打印么我有一个datatable表格,里面有40个字段,每行要对应一个审核表格进行打印,这样打印的话应该不算是批量打印了,而是一次性生成所有需要打印的审核表在一个文档,直接打印的话应该可以做到一个表格一张纸把,想问下管理大大这种的如何操作,如何把datatable中的数据赋值到打印模版中
可以搭配如下css使用,把你每一行的数据所在的div给指定为一个纸张
@page {
margin: 0
}
body {
margin: 0
}
.sheet {
margin: 0;
overflow: hidden;
position: relative;
box-sizing: border-box;
page-break-after: always;
}
/** Paper sizes **/
body.A3 .sheet {
width: 297mm;
height: 419mm;
box-sizing: border-box !important;
}
body.A3.landscape .sheet {
width: 420mm;
height: 296mm;
box-sizing: border-box !important;
}
body.A4 .sheet {
width: 210mm;
height: 296mm;
box-sizing: border-box !important;
}
body.A4.landscape .sheet {
width: 297mm;
height: 209mm;
box-sizing: border-box !important;
}
body.A5 .sheet {
width: 148mm;
height: 209mm;
box-sizing: border-box !important;
}
body.A5.landscape .sheet {
width: 210mm;
height: 147mm;
box-sizing: border-box !important;
}
body.letter .sheet {
width: 216mm;
height: 279mm;
box-sizing: border-box !important;
}
body.letter.landscape .sheet {
width: 280mm;
height: 215mm;
box-sizing: border-box !important;
}
body.legal .sheet {
width: 216mm;
height: 356mm;
box-sizing: border-box !important;
}
body.legal.landscape .sheet {
width: 357mm;
height: 215mm;
box-sizing: border-box !important;
}
/** Padding area **/
.sheet.padding-10mm {
padding: 10mm
}
.sheet.padding-15mm {
padding: 15mm
}
.sheet.padding-20mm {
padding: 20mm
}
.sheet.padding-25mm {
padding: 25mm
}
/** For screen preview **/
@media screen {
body {
background: #e0e0e0
}
.sheet {
background: white;
box-shadow: 0 .5mm 2mm rgba(0, 0, 0, .3);
margin: 5mm auto;
}
}
/** Fix for Chrome issue #273306 **/
@media print {
body.A3.landscape {
width: 420mm
}
body.A3,
body.A4.landscape {
width: 297mm
}
body.A4,
body.A5.landscape {
width: 210mm
}
body.A5 {
width: 148mm
}
body.letter,
body.legal {
width: 216mm
}
body.letter.landscape {
width: 280mm
}
body.legal.landscape {
width: 357mm
}
} Havoc-Wei 发表于 2026-1-13 10:49
可以搭配如下css使用,把你每一行的数据所在的div给指定为一个纸张
datatable中好像没有div吧,而且一行指定为一张A4纸只是表单的格式,而不是打印模板的格式,打印模板是一行生成一张表格,内容全部从表单中提取的,一个表格中的数字在datatable中的一行 张宇 发表于 2026-1-14 10:29
datatable中好像没有div吧,而且一行指定为一张A4纸只是表单的格式,而不是打印模板的格式,打印模板是一 ...
我的理解是,datatable的每一行都对应一张纸,是这意思吧?你可以遍历这个datatable,动态往打印表单中插入dom元素 Havoc-Wei 发表于 2026-1-14 11:01
我的理解是,datatable的每一行都对应一张纸,是这意思吧?你可以遍历这个datatable,动态往打印表单中插 ...
可以这么理解,一张纸就是一个表格 张宇 发表于 2026-1-14 11:58
可以这么理解,一张纸就是一个表格
我的思路是,准备一个空白的表单作为打印表单,在表单的queryLoad里引入我提供的css,并给body指定纸张尺寸,然后在表单的afterLoad事件里,去遍历你的datatable表格,每一行都插入一个class为 sheet 的div,在这样就是每行一张纸了,在div.sheet里写你其它的结构和样式就可以 Havoc-Wei 发表于 2026-1-14 17:43
我的思路是,准备一个空白的表单作为打印表单,在表单的queryLoad里引入我提供的css,并给body指定纸张尺 ...
我每一行出来的数据部能全部填完表格,表格还有很多需要计算的,我其实想在打印模板中来实现,每个需要填写的数据直接从对应的datatable中的数据中获取,根据行的数量来生成打印的页数,不然按照你的想法确实可以实现,但是需要把整个复杂的表格在js中画出来,而且部分数据需要从dropdownlist中传递得来,还有一部分需要固定下来,所以整个表格的样式非常复杂,我想尽量用最少得代码来实现这个功能 张宇 发表于 2026-1-16 10:07
我每一行出来的数据部能全部填完表格,表格还有很多需要计算的,我其实想在打印模板中来实现,每个需要填 ...
可以准备两个脚本,一个写html模板,一个写loadHtml的js方法,可以看下loadHtml的api
页:
[1]