- 回单打印ireport安装+入门整理
岳尚工
项目中的回单打印部分使用了jasperreport工具;第一次使用,通过网上的资料和自己的使用经验进行了一些入门的总结;供以后的新同事的学习入门;总体来说上手还是比较简单的,使用灵活;最麻烦的就是根据银行的回单模板来调整内容的位置;官方网址:https://community.jaspersoft.com/project/ireport-designer官网介绍:iReportisthefree,
- java调用jasperreport_JasperReport的使用
炁卺西蜀
环境和工具在java7和java8两个环境上分别进行了测试,不同的java版本,对jasperreports版本的要求不同。涉及工具包括:jasperreports5.6、jasperreports6.7、ireport5.6、jaspersoftstudio版本的工具对应情况Java7:jasperreports5.6ireport5.6,如果选择用jaspersoftstudio进行表格编辑
- 【iReport+JasperReport】3.在Java工程中用jasper导出Excel报表
光仔December
iReport
上一次我们使用JasperReport导出了PDF格式的报表文件,我们这次利用同样的jasper文件,来在硬盘中导出Excel报表。实现导出的Java的详细代码请查看上一篇,这里只修改最后的启动类代码。我们先回顾一下jasper的实际效果:然后我们修改一下启动类代码,之前打印pdf的代码为:packagecom.cn.org.ireport.test;importjava.io.ByteArray
- 2023年State-of-AI-Report阅读
韫秋鱼线
大模型人工智能搜索引擎
文章目录1、在研究进展方面2、在行业局势方面3、在现有政策方面4、在安全问题方面研究进展行业局势现有政策安全问题StateofAIReport系列至今已经是第六个年头了也成为了人工智能领域的风向标这个报告是由业界领先的AI从业者撰写除了总结过去也会对未来发展进行很多预测今年的StateofAI报告汇总和聚焦了过去一年里AI行业中炙手可热的事件报告中援引的数据都来自于知名的科技公司和研究小组由投资人
- 历史的重演
艾瑞克__
历史总是惊人的相似,生活也是,今天原本可以六点多下班的却加班到了九点多。是一个关于ireport报表的问题,我一直试了大概几十次,一直到最后才发现问题的根源在于被另一个方面限制住了,我只是在一个有范围的圈里徘徊,没有找到问题的所在,就像孙悟空和如来佛祖一样,看问题的角度应该上升一个维度,这种话经常会有人个自己说,每个人都会在生活中听到,但我承认自己在工作中意识到自己的时候非常少,有种只缘身在此山中
- 若依+lodop+jasperreports+ireport 设计打印票据格式(三)
lovewangyihui
elementuijava
若依+lodop+jasperreports+ireport设计打印票据格式(三)实现效果1需要循环的数据放入ireportdetai里面java打印beanpackagecom.qlh.yhis.report.prints.bean;importcom.qlh.yhis.common.utils.DictUtils;importcom.qlh.yhis.common.utils.Security
- PowerBI部署
这货不是王马勺
下载介质PowerBI官网下载地址(下载PBIdesktop、PBIreportserver、网关):https://powerbi.microsoft.com/zh-cn/downloads/https://powerbi.microsoft.com/zh-cn/report-server/此外还需要安装webview2,官网下载地址:https://developer.microsoft.co
- ireport怎么实现总计和小计?
其实我还好_454a
以下是一个实际操作的例子,先画好报表之后进行如下操作:1、新增图12、新增之后如下:图23、对新增的variable进行右击重命名图34、选中修改后的variable,即S_YBJSL进行设置如下:图45、将设置好的S_YBJSL选中拖到对应的框内,调整边框即可。图5.1图5.2
- Java开源报表JasperReport、iReport 使用详解
Rosanu
报表开发
前言:jasperReport(4.5最新版,下面用ireport代替)大家都很熟悉,但是打印用到jatoolsPrinter的,应该不多吧、这里介绍下struts2的ireport插件,以及jatoolsPrinter打印。1、首先得准备支持ireport的几个常用包,根据ireport版本的不同,包的新旧也不同,我用的ireport最新版的,所以用到的包也得是最新的,下面还会列出我遇到的包的问
- jasperreport开发手册--ireport教程
beststone1
jasperreportjasperreport
转自:https://blog.csdn.net/frankaqi/article/details/50203877iReporthttp://www.jasperreport.net一、介绍iReport是一个能够创建复杂报表的开源项目,它100%使用Java语言编写,是目前全球最为流行的开源报表设计器之一。由于它丰富的图形界面,你能够很快的创建出任何一种你想要的报表。以下是iReport一些比
- 【kaggle】AI Report 2023概览
⊙月
开阔见识人工智能
备注:内容源自GPT4对AIReport2023的整理,做了部分手工校正。下文GPT翻译“笔记本”:指的是jupyternotebookKaggleAIReport2023中只是各文章的介绍,文章详细内容在Linktonotebook超链接中。KaggleAIReport2023原文:https://storage.googleapis.com/kaggle-media/reports/2023_
- Java中使用ireport导出excel
Living_Z
后端Javaireportexcel
pom.xml文件中添加如下配置引入jar包我这里jasperreports用的是5.6版本spring版本是4.3.9net.sf.jasperreportsjasperreports5.6.0com.lowagieitext2.1.7org.olap4jolap4j1.2.0xml-apisxml-apis1.4.01org.codehaus.groovygroovy-all2.4.13com
- java读取iReport&Jaspereport 显示二维码,条形码
又是喝白开水
ireportjasperreportjava
遇到问题:报表中包含条形码(二维码),读取报表时报错。解决:一、首先在java项目的pom.xml引入依赖包mavencom.google.zxingcore2.2com.google.zxingjavase2.2非maven项目将ZXing’sCoreandJavaSEjars放到类加载路径这两个包我已传到我的网盘,地址:https://pan.baidu.com/s/1zslPVDlK0X9g
- jasperreport+ ireport 报表 linux系统下无法正常显示
泡菜爱上WaSabi
web项目大概已经做完。然而在部署到linux系统上时出现了项目中用jasperreport+ireport做的报表在网页查询中无法显示,但是在本地windows系统下显示正常。1.某度了一下,找到原因:Linux没有安装图形界面,无法进行图形的处理2.解决办法就是让JVM启动时不检测图形界面,由于我们是用的是Tomcat,所以在/tomcat/bin/catalina.sh中添加如下启动参数:C
- iOS原生 VS Flutter评测
Zac波
image本人之前分别尝试用iOS原生和Flutter写了同一个小应用,一个空气质量查询App,名字叫Aireport,目前已经分别上架了AppStore.Aireport(iOS原生)AireportFlutter(Flutter版)Aireport原本是我自己在用,但是在初步学习了Flutter后我决定用Flutter最大限度的去模仿iOS原生版的应用,以评估Flutter是否有能力做到以假乱
- ireport中传入list的处理
ocp114
ireportireport
今天在度娘怀里一整天,依然摸不到怎样处理对于后台的list传到ireport的方法,最后还是踏踏实实地乱打乱撞ireport这个软件,最后问题竟然解决了,再次贴出来,希望能帮到有需要的朋友。根据需求在后台创建list集合给list添加元素把list放到需要传到ireport中的参数集合中ireport中定义一个TOTAL_LIST和上面param参数键同名修改TOTAL_LIST的属性为java.
- Spring Boot集成JasperReport生成文档
开源字节
springboot后端java
由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲染生成PDF文档。一、使用Ireportdesigner5.6设计模板ireport的使用由于时间关系不便多说,设计好之后,将其进行编译生成jasper文件,然后将其拷贝放置于项目jasper目录下,以供访问获取该文件。二、在SpringB
- JasperReport的使用
杞梓林
环境和工具在java7和java8两个环境上分别进行了测试,不同的java版本,对jasperreports版本的要求不同。涉及工具包括:jasperreports5.6、jasperreports6.7、ireport5.6、jaspersoftstudio版本的工具对应情况Java7:jasperreports5.6ireport5.6,如果选择用jaspersoftstudio进行表格编辑
- MAC系统安装并运行ireport
翟书东
下载安装dmg:链接:https://pan.baidu.com/s/1qEA7rxXA3PkJpV98rgYvvw密码:683i安装:双击dmg出现再点击Application,然后把JaspersoftiReportDesigner拖进去安装成功。运行:双击打开,运行成功。(哈哈哈,当然没有这么简单,需要配置jdkhome,并且只能是1.7的,高的用不了)显示报内容然后终端运行:cd/Appl
- ireport
不一样的me
ireport
1.格式化时间:(newjava.text.SimpleDateFormat("yyyy-MM-ddHH:mm")).format($F{Date})2.使某个字段中的数据在特定条件下才打印出来通过设置字段的PrintWhenExpression,我们可以限定只有在某些特定的条件下字段值才会被打印出来,在PrintWhenExpression中需要设置Boolean型的表达式,如:newjava.
- ireport 使用JRMapCollectionDataSource作数据源
不一样的me
ireport
1.打印报表类publicclassXyErCiReportActionextendsBaseReportAction{privatestaticfinalStringREPORT_DIR="reports/xy/erci/";privatestaticfinalStringREPORT_NAME_XY_ZCXS=REPORT_DIR+"xy-erci";privatestaticfinalStr
- NR CSI(六) CSI reporting using PUCCH
modem协议笔记
CSI5G网络
之前NRCSI(二)theworkflowofCSIreport有对CSIreport的相关流程进行介绍,而这篇主要看下CSIreportingoverPUCCH的相关规定。CSIreport在PUCCH上传输的场景如上表红色字体,有三种场景,具体的对应的是Periodic和Semi-PersistentCSIreporting。而Semi-PersistentCSI与PeriodicCSI的区别
- SAP Fiori 将GUI中的自开发报表添加到Fiori 工作台
IamRunjiang
FioriabapSAP
1.首先我们在workbench中开发一个GUIreport这里我们开发的是一个简单的物料清单报表2.分配一个事务代码。注意这里的SAPGUIforHTML要打上勾3.创建语义对象(CreateSemanticObject)事物代码:path:SAPNetWeaver->UITechnologies->SAPFiori->ConfiguringLaunchpadContent->AddingApp
- 界面控件DevExpress.Drawing图形库早期增强功能分享
界面开发小八哥
devexpressUI开发界面控件c#
众所周知,DevExpress在v22.2发布周期中引入了全新的DevExpress.Drawing图形库(并且已经在随后的小更新中引入了一系列增强功能)。在这篇博文中,我们将总结在DevExpressv23.1中解决的一些问题,以及在EAP构建中为以下DevExpress产品提供的功能:OfficeFileAPIReportingBIDashboardDevExpressv23.1正式版下载(Q
- AUTOSAR-Ports的类型
梅尔文.古
AUTOSAR开发语言
简述:Ports是SWC和SWC做接口(Interface)通信使用,或者SWC通过RTE和BSW做接口(Interface)通信使用。软件组件的端口根据输入/输出方向可分为:需求端口(RequirePort,RPort):用于从其他软件组件获得所需数据或者所请求的操作。提供供端口(ProvidePort,PPort):用于对外提供某种数据或者某类操作。供需端口(ProvideandRequire
- NR CSI(五)Priority rules for CSI reports
modem协议笔记
CSI5G网络
欢迎关注同名微信公众号“modem协议笔记”。在发送NRCSIreport时,可能会存在要对部分CSIreports进行discard的情况,这时候就需要参考CSIreport优先级的高低,具体CSIreport优先级的计算规定在38.2145.2.5,简单看下。CSIreport的优先级根据上面蓝色的公式计算,涉及参数的取值根据配置确定,如下图示。如果第一个CSIreport计算出来的Pri_i
- Java实现TestNg+ExtentReport实现接口测试,并生成测试报告
qq_492448446
Java自动化测试java算法
一在pom.xml文件中引入TestNg以及ExtentReport包org.testngtestng6.9.10com.aventstackextentreports3.0.6com.vimalselvamtestng-extentsreport1.3.1二ExtentTestNGIReporterListener类实现监听,并能生成报告//解决样式加载不出来的问题packagecom.wela
- Power BI API调用注意事项 (By Power Automate)
DAVIS-BI
PowerPlatformRESTAPIPowerBIpostmanmicrosoftbi
注:本文最初发布于https://d-bi.gitee.io和medium,2023年6月迁移至CSDN前述本站关于实现PowerBIRESTAPI的博文已有许多,包括:PowerBIRESTAPI有多强大?PBI开发者必读PowerBIRESTAPI实战教程:PowerQuery为例利用Python调用PowerBIRESTAPIPowerBIReportServerRESTAPI实战这些博文尽
- Postman使用详解
流墨馨
测试工具的使用postman测试工具
Postman使用详解一、postman安装和使用官网下载地址:https://www.getpostman.com/apps直接傻瓜式安装就好了界面简介界面元素使用标题栏Home返回到首页Workspaces创建工作区,可邀请不同团队参与到不同的工作区内进行协同工作,在同一个工作区的协作者可共享API、集合、环境和工作中的其它组件ApINetwork发现、探索和共享APIReports访问报告E
- leetcode数据库(一)
StellaLiu萤窗小语
#sql数据库leetcode
数据库第一篇leetcode数据库大全数据库leetcode511GamePlayAnalysisI游戏玩家分析I找出每个玩家第一次登录的日期leetcode512GamePlayAnalysisII游戏玩家分析IIreportsthedevicethatisfirstloggedinforeachplayerleetcode534游戏玩家分析III玩家在日期A之前玩游戏的个数leetcode51
- java工厂模式
3213213333332132
java抽象工厂
工厂模式有
1、工厂方法
2、抽象工厂方法。
下面我的实现是抽象工厂方法,
给所有具体的产品类定一个通用的接口。
package 工厂模式;
/**
* 航天飞行接口
*
* @Description
* @author FuJianyong
* 2015-7-14下午02:42:05
*/
public interface SpaceF
- nginx频率限制+python测试
ronin47
nginx 频率 python
部分内容参考:http://www.abc3210.com/2013/web_04/82.shtml
首先说一下遇到这个问题是因为网站被攻击,阿里云报警,想到要限制一下访问频率,而不是限制ip(限制ip的方案稍后给出)。nginx连接资源被吃空返回状态码是502,添加本方案限制后返回599,与正常状态码区别开。步骤如下:
- java线程和线程池的使用
dyy_gusi
ThreadPoolthreadRunnabletimer
java线程和线程池
一、创建多线程的方式
java多线程很常见,如何使用多线程,如何创建线程,java中有两种方式,第一种是让自己的类实现Runnable接口,第二种是让自己的类继承Thread类。其实Thread类自己也是实现了Runnable接口。具体使用实例如下:
1、通过实现Runnable接口方式 1 2
- Linux
171815164
linux
ubuntu kernel
http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.1.2-unstable/
安卓sdk代理
mirrors.neusoft.edu.cn 80
输入法和jdk
sudo apt-get install fcitx
su
- Tomcat JDBC Connection Pool
g21121
Connection
Tomcat7 抛弃了以往的DBCP 采用了新的Tomcat Jdbc Pool 作为数据库连接组件,事实上DBCP已经被Hibernate 所抛弃,因为他存在很多问题,诸如:更新缓慢,bug较多,编译问题,代码复杂等等。
Tomcat Jdbc P
- 敲代码的一点想法
永夜-极光
java随笔感想
入门学习java编程已经半年了,一路敲代码下来,现在也才1w+行代码量,也就菜鸟水准吧,但是在整个学习过程中,我一直在想,为什么很多培训老师,网上的文章都是要我们背一些代码?比如学习Arraylist的时候,教师就让我们先参考源代码写一遍,然
- jvm指令集
程序员是怎么炼成的
jvm 指令集
转自:http://blog.csdn.net/hudashi/article/details/7062675#comments
将值推送至栈顶时 const ldc push load指令
const系列
该系列命令主要负责把简单的数值类型送到栈顶。(从常量池或者局部变量push到栈顶时均使用)
0x02 &nbs
- Oracle字符集的查看查询和Oracle字符集的设置修改
aijuans
oracle
本文主要讨论以下几个部分:如何查看查询oracle字符集、 修改设置字符集以及常见的oracle utf8字符集和oracle exp 字符集问题。
一、什么是Oracle字符集
Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货
- png在Ie6下透明度处理方法
antonyup_2006
css浏览器FirebugIE
由于之前到深圳现场支撑上线,当时为了解决个控件下载,我机器上的IE8老报个错,不得以把ie8卸载掉,换个Ie6,问题解决了,今天出差回来,用ie6登入另一个正在开发的系统,遇到了Png图片的问题,当然升级到ie8(ie8自带的开发人员工具调试前端页面JS之类的还是比较方便的,和FireBug一样,呵呵),这个问题就解决了,但稍微做了下这个问题的处理。
我们知道PNG是图像文件存储格式,查询资
- 表查询常用命令高级查询方法(二)
百合不是茶
oracle分页查询分组查询联合查询
----------------------------------------------------分组查询 group by having --平均工资和最高工资 select avg(sal)平均工资,max(sal) from emp ; --每个部门的平均工资和最高工资
- uploadify3.1版本参数使用详解
bijian1013
JavaScriptuploadify3.1
使用:
绑定的界面元素<input id='gallery'type='file'/>$("#gallery").uploadify({设置参数,参数如下});
设置的属性:
id: jQuery(this).attr('id'),//绑定的input的ID
langFile: 'http://ww
- 精通Oracle10编程SQL(17)使用ORACLE系统包
bijian1013
oracle数据库plsql
/*
*使用ORACLE系统包
*/
--1.DBMS_OUTPUT
--ENABLE:用于激活过程PUT,PUT_LINE,NEW_LINE,GET_LINE和GET_LINES的调用
--语法:DBMS_OUTPUT.enable(buffer_size in integer default 20000);
--DISABLE:用于禁止对过程PUT,PUT_LINE,NEW
- 【JVM一】JVM垃圾回收日志
bit1129
垃圾回收
将JVM垃圾回收的日志记录下来,对于分析垃圾回收的运行状态,进而调整内存分配(年轻代,老年代,永久代的内存分配)等是很有意义的。JVM与垃圾回收日志相关的参数包括:
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintGCDateStamps
-Xloggc
-XX:+PrintGC
通
- Toast使用
白糖_
toast
Android中的Toast是一种简易的消息提示框,toast提示框不能被用户点击,toast会根据用户设置的显示时间后自动消失。
创建Toast
两个方法创建Toast
makeText(Context context, int resId, int duration)
参数:context是toast显示在
- angular.identity
boyitech
AngularJSAngularJS API
angular.identiy 描述: 返回它第一参数的函数. 此函数多用于函数是编程. 使用方法: angular.identity(value); 参数详解: Param Type Details value
*
to be returned. 返回值: 传入的value 实例代码:
<!DOCTYPE HTML>
- java-两整数相除,求循环节
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
public class CircleDigitsInDivision {
/**
* 题目:求循环节,若整除则返回NULL,否则返回char*指向循环节。先写思路。函数原型:char*get_circle_digits(unsigned k,unsigned j)
- Java 日期 周 年
Chen.H
javaC++cC#
/**
* java日期操作(月末、周末等的日期操作)
*
* @author
*
*/
public class DateUtil {
/** */
/**
* 取得某天相加(减)後的那一天
*
* @param date
* @param num
*
- [高考与专业]欢迎广大高中毕业生加入自动控制与计算机应用专业
comsci
计算机
不知道现在的高校还设置这个宽口径专业没有,自动控制与计算机应用专业,我就是这个专业毕业的,这个专业的课程非常多,既要学习自动控制方面的课程,也要学习计算机专业的课程,对数学也要求比较高.....如果有这个专业,欢迎大家报考...毕业出来之后,就业的途径非常广.....
以后
- 分层查询(Hierarchical Queries)
daizj
oracle递归查询层次查询
Hierarchical Queries
If a table contains hierarchical data, then you can select rows in a hierarchical order using the hierarchical query clause:
hierarchical_query_clause::=
start with condi
- 数据迁移
daysinsun
数据迁移
最近公司在重构一个医疗系统,原来的系统是两个.Net系统,现需要重构到java中。数据库分别为SQL Server和Mysql,现需要将数据库统一为Hana数据库,发现了几个问题,但最后通过努力都解决了。
1、原本通过Hana的数据迁移工具把数据是可以迁移过去的,在MySQl里面的字段为TEXT类型的到Hana里面就存储不了了,最后不得不更改为clob。
2、在数据插入的时候有些字段特别长
- C语言学习二进制的表示示例
dcj3sjt126com
cbasic
进制的表示示例
# include <stdio.h>
int main(void)
{
int i = 0x32C;
printf("i = %d\n", i);
/*
printf的用法
%d表示以十进制输出
%x或%X表示以十六进制的输出
%o表示以八进制输出
*/
return 0;
}
- NsTimer 和 UITableViewCell 之间的控制
dcj3sjt126com
ios
情况是这样的:
一个UITableView, 每个Cell的内容是我自定义的 viewA viewA上面有很多的动画, 我需要添加NSTimer来做动画, 由于TableView的复用机制, 我添加的动画会不断开启, 没有停止, 动画会执行越来越多.
解决办法:
在配置cell的时候开始动画, 然后在cell结束显示的时候停止动画
查找cell结束显示的代理
- MySql中case when then 的使用
fanxiaolong
casewhenthenend
select "主键", "项目编号", "项目名称","项目创建时间", "项目状态","部门名称","创建人"
union
(select
pp.id as "主键",
pp.project_number as &
- Ehcache(01)——简介、基本操作
234390216
cacheehcache简介CacheManagercrud
Ehcache简介
目录
1 CacheManager
1.1 构造方法构建
1.2 静态方法构建
2 Cache
2.1&
- 最容易懂的javascript闭包学习入门
jackyrong
JavaScript
http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。
下面就是我的学习笔记,对于Javascript初学者应该是很有用的。
一、变量的作用域
要理解闭包,首先必须理解Javascript特殊
- 提升网站转化率的四步优化方案
php教程分享
数据结构PHP数据挖掘Google活动
网站开发完成后,我们在进行网站优化最关键的问题就是如何提高整体的转化率,这也是营销策略里最最重要的方面之一,并且也是网站综合运营实例的结果。文中分享了四大优化策略:调查、研究、优化、评估,这四大策略可以很好地帮助用户设计出高效的优化方案。
PHP开发的网站优化一个网站最关键和棘手的是,如何提高整体的转化率,这是任何营销策略里最重要的方面之一,而提升网站转化率是网站综合运营实力的结果。今天,我就分
- web开发里什么是HTML5的WebSocket?
naruto1990
Webhtml5浏览器socket
当前火起来的HTML5语言里面,很多学者们都还没有完全了解这语言的效果情况,我最喜欢的Web开发技术就是正迅速变得流行的 WebSocket API。WebSocket 提供了一个受欢迎的技术,以替代我们过去几年一直在用的Ajax技术。这个新的API提供了一个方法,从客户端使用简单的语法有效地推动消息到服务器。让我们看一看6个HTML5教程介绍里 的 WebSocket API:它可用于客户端、服
- Socket初步编程——简单实现群聊
Everyday都不同
socket网络编程初步认识
初次接触到socket网络编程,也参考了网络上众前辈的文章。尝试自己也写了一下,记录下过程吧:
服务端:(接收客户端消息并把它们打印出来)
public class SocketServer {
private List<Socket> socketList = new ArrayList<Socket>();
public s
- 面试:Hashtable与HashMap的区别(结合线程)
toknowme
昨天去了某钱公司面试,面试过程中被问道
Hashtable与HashMap的区别?当时就是回答了一点,Hashtable是线程安全的,HashMap是线程不安全的,说白了,就是Hashtable是的同步的,HashMap不是同步的,需要额外的处理一下。
今天就动手写了一个例子,直接看代码吧
package com.learn.lesson001;
import java
- MVC设计模式的总结
xp9802
设计模式mvc框架IOC
随着Web应用的商业逻辑包含逐渐复杂的公式分析计算、决策支持等,使客户机越
来越不堪重负,因此将系统的商业分离出来。单独形成一部分,这样三层结构产生了。
其中‘层’是逻辑上的划分。
三层体系结构是将整个系统划分为如图2.1所示的结构[3]
(1)表现层(Presentation layer):包含表示代码、用户交互GUI、数据验证。
该层用于向客户端用户提供GUI交互,它允许用户