打印主从并加序号

场景描述

打印一个主表及其多个从表的数据

打印效果如下图所示

实现思路

不设置主从,通过模板中使用数据循环判断,需要用ejs模版

实现步骤

定义一张主表和两个从表

在页面上添加主表、从表1和从表2数据集组件,清空从表1和从表2的主从选项属性

添加打印组件,设置打印组件的"打印数据"属性为主表数据集,“附加数据”属性选择从表1和从表2

打印模版的文件后缀为.print.ejs

打印模板文件内容如下

        <html>
        <head>
            <title>my ejs template</title>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        </head>
        <body>
            <table style="width:100%;" cellpadding="2" cellspacing="0" border="1" bordercolor="#000000">
                <tbody>
                    <% for(var i=0;i<data.length ; i ++){ %>
                        <tr>
                            <td style="text-align:center;">
                                序号
                            </td>
                            <td>
                                <span><%= i+1%></span>
                            </td>
                        </tr>
                        <tr>
                            <td style="text-align:center;">
                                编码
                            </td>
                            <td>
                                <%= data[i].fno%>
                            </td>
                        </tr>
                        <tr>
                            <td style="text-align:center;">
                                日期
                            </td>
                            <td >
                                <span><%= data[i].fdate%></span>
                            </td>
                        </tr>
                        <tr>
                            <td style="text-align:center;">
                                从表一
                            </td>
                            <td style="text-align:center;">
                                <table style="width:100%;" cellpadding="2" cellspacing="0">
                                    <tbody>
                                        <tr>
                                            <td style="border-right:#000000 solid 1px;" width="100px">
                                                序号
                                            </td>
                                            <td style="border-right:#000000 solid 1px;"  width="300px">
                                                名称
                                            </td>
                                            <td>
                                                单价
                                            </td>
                                        </tr>
                                        <% var data1 = context.datas.restData1 %>
                                        <% var k=0 %>
                                        <% for(var j=0;j<data1.length;j++){ %>                           
                                            <%if(data1[j].zhubiao == data[i].fid){%>
                                                <tr>
                                                    <td style="border-top:#000000 solid 1px;border-right:#000000 solid 1px;">
                                                        <span><%= ++k %></span>
                                                    </td>
                                                    <td style="border-top:#000000 solid 1px;border-right:#000000 solid 1px;">
                                                        <span><%= data1[j].fname%></span>
                                                    </td>
                                                    <td style="border-top:#000000 solid 1px;">
                                                        <span><%= data1[j].fprice%></span>
                                                    </td>
                                                </tr>
                                            <%}%>
                                        <%}%>
                                    </tbody>
                                </table>
                            </td>
                        </tr>
                        <tr>
                            <td style="text-align:center;">
                                从表二
                            </td>
                            <td style="text-align:center;">
                                <table style="width:100%;" cellpadding="2" cellspacing="0">
                                    <tbody>
                                        <tr>
                                            <td style="border-right:#000000 solid 1px;" width="100px">
                                                序号
                                            </td>
                                            <td style="border-right:#000000 solid 1px;" width="300px">
                                                数量
                                            </td>
                                            <td>
                                                金额
                                            </td>
                                        </tr>
                                        <% var data2 = context.datas.restData2 %>
                                        <% var k =0 %>
                                        <% for(var j=0;j<data2.length;j++){ %>                           
                                            <%if(data2[j].zhubiao == data[i].fid){%>    
                                        <tr>
                                            <td style="border-top:#000000 solid 1px;border-right:#000000 solid 1px;">
                                                <span><%= ++k %></span>
                                            </td>
                                            <td style="border-top:#000000 solid 1px;border-right:#000000 solid 1px;">
                                                <span><%= data2[j].fnum%></span>
                                            </td>
                                            <td style="border-top:#000000 solid 1px;">
                                                <span><%= data2[j].fmoney%></span>
                                            </td>
                                        </tr>
                                            <%}%>
                                        <%}%>
                                    </tbody>
                                </table>
                            </td>
                        </tr>
                    <% } %>
                </tbody>
            </table>
        </body>
    </html>

打印模板说明


   <% var data1 = context.datas.restData1 %>是访问附加数据的写法,restData1是附加数据的xid或id


    <% for(var j=0;j<data1.length;j++){ %>                           
        <%if(data1[j].zhubiao == data[i].fid){%>
 比较主键和外键是否相等。zhubiao是从表的外键列,见上面的数据结构定义。fid表示主表的主键
  • 使用此模板,分别加载主表和从表的数据,为保证加载完整,注意将从表的分页大小设置为-1

results matching ""

    No results matching ""

    results matching ""

      No results matching ""