简体中文
English 简体中文 繁體中文
Methodox 首页

Document Parameters 与文档会话

Document Parameter(文档参数)是属于某个文档的命名值:本金、城市、地区、利率。文档的公式、智能对象、Data Source 和代码都会读取它们,因此更改一个参数就会更改所有依赖它的内容。每个参数都是数字、文本、逻辑值或日期,并保存在文档中。

本页面还说明了 Divooka 图如何访问它所处理的文档,正是这一点让同一个图既能在 Methodox Office 中运行,也能在 Divooka Compute 中运行。

编辑参数

Tools ▸ Parameters 会在侧栏的 Parameters 面板中打开参数,其中每一行都是一个可以就地编辑的参数;布尔参数是一个开关,单击即可切换,也可以在其所在行按 Space、F2 或 Enter 切换。每次更改都是一个撤消步骤,读取该参数的内容会随之重新计算或刷新。

读取和设置参数

Function 和智能对象只读取参数。只有 Command 或事件处理程序才能设置参数,且作为其可撤消事务的一部分。

位置 读取参数的方式
Formula =PARAM("Region")
Lua、Python param.Region
C# Param["Region"]
Divooka 图 一个 Number、Text 或 Boolean Parameter 节点,从 This Document 连线(见下文)
Data Source 在其查询中使用 param.Region

Loan Calculator:侧栏中的 Parameters 面板包含 Principal、Rate 和 Years,还款额和溢出的还款计划由 Divooka 图根据它们计算得出

每次读取都会被记录,因此更改参数时,会精确地重新计算读取它的单元格,并精确地刷新读取它的智能对象和 Data Source,与该更改一起构成一个撤消步骤。=PARAM() 在文档打开后立即给出结果,甚至在其代码被启用之前,因为参数是数据,而不是代码。

文档会话

参数是文档的成员,就像工作表或段落一样。因此,读取参数的图首先需要文档本身,并通过一个节点获取它:

  • This Document 提供图所属的文档。在 Methodox Office 中,这就是打开的文档,窗口会把它传入 Function、Command 或事件处理程序的每次运行。
  • Open Office Document 从文件提供一个文档,可以是 Formula 工作簿、Impulse 文档或 Expo 演示文稿。它用于 Divooka Compute;在 Methodox Office 中,它会忽略路径,提供图自己的文档。

此后,图对文档所做的一切都是一个以文档作为第一个输入的节点:参数读取(Parameter、Number Parameter、Text Parameter、Boolean Parameter、Has Parameter、Parameter Names)、Set Parameter,以及文档编辑(Get Cell、Set Cell、Set Formula、Write Table、Add Sheet、Add Paragraph、Add Slide、Slide Count、Document Name、Document Path、Run Command)。文档编辑和 Set Parameter 只在 Routine 图和 Events 图中提供,在 Function 中永远不提供。

Graph Editor 示例中的 PRICE 图:This Document 连到一个读取 Markup 的 Number Parameter,Markup 加 1 后与成本相乘得到价格

你很少需要自己放置 This Document。当你从图编辑器的添加节点菜单(其中按名称列出文档的参数)中添加参数时,读取节点会被放置好,并填入参数名称、连线到图的 This Document;第一次添加时,This Document 会被添加在它旁边。

Divooka Compute 中的同一个图

由于文档是一个输入,而不是节点自行查找的东西,Divooka Compute 也可以提供它。有两种方式:

  1. 图编辑器工具条上的 Open in Divooka Compute 会把图连同窗口中文档的副本(无论是否已保存)一起发送到已安装的 Compute。在 Compute 中,This Document 提供该副本,添加节点菜单会在 Office ▸ Parameters 下列出它的参数,每一项都会按名称放置对该参数的读取节点,与 Office 自己的编辑器一样。在那里运行图时,它读取和更改的是副本,绝不会是你的文件。在 Compute 中保存后,图会作为一次可撤消的更改回到文档中。
  2. Open Office Document 在给定路径后,会在 Compute 中打开工作簿、文档或演示文稿,因此无需运行 Methodox Office,就可以针对真实文件编写和调试图。Save Office Document 会保存它所做的更改。

无论哪种方式,图都是同一个图:你在 Compute 中编写或调试的内容可以不加修改地在 Methodox Office 中运行,反之亦然。Methodox Office 会把它的 Office 节点随图一起发送,因此无论 Compute 自身的安装包含什么,它都能提供这些节点;当图返回时,Methodox Office 会再移除该引用,因此文档永远不会携带你计算机上的路径。这需要最新的 Divooka Compute;旧版本无法加载图所引用的节点,打开图时会缺少这些节点。

为什么这是安全的

在 Methodox Office 中,图只会处理它自己的文档。在任一版本中,Open Office Document 都不会在其中打开文件,因此文档的图无法通过它读取其他文档。只有在你亲自运行图的 Divooka Compute 中,它才能打开文件。Command 仍然只会在你启用文档的代码后才更改文档,并且只拥有你授予它的访问权限(参见信任)。

早期版本中的图

早期版本中的 Parameter 节点会自行查找文档。它们在 Methodox Office 中可以工作,但在 Compute 中,它们虽是有效的节点,却没有可读取的对象,运行时会失败。

包含这些节点的图在读取时会被转换为新的形式:每个旧节点都会变成对文档进行的相同读取或编辑,位置相同,字面量、标签和连线也相同,并由每个图一个的 This Document 节点提供文档。图中的其他内容不会改变,不含旧节点的图则完全保持原样。文档中保存的文本会在你下次编辑该图时采用新形式,而 Open in Divooka Compute 发送的是新形式。

脚本不受影响:Lua、C# 和 Python 仍像以前一样以 param.Region 读取参数。

另请参阅