playbook/docs/tsl/syntax_book/function/08_gui.md

20 KiB
Raw Blame History

GUI函数

内容

  • GUI函数简介
  • GUI功能函数
  • 消息对话框的类型控制字
  • 消息对话框的图标控制字
  • 消息对话框的默认按钮控制字
  • 消息对话框的模式控制字
  • 消息对话框的其他控制字
  • 消息对话框的返回字

GUI函数简介

GUI函数目前只能用于本地化执行如WORD模板中以及其他本地执行的应用中。GUI函数为TSL语言与用户提供一个运行中的交互提供了可能。如显示消息对话框显示文件打开对话框显示输入对话框等等。

GUI功能函数

内容
  • 对话框数据类别函数
  • InputQuery
  • PromptForFileName
  • MessageBox
  • InputDialog
  • BuildOptionComboValue
  • ShowValue
对话框数据类别函数
内容
  • uiInteger
  • uiBoolean
  • uiString
  • uiDate
  • uiDouble
  • uiMarketList
  • uiIndexList
  • uiStockList
  • uiSelfBkList
  • uiSysBkList
  • uiRightStyle
  • uiCycle
  • uiReportDate
  • uiBasicIDList
  • uiUserDefine
  • uiOneDimArray
  • uiTwoDimDoubleArray
  • uiOneDimStringArray
  • uiTwoDimStringArray
  • uiOneDimDateArray
  • uiTwoDimDateArray
  • uiTable
  • uiUserData
  • uiRightDay
  • uiBasicID
  • uiYear
  • uiMonth
  • uiDay
uiInteger

用途:对话框数据类别函数相关函数。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiInteger();
// 结果0
uiBoolean

用途:对话框数据类别函数相关函数。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiBoolean();
// 结果1
uiString

用途:对话框数据类别函数相关函数。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiString();
// 结果2
uiDate

用途:日期时间处理函数。 参数:无。 返回:日期或时间值。

范例

return rdo2 uiDate();
// 结果3
uiDouble

用途:对话框数据类别函数相关函数。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiDouble();
// 结果4
uiMarketList

用途:对话框数据类别函数相关函数。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiMarketList();
// 结果5
uiIndexList

用途:对话框数据类别函数相关函数。 参数:无。 返回:整数。

范例

return rdo2 uiIndexList();
// 结果6
uiStockList

用途:对话框数据类别函数相关函数。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiStockList();
// 结果7
uiSelfBkList

用途:对话框数据类别函数相关函数。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiSelfBkList();
// 结果8
uiSysBkList

用途:对话框数据类别函数相关函数。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiSysBkList();
// 结果9
uiRightStyle

用途:进行字符串提取或替换处理。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiRightStyle();
// 结果11
uiCycle

用途:对话框数据类别函数相关函数。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiCycle();
// 结果12
uiReportDate

用途:日期时间处理函数。 参数:无。 返回:日期或时间值。

范例

return rdo2 uiReportDate();
// 结果13
uiBasicIDList

用途:对话框数据类别函数相关函数。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiBasicIDList();
// 结果14
uiUserDefine

用途:对话框数据类别函数相关函数。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiUserDefine();
// 结果17
uiOneDimArray

用途:对话框数据类别函数相关函数。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiOneDimArray();
// 结果18
uiTwoDimDoubleArray

用途:对话框数据类别函数相关函数。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiTwoDimDoubleArray();
// 结果19
uiOneDimStringArray

用途:对话框数据类别函数相关函数。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiOneDimStringArray();
// 结果20
uiTwoDimStringArray

用途:对话框数据类别函数相关函数。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiTwoDimStringArray();
// 结果21
uiOneDimDateArray

用途:日期时间处理函数。 参数:无。 返回:日期或时间值。

范例

return rdo2 uiOneDimDateArray();
// 结果22
uiTwoDimDateArray

用途:日期时间处理函数。 参数:无。 返回:日期或时间值。

范例

return rdo2 uiTwoDimDateArray();
// 结果23
uiTable

用途:对话框数据类别函数相关函数。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiTable();
// 结果24
uiUserData

用途:对话框数据类别函数相关函数。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiUserData();
// 结果25
uiRightDay

用途:进行字符串提取或替换处理。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiRightDay();
// 结果27
uiBasicID

用途:对话框数据类别函数相关函数。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiBasicID();
// 结果29
uiYear

用途:对话框数据类别函数相关函数。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiYear();
// 结果31
uiMonth

用途:对话框数据类别函数相关函数。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiMonth();
// 结果32
uiDay

用途:对话框数据类别函数相关函数。 参数:无。 返回:处理后的结果值。

范例

return rdo2 uiDay();
// 结果33
InputQuery

范例

if not rdo2 inputquery("输入数据", "输入被除数", M1) then return "未输入被除数";
if not rdo2 inputquery("输入数据", "输入除数", M2) then return "未输入除数";
return strtofloat(M1) / strtofloat(M2);

执行第一个if时弹出如上对话框输入3点击确定这是执行第二个if弹出如下个对话框

输入6点击OK则返回的结果是0.5.

PromptForFileName

范例

// 打开保存文件对话框
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;
MessageBox

范例

范例1

a := 3;
if a > 2 then b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', rdo2 mb_YesNo());
if b = 6 then return 1;
else return 0;

显示的消息对话框如下:

其中mb_YesNo()函数为控制字函数,各控制字函数可以参考链接:

http://www.tinysoft.com.cn/tsdn/helpdoc/display.tsl?id=1380

范例2

两个控制字函数相加的消息显示框,两个控制字函数相加用位或的运算符号.|,程序如下:

a := 3;
c := rdo2 mb_YesNo() .| rdo2 mb_IconWarning();
if a > 2 then b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
if b = 7 then return 1;
else return b;

弹出的消息显示框则如下:

比范例1多了一个警告图标即mb_IconWarning()是警告图标控制字函数参考消息对话框的返回字。

InputDialog

范例

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

范例

// 返回结果值为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);
ShowValue

范例

// 显示一个数组数据
a := rand(10, 10);
b := rdo2 ShowValue('测试显示', a, false);
return b;
// 显示一个字符串
a := '测试ABC';
b := rdo2 ShowValue('测试显示', a, false);
return b;

消息对话框的类型控制字

内容
  • mb_AbortRetryIgnore
  • mb_Ok
  • mb_OkCancel
  • mb_RetryCancel
  • mb_YesNo
  • mb_YesNoCancel
mb_AbortRetryIgnore

范例

a := 3;
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', rdo2 mb_AbortRetryIgnore());
return b;

弹出如下消息对话框选择“中止”则返回“中止”按钮id的返回字选择“重试”则返回“重试”按钮id的返回字。选择“忽略”及返回“忽略”按钮Id的返回字。

mb_Ok
  • mb_AbortRetryIgnore
  • mb_Ok
  • mb_OkCancel
  • mb_RetryCancel
  • mb_YesNo
  • mb_YesNoCancel
mb_OkCancel

范例

a := 3;
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', rdo2 mb_OkCancel());
return b;

弹出如下消息对话框选择“确定”则返回“确定”按钮id的返回字选择“取消”则返回“取消”按钮id的返回字。

mb_RetryCancel

范例

a := 3;
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', rdo2 mb_RetryCancel());
return b;

弹出如下消息对话框选择“重试”则返回“重试”按钮id的返回字选择“取消”则返回“取消”按钮id的返回字。

mb_YesNo

范例

a := 3;
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', rdo2 mb_YesNo());
return b;

弹出如下消息对话框选择“是”则返回“是”按钮id的返回字选择否则返回“否”按钮id的返回字。

参考MessageBox

mb_YesNoCancel

范例

a := 3;
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', rdo2 mb_YesNoCancel());
return b;

弹出如下消息对话框选择“是”则返回“是”按钮id的返回字选择“否”则返回“否”按钮id的返回字选择“取消”则返回“取消”按钮id的返回字。

消息对话框的图标控制字

内容
  • mb_IconInformation
  • mb_IconExclamation
  • mb_IconWarning
  • mb_IconInfomation
  • mb_IconAsterisk
  • mb_IconQuestion
  • mb_IconStop
  • mb_IconError
  • mb_IconHand
mb_IconInformation

范例

a := 3;
c := rdo2 mb_YesNo() .| rdo2mb_IconInformation();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出对话框如下:

mb_IconExclamation

范例

a := 3;
c := rdo2 mb_YesNo() .| rdo2 mb_IconExclamation();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出消息显示框如下图在控制字mb_YesNo()显示框的基础上加了一个感叹号图标。

mb_IconWarning

范例

a := 3;
c := rdo2 mb_YesNo() .| rdo2 mb_IconWarning();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出消息显示框如下图在控制字mb_YesNo()显示框的基础上加了一个警告图标。

mb_IconInfomation
  • mb_IconInformation
  • mb_IconExclamation
  • mb_IconWarning
  • mb_IconInfomation
  • mb_IconAsterisk
  • mb_IconQuestion
  • mb_IconStop
  • mb_IconError
  • mb_IconHand
mb_IconAsterisk

范例

a := 3;
c := rdo2 mb_YesNo() .| rdo2 mb_IconAsterisk();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出消息显示框如下图在控制字mb_YesNo()显示框的基础上加了一个星号图标。

mb_IconQuestion

范例

a := 3;
c := rdo2 mb_YesNo() .| rdo2mb_IconQuestion ();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出消息显示框如下图在控制字mb_YesNo()显示框的基础上加了一个问好图标。

mb_IconStop

范例

a := 3;
c := rdo2 mb_YesNo() .| rdo2mb_IconStop();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出消息显示框如下图在控制字mb_YesNo()显示框的基础上加了一个停止图标。

mb_IconError

范例

a := 3;
c := rdo2 mb_YesNo() .| rdo2mb_IconError();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出消息显示框如下图在控制字mb_YesNo()显示框的基础上加了一个错误图标。

mb_IconHand

范例

a := 3;
c := rdo2 mb_YesNo() .| rdo2mb_IconHand();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出消息显示框如下图在控制字mb_YesNo()显示框的基础上加了一个手图标。

消息对话框的默认按钮控制字

内容
  • mb_DefButton1
  • mb_DefButton2
  • mb_DefButton3
  • mb_DefButton4
mb_DefButton1

范例

a := 3;
c := rdo2 mb_YesNo() .| rdo2mb_DefButton1();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出消息显示框如下图控制字mb_YesNo()消息显示框的第一个按钮呈浅蓝色。

mb_DefButton2

范例

a := 3;
c := rdo2 mb_YesNo() .| rdo2mb_DefButton2();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出消息显示框如下图控制字mb_YesNo()消息显示框的第二个按钮呈浅蓝色。

mb_DefButton3

范例

a := 3;
c := rdo2 mb_AbortRetryIgnore() .| rdo2mb_DefButton3();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出消息显示框如下图控制字mb_AbortRetryIgnore()消息显示框的第三个按钮呈浅蓝色。

mb_DefButton4

范例

如没有第四个按钮则从超出按钮个数起重新从第一个按钮数如mb_AbortRetryIgnore()

在默认第四个按钮由于mb_AbortRetryIgnore()只有三个按钮,则第四个显示的是第一个。

a := 3;
c := rdo2 mb_AbortRetryIgnore() .| rdo2mb_DefButton4();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出消息显示框如下图控制字mb_AbortRetryIgnore()消息显示框的第一个按钮呈浅蓝色。

消息对话框的模式控制字

内容
  • mb_ApplModal
  • mb_AppModal
  • mb_SystemModal
  • mb_TaskModal
mb_ApplModal

范例

a := 3;
c := rdo2 mb_AbortRetryIgnore() .| rdo2mb_ApplModal();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出消息显示框如下图:

mb_AppModal
  • mb_ApplModal
  • mb_AppModal
  • mb_SystemModal
  • mb_TaskModal
mb_SystemModal

范例

a := 3;
c := rdo2 mb_AbortRetryIgnore() .| rdo2mb_SystemModal();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出消息显示框如下图,如不返回选择按钮,消息显示框总是在最前端。

mb_TaskModal

范例

a := 3;
c := rdo2 mb_AbortRetryIgnore() .| rdo2mb_TaskModal();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出消息显示框如下图,如不返回选择按钮,将无法继续操作天软系统。

消息对话框的其他控制字

内容
  • mb_TopMost
  • mb_Default_Desktop_Only
  • mb_Help
  • mb_Right
  • mb_RtlReading
  • mb_SetForeGround
  • mb_SetTopMost
  • mb_Service_Notification
  • mb_Service_Notification_NT3X
mb_TopMost

范例

a := 3;
c := rdo2 mb_AbortRetryIgnore() .| rdo2mb_TopMost();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出对话框如:

mb_Default_Desktop_Only

范例

a := 3;
c := rdo2 mb_AbortRetryIgnore() .| rdo2mb_Default_Desktop_Only();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出消息显示框如下图

mb_Help

范例

a := 3;
c := rdo2 mb_AbortRetryIgnore() .| rdo2mb_Help();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出消息显示框如下图

mb_Right

范例

a := 3;
c := rdo2 mb_AbortRetryIgnore() .| rdo2mb_Right();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出消息显示框如下图

mb_RtlReading

范例

a := 3;
c := rdo2 mb_AbortRetryIgnore() .| rdo2mb_RtlReading();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出消息显示框如下图

mb_SetForeGround

范例

a := 3;
c := rdo2 mb_AbortRetryIgnore() .| rdo2mb_SetForeGround();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出消息显示框如下图

mb_SetTopMost
  • mb_TopMost
  • mb_Default_Desktop_Only
  • mb_Help
  • mb_Right
  • mb_RtlReading
  • mb_SetForeGround
  • mb_SetTopMost
  • mb_Service_Notification
  • mb_Service_Notification_NT3X
mb_Service_Notification

范例

a := 3;
c := rdo2 mb_AbortRetryIgnore() .| rdo2mb_Service_Notification();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;
mb_Service_Notification_NT3X

范例

a := 3;
c := rdo2 mb_AbortRetryIgnore() .| rdo2mb_Service_Notification_NT3X();
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', c);
return b;

弹出消息显示框如下图

消息对话框的返回字

内容
  • idAbort
  • idCancel
  • idIgnore
  • idNo
  • idOk
  • idRetry
  • idYes
idAbort

范例

a := 3;
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', rdo2 mb_AbortRetryIgnore());
if b = rdo2 idAbort () then return 1;
else return 0;

返回结果如选择Abort按钮则返回1否则返回0 。

idCancel

范例

a := 3;
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', rdo2 mb_OkCancel());
if b = rdo2 idCancel () then return 1;
else return 0;

返回结果如选择Cancel按钮则返回1否则返回0 。

idIgnore

范例

a := 3;
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', rdo2 mb_AbortRetryIgnore ());
if b = rdo2 idIgnore () then return 1;
else return 0;

返回结果如选择Ignore按钮则返回1否则返回0 。

idNo

范例

a := 3;
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', rdo2 mb_YesNo ());
if b = rdo2 idNo () then return 1;
else return 0;

返回结果如选择No按钮则返回1否则返回0 。

idOk

范例

a := 3;
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', rdo2 mb_OkCancel ());
if b = rdo2 idOk() then return 1;
else return 0;

返回结果如选择OK按钮则返回1否则返回0 。

idRetry

范例

a := 3;
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', rdo2 mb_AbortRetryIgnore());
if b = rdo2 idRetry () then return 1;
else return 0;

返回结果如选择Retry按钮则返回1否则返回0 。

idYes

范例

a := 3;
b := rdo2 MessageBox('a>2,要继续吗?', '测试对话框', rdo2 mb_YesNo());
if b = rdo2 IdYes() then return 1;
else return 0;

返回结果如选择Yes按钮则返回1否则返回0 。