Q:如何实现,子表单的记录条目根据我主表单的一个字段动态显示,如下图:
子表单"jzggy_子表单"的数据能够根据主表单中"jp2"字段的值动态显示符合条件的记录?
A:可以通过刷新重计算来实现,勾选"jp2"字段的刷新功能,包含元素""的重计算功能,然后对应的子表单视图则选择为sql过滤模式,即可实现.
具体实现方式如下:
1.勾选图中jp2字段的刷新功能,勾选包含元素的重计算功能.
2.将上图中包含元素包含的视图"jzggy_子表单_sql"的过滤模式选择为sql模式,写入下图中的代码(详细代码附在最尾):
前台效果:
jp2字段没有值,就显示所有子表单的记录:
jp2字段有值,就显示表单"jzggy_子表单"中 j2字段的值等于jp2字段的值的记录:
视图过滤的代码:
ps:如果第二张图片中的包含元素没有勾选父子关系,那么就不具备主子关系,但是存在关联关系,可以通过关联文档来获取表单中jp2的字段值- var doc =getParentDocument(); //获取父文档对象 (ps:如果没有勾选父子关系,那么就需要换成获取关联文档对象:var doc =getRelateDocument();)
- var value =doc.getItemValueAsString("fp2"); //获取主表单(关联文档)的字段值
- println("value====="+value);
- var sql ="";
- if(value != null && value !="") //判断主表单(关联文档)的字段值非空
- {
- sql = "select * from tlk_jzggy_子表单 where item_j1 ='"+value+"' "; //返回查询条件符合主表单(关联文档)的字段值的记录的sql
- println("sql====="+sql);
- }
- else //否则查询主表单(关联文档)的所有记录
- {
- sql ="select * from tlk_jzggy_子表单 ";
- }
- sql;
复制代码 |