E9表单建模:获取数据库主键与明细行操作

需积分: 44 7 下载量 107 浏览量 更新于2024-08-06 收藏 1.2MB PDF 举报
"本文主要介绍的是在CISCO中型项目实战中,如何通过E9API进行OA开发,特别是关于获取数据库主键的操作。E9表单建模前端接口API提供了一系列方便开发者使用的工具,其中包含了获取明细行的所有行标识以及获取已存在明细行的数据库主键的方法。" 在E9API中,`ModeForm`对象是全局封装的对象,它包含了一系列用于表单操作的基础接口。这些接口使得开发者能够在单页应用模式下更有效地操作表单,而避免直接使用jQuery或原生JS操作DOM。 1. **转换字段名称到字段ID**: - `convertFieldNameToId`方法允许将字段名称转换为字段ID,以适应不同表单和环境。它接受三个参数:字段名称(`fieldname`)、表单标示(`symbol`,默认为主表`main`)和是否需要`field`前缀(`prefix`,默认为`true`)。例如,`ModeForm.convertFieldNameToId("zs")`将返回`fieldzs`,而`ModeForm.convertFieldNameToId("zs_mx","detail_1",false)`则返回`zs_mx_1`。 2. **获取单个字段值**: - `getFieldValue`方法用于获取指定字段的值,根据字段标示(`fieldMark`)如`field${字段ID}_${明细行号}`来定位。例如,`ModeForm.getFieldValue("field110")`将返回字段110的当前值。 3. **修改单个字段值**: - `changeFieldValue`方法可以修改字段值,并能自动触发相关的联动效果。它需要两个参数:字段标示(`fieldMark`)和一个包含新值的对象(`valueInfo`)。对于非浏览按钮字段,`valueInfo`仅包含`value`属性;对于浏览按钮或其他特殊情况,可能需要`specialobj`数组和`showhtml`属性。例如,`ModeForm.changeFieldValue("field110", {value: "新的值"})`将修改字段110的值为"新的值"。 在【描述】中提到的两个方法特别关注: - **获取明细行所有行标识**: - `getDetailAllRowIndexStr`函数用于获取明细表的所有行标识,例如`detail_2`会输出1,3等行号。这在处理多个明细行时非常有用,可以帮助追踪和操作明细数据。 - **获取明细已有行的数据库主键**: - `getDetailRowKey`方法专门用于获取已经存在的明细行的数据库主键。它需要一个字段标示(`fieldMark`),格式为`field${字段ID}_${明细行号}`,例如`ModeForm.getDetailRowKey("field112_3")`会返回明细第四行的主键。对于新增行或不存在的行,此方法将返回-1。 这些接口在开发过程中对于数据操作和表单交互至关重要,特别是处理具有明细表的复杂表单场景。了解并熟练使用这些API将极大地提高开发效率和代码质量。