跟我一起学extjs5(34--单个模块的设计[2建立表单表bean])

来源:互联网 发布:网络通信安全管理员 编辑:程序博客网 时间:2024/05/16 05:14

跟我一起学extjs5(34--单个模块的设计[2建立表单表及bean])

         建立表单方案表:
CREATE TABLE [dbo].[_ModuleFormScheme]([tf_formSchemeId] [int] NOT NULL,[tf_moduleId] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,[tf_schemeOrder] [int] NOT NULL,[tf_schemeName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,[tf_isSystemScheme] [bit] NULL,[tf_windowHeight] [int] NULL,[tf_windowWidth] [int] NULL,[tf_numCols] [int] NULL,[tf_displayMode] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL,[tf_otherSetting] [nvarchar](max) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK___ModuleFormSchem__30F848ED] PRIMARY KEY CLUSTERED ([tf_formSchemeId] ASC)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY], CONSTRAINT [_ModuleFormScheme_ix1] UNIQUE NONCLUSTERED ([tf_moduleId] ASC,[tf_schemeOrder] ASC)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]) ON [PRIMARY]GOALTER TABLE [dbo].[_ModuleFormScheme]  WITH CHECK ADD  CONSTRAINT [_ModuleFormScheme_fk1] FOREIGN KEY([tf_moduleId])REFERENCES [dbo].[_Module] ([tf_moduleId])ON UPDATE CASCADEON DELETE CASCADE
        表单方案表的java bean:
package com.jfok.server.hibernate.system;import java.io.Serializable;import java.util.List;import javax.persistence.CascadeType;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.FetchType;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.ManyToOne;import javax.persistence.OneToMany;import javax.persistence.OrderBy;import org.codehaus.jackson.annotate.JsonIgnore;import org.hibernate.annotations.GenericGenerator;import com.jfok.server.common.annotation.FieldDefine;import com.jfok.server.common.annotation.TableDefine;@SuppressWarnings("serial")@Entity@org.hibernate.annotations.Entity(dynamicUpdate = true)@TableDefine(group = "系统模块", id = 9907, title = "模块Form方案", shortname = "Form方案")public class _ModuleFormScheme implements _IModuleControlInterface, Serializable {@Id@GeneratedValue(generator = "increment")@GenericGenerator(name = "increment", strategy = "increment")@FieldDefine(title = "ID号", number = 10)private Integer tf_formSchemeId;@JsonIgnore@ManyToOne(cascade = CascadeType.REFRESH, fetch = FetchType.EAGER)@JoinColumn(name = "tf_moduleId", nullable = false)@FieldDefine(title = "模块", number = 20)private _Module tf_Module;@FieldDefine(title = "顺序号", number = 30)@Column(nullable = false)private Integer tf_schemeOrder;@FieldDefine(title = "方案名称", nameField = true, number = 40)@Column(nullable = false, length = 50)private String tf_schemeName;@FieldDefine(title = "系统方案", number = 50)private Boolean tf_isSystemScheme;@FieldDefine(title = "窗口高", number = 60)private Integer tf_windowHeight;@FieldDefine(title = "窗口宽", number = 70)private Integer tf_windowWidth;@FieldDefine(title = "分栏数", number = 80)private Integer tf_numCols;@FieldDefine(title = "Form类型", number = 90)private String tf_displayMode;@FieldDefine(title = "附加设置", number = 100)private String tf_otherSetting;@OneToMany(targetEntity = _ModuleFormSchemeGroup.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)@JoinColumn(name = "tf_formSchemeId")@OrderBy("tf_formGroupOrder")private List<_ModuleFormSchemeGroup> moduleFormSchemeGroups;public _ModuleFormScheme() {} //getter and setter}


        表单分组的表的定义及bean:
CREATE TABLE [dbo].[_ModuleFormSchemeGroup]([tf_formGroupId] [int] NOT NULL,[tf_formSchemeId] [int] NOT NULL,[tf_formGroupOrder] [int] NOT NULL,[tf_formGroupName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,[tf_displayMode] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,[tf_collapsible] [bit] NULL,[tf_collapsed] [bit] NULL,[tf_numCols] [int] NULL,[tf_auditingGroup] [bit] NULL,[tf_approveGroup] [bit] NULL,[tf_subModuleName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,[tf_otherSetting] [nvarchar](max) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK___ModuleFormSchem__5070F446] PRIMARY KEY CLUSTERED ([tf_formGroupId] ASC)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]) ON [PRIMARY]GOALTER TABLE [dbo].[_ModuleFormSchemeGroup]  WITH CHECK ADD  CONSTRAINT [_ModuleFormSchemeGroup_fk1] FOREIGN KEY([tf_formSchemeId])REFERENCES [dbo].[_ModuleFormScheme] ([tf_formSchemeId])ON DELETE CASCADE

package com.jfok.server.hibernate.system;import java.io.Serializable;import java.util.List;import javax.persistence.CascadeType;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.FetchType;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.ManyToOne;import javax.persistence.OneToMany;import javax.persistence.OrderBy;import org.codehaus.jackson.annotate.JsonIgnore;import org.hibernate.annotations.GenericGenerator;import com.jfok.server.common.annotation.FieldDefine;import com.jfok.server.common.annotation.TableDefine;@SuppressWarnings("serial")@Entity@org.hibernate.annotations.Entity(dynamicUpdate = true)@TableDefine(group = "系统模块", id = 9908, title = "模块Form字段分组", shortname = "Form字段分组")public class _ModuleFormSchemeGroup implements _IModuleControlInterface, Serializable {public static final String FORMGROUPID = "tf_formGroupId";@Id@GeneratedValue(generator = "increment")@GenericGenerator(name = "increment", strategy = "increment")@FieldDefine(title = "ID号", number = 10)private Integer tf_formGroupId;@JsonIgnore@ManyToOne(cascade = CascadeType.REFRESH, fetch = FetchType.EAGER)@JoinColumn(name = "tf_formSchemeId", nullable = false)@FieldDefine(title = "模块Form方案", number = 20)private _ModuleFormScheme tf_ModuleFormScheme;@FieldDefine(title = "顺序号", number = 30)@Column(nullable = false)private Integer tf_formGroupOrder;@FieldDefine(title = "分组名称", nameField = true, number = 40)@Column(nullable = false, length = 50)private String tf_formGroupName;@FieldDefine(title = "显示方式", number = 50)@Column(length = 50)private String tf_displayMode;@FieldDefine(title = "分栏数", number = 60)private Integer tf_numCols;@FieldDefine(title = "审核组", number = 70)private Boolean tf_auditingGroup;@FieldDefine(title = "审批组", number = 80)private Boolean tf_approveGroup;@FieldDefine(title = "可折叠", number = 90)private Boolean tf_collapsible;@FieldDefine(title = "默认折叠", number = 100)private Boolean tf_collapsed;@FieldDefine(title = "子模块名称", remark = "设置此项,则在此组中显示该子模块", number = 110)@Column(length = 50)private String tf_subModuleName;@FieldDefine(title = "其他设置", number = 120)private String tf_otherSetting;@OneToMany(targetEntity = _ModuleFormSchemeGroupField.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)@JoinColumn(name = "tf_formGroupId")@OrderBy("tf_formFieldOrder")private List<_ModuleFormSchemeGroupField> moduleFormSchemeGroupFields;public _ModuleFormSchemeGroup() {}//getter and setter}

        表单字段定义和bean:
CREATE TABLE [dbo].[_ModuleFormSchemeGroupField]([tf_formFieldId] [int] NOT NULL,[tf_formGroupId] [int] NOT NULL,[tf_formFieldOrder] [int] NOT NULL,[tf_fieldId] [int] NOT NULL,[tf_width] [int] NULL,[tf_height] [int] NULL,[tf_colspan] [int] NULL,[tf_isAllowApprove] [bit] NULL,[tf_isStartRow] [bit] NULL,[tf_isEndrow] [bit] NULL,[tf_otherSetting] [nvarchar](max) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK___ModuleFormSchem__6FE99F9F] PRIMARY KEY CLUSTERED ([tf_formFieldId] ASC)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY], CONSTRAINT [_ModuleFormSchemeGroupField_ix1] UNIQUE NONCLUSTERED ([tf_formGroupId] ASC,[tf_fieldId] ASC)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]) ON [PRIMARY]GOALTER TABLE [dbo].[_ModuleFormSchemeGroupField]  WITH CHECK ADD  CONSTRAINT [_ModuleFormSchemeGroupField_fk1] FOREIGN KEY([tf_formGroupId])REFERENCES [dbo].[_ModuleFormSchemeGroup] ([tf_formGroupId])ON UPDATE CASCADEON DELETE CASCADEGOALTER TABLE [dbo].[_ModuleFormSchemeGroupField]  WITH CHECK ADD  CONSTRAINT [_ModuleFormSchemeGroupField_fk2] FOREIGN KEY([tf_fieldId])REFERENCES [dbo].[_ModuleField] ([tf_fieldId])ON UPDATE CASCADEON DELETE CASCADE

package com.jfok.server.hibernate.system;import java.io.Serializable;import javax.persistence.CascadeType;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.FetchType;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.ManyToOne;import org.codehaus.jackson.annotate.JsonIgnore;import org.hibernate.annotations.GenericGenerator;import com.jfok.server.common.annotation.FieldDefine;import com.jfok.server.common.annotation.TableDefine;@SuppressWarnings("serial")@Entity@org.hibernate.annotations.Entity(dynamicUpdate = true)@TableDefine(group = "系统模块", id = 9909, title = "模块Form字段", shortname = "Form字段")public class _ModuleFormSchemeGroupField implements _IModuleControlInterface, Serializable {@Id@GeneratedValue(generator = "increment")@GenericGenerator(name = "increment", strategy = "increment")@FieldDefine(title = "ID号", hidden = true, number = 10)private Integer tf_formFieldId;@JsonIgnore@ManyToOne(cascade = CascadeType.REFRESH, fetch = FetchType.LAZY)@JoinColumn(name = "tf_formGroupId", nullable = false)@FieldDefine(title = "模块Form字段分组", number = 20)private _ModuleFormSchemeGroup tf_ModuleFormSchemeGroup;@FieldDefine(title = "顺序号", number = 30)@Column(nullable = false)private Integer tf_formFieldOrder;@JsonIgnore@ManyToOne(cascade = CascadeType.REFRESH, fetch = FetchType.EAGER)@JoinColumn(name = "tf_fieldId", nullable = false)@FieldDefine(title = "模块字段", nameField = true, number = 40)private _ModuleField tf_ModuleField;// 这个字段用于将数据转成json传到前台时候,加入moduleField的id@Column(insertable = false, updatable = false)private Integer tf_fieldId;@FieldDefine(title = "宽度", number = 50)private Integer tf_width;@FieldDefine(title = "栏数", number = 60)private Integer tf_colspan;@FieldDefine(title = "结束行", number = 70)private Boolean tf_isEndRow;@FieldDefine(title = "附加设置", number = 80)private String tf_otherSetting;public _ModuleFormSchemeGroupField() {}//getter and setter}

        这样把字段,列表,表单的表和bean都加入好了,然后需要在_Module.java中加入下列语句:
@OneToMany(targetEntity = _MenuModule.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)@JoinColumn(name = "tf_moduleId")@OrderBy("tf_fieldOrder")private List<_ModuleField> moduleFields;@OneToMany(targetEntity = _ModuleFormScheme.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)@JoinColumn(name = "tf_moduleId")@OrderBy("tf_schemeOrder")private List<_ModuleFormScheme> moduleFormSchemes;@OneToMany(targetEntity = _ModuleGridScheme.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)@JoinColumn(name = "tf_moduleId")@OrderBy("tf_schemeOrder")private List<_ModuleGridScheme> moduleGridSchemes;//getter and setter

        把这三个模块的数据都加到“模块”的bean中,在将模块数据传递到前台的时候一起将字段,列表,表单的信息都传至前台。





2 0
原创粉丝点击