在可配置BOM中有一个form会用的table控件:
在Inventory Management->Item 打开的FORM中,找到按钮:Setup->Configurations打开Configuration窗口:
在configuration FORM中点击按钮functions->configuration会弹出:
其中红线标出部分实际上是用table控件做的。那么table控件怎么使用呢?
以一个例子来展示table的简单使用,当然也是最使用的部分,我们所要做的会如下:
1. 建一个form,命名为:davTableTest,在其Design下加入一个table,并自动声明为’table’然后在table下新建4个stringEdit,将他们都自动声明为上图中的对应控件名字。然后再加入两个按钮。
2. Override table的editControl方法:
FormControl editControl(int col, int row)
{
switch (col)
{
case 1 :
return StringEdit;
case 2 :
return StringEdit1;
case 3:
return StringEdit2;
case 4:
return StringEdit3;
default:
}
return null;
}
这里case的1,2,3,4对应各个控件再AOT中的顺序,从1开始。Return的是对应的stringEdit(注意都是已经自动声明了的)
3. override table的方法colLabel:
public str colLabel(int _col)
{
super(_col);
switch (_col)
{
case 1 :
return "StringEdit";
case 2 :
return "StringEdit1";
case 3:
return "StringEdit2";
case 4:
return "StringEdit3";
default:
}
return "";
}
这里case对应的1,2,3,4依然是几个控件再aot中的次序,返回的是用来当作label的字符串。
4. override davTableTest的init方法:
public void init()
{
int row,col;
int rows,cols;
int counts;
;
super();
rows = 5;
cols = 4;
table.columns(cols);//设置table控件的列数
table.rows(rows);//设置table控件的行数,该句也可以不写
table.lock();
for(col = 1; col <= cols; col++)
{
for(row = 1;row <= rows;row++)
{
table.cell(col,row).data("0");//给table的对应cell赋值
table.updateCell(col,row);//更新
}
}
table.row(3);//将table的row设置为3
table.column(3);//将table的column设为3
table.unLock(false);
}
这里table.cell(col,row).data("0");可以写为:
FormTableCell cell;
Cell = table.cell(col,row);
Cell.data(“0”);
Table.cell的参数为(列,行)
5. override button 的clicked方法:
void clicked()
{
print "row:",table.row()," col:",table.column();
}
用来打出table的焦点停留再的row 和column的值
6. override button1 的clicked方法:
void clicked()
{
table.lock();
table.row(4);
table.column(4);
table.unLock(false);
print "row:",table.row()," col:",table.column();
}
用来将焦点设置到(4,4)的位置,并打印焦点位置
7. 最终结果是:
当你点击到table中的任何一个格子时系统都会去修改table的row和column,然后通过table.row()和table.column()就可以知道你现在是再那里。
Table下的stringEdit 也有DataSource 和DataField属性,但是…用不了的~如果有知道的请告诉我,谢谢了!
至于别的一些方法就不说了,因为看一下方法名大家都会用!