CounterField属性
一些WorkSheetLine类型的表,大多都有个字段LineNum,用来标识当前行是第几行。如果在Form中对应该表的DataSource,设定属性CounterField为LineNum,那么AX就会自动给它分配顺序号,这个分配动作发生在FormDataSource的Create方法和表的initValue之间,在调用表的initValue之前该字段就已经初始化好了,同时被初始化好的还有TableId和DataAreaId,至于AX在什么地方初始化该字段的就不得而知了。
很容易就可以得出LineNum值的规律
1.如果是在当前行下面追加行,LineNum会在上一行的基础上+1;
2.如果在两行之间添加,LineNum=(preLineNum+nextNum)/2;
3.如果在第一行前面添加,LineNum会在上一行的基础上-1.
默认情况下,在用Ctrl+N创建记录的时候,AX会在当前行的前面添加行,这很不符合一般人的操作习惯,如何才能在新建时让其添加到当前行的后面?需要重载对应的DataSource的Create方法,将append设为true
很容易就可以得出LineNum值的规律
1.如果是在当前行下面追加行,LineNum会在上一行的基础上+1;
2.如果在两行之间添加,LineNum=(preLineNum+nextNum)/2;
3.如果在第一行前面添加,LineNum会在上一行的基础上-1.
默认情况下,在用Ctrl+N创建记录的时候,AX会在当前行的前面添加行,这很不符合一般人的操作习惯,如何才能在新建时让其添加到当前行的后面?需要重载对应的DataSource的Create方法,将append设为true
public void create(boolean _append = true)
{
super(_append);
}
{
super(_append);
}