Asp.Net Zero通用打印实现
Asp.Net Zero是一款非常优秀的web框架,可以用来快速构建业务系统。框架满足了业务系统所需的大部分通用功能,但是系统必须的打印报表功能一直没有实现。下面给大家介绍如何在zero中集成打印功能,可实现模板设计、套打、批量打印、指令打印、条码/二维码打印等等。
首先需要设计一套灵活用于系统的打印业务,业务设计如下:
首先在core层中新增Prints文件夹,prints中新建PrintTemplate
public class PrintTemplate : Entity<int>, ISoftDelete, IMustHaveTenant
{
public int TenantId { get; set; } public bool IsDeleted { get; set; } /// <summary>
/// 模块
/// </summary>
[StringLength()]
public string AppServiceName { get; set; } /// <summary>
/// 模板名称
/// </summary>
[StringLength()]
public string TemplateName { get; set; } /// <summary>
/// 默认模板
/// </summary>
public bool Defaule { get; set; } /// <summary>
/// 模板内容
/// </summary>
public string TemplateContent { get; set; } /// <summary>
/// 备注
/// </summary>
[StringLength()]
public string Remark { get; set; }
}
PrintTemplate创建后,添加IPrintTemplateManager领域服务方便接口调用:
public interface IPrintTemplateManager: IDomainService
{
Task<List<string>> GetTemplates(string serviceName); Task<string> Print(string serviceName,string name);
}
Print是选择打印模板后获取模板内容,这里可以单次直接获取模板列表和内容,但是可能业务发展后,打印模板会有很多,所以分步获取更加高效。
GetTemplates是获取当前模块打印列表,只有模板名称没有内容。
数据库迁移后在Application.Shared层中添加IPrintManagerAppService接口
public interface IPrintManagerAppService: IApplicationService
{
Task CreateOrUpdatePrint(CreateOrEditPrintInput input); Task DeletePrint(EntityDto<int> input); Task<PagedResultDto<CreateOrEditPrintInput>> GetPrints(GetPrintInput input); }
打印模板是根据业务模块,也就是abp的应用服务进行分类,在报表页面需要获取当前模块所有打印模板列表:
result.PrintTemplates = await _printTemplateManager.GetTemplates("SomeoneAppService");
选择打印模板后获取模板内容并打印:
public async Task<string> Print(string templateName)
{
return await _printTemplateManager.Print("PurchaseManagerAppService", templateName);
}
接口实现发布后,在angular中新增打印管理模块,用于统一管理模板,该模块应该由开发人员进行维护。
模板设计如下,可以根据需求设计其他样式模板:
总结:到这里打印业务已经实现,最后需要在angular中集成打印控件才能开始打印。
打印控件实现方式:https://www.cnblogs.com/william-xu/p/11098562.html
Asp.Net Zero通用打印实现的更多相关文章
- 在ASP.NET2.0里打印网页指定的内容(比如打印网页里的一个Table)
原文:在ASP.NET2.0里打印网页指定的内容(比如打印网页里的一个Table) 打印指定内容: <html> <head> <script type= " ...
- asp.net MVC通用分页组件 使用方便 通用性强
asp.net MVC通用分页组件 使用方便 通用性强 该分页控件的显示逻辑: 1 当前页面反色突出显示,链接不可点击 2 第一页时首页链接不可点击 3 最后一页时尾页链接不可点击 4 当前页面左 ...
- (16)ASP.NET Core 通用主机(HostBuilder)
1.前言 ASP.NET Core应用程序可以配置和启动主机(Host).主机负责应用程序启动和生命周期管理.通用主机用于无法处理HTTP请求的应用程序.通用主机的用途是将HTTP管道从Web主机AP ...
- ASP.NET MVC通用权限管理系统(响应布局)源码更新介绍
一.asp.net mvc 通用权限管理系统(响应布局)源码主要以下特点: AngelRM(Asp.net MVC)是基于asp.net(C#)MVC+前端bootstrap+ztree+lodash ...
- html页面提交JSON,ASP页面接收并打印
jsonSubmit.html 1)能过 javascript函数驱动请求页 <!DOCTYPE html> <html> <head> <title> ...
- Asp.Net Mvc通用后台管理系统,bootstrap+easyui+权限管理+ORM
产品清单: 1.整站源码,非编译版,方便进行业务的二次开发 2.通用模块与用户等基础数据的数据库脚本 3.bootstrap3.3.1 AceAdmin模板源码 4.easyui1.3.5源码 5.F ...
- asp.net lodop单个打印
1.首先在列表页面增加以下代码 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind=&quo ...
- asp.net 实现在线打印功能,jQuery打印插件PrintArea实现自动分页
使用的组件:jQuery打印插件PrintArea,有兴趣的可以研究一下. 使用方法略过,这里将介绍如何实现打印多页是可以分页. 现在提供两种方法思路: 1.根据特定的打印机型号和使用的纸张类型,然后 ...
- Linux下通用打印系统CUPS使用教程
昨天研究了一下关于在Linux下实现打印操作的相关内容,整理记录如下: 1.什么是CUPS CUPS(Common UNIX Printing System,即通用Unix打印系统)是FedoraCo ...
随机推荐
- html5 iphone input 输入法 弹窗将页面顶起 解决办法
给 input 添加失焦事件,然后滚动视图 input.search(type="text",@blur="scrollTop") scrollTop(){ w ...
- MySQL安装Write configuration file 提示:configuration file template my.ini Error code-1
在安装MySQL的时候, 在最后安装时,最后一步出现Write configuration file没成功勾选,并提示:configuration file template D:\mysql\my- ...
- 使用Java实现hello/hi的简单网络聊天程序
Socket又称套接字,是基于应用服务与TCP/IP通信之间的一个抽象,它是计算机之间进行通信的一种约定或一种方式.通过socket这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送 ...
- SpringBoot默认日志的使用方法及常用配置
SpringBoot默认采用slf4j+logback 的组合形式,但也提供对JUL.log4j2.Logback提供了默认配置. 我们使用IDEA的spring初始化创建一个springboot项目 ...
- [转帖]nginx配置ssl证书实现https访问
https://www.cnblogs.com/tianhei/p/7726505.html 今天就是如此处理的 感觉挺不错的. 一,环境说明 服务器系统:ubuntu16.04LTS 服务器IP地址 ...
- 基于.NET架构的树形动态报表设计与应用
在一些统计报表中,利用树形结构报表来实现维度钻取功能是十分常见的.通过逐级钻取,可以快速查看更细粒度的指标数据,如项目施工进度报告等. 使用葡萄城报表控件——ActiveReports ,即可轻松设计 ...
- SpringBoot起飞系列-国际化(六)
一.前言 国际化这个功能可能我们不常用,但是在有需要的地方还是必须要上的,今天我们就来看一下怎么在我们的web开发中配置国际化,让我们的网站可以根据语言来展示不同的形式.本文接续上一篇SpringBo ...
- 【记忆化搜索】Navy maneuvers
[来源]: 2008年哈尔滨区域赛题目 [题目链接]: http://acm.hdu.edu.cn/showproblem.php?pid=2452 [参考博客]: https://blog.csdn ...
- mybatis插入数据返回主键
原来之前一直用错了... keyProperty是表示将返回的主键设置为该方法参数的对应属性中去,而不是用返回值的形式的去获取.
- THUWC2020游记
Day0 找了旅馆吃了东西才发现明天要去西郊宾馆,换旅馆?? 清华还安排住宿? asas了. 下午出去和kx&face报PKU的名.然后门卫不让进,老吕开启忽悠模式,然后很快就忽悠过去了.(我 ...