DIALOG 命令

创建以交互方式提示用户提供一个或更多个脚本输入值的自定义对话框。 每个输入值都被存储在一个命名变量中。

说明

使用 DIALOG 命令输入密码是不安全的。 应该改而使用 PASSWORD 命令

DIALOG 命令在 AX 服务器解析中不受支持。

您可以用ACCEPT 命令创建一个基本的交互式对话框。

提示

创建自定义对话框的最轻松方式是使用对话框生成器。 要了解更多信息,请参考创建自定义对话框

语法

DIALOG (DIALOG TITLE 标题文本 WIDTH 像素数 HEIGHT 像素数) (BUTTONSET TITLE "确定(&O);取消(&C)" AT x 坐标 y 坐标 <WIDTH 像素数> <HEIGHT 像素数> DEFAULT 条目编号 <HORZ>) <[标签语法]|[文本框语法]|[复选框语法]|[单选按钮语法]|[下拉列表语法]|[项目条目列表语法]> <...n>
标签语法 ::=
(TEXT TITLE 标题文本 AT x 坐标 y 坐标 <WIDTH 像素数> <HEIGHT 像素数> <CENTER|RIGHT>)
文本框语法 ::=
(EDIT TO 变量名称 AT x 坐标 y 坐标 <WIDTH 像素数> <HEIGHT 像素数> <DEFAULT 字符串>)
复选框语法 ::=
(CHECKBOX TITLE 标题文本 TO 变量名称 AT x 坐标 y 坐标 <WIDTH 像素数> <HEIGHT 像素数> <CHECKED>)
单选按钮语法 ::=
(RADIOBUTTON TITLE 值列表 TO 变量名称 AT x 坐标 y 坐标 <WIDTH 像素数> <HEIGHT 像素数> <DEFAULT 条目编号> <HORZ>)
下拉列表语法 ::=
(DROPDOWN TITLE 值列表 TO 变量名称 AT x 坐标 y 坐标 <WIDTH 像素数> <HEIGHT 像素数> <DEFAULT 条目编号>)
项目条目列表语法 ::=
(ITEM TITLE 项目条目类别 TO 变量名 AT x 坐标 y 坐标 <WIDTH 像素数> <HEIGHT 像素数> <DEFAULT 字符串>)

参数

通用参数

名称 描述
DIALOG TITLE 标题文本

创建主对话框和对话框标题。

必须将标题文本指定为带引号的字符串。

BUTTONSET TITLE "确定(&O);取消(&C)"

对话框中的确定取消按钮的标签。

通常不应该编辑这些值,但如果您确实编辑这些值时,请确保肯定值在否定值之前。 例如:"&Yes;&No"

WIDTH 像素

单个控件的宽度,或者对话框的宽度(如果为 DIALOG 控件指定)。

该值以像素为单位指定。 如果没有为控件指定值,则根据该控件包含的最长值计算宽度。

HEIGHT 像素

单个控件的高度,或者对话框的高度(如果为 DIALOG 控件指定)。

该值以像素为单位指定。

AT x 坐标y 坐标

控件左上角在自定义对话框中的位置。

  • x 坐标是与该对话框左侧之间的水平距离(单位为像素)。
  • y 坐标是与该对话框顶部之间的垂直距离(单位为像素)。
DEFAULT(条目编号

与您想要选为默认值的 BUTTONSET 值相对应的数值。

例如,如果 BUTTONSET 值是 "确定(&O);取消(&C)",则指定 DEFAULT 1 可在默认情况下选择“确定”。

HORZ

可选

横向显示 BUTTONSET 控件的值。 默认情况下,这些值被垂直显示。

说明

对于大多数控件类型,DIALOG 命令创建一个变量以存储用户输入。 在将在变量替换中使用的变量的名称中,不能使用非英语字符,如 é。 包含非英语字符的变量名将导致脚本无效。

默认情况下,某些 DIALOG 变量被创建为字符变量。 如果您使用字符变量存储数值或日期时间值,则必须在脚本中的后续处理中将该变量转换为所需的数据类型。 有关详细信息,请参见输入数据类型

标签参数

名称 描述
TEXT 创建一个文本标签以标识、通知或指导。
TITLE 标题文本

控件标签。

必须将标题文本指定为带引号的字符串。

CENTER | RIGHT

可选

控件内文本的对齐方式。

如果您省略居中或右对齐,则默认使用左对齐。

文本框参数

名称 描述

EDIT

为用户输入创建一个文本框。
TO 变量名称

存储由用户指定的输入的字符变量的名称。

如果该变量已存在,则指定的值被分配。 如果该变量不存在,则它被创建,并且指定的值被分配。

DEFAULT(字符串

可选

要在控件中显示的默认文本字符串。

必须将字符串指定为带引号的字符串。

复选框参数

名称 描述

CHECKBOX

创建一个复选框以便向用户呈现选项。
TITLE 标题文本

控件标签。

必须将标题文本指定为带引号的字符串。

TO 变量名称

存储由用户指定的真或假值的逻辑变量的名称。

如果该变量已存在,则指定的值被分配。 如果该变量不存在,则它被创建,并且指定的值被分配。

CHECKED

可选

默认情况下将该控件设置为已选中。

单选按钮参数

名称 描述

RADIOBUTTON

创建单选按钮以便向用户呈现互斥选项。
TITLE 值列表

为该控件显示的值的列表。

必须将这些值指定为带引号的字符串。 请用分号 (;) 分隔每个值。

TO 变量名称

存储由用户选择的单选按钮值的数值位置的数值变量的名称。

如果该变量已存在,则指定的值被分配。 如果该变量不存在,则它被创建,并且指定的值被分配。

DEFAULT(条目编号

可选

与您想要选为默认条目的列表条目相对应的数值。

例如,如果值列表是“红色;绿色;蓝色”,则指定 DEFAULT 2 会默认选择“绿色”。

HORZ

可选

横向显示该控件的值。 默认情况下,这些值被垂直显示。

下拉列表参数

名称 描述

DROPDOWN

创建一个下拉列表以便向用户呈现一个选项列表。
TITLE 值列表

为该控件显示的值的列表。

必须将这些值指定为带引号的字符串。 请用分号 (;) 分隔每个值。

TO 变量名称

存储由用户选择的下拉列表值的字符变量的名称。

如果该变量已存在,则指定的值被分配。 如果该变量不存在,则它被创建,并且指定的值被分配。

DEFAULT(条目编号

可选

与您想要选为默认条目的列表条目相对应的数值。

例如,如果值列表是“红色;绿色;蓝色”,则指定 DEFAULT 2 会在显示下拉列表时默认选择“绿色”。

项目条目列表参数

名称 描述

ITEM

创建一个项目条目列表以便向用户呈现一个 Analytics 项目条目(如域)列表。
TITLE 项目条目类别

要包括在该控件中的项目条目的类别。

您可以指定一个或更多个类别。 用户可从项目条目列表中选择单个值。

请将项目条目类别放在引号中,各个类别之间不要有空格或标点符号。

有关可用来指定类别的代码,请参见项目条目类别的代码

说明

除非您有足够的理由,否则请勿在同一个 ITEM 控件中混用不同的类别。 例如,请勿混用表和域。 否则,生成的项目条目列表可能让用户感到困惑。

TO 变量名称

存储由用户选择的项目条目的名称的字符变量的名称。

如果该变量已存在,则指定的值被分配。 如果该变量不存在,则它被创建,并且指定的值被分配。

DEFAULT(字符串

可选

您想要选择为默认条目的项目条目的精确名称。

必须将字符串指定为带引号的字符串。

示例

提示用户选择表和脚本

在您的脚本中,您需要提示用户选择要用来运行分析的 Analytics 表和脚本。

您指定默认情况下选择 ACL_Demo.acl 项目中的 Metaphor_Inventory_2012 表作为 Analytics 表,但用户可选择该项目中的任何表。

要运行的脚本也必须从 Analytics 项目中的脚本列表中选择:

DIALOG (DIALOG TITLE "库存分析" WIDTH 500 HEIGHT 200 ) (BUTTONSET TITLE "&OK;&Cancel" AT 370 12 DEFAULT 1 ) (TEXT TITLE "请选择要解析的 Analytics 项目条目。" AT 50 16 ) (TEXT TITLE "表:" AT 50 50 ) (ITEM TITLE "f" TO "v_table" AT 50 70 DEFAULT "Metaphor_Inventory_2012" ) (TEXT TITLE "脚本:" AT 230 50 ) (ITEM TITLE "b" TO "v_script" AT 230 70 )

备注

说明

有关此命令工作原理的详细信息,请参见 Analytics 帮助

交互性

使用 DIALOG 创建一个交互式脚本。 处理 DIALOG 命令时,脚本将暂停,并且显示一个对话框以提示用户提供 Analytics 在后续处理中使用的输入。

您可以创建多个单独的对话框,每次提示用户输入一个条目,也可以创建一个对话框,提示用户输入多个条目。

ACCEPT 与 DIALOG 之比较

ACCEPT 命令使您可以创建可包含一个或多个下列类型控件的基本交互式对话框:

  • 文本框
  • 项目条目列表

要获取基本交互性,ACCEPT 可能满足您的所有需要。 有关详细信息,请参见ACCEPT 命令

项目条目类别的代码

请使用以下代码指定要在项目条目列表中显示的项目条目的类别。

项目类别

代码

类别

f

十亿

脚本

i

索引

r

视图和报告

w

工作空间

域类别

代码

类别

C

字符域

N

数值域

D

日期时间域

L

逻辑域

变量类别

代码

类别

c

字符变量

n

数值变量

d

日期时间变量

l

逻辑变量

输入数据类型

DIALOG 命令中的某些控件在字符变量中存储用户输入。 如果您需要数值或日期时间输入,可使用 VALUE( ) 或 CTOD( ) 函数将字符变量的内容转换为数值或日期时间值:

SET FILTER TO BETWEEN(%v_date_field%, CTOD(%v_start_date%), CTOD(%v_end_date%))

在该示例中,此过滤器的开始和结束日期被存储为字符值。 必须将它们转换为日期值,以便将其用于使用日期时间数据类型的日期域。

将变量名称放在百分号 (%) 中可将变量包含的字符值替换为变量名称。 CTOD( ) 函数随后将字符值转换为日期值。

DIALOG 命令的位置

如果可能,那么将所有 DIALOG 命令放在脚本的开头是一个很好的做法。 如果需要在开头输入所有信息,则一旦用户输入必要的信息后,脚本就可以顺畅地运行了。

说明

在 GROUP 命令中不可使用 DIALOG 命令。