附录:关于TableLayout
TableLayout 和 Html中的 Table 很相似,用于方便地书写布局,例如:
<TableLayout y=".bottom+2" width="100%">
<col width="20%"/>
<col width="15%"/>
<col width=".1"/>
<col width="15%"/>
<col width="20%"/>
<col width="20%"/>
<tr height="15"/>
<tr height="21">
<td><input id="id" LeftText="单证号: " width="2" nullAble="false"/></td>
<td/>
<td/>
<td><input id="dt" LeftText="发货日期: " width="2" defaultvalue="=now()" datatype="date"/></td>
</tr>
<tr height="4"/>
<tr height="21">
<td><input id="rate" LeftText="汇率: " width="2" editmask="#,###.0000" datatype="double" /></td>
<td/>
<td/>
<td><input id="cust" LeftText="客户: " width="2" type="droptreelist" droplistID="customer"/></td>
</tr>
</TableLayout>
可见,使用了TableLayout后,就不需要为每个对象书写令人讨厌的 x、x、x1、x2 等坐标信息了,并且位置容易辨认,便于修改。
TableLayout规则如下:
1.列宽在<col>中统一定义;
2.行高在<tr>中统一定义;
3.只能在<td>...</td>中嵌入对象;
4.内嵌对象将自动拉伸,在所在单元格满格显示;
5.内嵌对象 width、Height 属性的含义表示跨越的列数和行数;
6.除了 width、Height 和<Line>的x1,x2,y1,y2,内嵌对象其它坐标定位属性无效;
7.内嵌 input 对象的 leftSize、editSize 含义表示跨越的列数;
8.如果内嵌对象有leftText、且leftSize和editSize未定义时,如果width=2, 那么左列分配给leftText,右列分配给输入控件;
9.如果内嵌对象同上,当 width=3 时, 中间列自动作分隔用;
10.一个 Freeform 中允许有多个 TableLayout, 且支持 TableLayout 层层嵌套;
11.未包含嵌入对象的右侧的 <td> 可以省略;