PowerDesigner16 的 comment 不显示?先别怀疑配置,用 Codex 对照 VBS 排查
如果你正在用 PowerDesigner16 做物理数据模型,大概率遇到过这个场景:表已经建好,列的 Name 是英文、Comment 是中文注释,但视图里怎么都看不到注释列,翻遍 Display Preferences 也找不到「显示 comment」的开关。于是开始怀疑是不是自己配置错了、版本有问题、或者脚本没生效。这篇从排障视角出发,把「comment 不显示」拆成两类原因:一类是 PowerDesigner16 本身没有直接开关,必须靠 VBS 间接替换;另一类是你写了脚本但没跑通,比如 ProcessFolder 没被调用、ActiveModel 为空、或者替换方向搞反了。排查这类脚本问题时,我会用 TaoToken 把 Codex 接进来,让它对照 VBS 逐段核对逻辑,而不是靠猜。TaoToken 在这里只提供 Key 和模型通道,不代替 PowerDesigner16 执行脚本,脚本最终还是在 PowerDesigner 里跑。
先打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 创建一个 Key,后面配置 Codex 会用到。整个排查链路是:先确认 PowerDesigner16 的 comment 显示机制,再把 Codex 的 Base URL 指向 TaoToken,最后让 Codex 帮你审 VBS 的调用链和替换方向。
一、原问题与场景:comment 不显示,到底是配置问题还是脚本问题
PowerDesigner16 的视图里,表列默认显示的是 Name,不是 Comment。这一点和很多人预期不一样:大家以为 Comment 是列的属性,应该有个勾选框能直接显示。实际上无论 15 还是 16,视图属性里都没有「显示字段注释」的直接配置项。所以「comment 不显示」的第一层真相是:它不是配置失败,而是产品本身就没给这个开关。
要显示注释,只能走间接方式:用 VBS 脚本把 Comment 的值写进 Name,或者反过来把 Name 写进 Comment,让视图里那一列显示成中文。原文给的两段脚本就是这个思路——一段是「从 name 替换 comment」,一段是「从 comment 替换 name」。最终效果是 id 列被中文注释替换,视图里就能看到中文了。
但第二层问题来了:很多人把脚本贴进去执行,发现没反应。这时候常见的怀疑对象有三个:
- ActiveModel 为空,脚本一进去就弹「There is no current Model」,说明当前没有激活的物理数据模型;
- ProcessFolder 没被调用,脚本主体写了 Sub 但入口没进,等于白写;
- 替换方向搞反,你想让视图显示 comment,结果跑的是 name 覆盖 comment,视图当然还是英文。
这三类问题靠肉眼读脚本容易漏,尤其是嵌套 folder、shortcut、子包递归这些分支。用 Codex 对照脚本查,效率会高很多。
二、TaoToken 前置:把 Codex 的 Base URL 指向 TaoToken
TaoToken 的作用是给 Codex 提供一个可用的模型通道。你不需要改 PowerDesigner16 的任何东西,只需要把 Codex 的请求地址配好。
先到 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 注册并创建 API Key,拿到形如YOUR_API_KEY的密钥。然后确认 API 地址是 https://taotoken.net/api ,注意这个地址不带 UTM 参数,直接作为 Base URL 使用。
如果你用的是 Codex CLI,配置写在config.toml里;如果你用的是支持 Anthropic 协议的客户端,则对应ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY。下面给一份可复制的配置。
三、可复制配置:Codex 接 TaoToken 的 config.toml
Codex 的配置文件通常放在用户目录下的.codex/config.toml。把 base_url 指向 TaoToken,api_key 填你创建的 Key,model 选一个你账号可用的模型 ID。
# ~/.codex/config.toml model = "gpt-5-codex" model_provider = "taotoken" [model_providers.taotoken] name = "TaoToken" base_url = "https://taotoken.net/api" env_key = "TAOTOKEN_API_KEY" wire_api = "chat"然后在环境变量里设置 Key:
export TAOTOKEN_API_KEY="YOUR_API_KEY"如果你用的是 Anthropic 协议客户端(比如 Claude Code 风格的配置),则写settings.json:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "YOUR_API_KEY" } }配置完成后,Codex 的请求会经过 TaoToken 通道。这里要强调:TaoToken 只负责通道和 Key,不参与 PowerDesigner16 的脚本执行,也不替代编辑器。脚本能不能跑通,还是取决于你在 PowerDesigner 里的操作。
四、验证请求与成功结果:让 Codex 对照 VBS 查调用链
配置好之后,先做一次最小验证,确认 Codex 能正常返回。可以在终端里发一条简单请求,或者直接在 Codex 交互里问一句「你好,确认通道正常」。如果返回正常,说明 Base URL 和 Key 都没问题。
接下来是重点:把原文那段 VBS 贴给 Codex,让它帮你查「为什么表列显示的是 name 而不是 comment」。你可以这样提问:
下面这段 PowerDesigner VBS 脚本,我想让视图显示 comment,但执行后视图里还是 name。请帮我检查:ActiveModel 是否可能为空、ProcessFolder 是否被调用、替换方向是否正确、子包递归有没有漏。
然后把脚本贴进去。Codex 通常会指出几个关键点:
第一,入口部分Set mdl = ActiveModel之后,如果mdl Is Nothing会弹「There is no current Model」,说明你没有在 PowerDesigner 里选中一个 Physical Data Model 就执行脚本。正确做法是先在左侧模型树里点中 PDM,再运行脚本。
第二,ElseIf Not mdl.IsKindOf(PdPDM.cls_Model)这一句是类型校验,如果当前模型不是 PDM,也会走 MsgBox 分支。所以确认你打开的是 Physical Data Model,不是 Conceptual 或 Logical。
第三,ProcessFolder mdl是入口调用。如果这段被注释掉、或者被包在某个未满足的条件里,Sub 定义了也不会执行。Codex 会帮你确认这一行确实在 Else 分支里被调用。
第四,替换方向。原文第一段是tab.comment = tab.name和col.comment = col.name,这是把 name 写进 comment;第二段是tab.name = tab.comment和col.name = col.comment,这是把 comment 写进 name。如果你想让视图显示中文注释,要跑的是第二段方向,因为视图列显示的是 Name。很多人跑反了,所以视图没变化。
第五,子包递归。For Each f In folder.Packages这一段负责进入子包,如果漏了,子文件夹里的表不会被处理。Codex 会提醒你检查ProcessFolder f是否在循环里。
成功的结果是:脚本执行后,视图里原本的英文 Name 被中文 Comment 替换,id 列显示成中文注释。如果没变化,就回到上面五点逐条核对。
五、本篇常见错排查
围绕「PowerDesigner16 comment 不显示」这个场景,常见错误可以归成几类。
错误一:以为有显示开关。在 Display Preferences、Table Properties、Column 属性里反复找「显示 comment」的勾选框,找不到就以为配置失败。实际上 PowerDesigner16 没有这个直接开关,必须用 VBS 间接替换。这不是你配置错了,是产品设计如此。
错误二:ActiveModel 为空。脚本一执行就弹「There is no current Model」。原因是执行脚本时没有选中任何 PDM,或者当前焦点不在模型上。解决方法是先在模型树里点中目标 PDM,再运行脚本。
错误三:ProcessFolder 没被调用。脚本里定义了Private sub ProcessFolder(folder),但入口的ProcessFolder mdl被删了或没执行。Sub 只是定义,不调用就不会跑。检查入口分支是否真的走到了这一行。
错误四:替换方向反了。想显示 comment,却跑了comment = name的方向,结果 comment 被英文覆盖,视图还是英文。要显示中文,跑name = comment的方向。
错误五:子包没递归。表在子 package 里,但脚本没有For Each f In folder.Packages这段递归,导致子包里的表没被处理。补上递归调用。
错误六:shortcut 干扰。脚本里有if not tab.isShortcut then判断,如果表是快捷方式,会被跳过。确认你的表不是 shortcut,或者按需调整判断。
错误七:Codex 通道配置错。Base URL 写成了带 UTM 的地址,或者 Key 没设进环境变量,导致 Codex 请求失败,没法帮你审脚本。确认 Base URL 是 https://taotoken.net/api ,Key 用YOUR_API_KEY对应的真实值。
排查顺序建议:先确认模型选中、再确认入口调用、再确认替换方向、最后确认递归和 shortcut。用 Codex 对照脚本逐条过,比反复试错快。
六、语义一致 CTA:按你的下一步选入口
如果你现在卡在「Codex 通道配不通、Key 或 Base URL 报错」,先去 API Keys 页面确认密钥,再对照接入文档检查config.toml或settings.json的字段。入口在这里:API Keys 在 https://taotoken.net/console/api-keys ,接入文档在 https://taotoken.net/doc ,两个都带上对应的 utm 参数即可。
如果你已经配好通道,想先验证模型能不能正常返回,直接去模型对话页面发一条测试请求:https://taotoken.net/chat 。
如果你是要长期用 Codex 做编码和脚本排查,比如反复审 VBS、调 PDM 逻辑,那更适合走 Coding Plan,把通道和额度固定下来:https://taotoken.net/coding-plan 。
回到本篇的核心:PowerDesigner16 的 comment 不显示,不是配置失败,而是没有直接开关,必须用 VBS 把 comment 写进 name。Codex 在这里的价值是对照脚本查 ActiveModel、ProcessFolder、替换方向和递归调用。TaoToken 提供的是 Key 和通道,脚本执行仍然在 PowerDesigner16 里完成。把这两件事分清楚,排查就不会跑偏。