无状态表单
目录
概述
在创建新表单时,Zoho Creator 显示复选框选项“数据将保存在 Zoho Creator 中”,该复选框默认已选中。取消选择此选项将表单创建为无状态表单。与普通表单不一样,这些表单没有默认的“提交”和“重置”按钮。而是可以添加自定义(可编写脚本的)按钮,当点击时,可以根据编写的 Deluge 脚本执行自动化任务。输入的数据不会作为插入的记录自动添加到表格。这让您可灵活地将输入的数据存储到 Zoho Creator 中任何报表的任何记录中的任何字段。您甚至可以使用它从 Zoho Creator 中任何报表的任何记录中的任何字段检索数据。无状态表单的一些常见用法如下所列:
- 创建 Web 表单:无状态表单可充当嵌入到网站的 Web 表单。此表单数据可提交到任何服务或用于更新另一个表单/应用程序中的记录,而不用在 Zoho Creator 中保存数据。Deluge Get URL 和 Post URL 任务可用于 GET/POST 数据到外部网站或其他 Zoho Creator 应用程序。
- 创建多个表单和在单个报表中更新其数据:由于无状态表单根据定义并未与任何特殊报表结合,您可以设计不同的无状态表单,每个表单具有特定报表中的不同字段子集。例如,您可为“技术员”角色创建一个无状态表单,为“经理”创建另一个无状态表单,并与相应的角色共享,但将从所有无状态表单提交的数据保存在同一个主报表中。这样就可以让同一个组织内的不同用户使用不同的无状态表单来执行分配给他们的任务,而无需访问报表中的其他字段。
- 为实时应用创建用户设置对话框:创建无状态表单以便让用户能够在一个表单中自定义应用程序的所有属性。例如,在您的应用程序中添加一个“设置”链接,用于提取当前已登录用户的记录,并在无状态表单的加载时动作中设置值。用户可修改他们的设置并提交表单。然后此表单将在主表单中更新记录。
- 提取和显示其他表单的信息:创建无状态表单以根据表单输入从其他 Zoho Creator 表单或从其他服务提取和显示信息。例如,假设您的应用程序中有一个状态表单,它用于显示特定工单的状态。当用户输入它们的工单编号并单击表单按钮时,必须显示状态。在这种情况下,必须存储表单数据。您可以创建状态表单并编写点击时表单动作以在备注字段中显示状态。
- 生成动态 HTML 页面:创建无状态表单,通过作为参数向页面传递表单数据来生成动态 HTML 页面。例如,指定搜索条件以显示来自 Contacts Management 应用程序的数据,指定月份和年份以显示与特定时期有关的记录。
- 执行“发送邮件”:创建无状态表单以便在点击表单按钮时执行任何 Deluge 任务,例如发送邮件。除了点击时表单动作,您还可以执行用户输入时字段动作脚本。
创建无状态表单
若要创建无状态表单,
- 单击应用程序主页面上的新建->表单。
- 在新建表单页面中,指定表单名称。
- 取消选择选项数据将保存在 Zoho Creator 中并单击创建以创建无状态表单。
- 将所需的字段拖放到表单上。
- 使用 (+) 链接,通过指定按钮名称并输入字段属性,将自定义按钮添加到表单。
- 自定义按钮:点击此按钮时,调用按钮的“点击时”动作。阅读第 6 点以了解详细信息。
- 提交按钮:点击此按钮时或按下 Enter 键,调用按钮的“点击时”动作。阅读第 6 点以了解详细信息。
- 重置按钮:用鼠标点击此按钮时,表单会恢复为初始状态。不能为重置按钮配置“点击时”动作。
- 若要对表单按钮的点击执行任何动作,请导航至工作流并在表单字段 -> 表单按钮名称 -> 点击时添加所需的 Deluge 脚本以执行自动化任务。例如,如果您添加了名为“添加”的自定义按钮,则在工作流 -> 表单 -> 添加 -> 点击时中编写 Deluge 脚本。
- 单击保存脚本以更新脚本。
- 单击访问此应用并将数据输入到无状态表单。在点击表单按钮时,将执行添加到“点击时”块中的脚本。
将标准表单转换为无状态表单
Zoho Creator 中的现有表单可转换为无状态表单。有关更多详细信息,请参阅此链接。
示例
假设有一个联系人表单要用于存储联系人详细信息,例如,姓名、地址、手机号邮箱地址。还有一个无状态表单基于指定的“邮箱地址”从联系人表单提取和显示数据。提取的数据可修改并提交,它也将在联系人报表中相应地更新。
- 创建一个带有姓名、地址、手机号码和邮箱地址字段类型的联系人表单。
- 创建一个无状态表单,使用邮箱地址 作为联系人表单的查找字段,并带有其他必需的字段,如下面的屏幕截图中所示:
- 若要根据所选的邮箱地址从联系人表单提取相应的记录,请将以下脚本添加在工作流 -> 字段动作 - > Email_id -> 用户输入时下面。
record = Contacts [ID == input.Email_id]; // Contacts 是表单链接名称
input.Address = record.Address; // Address 是字段 deluge 名称
input.Mobile_Number = record.Mobile_Number; // Mobile_Number 是字段 deluge 名称
input.Name = record.Name; // Name 是字段 deluge 名称 - 当选定邮箱地址 时,从联系人表单提取相应的记录并显示在无状态表单中,如下面的屏幕截图所示。
- 使用所需的值更新记录并单击更新。修改的值将在联系人表单中更新。这可以通过在工作流 -> 表单动作 -> 更新 -> 点击时下面编写以下脚本来实现。
record = Contacts [ID == input.Email_id]; // Contacts 是表单链接名称
record.Name = input.Name; // Name 是字段 deluge 名称
record.Address = input.Address; // Address 是字段 deluge 名称
record.Mobile_Number = input.Mobile_Number; // Mobile_Number 是字段 deluge 名称