支持撤销/重做
按 Ctrl+Z 撤销更改,按 Ctrl+Y 重做。撤销栈没有大小限制;当你从文件或数据库加载另一个模型时,撤销栈会被清空。一次会更改多个对象的操作(例如拖动文件夹、批量重命名或 Best Practice Analyzer (BPA) 修复)只算一个撤销步骤。
文本编辑器中的撤销
在 Tabular Editor 3 中,Ctrl+Z 和 Ctrl+Y 会对当前获得焦点的窗口部分生效。当焦点位于文本控件中时,这两个快捷键会撤销和重做该控件中的输入。文本控件包括 DAX 查询、DAX 脚本和 C# Script 文档、表达式编辑器,以及在 属性 视图中正在编辑的单元格。每个文本控件都有自己的撤销历史记录,与模型撤销堆栈相互独立。当焦点位于 TOM Explorer 或其他视图中时,这两个快捷键会撤销和重做模型更改。在 AI Assistant 聊天框中,Ctrl+Z 和 Ctrl+Y 不会撤销或重做模型更改。
运行 C# Script 或应用 DAX 脚本后,焦点仍会停留在脚本文档中。此时按 Ctrl+Z 会撤销你在脚本中的输入。如果脚本文本是一次性粘贴或插入的,按 Ctrl+Z 会一次撤销全部内容,而 Ctrl+Y 会将其恢复。
如果文本控件或 AI Assistant 聊天框当前具有焦点,而你想撤消模型更改,可以执行以下任一操作:
- 点击 TOM Explorer,然后按 Ctrl+Z
- 打开 编辑 菜单,然后选择名称与最近一次模型更改对应的命令,例如 撤销 C# Script (MCP)。当文本控件具有焦点时,此项会显示在菜单顶部,位于 撤销输入 上方。
删除对象
删除对象时,也会一并删除依赖于它的内容。对于列,Tabular Editor 会移除:
- 使用该列的关系
- 基于该列的层次结构级别
- 其翻译和透视成员关系
- 在 Tabular Editor 3 中,该列在日历和变体中的条目
在 Tabular Editor 3 中,还会清除由已删除列排序的列的 SortByColumn 属性。
执行撤销时,会一步还原该对象及依赖它的对象。
如果你删除的单个对象有其他对象依赖它,确认对话框会列出可能的影响:
- 如果 DAX 表达式引用了该对象,这些表达式就会失效。
- 如果该列被用于层次结构,相应的级别也会被删除。
- 如果某些关系使用了该列,这些关系也会被移除。
- 在 Tabular Editor 3 中,如果该列用于某些日历,则会将其从这些日历中移除。
一次删除多个对象时,总会显示确认对话框,但该对话框不会逐个列出每个对象的影响。
如果某个对象没有其他对象依赖它,删除时不会出现提示。在 Tabular Editor 3 中,如需在每次删除时都进行确认,请在 工具 > 偏好 > Tabular Editor > TOM Explorer 下的 删除 部分勾选 始终显示删除警告。
撤销与未保存的更改
在 Tabular Editor 3 中,“未保存更改”指示器会与撤销栈保持同步。将操作撤销回上次保存的状态后,所有指示器都会消失;重做后又会重新显示。当撤销操作超过上次保存点时,被回退的对象上会显示指示标记。
还原会撤销一项更改,并保留之后的更改。它会将属性、对象、表或整个模型恢复到上次保存时的状态,同时保留其他未保存的更改;而且你还可以撤销还原操作。参见 @unsaved-changes。