Loading... ## 1. 明细表日期设置可选范围 ``` <script> // jQuery 文档准备好之后执行的函数 jQuery(document).ready(function() { // 设置已存在行的日期范围 // 获取明细行"detail_1"的行数 var rowCount = WfForm.getDetailRowCount("detail_1"); // 遍历每一行 for (var i = 0; i < rowCount; i++) { // 将字段名称"zdrq"转换为字段ID,附加行号 var m_zdrq_fieldid = WfForm.convertFieldNameToId("zdrq", "detail_1") + "_" + i; // 对应字段控制日期范围,-3表示最早日期为当前日期前三天,undefined 表示最晚日期不限制 WfForm.controlDateRange(m_zdrq_fieldid, -3, undefined); } // 注册添加新行的操作 // ACTION_ADDROW + "1" 表示添加明细行1的动作 WfForm.registerAction(WfForm.ACTION_ADDROW + "1", function(rowId) { // 使用setTimeout来等待新行被完全添加 setTimeout(function() { // 重新获取明细行的行数 var rowCount = WfForm.getDetailRowCount("detail_1"); // 遍历每一行 for (var i = 0; i < rowCount; i++) { // 将字段名称"zdrq"转换为字段ID,附加行号 var m_zdrq_fieldid = WfForm.convertFieldNameToId("zdrq", "detail_1") + "_" + i; // 对应字段控制日期范围,-3表示最早日期为当前日期前三天,undefined 表示最晚日期不限制 WfForm.controlDateRange(m_zdrq_fieldid, -3, undefined); } }, 0); }); }); </script> ``` ## 2. 明细表日期根据主表日期设置可选范围 ``` <script> // jQuery 文档准备好之后执行的函数 jQuery(document).ready(function() { // 设置已存在行的日期范围 // 获取明细行"detail_1"的行数 var rowCount = WfForm.getDetailRowCount("detail_1"); // 遍历每一行 for (var i = 0; i < rowCount; i++) { // 将字段名称"zdrq"转换为字段ID,附加行号 var m_zdrq_fieldid = WfForm.convertFieldNameToId("yjghrq", "detail_1") + "_" + i; // 获取"sqrq"字段的值 var sqrqValue = WfForm.getFieldValue("field12154"); // 替换成实际的"sqrq"字段的ID // 计算最早日期 var earliestDate = new Date(sqrqValue); earliestDate.setMonth(earliestDate.getMonth() + 3); // 获取当前日期 var currentDate = new Date(); // 对应字段控制日期范围,最早日期为当天,最晚日期为"sqrq"字段的后三个月 WfForm.controlDateRange(m_zdrq_fieldid, currentDate, earliestDate); } // 注册添加新行的操作 // ACTION_ADDROW + "1" 表示添加明细行1的动作 WfForm.registerAction(WfForm.ACTION_ADDROW + "1", function(rowId) { // 使用setTimeout来等待新行被完全添加 setTimeout(function() { // 重新获取明细行的行数 var rowCount = WfForm.getDetailRowCount("detail_1"); // 遍历每一行 for (var i = 0; i < rowCount; i++) { // 将字段名称"zdrq"转换为字段ID,附加行号 var m_zdrq_fieldid = WfForm.convertFieldNameToId("yjghrq", "detail_1") + "_" + i; // 获取"sqrq"字段的值 var sqrqValue = WfForm.getFieldValue("field12154"); // 替换成实际的"sqrq"字段的ID // 计算最早日期 var earliestDate = new Date(sqrqValue); earliestDate.setMonth(earliestDate.getMonth() + 3); // 获取当前日期 var currentDate = new Date(); // 对应字段控制日期范围,最早日期为当天,最晚日期为"sqrq"字段的后三个月 WfForm.controlDateRange(m_zdrq_fieldid, currentDate, earliestDate); } }, 0); }); }); </script> ``` Last modification:December 26, 2023 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 1 如果觉得我的文章对你有用,请随意赞赏