zm
2020-05-18 a18bfacbf56b401f6e0fdae8710fbca4df8cff77
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
package com.changhong.epc.parsing.service.autosubmit.info;
 
import java.util.List;
import java.util.Map;
 
import com.changhong.epc.bean.count.format.CpnType;
import com.changhong.epc.bean.count.format.FormCpnInfo;
 
/**
 * 表单控件
 * @author WangYX
 *
 */
public interface FormCpn extends Map<Object, Object>, Cloneable{
 
    /**
     * 表单        (in,out)
     */
    String FORM_KEY     = "form";
    
    /**
     * 表单子控件    (in)
     */
    String CHILD_CPN     = "child";
 
    /**
     * 表单子控件值    (in)
     */
    String CHILD_CPN_VAL= "childCpnVal";
    
    /**
     * 触发事件
     */
    String FORMULA_KEY    = "formula";
    
    /**
     * 获得表单别名
     * @return
     */
    String getFieldId();
    
    /**
     * 更新表单别名
     * @param fieldId
     */
    void setFieldId(String fieldId);
    
    /**
     * 获得属性
     * Attribute
     * 获得子控件
     * FormCpn
     */
    @Override
    Object get(Object key);
    
    /**
     * 初始化控件
     * @param formFieldEntity
     */
    void init(FormCpnInfo formCpnInfo);
    
    /**
     * 获得属性
     * @param key
     * @param row
     * @return
     */
    default Object get(Object key, Integer row){
        return get(key);
    }
 
    /**
     * 添加属性
     * key:Attribute
     * 添加子控件
     * key:FormCpn
     * 添加表单
     * key:Form
     */
    @Override
    Object put(Object key, Object value);    
    
    /**
     * 添加属性
     * @param key
     * @param value
     * @param row
     * @return
     */
    default Object put(Object key, Object value, Integer row){
        return put(key, value);
    }
 
    /**
     * 添加表单控件监听
     */
    void setFormCpnListener(FormCpnListener formCpnListener);
    
    /**
     * 获得表单控件监听器
     * @return
     */
    FormCpnListener getFormCpnListener();
    
    /**
     * 获得控件类型
     * @return
     */
    CpnType getCpnType();
    
    /**
     * 获得父控件
     * @return
     */
    FormCpn getParentCpn();
    
    /**
     * 获得在子表单中的行号
     * @return
     */
    Integer getIndex();
 
    /**
     * 获得控件公式
     * @return
     */
    List<FormulaInfo> getFormulas();
 
    /**
     * 更新控件公式
     * @param formulas
     */
    void setFormulas(List<FormulaInfo> formulas);
    
    /**
     * 获得控件值
     * @return
     */
    Object getValue();
}