重复造轮子系列——基于FastReport设计打印模板实现桌面端WPF套打和商超POS高度自适应小票打印 一.引言 桌面端系统经常需要对接各种硬件设备,比如扫描器.读卡器.打印机等. 这里介绍下桌面端系统打印经常使用的场景. 1.一种是类似票务方面的系统需要打印固定格式的票据.比如景点门票.车票.电影票. 这种基本是根据模板调整位置套打. 2.还有一种是交易小票,比如商超POS小票,打印长度会随着内容的大小自动伸缩. 这种就不仅仅是固定格式的套打了,还得计算数据行以适应不同的打印长度. 打印方式…
WCF编程系列(三)地址与绑定   地址     地址指定了接收消息的位置,WCF中地址以统一资源标识符(URI)的形式指定.URI由通讯协议和位置路径两部分组成,如示例一中的: http://localhost:8000/ 表明通讯协议为http,位置是localhost(本机)的8000端口.     注意上述提到的消息是指一个独立的数据单元,一般由消息正文和消息头组成,而服务端与客户端的交互都是通过消息来进行的.     WCF中支持的传输协议包括HTTP.TCP.Peer network…
前言 在日常开发当中,excel的上传与解析是很常见的.根据业务不同,解析的数据模型也都不一样.不同的数据模型也就需要不同的校验逻辑,这往往需要写多套的代码进行字段的检验,如必填项,数据格式.为了避免重复编写逻辑检验代码,于是有了这篇文章. 第一步.读取Excel表格数据 public ActionResult UploadExcel() { ResultInfo<List<User>> result = new ResultInfo<List<User>>…
前言 在上一篇文章IT轮子系列(三)——如何给返回类型添加注释——Swagger的使用(二) 介绍如何使用swashbuckle的时候忽略了一个问题,就是默认创建的API项目在生成文档的时候是没有显示方法名,只显示了控制器的名字.如下图: User 控制器代码如下: public class UserController : BaseController { /// <summary> /// 获取用户信息 /// </summary> /// <param name=&qu…
ListItem item = new ListItem("--请选择--",""); ddlstPurchaser.Items.Insert(0, item); ddlstPurchaser2.Items.Insert(0, item); 上面这样写就会报错:DropDownList 不能绑定多个值. 正确的写法如下: ListItem item = new ListItem("--请选择--",""); ListItem…
重复造轮子系列——基于Ocelot实现类似支付宝接口模式的网关 引言 重复造轮子系列是自己平时的一些总结.有的轮子依赖社区提供的轮子为基础,这里把使用过程的一些觉得有意思的做个分享.有些思路或者方法在大神看来可能会比较low.但是能解决实际问题,相信有需要的人也在寻找类似的解决方案.这里可以算作是提供了一种思路,类似问题如果有读者能有更好的解决方案,愿闻其详. 若有阅读后引起内心冲突或者愤怒等不适以及自觉被误导者,不需要切换到抖音等欢乐频道进行综合调理,直接就可以在评论区吐槽. 网关简介 什么是…
前言 RPC 框架是后端攻城狮永远都绕不开的知识点,目前业界比较知名有 Dubbo.Spring Cloud 等.很多人都停留在了只会用的阶段,作为程序猿,拥有好奇心深入学习,才能有效提高自己的竞争力.再进一层的同学,会去翻源码,看功能是如何实现的,这是很好的开始.看源码过一段时间容易忘记,我觉得看完源码之后,更好的做法是自己动手开发一个出来,这样你对框架的理解会更深.我认为,"会用"."会读源码"."会写出来"是完全不一样的水平. 本系列 &q…
前言 最近猛然惊觉(说是猛然,是因为自己工作那么多年,居然不自知.不反省),在开发中,自己碰到一些常用的功能代码块,还是习惯性的baidu,然后copy....这样的操作,不知自己重复了多少遍.现在回想起来,其实每一次在网上搜索查找代码块,都耗费了自己一定的时间.精力. 既然如此,自己为什么不总结.汇总这些常用的轮子呢,又,为什么要一遍一遍的消耗时光? 一个字,懒! 懒的动手,怕麻烦. 出来混,总是要混的. 现在到自己还的时候了. 第一个款轮子——select 或者叫 Html.DropDown…
补记: 今天在阅读公司项目代码的时候,发现MVC中的dropdownlist已经封装了数据绑定方式.相对于第一篇文章,这样的方式更简便.简洁.现记录如下: 首先,创建我们的数据模型 如下图: 模型代码如下: public class SearchModel { public SearchModel() { SchoolList = new List<SelectListItem> { //初始化学校列表的默认选项 new SelectListItem{ Value=", Text=&…
1.基本使用 1>.创建Input <input id="dropDownList" /> <link href="@Url.Content("~/Content/kendo/2014.1.318/kendo.common.min.css")" rel="stylesheet" type="text/css" /> <link href="@Url.Conten…