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

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

[sql] view plaincopyprint?
  1. CREATE TABLE [dbo].[_ModuleFormScheme](  
  2.     [tf_formSchemeId] [int] NOT NULL,  
  3.     [tf_moduleId] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,  
  4.     [tf_schemeOrder] [int] NOT NULL,  
  5.     [tf_schemeName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,  
  6.     [tf_isSystemScheme] [bit] NULL,  
  7.     [tf_windowHeight] [int] NULL,  
  8.     [tf_windowWidth] [int] NULL,  
  9.     [tf_numCols] [int] NULL,  
  10.     [tf_displayMode] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL,  
  11.     [tf_otherSetting] [nvarchar](max) COLLATE Chinese_PRC_CI_AS NULL,  
  12.  CONSTRAINT [PK___ModuleFormSchem__30F848ED] PRIMARY KEY CLUSTERED   
  13. (  
  14.     [tf_formSchemeId] ASC  
  15. )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY],  
  16.  CONSTRAINT [_ModuleFormScheme_ix1] UNIQUE NONCLUSTERED   
  17. (  
  18.     [tf_moduleId] ASC,  
  19.     [tf_schemeOrder] ASC  
  20. )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]  
  21. ON [PRIMARY]  
  22.   
  23. GO  
  24. ALTER TABLE [dbo].[_ModuleFormScheme]  WITH CHECK ADD  CONSTRAINT [_ModuleFormScheme_fk1] FOREIGN KEY([tf_moduleId])  
  25. REFERENCES [dbo].[_Module] ([tf_moduleId])  
  26. ON UPDATE CASCADE  
  27. ON DELETE CASCADE  
        表单方案表的java bean:
[java] view plaincopyprint?
  1. package com.jfok.server.hibernate.system;  
  2.   
  3. import java.io.Serializable;  
  4. import java.util.List;  
  5. import javax.persistence.CascadeType;  
  6. import javax.persistence.Column;  
  7. import javax.persistence.Entity;  
  8. import javax.persistence.FetchType;  
  9. import javax.persistence.GeneratedValue;  
  10. import javax.persistence.Id;  
  11. import javax.persistence.JoinColumn;  
  12. import javax.persistence.ManyToOne;  
  13. import javax.persistence.OneToMany;  
  14. import javax.persistence.OrderBy;  
  15.   
  16. import org.codehaus.jackson.annotate.JsonIgnore;  
  17. import org.hibernate.annotations.GenericGenerator;  
  18. import com.jfok.server.common.annotation.FieldDefine;  
  19. import com.jfok.server.common.annotation.TableDefine;  
  20.   
  21. @SuppressWarnings("serial")  
  22. @Entity  
  23. @org.hibernate.annotations.Entity(dynamicUpdate = true)  
  24. @TableDefine(group = "系统模块", id = 9907, title = "模块Form方案", shortname = "Form方案")  
  25. public class _ModuleFormScheme implements _IModuleControlInterface, Serializable {  
  26.   
  27.     @Id  
  28.     @GeneratedValue(generator = "increment")  
  29.     @GenericGenerator(name = "increment", strategy = "increment")  
  30.     @FieldDefine(title = "ID号", number = 10)  
  31.     private Integer tf_formSchemeId;  
  32.   
  33.     @JsonIgnore  
  34.     @ManyToOne(cascade = CascadeType.REFRESH, fetch = FetchType.EAGER)  
  35.     @JoinColumn(name = "tf_moduleId", nullable = false)  
  36.     @FieldDefine(title = "模块", number = 20)  
  37.     private _Module tf_Module;  
  38.   
  39.     @FieldDefine(title = "顺序号", number = 30)  
  40.     @Column(nullable = false)  
  41.     private Integer tf_schemeOrder;  
  42.   
  43.     @FieldDefine(title = "方案名称", nameField = true, number = 40)  
  44.     @Column(nullable = false, length = 50)  
  45.     private String tf_schemeName;  
  46.   
  47.     @FieldDefine(title = "系统方案", number = 50)  
  48.     private Boolean tf_isSystemScheme;  
  49.   
  50.     @FieldDefine(title = "窗口高", number = 60)  
  51.     private Integer tf_windowHeight;  
  52.   
  53.     @FieldDefine(title = "窗口宽", number = 70)  
  54.     private Integer tf_windowWidth;  
  55.   
  56.     @FieldDefine(title = "分栏数", number = 80)  
  57.     private Integer tf_numCols;  
  58.   
  59.     @FieldDefine(title = "Form类型", number = 90)  
  60.     private String tf_displayMode;  
  61.   
  62.     @FieldDefine(title = "附加设置", number = 100)  
  63.     private String tf_otherSetting;  
  64.   
  65.     @OneToMany(targetEntity = _ModuleFormSchemeGroup.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)  
  66.     @JoinColumn(name = "tf_formSchemeId")  
  67.     @OrderBy("tf_formGroupOrder")     
  68.     private List<_ModuleFormSchemeGroup> moduleFormSchemeGroups;  
  69.   
  70.     public _ModuleFormScheme() {  
  71.   
  72.     }  
  73.  //getter and setter  
  74. }  


        表单分组的表的定义及bean:
[sql] view plaincopyprint?
  1. CREATE TABLE [dbo].[_ModuleFormSchemeGroup](  
  2.     [tf_formGroupId] [int] NOT NULL,  
  3.     [tf_formSchemeId] [int] NOT NULL,  
  4.     [tf_formGroupOrder] [int] NOT NULL,  
  5.     [tf_formGroupName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,  
  6.     [tf_displayMode] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,  
  7.     [tf_collapsible] [bit] NULL,  
  8.     [tf_collapsed] [bit] NULL,  
  9.     [tf_numCols] [int] NULL,  
  10.     [tf_auditingGroup] [bit] NULL,  
  11.     [tf_approveGroup] [bit] NULL,  
  12.     [tf_subModuleName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,  
  13.     [tf_otherSetting] [nvarchar](max) COLLATE Chinese_PRC_CI_AS NULL,  
  14.  CONSTRAINT [PK___ModuleFormSchem__5070F446] PRIMARY KEY CLUSTERED   
  15. (  
  16.     [tf_formGroupId] ASC  
  17. )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]  
  18. ON [PRIMARY]  
  19.   
  20. GO  
  21. ALTER TABLE [dbo].[_ModuleFormSchemeGroup]  WITH CHECK ADD  CONSTRAINT [_ModuleFormSchemeGroup_fk1] FOREIGN KEY([tf_formSchemeId])  
  22. REFERENCES [dbo].[_ModuleFormScheme] ([tf_formSchemeId])  
  23. ON DELETE CASCADE  

[java] view plaincopyprint?
  1. package com.jfok.server.hibernate.system;  
  2.   
  3. import java.io.Serializable;  
  4. import java.util.List;  
  5. import javax.persistence.CascadeType;  
  6. import javax.persistence.Column;  
  7. import javax.persistence.Entity;  
  8. import javax.persistence.FetchType;  
  9. import javax.persistence.GeneratedValue;  
  10. import javax.persistence.Id;  
  11. import javax.persistence.JoinColumn;  
  12. import javax.persistence.ManyToOne;  
  13. import javax.persistence.OneToMany;  
  14. import javax.persistence.OrderBy;  
  15.   
  16. import org.codehaus.jackson.annotate.JsonIgnore;  
  17. import org.hibernate.annotations.GenericGenerator;  
  18. import com.jfok.server.common.annotation.FieldDefine;  
  19. import com.jfok.server.common.annotation.TableDefine;  
  20.   
  21. @SuppressWarnings("serial")  
  22. @Entity  
  23. @org.hibernate.annotations.Entity(dynamicUpdate = true)  
  24. @TableDefine(group = "系统模块", id = 9908, title = "模块Form字段分组", shortname = "Form字段分组")  
  25. public class _ModuleFormSchemeGroup implements _IModuleControlInterface, Serializable {  
  26.   
  27.     public static final String FORMGROUPID = "tf_formGroupId";  
  28.   
  29.     @Id  
  30.     @GeneratedValue(generator = "increment")  
  31.     @GenericGenerator(name = "increment", strategy = "increment")  
  32.     @FieldDefine(title = "ID号", number = 10)  
  33.     private Integer tf_formGroupId;  
  34.   
  35.     @JsonIgnore  
  36.     @ManyToOne(cascade = CascadeType.REFRESH, fetch = FetchType.EAGER)  
  37.     @JoinColumn(name = "tf_formSchemeId", nullable = false)  
  38.     @FieldDefine(title = "模块Form方案", number = 20)  
  39.     private _ModuleFormScheme tf_ModuleFormScheme;  
  40.   
  41.     @FieldDefine(title = "顺序号", number = 30)  
  42.     @Column(nullable = false)  
  43.     private Integer tf_formGroupOrder;  
  44.   
  45.     @FieldDefine(title = "分组名称", nameField = true, number = 40)  
  46.     @Column(nullable = false, length = 50)  
  47.     private String tf_formGroupName;  
  48.   
  49.     @FieldDefine(title = "显示方式", number = 50)  
  50.     @Column(length = 50)  
  51.     private String tf_displayMode;  
  52.   
  53.     @FieldDefine(title = "分栏数", number = 60)  
  54.     private Integer tf_numCols;  
  55.   
  56.     @FieldDefine(title = "审核组", number = 70)  
  57.     private Boolean tf_auditingGroup;  
  58.   
  59.     @FieldDefine(title = "审批组", number = 80)  
  60.     private Boolean tf_approveGroup;  
  61.   
  62.     @FieldDefine(title = "可折叠", number = 90)  
  63.     private Boolean tf_collapsible;  
  64.   
  65.     @FieldDefine(title = "默认折叠", number = 100)  
  66.     private Boolean tf_collapsed;  
  67.   
  68.     @FieldDefine(title = "子模块名称", remark = "设置此项,则在此组中显示该子模块", number = 110)  
  69.     @Column(length = 50)  
  70.     private String tf_subModuleName;  
  71.   
  72.     @FieldDefine(title = "其他设置", number = 120)  
  73.     private String tf_otherSetting;  
  74.   
  75.     @OneToMany(targetEntity = _ModuleFormSchemeGroupField.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)  
  76.     @JoinColumn(name = "tf_formGroupId")  
  77.     @OrderBy("tf_formFieldOrder")  
  78.     private List<_ModuleFormSchemeGroupField> moduleFormSchemeGroupFields;  
  79.   
  80.     public _ModuleFormSchemeGroup() {  
  81.   
  82.     }  
  83.   
  84. //getter and setter  
  85. }  

        表单字段定义和bean:
[sql] view plaincopyprint?
  1. CREATE TABLE [dbo].[_ModuleFormSchemeGroupField](  
  2.     [tf_formFieldId] [int] NOT NULL,  
  3.     [tf_formGroupId] [int] NOT NULL,  
  4.     [tf_formFieldOrder] [int] NOT NULL,  
  5.     [tf_fieldId] [int] NOT NULL,  
  6.     [tf_width] [int] NULL,  
  7.     [tf_height] [int] NULL,  
  8.     [tf_colspan] [int] NULL,  
  9.     [tf_isAllowApprove] [bit] NULL,  
  10.     [tf_isStartRow] [bit] NULL,  
  11.     [tf_isEndrow] [bit] NULL,  
  12.     [tf_otherSetting] [nvarchar](max) COLLATE Chinese_PRC_CI_AS NULL,  
  13.  CONSTRAINT [PK___ModuleFormSchem__6FE99F9F] PRIMARY KEY CLUSTERED   
  14. (  
  15.     [tf_formFieldId] ASC  
  16. )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY],  
  17.  CONSTRAINT [_ModuleFormSchemeGroupField_ix1] UNIQUE NONCLUSTERED   
  18. (  
  19.     [tf_formGroupId] ASC,  
  20.     [tf_fieldId] ASC  
  21. )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]  
  22. ON [PRIMARY]  
  23.   
  24. GO  
  25. ALTER TABLE [dbo].[_ModuleFormSchemeGroupField]  WITH CHECK ADD  CONSTRAINT [_ModuleFormSchemeGroupField_fk1] FOREIGN KEY([tf_formGroupId])  
  26. REFERENCES [dbo].[_ModuleFormSchemeGroup] ([tf_formGroupId])  
  27. ON UPDATE CASCADE  
  28. ON DELETE CASCADE  
  29. GO  
  30. ALTER TABLE [dbo].[_ModuleFormSchemeGroupField]  WITH CHECK ADD  CONSTRAINT [_ModuleFormSchemeGroupField_fk2] FOREIGN KEY([tf_fieldId])  
  31. REFERENCES [dbo].[_ModuleField] ([tf_fieldId])  
  32. ON UPDATE CASCADE  
  33. ON DELETE CASCADE  

[java] view plaincopyprint?
  1. package com.jfok.server.hibernate.system;  
  2.   
  3. import java.io.Serializable;  
  4.   
  5. import javax.persistence.CascadeType;  
  6. import javax.persistence.Column;  
  7. import javax.persistence.Entity;  
  8. import javax.persistence.FetchType;  
  9. import javax.persistence.GeneratedValue;  
  10. import javax.persistence.Id;  
  11. import javax.persistence.JoinColumn;  
  12. import javax.persistence.ManyToOne;  
  13. import org.codehaus.jackson.annotate.JsonIgnore;  
  14. import org.hibernate.annotations.GenericGenerator;  
  15. import com.jfok.server.common.annotation.FieldDefine;  
  16. import com.jfok.server.common.annotation.TableDefine;  
  17.   
  18. @SuppressWarnings("serial")  
  19. @Entity  
  20. @org.hibernate.annotations.Entity(dynamicUpdate = true)  
  21. @TableDefine(group = "系统模块", id = 9909, title = "模块Form字段", shortname = "Form字段")  
  22. public class _ModuleFormSchemeGroupField implements _IModuleControlInterface, Serializable {  
  23.     @Id  
  24.     @GeneratedValue(generator = "increment")  
  25.     @GenericGenerator(name = "increment", strategy = "increment")  
  26.     @FieldDefine(title = "ID号", hidden = true, number = 10)  
  27.     private Integer tf_formFieldId;  
  28.   
  29.     @JsonIgnore  
  30.     @ManyToOne(cascade = CascadeType.REFRESH, fetch = FetchType.LAZY)  
  31.     @JoinColumn(name = "tf_formGroupId", nullable = false)  
  32.     @FieldDefine(title = "模块Form字段分组", number = 20)  
  33.     private _ModuleFormSchemeGroup tf_ModuleFormSchemeGroup;  
  34.   
  35.     @FieldDefine(title = "顺序号", number = 30)  
  36.     @Column(nullable = false)  
  37.     private Integer tf_formFieldOrder;  
  38.   
  39.     @JsonIgnore  
  40.     @ManyToOne(cascade = CascadeType.REFRESH, fetch = FetchType.EAGER)  
  41.     @JoinColumn(name = "tf_fieldId", nullable = false)  
  42.     @FieldDefine(title = "模块字段", nameField = true, number = 40)  
  43.     private _ModuleField tf_ModuleField;  
  44.   
  45.     // 这个字段用于将数据转成json传到前台时候,加入moduleField的id  
  46.     @Column(insertable = false, updatable = false)  
  47.     private Integer tf_fieldId;  
  48.   
  49.     @FieldDefine(title = "宽度", number = 50)  
  50.     private Integer tf_width;  
  51.   
  52.     @FieldDefine(title = "栏数", number = 60)  
  53.     private Integer tf_colspan;  
  54.   
  55.     @FieldDefine(title = "结束行", number = 70)  
  56.     private Boolean tf_isEndRow;  
  57.   
  58.     @FieldDefine(title = "附加设置", number = 80)  
  59.     private String tf_otherSetting;  
  60.   
  61.     public _ModuleFormSchemeGroupField() {  
  62.   
  63.     }  
  64.   
  65. //getter and setter  
  66.   
  67. }  

        这样把字段,列表,表单的表和bean都加入好了,然后需要在_Module.java中加入下列语句:
[java] view plaincopyprint?
  1.     @OneToMany(targetEntity = _MenuModule.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)  
  2.     @JoinColumn(name = "tf_moduleId")  
  3.     @OrderBy("tf_fieldOrder")  
  4.     private List<_ModuleField> moduleFields;  
  5.   
  6.     @OneToMany(targetEntity = _ModuleFormScheme.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)  
  7.     @JoinColumn(name = "tf_moduleId")  
  8.     @OrderBy("tf_schemeOrder")  
  9.     private List<_ModuleFormScheme> moduleFormSchemes;  
  10.   
  11.     @OneToMany(targetEntity = _ModuleGridScheme.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)  
  12.     @JoinColumn(name = "tf_moduleId")  
  13.     @OrderBy("tf_schemeOrder")  
  14.     private List<_ModuleGridScheme> moduleGridSchemes;  
  15.   
  16.   
  17. //getter and setter  

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

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