套打二开.直接SQL账表每行分录显示一页并且自定义每页的序列号

【应用场景】
需要把直接sql账表的每行分录数据打印一页,并且每一页需要自定义一个序列号来显示,此案例序列号为:常量值+每行分录中的日期(格式yyyyMMdd)+自增流水号(格式001、002...)。
【注意事项】
该实现方案非最佳实践,仅限于特殊场景下的特殊应用。
【案例演示】
自主开发直接sql账表,新增一个命名为FNO的列,设置为不可见,用来做套打打印显示。
【实现步骤】
<1>在BOS设计器打开需要二开的直接SQL账表,打开数据源属性,为单据体添加一列命名为FNO。
<2>把FNO列设置为不可见。

<3>登录套打设计器,新建直接SQL账表的套打模板,模板上面拖一个文本控件,绑定账表的FNO字段,拖一个数据表格,数据表格的数据行分别绑定单据体需要显示的字段,并且把两行普通行设置为每页出现。再次选择数据行,设置属性为套打型,每页重复次数为1。保存套打模板。

<4>编写sql账表的表单插件代码,主要是干预套打数据包,把数据包中的FNO字段重新填充为自定义的值,编译插件,然后打开BOS设计器注册到对应的直接sql账表的表单插件属性。
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Kingdee.BOS.Printing.PlugIn.Test
{
public class MySQLPrint : AbstractDynamicFormPlugIn
{
public override void OnPrepareNotePrintData(Core.DynamicForm.PlugIn.Args.PreparePrintDataEventArgs e)
{
base.OnPrepareNotePrintData(e);
if (e.DataSourceId.Equals("FList"))
{
if (e.DataObjects != null && e.DataObjects[0].DynamicObjectType.Properties.ContainsKey("FNO"))
{
for (int i = 0; i < e.DataObjects.Count(); i++)
{
套打二开.直接SQL账表每行分录显示一页并且自定义每页的序列号
【应用场景】需要把直接sql账表的每行分录数据打印一页,并且每一页需要自定义一个序列号来显示,此案例序列号为:常量值+每行分录中的日期...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



