`
jimmy.shine
  • 浏览: 390414 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

报表开发方式简要描述

 
阅读更多

最简单的方式,是适合于POJO的需求,通过Annotation的方式来实现。

 

具体可以参见下面的代码范例:

@ReportClass(
		title = "Users",
		reportSheets = {
				@ReportSheet(
						freezed = 1,
						index = false,
						sheetName = "User",
						reportPrimitiveFields = {@ReportPrimitiveField(fieldName="email",width=20),
												 @ReportPrimitiveField(fieldName="name",width=15,
														 url="http://localhost:8080/vaalhaai/framework/identityUserAction!open.do?id=${id}"),
												 @ReportPrimitiveField(fieldName="loginId",width=20),
												 @ReportPrimitiveField(fieldName="nickName")
												 }
				),
		
				@ReportSheet(
						freezed = 2,
						index = true,
						sheetName = "All",
						reportPrimitiveFields = {@ReportPrimitiveField(fieldName="email",width=20),
												 @ReportPrimitiveField(fieldName="name",width=15),
												 @ReportPrimitiveField(fieldName="loginId",width=20),
												 @ReportPrimitiveField(fieldName="nickName",width = 20),
												 @ReportPrimitiveField(fieldName="password",width = 10)
												 },
						reportEntityCollectionFields = {
							@ReportEntityCollectionField(
									className="com.vaalhaai.framework.identity.entity.Group",
									sheetName="Group",
									fieldName="groups")	
						}
				)
			}
		)
public class User extends BaseEntity {

	private static final long serialVersionUID = 83202417663407938L;

	/** password */
	@Column(name = "PASSWORD")
	@Size(min = 6, max = 128)
	private String password;

	/** login id */
	@Column(name = "LOGIN_ID", unique = true)
	@Index(name = "FRAMEWORK_IDENTITY_USER_LOGINID", columnNames = "LOGIN_ID")
	@Size(min = 5, max = 50)
	private String loginId;

	/** email */
	@Column(name = "EMAIL")
	@Email
	@Size(max = 50)
	private String email;

	/** birthday */
	@Column(name = "BIRTHDAY")
	@Temporal(TemporalType.DATE)
	private Date birthday;

	/** gender */
	@Column(name = "GENDER")
	@Size(max = 10)
	private String gender;

	@Column(name = "NICK_NAME")
	@Size(max = 50)
	private String nickName;

	@Column(name = "CELLPHONE")
	@Size(max = 50)
	private String cellphone;

	@Column(name = "TELEPHONE")
	@Size(max = 50)
	private String telephone;

	@ManyToMany(cascade = { CascadeType.ALL })
	@JoinTable(name = "VAALHAAI_IDENTITY_USER_REF_GROUP", joinColumns = { @JoinColumn(name = "GROUP_ID") }, inverseJoinColumns = { @JoinColumn(name = "USER_ID") })
	private Set<Group> groups = new HashSet<Group>();

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getLoginId() {
		return loginId;
	}

	public void setLoginId(String loginId) {
		this.loginId = loginId;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public Date getBirthday() {
		return birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	/*
	 * public void setBirthday(String birthday) throws ParseException {
	 * this.birthday = DateUtil.parseDate(birthday); }
	 */
	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public String getNickName() {
		return nickName;
	}

	public void setNickName(String nickName) {
		this.nickName = nickName;
	}

	/**
	 * @return the cellphone
	 */
	public String getCellphone() {
		return cellphone;
	}

	/**
	 * @param cellphone
	 *            the cellphone to set
	 */
	public void setCellphone(String cellphone) {
		this.cellphone = cellphone;
	}

	/**
	 * @return the groups
	 */
	public Set<Group> getGroups() {
		return groups;
	}

	/**
	 * @param groups
	 *            the groups to set
	 */
	public void setGroups(Set<Group> groups) {
		this.groups = groups;
	}

	public String getTelephone() {
		return telephone;
	}

	public void setTelephone(String telephone) {
		this.telephone = telephone;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = super.hashCode();
		result = prime * result + ((loginId == null) ? 0 : loginId.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (!super.equals(obj))
			return false;
		if (getClass() != obj.getClass())
			return false;
		User other = (User) obj;
		if (loginId == null) {
			if (other.loginId != null)
				return false;
		} else if (!loginId.equals(other.loginId))
			return false;
		return true;
	}

}

 定义可以在Annotation上面完成。

至于对于标题的中文支持,可以通过国际化的方式来实现。

User		= 用户

name 		= 姓名
loginId 	= 登录名
password 	= 密码
email		= 邮箱
birthday	= 出生日期
gender		= 性别
nickName	= 别名
cellphone	= 手机
telephone	= 电话
groups		= 群组

#报表
Users		= 用户
All			= 所有信息

 

如果你不喜欢用Annotation的方式,那就期待下一个版本吧,会支持使用数据库定制的方式!

分享到:
评论

相关推荐

    Delphi7-程序设计与开发技术大全.pdf

    是对Delphi 最贴切的描述。 本书几乎囊括了Delphi 7 进行实用程序开发的全部知识,并结合大量实用而又有代 表性的开发示例进行讲解。使读者能够方便、顺利地掌握Delphi 的各项开发技术。 全书分为22 章,各部分既...

    JAVA学生信息管理系统需求及设计分析.doc

    学生管理要求 学生情况 无权输入 当前输入 统计表 成绩表 补考成绩表 管理要求 奖励处分表 学生资料表 修复学,退学 报表 第2层DD "加工名:学生管理 " "简要描述:能够对所有与学生学生有关的信息进行处理 " "输入...

    毕业设计依据VB+sql火车站售票管理系统(论文+系统+答辩PPT+需求分析)

    第二章概述了管理信息系统的相关理论,第三章对本系统进行了系统分析和设计,包括功能需求描述、数据库设计等内容。第四章介绍了本系统的具体实现。最后一章对本系统开发过程中结论及使用过程中的体会进行了总结。 ...

    基于VB毕业设计-VB+sql火车站售票管理系统(论文+系统+答辩PPT+需求分析).zip

    现代化的车站售票是集预定车票、售票 、退票、车次查询、报表及其他各种服务,车站售票组织庞大,服务项目多,信息量大,要想提高劳动生产,降低成本,提高服务质量和管理水平,进而促进经济效益,必须借助计算机来...

    系统设计方案模板.doc

    1 引言 编写目的 说明编写详细设计方案的... 用户界面设计 规定人机界面的内容、界面风格、调用方式等,包括所谓的表单设计、报表设计和用户 需要的打印输出等设计。此部分内容可能比较多。 6 数据库系统设计 此数据库

    毕业设计依据vb火车站售票管理系统设计(论文+源代码+答辩PPT)

    现代化的车站售票是集预定车票、售票 、退票、车次查询、报表及其他各种服务,车站售票组织庞大,服务项目多,信息量大,要想提高劳动生产,降低成本,提高服务质量和管理水平,进而促进经济效益,必须借助计算机来...

    软件资料文档标准规格

    4.1 对系统的简要描述 4.2 与现有系统比较的优越性 4.3 处理流程和数据流程 4.4 采用建议系统可能带来的影响  ● 对设备的影响  ● 对现有软件的影响  ● 对用户的影响  ● 对系统运行的影响  ● 对...

    数据库设计方法.doc

    流出数据流 组成:{数据结构}数据量存取方式} 处理过程描述={处理过程名介绍说明输入:{数据流}输出:{数 据流}, 处理:{简要介绍说明}} 2. 概念结构设计阶段 通过对用户需求进行综合、归纳和抽象形成个独立...

    CRM客户关系管理系统数据库表设计需求规格说明书.doc

    * chc_title:nvarchar(200),概要(对销售机会的简要描述),可以为空。 * chc_rate:int,成功机率,可以为空。 * chc_linkman:nvarchar(50),联系人,可以为空。 * chc_tel:nvarchar(50),联系人电话,可以为空...

    基于Activiti的合理化建议管理系统设计与实现

    随着电网企业内部沟通制度的健全,各组员工的合理化建议上报需求越来越大,...实际应用表明,基于Activiti的合理化建议管理系统为企业提供了高效的合理化建议管理、流程监控、统计报表等功能,达到了预期的开发目标。

    数据库原理(第5版)

    第2章介绍了关系模型,定义了基本的关系术语,还介绍了规范化原则的基本概念,并描述了规范化过程。 第3章讲述了基本的SQL语句,介绍了定义数据的基本SQL语句,如SQL SELECT语句和数据修改语句。本书并不介绍高级的...

    ERP5.0财务总帐系统设计文档

    7.1.5 结算方式设置 7 7.1.6 部门设置 7 7.1.7 公司职员设置 7 7.1.8 币种及汇率设置 7 7.1.9 客户设置 7 7.1.10 供应商设置 7 7.1.11 项目分类设置 7 7.1.12 项目目录定义 7 7.1.13 多栏帐栏目定义 7 7.2 记帐凭证...

    云点滴客户关系管理CRM OA系统 v2.4.zip

    功能强大的报表统计使得用户大数据分析变的简单,更加容易的制定销售战略。集成的短信发送 使得用户随时随地的为公司客户发送短信。简单易用的操作界面使得用户快速上手。 云点滴客户关系管理CRM功能介绍; 一、...

    云点滴客户关系管理CRM OA系统 v1.02.13.rar

    简要介绍: 云点滴客户解决方案是针对中小企业量身制定的具有简单易用、功能强大、永久免费使用、终身升级维护的智能化客户解决方案。依托功能强大、安全稳定的阿里云** 台,性价比高、扩展性好、安全性高、稳定性好...

    “智能”的客服语音分析系统.doc

    项目类型:省公司自立" "项目 " "专利情况: " "成果简介:简要描述成果目的和意义,解决的问题,取得的社会和经济效益。 " "随着我公司业务的不断发展和客户服务工作内容和要求的不断提高,客服来话量不断提升," ...

    客户管理系统

    功能强大的报表统计使得用户大数据分析变的简单,更加容易的制定销售战略。集成的短信发送 使得用户随时随地的为公司客户发送短信。简单易用的操作界面使得用户快速上手。 功能介绍; 一、个人中心:通讯录备忘录...

    软件测试规范

    软件测试规范 目 录 一.概述 ...............................................................................................................................................................

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    作者通过总结各自多年的软件开发和教学培训经验,与大家分享了掌握Oracle SQL所独有的丰富功能的技巧所在,内容涵盖SQL执行、联结、集合、分析函数、子句、事务处理等多个方面。读者可以学习到以下几个方面的技巧:...

Global site tag (gtag.js) - Google Analytics