Extjs5开发学习33单个模块的设计1建立表和bean.docx

上传人:b****5 文档编号:28006240 上传时间:2023-07-07 格式:DOCX 页数:25 大小:62.89KB
下载 相关 举报
Extjs5开发学习33单个模块的设计1建立表和bean.docx_第1页
第1页 / 共25页
Extjs5开发学习33单个模块的设计1建立表和bean.docx_第2页
第2页 / 共25页
Extjs5开发学习33单个模块的设计1建立表和bean.docx_第3页
第3页 / 共25页
Extjs5开发学习33单个模块的设计1建立表和bean.docx_第4页
第4页 / 共25页
Extjs5开发学习33单个模块的设计1建立表和bean.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

Extjs5开发学习33单个模块的设计1建立表和bean.docx

《Extjs5开发学习33单个模块的设计1建立表和bean.docx》由会员分享,可在线阅读,更多相关《Extjs5开发学习33单个模块的设计1建立表和bean.docx(25页珍藏版)》请在冰豆网上搜索。

Extjs5开发学习33单个模块的设计1建立表和bean.docx

Extjs5开发学习33单个模块的设计1建立表和bean

Extjs5开发学习-33-单个模块的设计[1建立表和bean]

现在开始进入这个系统的第一个核心部分,就是如何对模块的功能进行设计。

请看下图,一个最简单的模块包括的内容有:

模块属性,字段属性,列表定义和表单定义。

    在上面的定义中,一个模块可以有n个字段组成,可以有若干个列表方案和表单方案;每一个列表和表单可以有若干个组组成,每个组下面又有若干个字段。

这样的设计也符合这个教程的前20节中设计出来的功能。

现在要做的就是把这些功能做成前后台交互的。

    先开始模块字段和列表方案的定义。

以上各个方案的定义也都是放在数据库中的,因此先要建立好各个表和javabean。

    建立模块字段的表_ModuleField。

[sql] viewplain copy

 

1.CREATE TABLE [dbo].[_ModuleField](  

2.    [tf_fieldId] [int] NOT NULL,  

3.    [tf_moduleId] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,  

4.    [tf_fieldOrder] [int] NULL,  

5.    [tf_title] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,  

6.    [tf_fieldName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,  

7.    [tf_fieldType] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,  

8.    [tf_fieldGroup] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,  

9.    [tf_fieldLen] [int] NULL,  

10.    [tf_propertyTypeId] [int] NULL,  

11.    [tf_isHidden] [bit] NULL,  

12.    [tf_isReadonly] [bit] NULL,  

13.    [tf_isRequired] [bit] NULL,  

14.    [tf_isDisable] [bit] NULL,  

15.    [tf_isUserDefine] [bit] NULL,  

16.    [tf_userDefine] [nvarchar](max) COLLATE Chinese_PRC_CI_AS NULL,  

17.    [tf_allowGroup] [bit] NULL,  

18.    [tf_allowSummary] [bit] NULL,  

19.    [tf_otherSetting] [nvarchar](max) COLLATE Chinese_PRC_CI_AS NULL,  

20.    [tf_defaultValue] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,  

21.    [tf_remark] [nvarchar](max) COLLATE Chinese_PRC_CI_AS NULL,  

22.    [tf_fieldRelation] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL,  

23.    [tf_newNeedSelected] [bit] NULL,  

24.    [tf_showNavigatorTree] [bit] NULL,  

25.    [tf_DBFieldName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,  

26.    [tf_DBformula] [nvarchar](max) COLLATE Chinese_PRC_CI_AS NULL,  

27.    [tf_divisor] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,  

28.    [tf_denominator] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,  

29.    [tf_allowNew] [bit] NULL,  

30.    [tf_allowEdit] [bit] NULL,  

31.    [tf_allowInsertExcel] [bit] NULL,  

32.    [tf_allowEditExcel] [bit] NULL,  

33.    [tf_haveAttachment] [bit] NULL,  

34.    [tf_isChartCategory] [bit] NULL,  

35.    [tf_isChartNumeric] [bit] NULL,  

36. CONSTRAINT [PK___ModuleField__4D94879B] PRIMARY KEY CLUSTERED   

37.(  

38.    [tf_fieldId] ASC  

39.)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY],  

40. CONSTRAINT [_ModuleField_ix1] UNIQUE NONCLUSTERED   

41.(  

42.    [tf_moduleId] ASC,  

43.    [tf_title] ASC,  

44.    [tf_fieldName] ASC  

45.)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]  

46.) ON [PRIMARY]  

    模块字段的:

javabean

[java] viewplain copy

 

1.package com.jfok.server.hibernate.system;  

2.  

3.import java.io.Serializable;  

4.import javax.persistence.CascadeType;  

5.import javax.persistence.Column;  

6.import javax.persistence.Entity;  

7.import javax.persistence.FetchType;  

8.import javax.persistence.Id;  

9.import javax.persistence.JoinColumn;  

10.import javax.persistence.ManyToOne;  

11.import javax.persistence.Transient;  

12.import org.codehaus.jackson.annotate.JsonIgnore;  

13.import org.codehaus.jackson.annotate.JsonProperty;  

14.import org.codehaus.jackson.map.annotate.JsonSerialize;  

15.  

16.import mon.annotation.FieldDefine;  

17.import mon.annotation.TableDefine;  

18.  

19./** 

20. * 每个模块的各个字段 

21. *  

22. * @author jfok 

23. *  

24. */  

25.@JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)  

26.@SuppressWarnings("serial")  

27.@Entity  

28.@org.hibernate.annotations.Entity(dynamicUpdate = true)  

29.@TableDefine(group = "系统模块", id = 9903, title = "模块字段")  

30.public class _ModuleField implements Serializable, _IModuleControlInterface {  

31.  

32.    public static final String FIELDID = "tf_fieldId";  

33.    public static final String FIELDNAME = "tf_fieldName";  

34.    public static final String MANYTOONE = "ManyToOne";  

35.    public static final String ONETOONE = "OneToOne";  

36.    public static final String ONETOMANY = "OneToMany";  

37.  

38.    @Id  

39.    @FieldDefine(title = "字段序号", number = 10)  

40.    @Column(nullable = false)  

41.    private Integer tf_fieldId;  

42.  

43.    @JsonIgnore  

44.    @ManyToOne(cascade = CascadeType.REFRESH, fetch = FetchType.EAGER)  

45.    @JoinColumn(name = "tf_moduleId", nullable = false)  

46.    @FieldDefine(title = "所属模块", number = 20)  

47.    private _Module tf_Module;  

48.  

49.    @JsonIgnore  

50.    @FieldDefine(title = "顺序号", number = 30)  

51.    private Integer tf_fieldOrder;  

52.  

53.    @FieldDefine(title = "字段描述", number = 40, nameField = true)  

54.    @Column(length = 50, nullable = false)  

55.    private String tf_title;  

56.  

57.    @FieldDefine(title = "字段名", number = 50)  

58.    @Column(length = 50, nullable = false)  

59.    private String tf_fieldName;  

60.  

61.    @FieldDefine(title = "类型", number = 60)  

62.    @Column(length = 50, nullable = false)  

63.    private String tf_fieldType;  

64.  

65.    @JsonProperty("l")  

66.    @FieldDefine(title = "长度", number = 70)  

67.    private Integer tf_fieldLen;  

68.  

69.    @FieldDefine(title = "字段分组", number = 75)  

70.    private String tf_fieldGroup;  

71.  

72.    // 字段的关联类型 ,ManyToOne,OneToOne,OneToMany  

73.    @JsonIgnore  

74.    @FieldDefine(title = "关联类型", number = 80)  

75.    @Column(length = 20)  

76.    private String tf_fieldRelation;  

77.  

78.    @JsonIgnore  

79.    @FieldDefine(title = "表字段实名", remark = "数据表中的实际字段名", number = 90)  

80.    @Column(length = 50)  

81.    private String tf_DBfieldName;  

82.  

83.    @JsonIgnore  

84.    @FieldDefine(title = "字段公式", remark = "公式字段的具体内容", number = 100)  

85.    private String tf_DBformula;  

86.  

87.    @JsonIgnore  

88.    @FieldDefine(title = "百分比分子", number = 105, remark = "如果这个字段是二个字段的比值,设置分子字段和分母字段,可以在汇总的时候也得出正确的比值")  

89.    @Column(length = 50)  

90.    private String tf_divisor;  

91.  

92.    @JsonIgnore  

93.    @FieldDefine(title = "百分比分母", number = 106)  

94.    @Column(length = 50)  

95.    private String tf_denominator;  

96.  

97.    @FieldDefine(title = "缺省值", number = 110)  

98.    @Column(length = 50)  

99.    private String tf_defaultValue;  

100.  

101.    // @ManyToOne(cascade = CascadeType.REFRESH, fetch = FetchType.EAGER)  

102.    // @JoinColumn(name = "tf_propertyTypeId")  

103.    // @FieldDefine(title = "字段列表属性", number = 120)  

104.    // private _PropertyType tf_PropertyType;  

105.  

106.    @FieldDefine(title = "禁用", number = 130)  

107.    private Boolean tf_isDisable;  

108.  

109.    @FieldDefine(title = "隐藏", number = 140)  

110.    private Boolean tf_isHidden;  

111.  

112.    @JsonIgnore(false)  

113.    @FieldDefine(title = "必填", number = 150)  

114.    private Boolean tf_isRequired;  

115.  

116.    @FieldDefine(title = "可新增", number = 160)  

117.    private Boolean tf_allowNew;  

118.  

119.    @FieldDefine(title = "可修改", number = 170)  

120.    private Boolean tf_allowEdit;  

121.  

122.    @JsonIgnore  

123.    @FieldDefine(title = "可导航", remark = "选中才可以在导航树中显示", number = 180)  

124.    private Boolean tf_showNavigatorTree;  

125.  

126.    @FieldDefine(title = "可分组", number = 190)  

127.    private Boolean tf_allowGroup; // 是否允许分组  

128.  

129.    @FieldDefine(title = "小计", number = 200)  

130.    private Boolean tf_allowSummary; // 是否可以小计及总计  

131.  

132.    @FieldDefine(title = "新增选中", remark = "在新增一条记录时,是否必须在导航树中选择此字段的值", number = 210)  

133.    private Boolean tf_newNeedSelected;  

134.  

135.    @FieldDefine(title = "字段附件", remark = "可以增加针对此字段的附件", number = 212)  

136.    private Boolean tf_haveAttachment;  

137.  

138.    @JsonIgnore  

139.    @FieldDefine(title = "自定义", number = 220)  

140.    private Boolean tf_isUserDefine;  

141.  

142.    @FieldDefine(title = "其他设置", number = 230)  

143.    private String tf_otherSetting;  

144.  

145.    @JsonIgnore  

146.    @FieldDefine(title = "Excel导入", remark = "Excel导入新增时加入此字段可新增", number = 240)  

147.    private Boolean tf_allowInsertExcel;  

148.  

149.    @JsonIgnore  

150.    @FieldDefine(title = "Excel修改", remark = "Excel修改后再导入时此字段可更新", number = 250)  

151.    private Boolean tf_allowEditExcel;  

152.  

153.    @FieldDefine(title = "图表项目", remark = "此字段可以作为图表分析中的一个项目", number = 260)  

154.    private Boolean tf_isChartCategory;  

155.  

156.    @FieldDefine(title = "图表数据", remark = "此字段可以作为图表分析中的一个数据", number = 270)  

157.    private Boolean tf_isChartNumeric;  

158.  

159.    @FieldDefine(title = "备注", number = 800)  

160.    private String tf_remark;  

161.  

162.    // 如果是一个manytoone的字段,那么显示实际ID的字段 _  

163.    @Transient  

164.    private String manytoone_IdName;  

165.  

166.    // 如果是一个manytoone的字段,那么显示实际title的字段 _  

167.    @Transient  

168.    private String manytoone_TitleName;  

169.  

170.    public _ModuleField() {  

171.  

172.    }  

173.    //getter and setter  

174.}  

    在上面的这个java类中,对模块字段设置了许多的属性可供定义,这个可以根据软件的扩充自己进行加入和处理。

在这个例子中,我只能讲一下最简单的一些属性的应用。

    建立模块列表方案表,列表方案分组表和列表方案分组的字段表。

[sql] viewplain copy

 

1.CREATE TABLE [dbo].[_ModuleGridScheme](  

2.    [tf_gridSchemeId] [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_isAllowEditInGrid] [bit] NULL,  

8.    [tf_autoShowFilterEditor] [bit] NULL,  

9.    [tf_dblClickAction] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,  

10.    [tf_defaultSort] [nvarchar](50) CO

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 广告传媒

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1