自定义单据打印开发

栏目:u9cloud知识作者:用友来源:用友发布:2024-08-20浏览:1

自定义单据打印开发

  1. 建立UBF切换为开发模式

UBF是开发模式时,不用再切换

 

  1. 建立“分析项目”的解决方案或者直接基于已有解决方案,新建“分析项目”

 

3、建立打印模板(报表)

 

 

3.1、设置数据源

 

3.2、设置数据查询

 

3.3、设置根实体对象

 

 

 

3.4、选择实体属性数据

要打印的字段,双击实体属体即可选择到底部的表格中。

 

3.5、设置模板布局

8.1将左边“字段”信息拖放到报表的表头区域;并可设置对齐方式、等高宽、水平垂直等距离、水平垂直排列。

8.2将“报表控件”的“表”控件拖到报表的表体区域,再将字段拖到表的表体行中。

8.3对于要汇总的字段,将字段的表体行属性设置为“Number或”类型、设置“格式”;将字段的表尾行属性设置为“Number”类型、设置“格式”,设置“文本”。

 

8.4选择表后,点击表中某单元,最后点击表的左上角,对报表明细表进行设置。

 

8.5表头表尾设置背景色信息。

 

 

4、发布打印模型(报表)

4.1打印预览

4.2建立打印分类目录

实体Key命名要为实体全名以保证唯一。

4.3创建打印模型容器

选择空白行,右击“新建”可以建立多个打印模型容器;

4.4发布打印模型

 

5、建立打印参照

5.1创建打印参照

 

右击“打印分类目录”,点击“创建打印参照”

右击打印模版记录,点击“创建打印参照”创建打印参照。

5.2生成SQL脚本

将生成的SQL脚本文件整理,在制作安装包时使用。

6、导出打印模型(报表)

将生成的XML文件整理,在制作安装包时使用。

  1. 客开代码编写

单据打印事件写在WebPart生成的Action事件中:

private void PrintClick_Extend(object sender, UIActionEventArgs e)

                   {

 

                       CustSORecord record = this.CurrentModel.CustSO.FocusedRecord;

           IExportSettings settings = UFIDA.U9.UI.PDHelper.PDPrintHelper.GetExportSettings(record);

           if (settings != null)

           {

               settings.PrintTemplateCatalogType = "UFIDA.U9.Cust.Demo.CustSO";

                settings.DefaultPrintTemplateID = GetDefalutPrintTemplateID();//设置打印参照

                settings.UserDataCallBack = new DataCallBackHandle(this.GetPrintData);

                e.Tag = settings;

           }

 

}

private void GetPrintData(object sender, DataCallBackEventArgs args)

       {

           args.ReturnData = GetPrintDataSet(sender, args);

       }

       private DataSet GetPrintDataSet(object sender, DataCallBackEventArgs args)

       {

           PrepareDataService prepareDataService = new PrepareDataService();

           return prepareDataService.GetDataSet(this.CurrentModel.CustSO, this.CurrentModel.CustSO_CustSOLine, "CustSO");

       }

       private string GetDefalutPrintTemplateID()

       {

           string printTemplateID = "";

           if (this.CurrentModel.CustSO.FocusedRecord != null

                && !string.IsNullOrEmpty(this.CurrentModel.CustSO.FocusedRecord.SODocType_PrintTemplate_TemplateID))

           {

                printTemplateID = this.CurrentModel.CustSO.FocusedRecord.SODocType_PrintTemplate_TemplateID;

           }

           return printTemplateID;

       }

实体开发的打印模板,可以根据当前单据界面ID进行过滤显示数据,打开对应打印模板:

 

如果打印取值数据不来源实体或者有些复杂运算,则无法使用上述GetPrintDataSet获取数据,需要自己写sql语句返回dataset作为数据源,返回给打印模板,Dataset数据集中的Table列名需要和打印模板字段名对应

自定义单据打印开发

建立UBF切换为开发模式UBF是开发模式时,不用再切换 建立“分析项目”的解决方案或者直接基于已有解决方案,新建“分析项目” 3、建立打...
点击下载文档
标签: # U9C
分享:
上一篇:单据开发下一篇:U9调试技巧
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息