# Dotnet - GUI

## `buildOptionComboValue(values, default_index)`

声明：function

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

<!-- tags: GUI VALUE -->

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

返回：string

### 示例

范例01：调用函数

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

范例02：调用函数

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

## `idAbort()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

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

## `idCancel()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

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

## `idIgnore()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

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

## `idNo()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

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

## `idOk()`

声明：function

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

<!-- tags: GUI OK -->

返回：integer

### 示例

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

## `idRetry()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

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

## `idYes()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

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

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

声明：function

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

<!-- tags: GUI -->

| 参数     | 类型       | 说明                                                                                                   |
| -------- | ---------- | ------------------------------------------------------------------------------------------------------ |
| `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的结果显示出来如下：
```

## `inputQuery(caption, hint, var_result)`

声明：function

与前端交互函数，输入字符串对话框。如果选择OK则返回真，否则返回假

<!-- tags: GUI OK -->

| 参数         | 类型   | 说明                                                   |
| ------------ | ------ | ------------------------------------------------------ |
| `caption`    | string | 字符串类型，输入对话框的标题。                         |
| `hint`       | string | 字符串类型，输入提示性语句                             |
| `var_result` | string | 字符串类型，入口作为初始字符串，返回为输入后的字符串； |

返回：bool

## `mb_abortRetryIgnore()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_applModal()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_appModal()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_default_desktop_only()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_defButton1()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_defButton2()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_defButton3()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_defButton4()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_help()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_iconAsterisk()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_iconError()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_iconExclamation()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_iconHand()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_iconInfomation()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_iconInformation()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_iconQuestion()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_iconStop()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_iconWarning()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_ok()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_okCancel()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_retryCancel()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_right()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_rtlReading()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_service_notification()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_setForeGround()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_setTopMost()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_systemModal()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_taskModal()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_topMost()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `mb_yesNo()`

声明：function

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

<!-- tags: GUI ID NO -->

返回：integer

## `mb_yesNoCancel()`

声明：function

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

<!-- tags: GUI -->

返回：integer

## `messageBox(text, caption, u_type)`

声明：function

与前端交互函数，显示消息对话框，返回用户选择的按钮ID号 此函数的功能显示消息对话框，比如在运行程序时如果触发了某个条件，就可以使用此函数弹出消息对话框进行提示，达到监控的状态。函数的第三个参数消息对话框的控制字，可以是单个控制字也可以是多个控制字的相加而成，实现多个控制字的相加的方法用位运算，用符号.∣。 天软有各类单一功能的控制字，可以相加变成多功能的消息对话框，将个类功能的控制字相加一起应用是一个完整的消息显示框。各类控制字如下表： 功能类别 范例控制字函数 类型控制字 mb_YesNo() 图标控制字 mb_IconWarning() 默认按钮控制字 mb_DefButton2() 模式控制字 mb_TaskModal() 其他控制字 mb_right() 返回字 idYes()

<!-- tags: GUI ID -->

| 参数      | 类型   | 说明                                                                                                                                                                           |
| --------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `text`    | string | 字符串类型，显示消息对话框的内容。                                                                                                                                             |
| `caption` | string | 字符串类型，显示消息对话框的内容。                                                                                                                                             |
| `u_type`  | int    | 整数类型。可由消息对话框的各种控制字相加而成。参见消息对话框的类型控制字，消息对话框的图标控制字，消息对话框的默认按钮控制字，消息对话框的模式控制字，消息对话框的其他控制字。 |

返回：int

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

声明：function

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

<!-- tags: GUI 过滤 筛选 filter 写入 保存 -->

| 参数          | 类型       | 说明                                                                                                                                 |
| ------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `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

### 示例

范例01：调用函数

```tsl
// 打开保存文件对话框
filter := 'Excel files (*.xls;*.xlsx)|*.xls;*.xlsx|TSL files (*.tsl)|*.tsl';
rdo2 promptForFileName(
    data, filter, '.xls', '保存对话框', 'C:\\DataStore', 1);
return data;
```

范例02：调用函数

```tsl
// 打开文件对话框
filter := 'Excel files (*.xls;*.xlsx)|*.xls;*.xlsx|TSL files (*.tsl)|*.tsl';
rdo2 PromptForFileName(
    data, filter, '.xls', '打开对话框', 'C:\\DataStore', 0);
return data;
```

## `showValue(title, value, editable)`

声明：function

将数据以数据窗口方式显示出来。如果数据被修改了，则为真

<!-- tags: GUI -->

| 参数       | 类型   | 说明                         |
| ---------- | ------ | ---------------------------- |
| `title`    | string | 字符串类型，显示窗口的标题。 |
| `value`    | any    | 任意类型，要显示的数据。     |
| `editable` | bool   | object                       |

返回：bool

## `uiBasicId()`

声明：function

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

<!-- tags: GUI ID -->

返回：integer

### 示例

```tsl
return rdo2 uiBasicId();
// 输出：29
```

## `uiBasicIdList()`

声明：function

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

<!-- tags: GUI ID -->

返回：integer

### 示例

```tsl
return rdo2 uiBasicIdList();
// 输出：14
```

## `uiBoolean()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiBoolean();
// 输出：1
```

## `uiCycle()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiCycle();
// 输出：12
```

## `uiDate()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiDate();
// 输出：3
```

## `uiDay()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiDay();
// 输出：33
```

## `uiDouble()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiDouble();
// 输出：4
```

## `uiIndexList()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiIndexList();
// 输出：6
```

## `uiInteger()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiInteger();
// 输出：0
```

## `uiMarketList()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiMarketList();
// 输出：5
```

## `uiMonth()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiMonth();
// 输出：32
```

## `uiOneDimArray()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiOneDimArray();
// 输出：18
```

## `uiOneDimDateArray()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiOneDimDateArray();
// 输出：22
```

## `uiOneDimStringArray()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiOneDimStringArray();
// 输出：20
```

## `uiReportDate()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiReportDate();
// 输出：13
```

## `uiRightDay()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiRightDay();
// 输出：27
```

## `uiRightStyle()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiRightStyle();
// 输出：11
```

## `uiSelfBkList()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiSelfBkList();
// 输出：8
```

## `uiStockList()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiStockList();
// 输出：7
```

## `uiString()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiString();
// 输出：2
```

## `uiSysBkList()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiSysBkList();
// 输出：9
```

## `uiTable()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiTable();
// 输出：24
```

## `uiTwoDimDateArray()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiTwoDimDateArray();
// 输出：23
```

## `uiTwoDimDoubleArray()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiTwoDimDoubleArray();
// 输出：19
```

## `uiTwoDimStringArray()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiTwoDimStringArray();
// 输出：21
```

## `uiUserData()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiUserData();
// 输出：25
```

## `uiUserDefine()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiUserDefine();
// 输出：17
```

## `uiYear()`

声明：function

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

<!-- tags: GUI -->

返回：integer

### 示例

```tsl
return rdo2 uiYear();
// 输出：31
```
