树形单据体的应用说明(可以参考生产订单单据体的使用)

树形单据体的应用说明(可以参考生产订单单据体的使用)
1、BOSIDE制作单据,支持动态表单,单据,基础资料,报表等域模型。
2、添加列,和原来单据体一样。
3、设置主键列名,父级主键字段名,行类型字段名,节点图片字段名(没有可以为空)

-- 特别注意:
3.1、主键、父级主键、行类型等关键字段不能用于界面录入,必须由后台二开插件分配好值数据,尤其主键不能为空也不能重复,因为树的构造依赖主键和父级主键字段,因此这些字段必须设置为锁定且不可见字段,避免因录入错误数据而导致树形单据体算法错误。
3.2、主键填值不能重复--树主键重复会导致整棵树构建失败;
3.3、主键与父级主键的参考引用不能构成循环引用,一旦循环引用主键会导致整棵树构建失败;
4、运行时与单据体基本一致,只是支持行展开;

5、数据库数据结构,其中FEntryID,FParentID,FRowType是必须的。

6、行类型配置FRowType的枚举如下:
/// <summary>
/// 应用到RowType字段上,支持多种状态组合。
/// </summary>
public enum ENUM_ROWTYPE
{
Default = 0,
Header = 1,/// 0000 0000 0001,表头类型数据行
Normal = 16,///0000 0001 0000,普通数据行
Expand = 32,///0000 0010 0000,触发服务器展开数据行
ExpandWaiting = 64,///0000 0100 0000,包含展开等待数据请求行
Summary = 128///0001 0000 000,汇总类型数据行
}
7、对于Expand = 32,///0000 0010 0000,包含展开控件数据行
如果配置这种类型,客户端自动生成ExpandWaiting类型的下级行,并在展开是会发送ExpendingRow(EntryKey, RowIndex)事件到服务端请求数据,因此,返回数据后,务必把这一行数据修改为16,也就是修改成Normol类型。
8、动态表单的树表设置

9、特别注意
* 如果主键设置的不是内置的FEntryID,那么该字段必须在表格里面存在列,否则会出现数据错位情况。
* 动态展开树表控件的某个节点( TreeEntry )展开指定树表控件的某一行节点:
this.View.GetControl<TreeEntryGrid>(Key).ExpandedRow(rowIndex);
* 收起某个指定树表控件的某一行节点
this.View.GetControl<TreeEntryGrid>(Key).CollapsedRow(rowIndex);

py源码:
def BarItemClick(e):
if(e.BarItemKey=='tbFilter'):
this.View
树形单据体的应用说明(可以参考生产订单单据体的使用)
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



