You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Bluebeam Revu中多自动填充下拉菜单冲突问题?

问题原因与修复方案

你遇到的第一个下拉菜单失效问题,核心原因是重复声明了全局变量contarr和names。每段脚本都会重新给这两个变量赋值,导致第一个菜单依赖的墨西哥地区数组被后面的危地马拉、智利数组覆盖,自然无法正常触发自动填充。

修复后的完整脚本

// 墨西哥地区数据
var mexicoArr = [
    ["Mexico", "Interior/Exterior", "Status", "Visita"],
    ["Ciudad de Mexico, Mexico", "Interior", "Diseño", "Visita: 20 de mayo 2025"],
    ["Chihuahua, Mexico", "Exterior", "En proceso de licitación", "Visita: 30 de junio 2025"],
    ["Cualican, Mexico", "Interior", "En proceso de licitación", "Visita: 20 de julio 2025"],
    ["Tula, Mexico", "Interior", "En proceso de licitación", "Visita: 08 de abril 2025"],
    ["Toluca, Mexico", "Interior", "En proceso de licitación", "Visita: 30 de abril 2025"]
];

var mexicoNames = [];
for (var i = 0; i < mexicoArr.length; i++) {
    mexicoNames.push(mexicoArr[i][0]);
}

this.getField("Mexico").setItems(mexicoNames);
this.getField("Mexico").setAction("Keystroke", "onMexicoSwitch(event.value);");

selectMexico(0);

function onMexicoSwitch(name) {
    for (var i = 0; i < mexicoArr.length; i++) {
        if (mexicoArr[i][0] == name) {
            selectMexico(i);
            break;
        }
    }
}

function selectMexico(i) {
    this.getField("Interior/Exterior").value = mexicoArr[i][1];
    this.getField("Status").value = mexicoArr[i][2];
    this.getField("Visita").value = mexicoArr[i][3];
}

// 危地马拉地区数据
var guatemalaArr = [
    ["Guatemala", "Interior/Exterior 2", "Status 2", "Visita 2"],
    ["Huehuetenango, Guatemala", "Interior", "Licitación", "Visita: 8 de abril 2025"],
    ["Retalhuleu, Guatemala", "Exterior", "En proceso de licitación", "Visita: 30 de junio 2025"]
];

var guatemalaNames = [];
for (var i = 0; i < guatemalaArr.length; i++) {
    guatemalaNames.push(guatemalaArr[i][0]);
}

this.getField("Guatemala").setItems(guatemalaNames);
this.getField("Guatemala").setAction("Keystroke", "onGuatemalaSwitch(event.value);");

selectGuatemala(0);

function onGuatemalaSwitch(name) {
    for (var i = 0; i < guatemalaArr.length; i++) {
        if (guatemalaArr[i][0] == name) {
            selectGuatemala(i);
            break;
        }
    }
}

function selectGuatemala(i) {
    this.getField("Interior/Exterior 2").value = guatemalaArr[i][1];
    this.getField("Status 2").value = guatemalaArr[i][2];
    this.getField("Visita 2").value = guatemalaArr[i][3];
}

// 智利地区数据
var chileArr = [
    ["Chile", "Interior/Exterior 3", "Status 3", "Visita 3"],
    ["Puerto Montt, Chile", "Interior", "Licitación", "Visita: 30 de abril 2025"],
    ["Viña del Mar, Chile", "Exterior", "En proceso de licitación", "Visita: 20 de agosto 2025"]
];

var chileNames = [];
for (var i = 0; i < chileArr.length; i++) {
    chileNames.push(chileArr[i][0]);
}

this.getField("Chile").setItems(chileNames);
this.getField("Chile").setAction("Keystroke", "onChileSwitch(event.value);");

selectChile(0);

function onChileSwitch(name) {
    for (var i = 0; i < chileArr.length; i++) {
        if (chileArr[i][0] == name) {
            selectChile(i);
            break;
        }
    }
}

function selectChile(i) {
    this.getField("Interior/Exterior 3").value = chileArr[i][1];
    this.getField("Status 3").value = chileArr[i][2];
    this.getField("Visita 3").value = chileArr[i][3];
}

关键修改说明

  • 给每个地区的数据数组赋予唯一名称(mexicoArr、guatemalaArr、chileArr),避免全局变量覆盖
  • 每个地区的名称数组也使用独立变量(mexicoNames等),彻底消除变量冲突
  • 保持各地区的切换逻辑独立,互不干扰

验证步骤

  1. 替换原脚本为上述修复后的版本
  2. 确认表单中的字段名称与脚本中getField()调用的名称完全匹配
  3. 在Bluebeam Revu中重新加载脚本并测试三个下拉菜单的自动填充功能

内容的提问来源于stack exchange,提问作者Ethel Ferraro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 16:26:02