# Builtin - GUI / 对话框

## `uiInteger()`

整数。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiInteger();
// 结果：0
```

## `uiBoolean()`

真假。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiBoolean();
// 结果：1
```

## `uiString()`

字符串。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiString();
// 结果：2
```

## `uiDate()`

日期。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiDate();
// 结果：3
```

## `uiDouble()`

浮点数。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiDouble();
// 结果：4
```

## `uiMarketList()`

市场列表。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiMarketList();
// 结果：5
```

## `uiIndexList()`

指数列表。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiIndexList();
// 结果：6
```

## `uiStockList()`

股票列表。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiStockList();
// 结果：7
```

## `uiSelfBkList()`

自选板块列表。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiSelfBkList();
// 结果：8
```

## `uiSysBkList()`

系统板块列表。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiSysBkList();
// 结果：9
```

## `uiRightStyle()`

复权方法。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiRightStyle();
// 结果：11
```

## `uiCycle()`

周期。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiCycle();
// 结果：12
```

## `uiReportDate()`

报告期。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiReportDate();
// 结果：13
```

## `uiBasicIdList()`

基本面ID列表。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiBasicIdList();
// 结果：14
```

## `uiUserDefine()`

用户自定义。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。返回：整数。数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiUserDefine();
// 结果：17
```

## `uiOneDimArray()`

一维数组。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiOneDimArray();
// 结果：18
```

## `uiTwoDimDoubleArray()`

二维实数数组。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiTwoDimDoubleArray();
// 结果：19
```

## `uiOneDimStringArray()`

一维字符串数组。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiOneDimStringArray();
// 结果：20
```

## `uiTwoDimStringArray()`

二维字符串数组。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiTwoDimStringArray();
// 结果：21
```

## `uiOneDimDateArray()`

一维日期数组。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiOneDimDateArray();
// 结果：22
```

## `uiTwoDimDateArray()`

二维日期数组。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。返回：整数。数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiTwoDimDateArray();
// 结果：23
```

## `uiTable()`

数据表。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiTable();
// 结果：24
```

## `uiUserData()`

用户数据。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。返回：整数。数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiUserData();
// 结果：25
```

## `uiRightDay()`

复权基准日。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。返回：整数。数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiRightDay();
// 结果：27
```

## `uiBasicId()`

基本面ID。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。返回：整数。数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiBasicId();
// 结果：29
```

## `uiYear()`

年份。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。返回：整数。数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiYear();
// 结果：31
```

## `uiMonth()`

月份。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。返回：整数。数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiMonth();
// 结果：32
```

## `uiDay()`

日。对话框定义Define参数中的Type字段值，表示输入项目的数据类别。返回：整数。数据类别。

返回：integer

### 示例

```tsl
return rdo2 uiDay();
// 结果：33
```

## `promptForFileName(file_name, filter, default_ext, title, initial_dir, save_dialog)`

显示文件打开（保存）对话框。如果选择文件并确定则返回真，否则返回假。

| 参数          | 类型       | 说明                                                                                                                                 |
| ------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `file_name`   | string     | 字符串类型。初始的文件名以及返回的文件名                                                                                             |
| `filter`      | string     | 字符串类型。文件过滤条件。如'Excelfiles?(_.xls)\|_.XLS\|TSLfiles?(_.tsl)\|_.TSL'，如果同一个选项有多种过滤方法，则使用”\|”将其分隔。 |
| `default_ext` | string     | 字符串类型。默认的扩展名，不含有”.”号。                                                                                              |
| `title`       | string     | 字符串类型。对话框的标题栏。                                                                                                         |
| `initial_dir` | string     | 字符串类型。初始的目录。                                                                                                             |
| `save_dialog` | bool=false | BOOL类型。是否作为文件保存对话框显示。                                                                                               |

返回：bool

### 示例

```tsl
// 打开保存文件对话框
rdo2 promptForFileName(data, 'Excelfiles
( * .xls)| * .xlsx|( * .XLS)|TSLfiles ( * .tsl)| * .TSL','.xls','保存对话框','C: \\DataStore',1);
return data;
// 打开打开文件对话框
rdo2 PromptForFileName(data, 'Excelfiles
( * .xls)| * .xlsx|( * .XLS)|TSLfiles ( * .tsl)| * .TSL','.xls','打开对话框','C: \\DataStore',0);
return data;
```

## `inputDialog(title, hint, define, result)`

输入对话框，生成类似于函数、模型运行的时候自动出现的参数输入对话框。如果取消了，返回为假，否则为真。

| 参数     | 类型       | 说明                                                                                                   |
| -------- | ---------- | ------------------------------------------------------------------------------------------------------ |
| `title`  | string     | 字符串类型。对话框的标题。                                                                             |
| `hint`   | string     | 字符串类型。对话框的提示信息。                                                                         |
| `define` | tablearray | 对话框的定义，为一个表结构类型，其中包括四个字段:                                                      |
| `result` | array      | 存贮返回每个字段的值，结构为以字段名为下表字段返回值为值的一维数组。字段名为Define里定义的字段Name的值 |

返回：bool

### 示例

```tsl
define := array();
define[0]['Name'] := 'Years';
define[0]['Comment'] := '年数';
define[0]['Type'] := rdo2 uiInteger();
define[0]['Value'] := 10;
define[1]['Name'] := 'NeedFunds';
define[1]['Comment'] := '是否需要基金';
define[1]['Type'] := rdo2 uiBoolean();
define[1]['Value'] := ’true’;
define[2]['Name'] := 'Name';
define[2]['Comment'] := '输入名称';
define[2]['Type'] := rdo2 uiString();
define[2]['Value'] := '天软';
define[3]['Name'] := 'GenDate';
define[3]['Comment'] := '生成日期';
define[3]['Type'] := rdo2 uiDate();
define[3]['Value'] := now();
if rdo2 inputDialog('测试输入', '测试', define, result) then
rdo2 showValue('测试显示', result, false);
// 显示如下：
// 当选择了确认之后，ShowValue的结果显示出来如下：
```

## `buildOptionComboValue(values, default_index)`

生成自定义类型uiUserDefine所需的VALUE值。返回的结果为用户自定义类型所需的Value值

| 参数            | 类型    | 说明                                                                                                                                                                                            |
| --------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `values`        | string  | 其结构为以显示值=返回结果以回车换行相隔的字符串。在用户自定义里下来显示的就是显示值，而下拉代表的结果为TSL语法的返回结果值，如字符串需要加引号。显示名1=返回结果值1 显示名2=返回结果值2 ………………. |
| `default_index` | integer | 默认选择的项的索引，索引值从0开始。                                                                                                                                                             |

返回：string

### 示例

```tsl
// 返回结果值为1的Value值
s := 'abcd=0\r bcde=1\r';
return rdo2 buildOptionComboValue(s, 1);
// 返回结果值为0的Value值
s := 'abcd=0\r bcde=1\r';
return rdo2 buildOptionComboValue(s, 0);
```

## `mb_AbortRetryIgnore()`

消息对话框的类型控制字，按钮显示三个：中止（Abort）,重试（Retry）,忽略（Ignore）

返回：any

## `mb_Ok()`

消息对话框的类型控制字，按钮显示一个：Ok。

返回：any

## `mb_OkCancel()`

消息对话框的类型控制字，按钮显示两个：确定(Ok)，取消(Cancel)。

返回：any

## `mb_RetryCancel()`

消息对话框的类型控制字，按钮显示两个：重试(Retry)，取消(Cancel)。

返回：any

## `mb_YesNo()`

消息对话框的类型控制字函数，按钮ID显示两个：是(Yes)，否(NO)。

返回：any

## `mb_YesNoCancel()`

消息对话框的类型控制字，按钮显示三个：是(Yes)，否(No)，取消(Cancel)。

返回：any

## `mb_IconInformation()`

消息对话框的图标控制字，显示消息提示，一般对类型控制字消息显示框的装饰。

返回：any

## `mb_IconExclamation()`

消息对话框的图标控制字，显示感叹号，一般对类型控制字消息显示框的装饰。

返回：any

## `mb_IconWarning()`

消息对话框的图标控制字，显示警告图标，一般对类型控制字消息显示框的装饰。

返回：any

## `mb_IconInfomation()`

消息对话框的图标控制字，显示信息提示。

返回：any

## `mb_IconAsterisk()`

消息对话框的图标控制字，显示星号，一般对类型控制字消息显示框的装饰。

返回：any

## `mb_IconQuestion()`

消息对话框的图标控制字，显示问号，一般对类型控制字消息显示框的装饰。

返回：any

## `mb_IconStop()`

消息对话框的图标控制字，显示停止，一般对类型控制字消息显示框的装饰。

返回：any

## `mb_IconError()`

消息对话框的图标控制字，显示错误，一般对类型控制字消息显示框的装饰。

返回：any

## `mb_IconHand()`

消息对话框的图标控制字，显示手，一般对类型控制字消息显示框的装饰。

返回：any

## `mb_DefButton1()`

消息对话框的默认按钮控制字，默认为第一个按钮。天软GUI函数默认按钮通常显示浅蓝色并带有慢闪，如类型控制字消息显示框默认的是第一个按钮。默认按钮控制字一般配合类型控制字合用。

返回：any

## `mb_DefButton2()`

消息对话框的默认按钮控制字，默认为第二个按钮。天软GUI函数默认按钮通常显示浅蓝色并带有慢闪，如类型控制字消息显示框默认的是第一个按钮。默认按钮控制字一般配合类型控制字消息显示框合用。

返回：any

## `mb_DefButton3()`

消息对话框的默认按钮控制字，默认为第三个按钮。天软GUI函数默认按钮通常显示浅蓝色并带有慢闪，如类型控制字消息显示框默认的是第一个按钮。默认按钮控制字一般配合类型控制字消息显示框合用。

返回：any

## `mb_DefButton4()`

消息对话框的默认按钮控制字，默认为第三个按钮。天软GUI函数默认按钮通常显示浅蓝色并带有慢闪，如类型控制字消息显示框默认的是第一个按钮。默认按钮控制字一般配合类型控制字消息显示框合用。

返回：any

## `mb_ApplModal()`

消息对话框的模式控制字，普通模式。

返回：any

## `mb_AppModal()`

消息对话框的模式控制字，应用模式。

返回：any

## `mb_SystemModal()`

消息对话框的模式控制字，系统模式，对话框总在最前端。

返回：any

## `mb_TaskModal()`

消息对话框的模式控制字，任务模式。

返回：any

## `mb_TopMost()`

其他控制字，设置对话框为总在前端。

返回：any

## `mb_Default_Desktop_Only()`

其他控制字，仅仅在默认桌面显示。

返回：any

## `mb_Help()`

其他控制字，对话框中显示帮助按钮。

返回：any

## `mb_Right()`

其他控制字，文字右对齐方式。

返回：any

## `mb_RtlReading()`

其他控制字，从右往左输出文字，对输出Hebrew或者Arabic语言有效。

返回：any

## `mb_SetForeGround()`

其他控制字，设置对话框为前端窗口。

返回：any

## `mb_SetTopMost()`

其他控制字，设置对话框为总在前端。

返回：any

## `mb_Service_Notification()`

其他控制字，服务通知模式，即便无用户登录系统也显示。

返回：any

## `idAbort()`

消息对话框返回字，表明用户选中了Abort按钮。

返回：integer

### 示例

```tsl
a := 3;
b := rdo2 messageBox('a>2,要继续吗？', '测试对话框', rdo2 mb_AbortRetryIgnore());
if b=rdo2 idAbort () then return 1;
else return 0;
// 输出：如选择Abort按钮，则返回1，否则返回0 。
```

## `idCancel()`

消息对话框返回字，表明用户选中了Cancel按钮。

返回：integer

### 示例

```tsl
a := 3;
b := rdo2 messageBox('a>2,要继续吗？', '测试对话框', rdo2 mb_OkCancel());
if b=rdo2 idCancel () then return 1;
else return 0;
// 输出：如选择Cancel按钮，则返回1，否则返回0 。
```

## `idIgnore()`

消息对话框返回字，表明用户选中了Ignore按钮。

返回：integer

### 示例

```tsl
a := 3;
b := rdo2 messageBox('a>2,要继续吗？', '测试对话框', rdo2 mb_AbortRetryIgnore ());
if b=rdo2 idIgnore () then return 1;
else return 0;
// 输出：如选择Ignore按钮，则返回1，否则返回0 。
```

## `idNo()`

消息对话框返回字，表明用户选中了No按钮。

返回：integer

### 示例

```tsl
a := 3;
b := rdo2 messageBox('a>2,要继续吗？', '测试对话框', rdo2 mb_YesNo ());
if b=rdo2 idNo () then return 1;
else return 0;
// 输出：如选择No按钮，则返回1，否则返回0 。
```

## `idOk()`

消息对话框返回字，表明用户选中了OK按钮。

返回：integer

### 示例

```tsl
a := 3;
b := rdo2 messageBox('a>2,要继续吗？', '测试对话框', rdo2 mb_OkCancel ());
if b=rdo2 idOk() then return 1;
else return 0;
// 输出：如选择OK按钮，则返回1，否则返回0 。
```

## `idRetry()`

消息对话框返回字，表明用户选中了Retry按钮。

返回：integer

### 示例

```tsl
a := 3;
b := rdo2 messageBox('a>2,要继续吗？', '测试对话框', rdo2 mb_AbortRetryIgnore());
if b=rdo2 idRetry () then return 1;
else return 0;
// 输出：如选择Retry按钮，则返回1，否则返回0 。
```

## `idYes()`

消息对话框返回字，表明用户选中了Yes按钮。

返回：integer

### 示例

```tsl
a := 3;
b := rdo2 messageBox('a>2,要继续吗？', '测试对话框', rdo2 mb_YesNo());
if b=rdo2 idYes() then return 1;
else return 0;
// 输出：如选择Yes按钮，则返回1，否则返回0 。
```
