自定函数
# TaskRunner 自定函数
以下是TaskRunner中使用到的相关自定函数。自定函数可用于 RestAPI
与 JScript
类型的自定程序中。
# 1. UGMM类
UGMM类程序在程序中调用时,必须以UGMM.开头。
# 1.1. GetDBConnection
Function GetDBConnection(Const ADefName:String):TFDConnection;
根据TaskRunner数据库连接设置中数据库连接的名称获取数据库连接。
参数名称 | 说明 |
---|---|
ADefName | 数据库连接设置的名称 |
# 1.2. GetSQL
Function GetSQL(Const ASQLID:String):String;
获取TaskRunner预设资料中设定的SQL语句。
参数名称 | 说明 |
---|---|
ASQLID | 预设资料SQL的名称 |
- 示例
{
var D,DB;
DB = UGMM.GetDBConnection("demo");
D = new TFDQuery(nil);
D.Connection = DB;
try{
D.SQL.Text = UGMM.GetSQL("SQL001");
D.ParamByName("F1").AsString = "001";
D.ParamByName("F2").AsString = "name";
D.ExecSQL;
}
finally{
D.Free;
DB.Free;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 1.3. GetPython
Function GetPython(Const APyID:String):String;
获取TaskRunner预设资料中设定的Python语句。
参数名称 | 说明 |
---|---|
APyID | 预设资料Python的名称 |
# 1.4. GetWebSocketGUID
通过连接注册的会话ID获取连接ID。
参数名称 | 说明 |
---|---|
AClientID | 要查询的会话ID |
- 示例
if (UGMM.WSServer_WriteStream(UGMM.GetWebSocketGUID("test"),"{\"action\":\message"\"}")){
UGMM.AddLog("Send Success");
})
2
3
# 1.5. PrintReport
function PrintReport(QReportName: string; QParams: TStrings; QPrintName:string='';QExportFile: Boolean=True;QExportFileType:string='PDF';QReturnUrl:Boolean=true):string;
此方法用于输出自定报表格式的内容为报表档文件。
- 参数说明
参数名称 | 说明 |
---|---|
QReportName | 自定报表的名称 |
QParams | 自定报表使用的参数,在SQL语句中指定参数的名称 |
QPrintName | 如果需要使用打印机打印,此处指定打印机的名称,打印机名称可通过获取打印机列表方式来获取 |
QExportFile | 是否只输出文档,如果此项设置为True ,则不执行打印,只输出文件 |
QExportFileType | 输出的文档类型,默认为pdf 除此之外, FastReport 中,支持文档输出格式为XLS XLSX TXT PDF JPG BMP PNG HTML CSV ReportBuilder 还额外支持输出为DOC DOCX 格式 |
- 示例
var S, SL;
SL = new TStringList()
try{
//定义参数,为SQL中定义好的参数
SL.Values['FBillNo'] := 'SO21011401';
//呼叫自定报表,执行打印
s := UGMM.PrintReport('Pur_Order',SL,'',True);
Showmessage(s);
}
finally{
SL.Free;
}
2
3
4
5
6
7
8
9
10
11
12
# 1.6. SendEmail
function SendEmail(ASubject,ABody,AAddrdess:string;AHtml:Boolean;AAttFile:TStringList=nil):Boolean;
此方法用于发送邮件。
- 参数说明
参数名称 | 说明 |
---|---|
ASubject | 邮件的主题名称 |
ABody | 邮件的正文内容 |
AHtml | 邮件是否使用HTML格式 |
AAddress | 收件人的邮箱地址 |
AAttFile | 需发送的附件的目录地址,多个附件则分成多行 |
- 示例
UGMM.SendEmail("WelCome to use TaskRunner","Hello,This Email was Generated and sent by TaskRunner","sample@email.com",False,nil);
# 1.7. WSServer_WriteStream
WSServer_WriteStream(const aGuid:string;const aStream: TStream): Boolean;
向指定目标的客户端发送流信息。
- 参数说明
参数名称 | 说明 |
---|---|
aGuid | 连接的唯一ID |
aStream | 流数据信息 |
- 示例
if (UGMM.WSServer_WriteStream(Guid,Data)){
UGMM.AddLog("Send Success");
})
2
3
# 1.8. WSServer_WriteString
function WSServer_WriteString(const aGuid:string;const aText: String): Boolean;
向指定目标的客户端发送字符串信息。
- 参数说明
参数名称 | 说明 |
---|---|
aGuid | 连接的唯一ID |
aText | 连接的消息字符串 |
- 示例
if (UGMM.WSServer_WriteStream(Guid,"{\"action\":\message"\"}")){
UGMM.AddLog("Send Success");
})
2
3
# 2. UGCM类
UGCM类程序在程序中调用时,必须以UGCM.开头。
# 2.1. AmountToChinese
function AmountToChinese(ls: Variant): string;
说明: 金额转大写(中文) 返回值: string类型
- AmountToChinese 函数语法中各部分说明
部分 | 说明 |
---|---|
ls | 指定一个金额(浮点数) |
- 示例
//JScript
var Amount;
Amount = 123456.78;
Showmessage(UGCM.AmountToChinese(Amount));
2
3
4
运行结果 :壹拾贰万叁仟肆佰伍拾陆元柒角捌分
# 2.2. Base64Get
function Base64Get(FileName:String):String;
说明:将文件通过base64转换为字符串,这种方式可以将二进制的文件以字符串的方式传输,便于管理。 返回值:string类型
- Base64Get 函数语法中各部分说明
部分 | 说明 |
---|---|
FileName | 文件所在的地址 |
- 示例
//JScript
{
var str;
str = UGCM.Base64Get("E:\\setup\\023-3.jpg");
ShowMessage(str);
}
2
3
4
5
6
# 2.3. CreateGuid
function CreateGuid:String;
说明: 生成GUID
返回值: string 类型
示例
ShowMessage(UGCM.CreateGuid);
# 2.4. Decrypt
function Decrypt(const Input: string; const Key: string): string;
说明: 解密字符串。
返回值: 解密密后的字符串。
Encrypt 函数语法中各部分说明。
部分 | 说明 |
---|---|
Input | 输入的加密字符串 |
Key | 解密的密钥 |
- 示例
ShowMessage(UGCM.Decrypt("yrN+GsI=","key"));
运行结果 :Hello
# 2.5. Encrypt
function Encrypt(const Input: string; const Key: string): string;
说明: 加密字符串。
返回值: 加密后的字符串。
Encrypt 函数语法中各部分说明。
部分 | 说明 |
---|---|
Input | 输入的字符串 |
Key | 加密的密钥 |
- 示例
ShowMessage(UGCM.Encrypt("Hello","key"));
运行结果 :yrN+GsI=
# 2.6. ExcuteDosCmd
function ExcuteDosCmd(CommandLine: string): string;
- 说明: 执行Dos命令,获取执行结果。
- 返回值: string 类型
- ExcuteDosCmd 函数语法中各部分说明
部分 | 说明 |
---|---|
CommandLine | 命令行的字符串 |
# 2.7. GetFileStreamFileName
function GetFileStreamFileName(AFileStream: TFileStream): string;
说明: 根据文件流获取文件名(含路径) 返回值: string类型
- GetFileStreamFileName 函数语法中各部分说明
部分 | 说明 |
---|---|
AFileStream | 指定文件流 |
# 2.8. Gettamptime
function Gettamptime(vtime: string; vlen: Integer): string;
说明: 获取时间戳 返回值: string类型
- Gettamptime 函数语法中各部分说明
部分 | 说明 |
---|---|
vtime | 指定一个时间 |
vlen | 指定时间戳长度 |
- 示例
//JScript
var Time;
Time = "2020-12-01 12:12:12";
Showmessage(UGCM.Gettamptime(Time,13));
2
3
4
运行结果 :1606795932000
# 2.9. GettampTotime
function GettampTotime(vtamp: string): string;
说明: 根据时间戳转时间 返回值: string类型
- GettampTotime 函数语法中各部分说明
部分 | 说明 |
---|---|
vtamp | 指定一个时间戳 |
- 示例
//JScript
var Timetamp;
Timetamp = "1606795932000";
Showmessage(UGCM.GettampTotime(Timetamp));
2
3
4
运行结果 :2020-12-01 12:12:12.000
# 2.10. HexStrToStream
function HexStrToStream(AHexStr: string; AStream: TStream): Boolean;
说明: 16进制转流 返回值: Boolean类型
- HexStrToStream 函数语法中各部分说明
部分 | 说明 |
---|---|
AHexStr | 指定16进制字符串 |
AStream | 指定流对象 |
# 2.11. HexToInt
function HexToInt(const AHex: string): Integer;
说明: 16进制转整型 返回值: Integer类型
- HexToInt 函数语法中各部分说明
部分 | 说明 |
---|---|
AHex | 指定16进制字符 |
- 示例
//JScript
var Hex;
Hex = "0A";
Showmessage(IntToStr(UGCM.HexToInt(Hex)));
2
3
4
运行结果:10
# 2.12. HexToIEEE754
function HexToIEEE754(hexVal: string): Real;
将表示IEEE754标准单精度浮点数的字符串转换为浮点数显示。
部分 | 说明 |
---|---|
hexVal | 使用十六进制表示的字符串 |
var Hex;
Hex = "41A40000";
Showmessage(FloatToStr(UGCM. HexToIEEE754(Hex)));
2
3
运行结果:20.5
# 2.13. HexToBytes
function HexToBytes(AHex: string): TBytes;
说明: 16进制字符串转字节数组 返回值: TBytes类型
- HexToBytes 函数语法中各部分说明
部分 | 说明 |
---|---|
AHex | 指定16进制字符串 |
# 2.14. KillTask
function KillTask(ExeFileName: string): integer;
说明: 结束进程。 返回值: 整数类型。
- KillTask 函数语法中各部分说明。
部分 | 说明 |
---|---|
ExeFileName | 进程中的程序名称 |
# 2.15. PingServer
function PingServer(HostIP: string; LinkTimeOut: integer): boolean;
说明: 测试验证指定IP是否可以连接通讯。 返回值: Boolean类型
- PingServer 函数语法中各部分说明
部分 | 说明 |
---|---|
HostIP | 测试服务器的IP地址 |
LinkTimeOut | 超时阈值 |
# 2.16. RoundToCH
function RoundToCH(const AValue: Double; const ADigit: Integer): Double;
说明: 四舍五入 返回值: Double类型
- RoundToCH 函数语法中各部分说明
部分 | 说明 |
---|---|
AValue | 指定一个浮点数 |
ADigit | 指定小数位保留位数 |
- 示例
//JScript
//保留一位小数
var d;
d=12345.56;
Showmessage(FloatToStr(UGCM.RoundToCH(d,1)));
2
3
4
5
运行结果:12345.6
# 2.17. StreamToStr
Function StreamToStr(AStream:TMemoryStream):String;
说明: 流转字符串 返回值: String 类型。
部分 | 说明 |
---|---|
AStream | 待转换的数据流 |
# 2.18. NetHttpGet
function NetHttpGet(const Qurl: string; const QSource:string = ''): string;
说明: HTTP GET方法,通过向请求地址发送GET 请求获取返回信息。 返回值: String类型,
- NetHttpGet 函数语法中各部分说明
部分 | 说明 |
---|---|
Qurl | 指定一个地址 |
QSource | 请求体的内容,默认请保持为空状态 |
- 示例
//JScript
//ZoneMinder API用于获取监视器列表
//curl http://server/zm/api/monitors.json
s = UGCM.NetHttpGet(edtURL.Text + "/monitors.json?token=" + token,"");
mmLog.Lines.Clear;
mmLog.Lines.Add(DateTimeToStr(now()) + ": " + s);
2
3
4
5
6
# 2.19. NetHttpPost
function NetHttpPost(const Qurl: string; const QSource: string = ''; const QResponseContent: string = ''; const QContentType: string = ''): string;
说明: HTTP POST方法,通过向请求地址发送POST请求获取返回信息。 返回值: String类型,
- NetHttpPost 函数语法中各部分说明
部分 | 说明 |
---|---|
Qurl | 指定一个地址 |
QSource | 请求体的内容 |
QResponseContent | 请求响应的内容,默认保持为空的状态 |
QContentType | 请求体声明的内容类型,常用的有application/json 、application/xml 、application/x-www-form-urlencoded 等 |
- 示例
//JScript
//ZoneMinder 使用API来修改监视器功能
//curl -XPOST http://server/zm/api/monitors/1.json -d "Monitor[Function]=Modect&Monitor[Enabled]=1"
var postString,s;
postString = "Monitor[Function]=" + cbFunction.Items.Strings[cbFunction.ItemIndex] + "&Monitor[Enabled]=1";
s = UGCM.NetHttpPost(edtURL.Text + "/monitors/1.json?token=" + token,postString,"","application/x-www-form-urlencoded");
mmLog.Lines.Clear;
mmLog.Lines.Add(DateTimeToStr(now()) + ": " + s);
2
3
4
5
6
7
8
# 2.20. NetHttpPut
function NetHttpPut(const Qurl: string; const QSource: string = ''; const QResponseContent: string = ''; const QContentType: string = ''): string;
说明: HTTP PUT方法,通过向请求地址发送PUT请求获取返回信息。 返回值: String类型。
- NetHttpPut 函数语法中各部分说明
部分 | 说明 |
---|---|
Qurl | 指定一个地址 |
QSource | 请求体的内容 |
QResponseContent | 请求响应的内容,默认保持为空的状态 |
QContentType | 请求体声明的内容类型,常用的有application/json 、application/xml 、application/x-www-form-urlencoded 等 |
- 示例
//JScript
//ZoneMinder使用API来编辑监视器
//此命令会将监视器 1 的“名称”字段更改为“test1”
//curl -XPUT http://server/zm/api/monitors/1.json -d "Monitor[Name]=test1"
//修改检视器名称
var s;
s = UGCM.NetHttpPut(edtURL.Text + "/monitors/1.json?token=" + token,"Monitor[Name]=" +
edtMonitorName.Text,"","application/x-www-form-urlencoded");
mmLog.Lines.Clear;
mmLog.Lines.Add(DateTimeToStr(now()) + ": " + s);
2
3
4
5
6
7
8
9
10
# 2.21. NetHttpDelete
function NetHttpDelete(const Qurl: string; const QSource:string = ''): string;
说明: HTTP DELETE方法,通过向请求地址发送DELETE请求获取返回信息。 返回值: String类型。
- NetHttpDelete 函数语法中各部分说明
部分 | 说明 |
---|---|
QUrl | 指定一个地址 |
QSource | 请求体的内容,默认请保持为空状态 |
- 示例
//JScript
//ZoneMinder使用API来删除监视器
//curl -XDELETE http://server/zm/api/monitors/1.json
//删除监视器
var s;
s = UGCM.NetHttpDelete(edtURL.Text + "/monitors/4.json?token=" + token,"");
mmLog.Lines.Clear;
mmLog.Lines.Add(DateTimeToStr(now()) + ": " + s);
2
3
4
5
6
7
8
# 2.22. GetJSONObject
function GetJSONObject(const QJSONObject: TJSONObject; const QPath:String):TJSONObject;
说明: 获取JSON对象中指定的嵌套对象。 返回值: TJSONObject类型。
- GetJSONObject 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
- 示例
假设需要对以下JSON进行解析。
{
"status": "OK",
"Language":{
"DefaultLanguage": 1
}
}
2
3
4
5
6
//JScript
var J,s;
J= new TJSONObject();
s= "{\"status\": \"OK\",\"Language\":{\"DefaultLanguage\": 1}}";
Try{
j = TJSONObject(j.ParseJSONValue(s,false,false));
j =UGCM.GetJSONObject(j,"Language");
ShowMessage(UGCM.GetJSONNumber(j,"DefaultLanguage"));
}
Finally{
j.Free;
}
2
3
4
5
6
7
8
9
10
11
12
以上程序运行后获取到的值为1。
# 2.23. GetJSONArray
function GetJSONArray(const QJSONObject: TJSONObject; const QPath:String):TJSONArray;
说明: 获取JSON对象中指定的数组列。 返回值: TJSONArray类型。
- GetJSONArray 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
- 示例
假设需要对以下JSON进行解析。
{
"status": "OK",
"Language":{
"DefaultLanguage": 1,
"options":[
{"options":1},
{"options":2}
]
}
}
2
3
4
5
6
7
8
9
10
//JScript
var J,A,s;
J= new TJSONObject();
A= new TJSONArray();
s= "{\"status\": \"OK\",\"Language\":{\"DefaultLanguage\": 1,\"options\":[{\"options\":1},{\"options\":2}]}}";
Try{
j = TJSONObject(j.ParseJSONValue(s,false,false));
A = UGCM.GetJSONArray(j,"Language.options");
J = TJSONObject(A.Items[1]);
ShowMessage(UGCM.GetJSONNumber(j,"options"));
}
Finally{
j.Free;
A.Free;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
以上程序运行后获取到的值为2。
# 2.24. GetJSONString
function GetJSONString(const QJSONObject: TJSONObject; const QPath:String):String;
说明: 获取JSON对象中指定键值的字符串。 返回值: String类型。
- GetJSONString 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
假设需要对以下JSON进行解析。
{
"status": "OK",
"Language":{
"DefaultLanguage": 1
}
}
2
3
4
5
6
//JScript
var J,s;
J= new TJSONObject();
s= "{\"status\": \"OK\",\"Language\":{\"DefaultLanguage\": 1}}";
Try{
j = TJSONObject(j.ParseJSONValue(s,false,false));
ShowMessage(UGCM.GetJSONString(j,"status"));
}
Finally{
j.Free;
}
2
3
4
5
6
7
8
9
10
11
以上程序运行后获取到的值为OK。
# 2.25. GetJSONNumber
function GetJSONNumber(const QJSONObject: TJSONObject; const QPath:String):String;
说明: 获取JSON对象中指定的键值中的数值。 返回值: String类型。
- GetJSONNumber 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
- 示例
假设需要对以下JSON进行解析。
{
"status": "OK",
"Language":{
"DefaultLanguage": 1
}
}
2
3
4
5
6
//JScript
var J,s;
J= new TJSONObject();
s= "{\"status\": \"OK\",\"Language\":{\"DefaultLanguage\": 1}}";
Try{
j = TJSONObject(j.ParseJSONValue(s,false,false));
j =UGCM.GetJSONObject(j,"Language");
ShowMessage(UGCM.GetJSONNumber(j,"DefaultLanguage"));
}
Finally{
j.Free;
}
2
3
4
5
6
7
8
9
10
11
12
以上程序运行后获取到的值为1。
# 2.26. GetJSONInteger
function GetJSONInteger(const QJSONObject: TJSONObject; const QPath:String):Integer;
说明: 获取JSON对象中指定的键值中的整数数值,并以整数的形式返回。 返回值: Integer类型。
- GetJSONInteger 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
- 示例
假设需要对以下JSON进行解析。
{
"status": "OK",
"Language":{
"DefaultLanguage": 1
}
}
2
3
4
5
6
//JScript
var J,s;
J= new TJSONObject();
s= "{\"status\": \"OK\",\"Language\":{\"DefaultLanguage\": 1}}";
Try{
j = TJSONObject(j.ParseJSONValue(s,false,false));
i = UGCM.GetJSONInteger(j,"Language.DefaultLanguage");
ShowMessage(IntToStr(i));
}
Finally{
j.Free;
}
2
3
4
5
6
7
8
9
10
11
12
以上程序运行后获取到的值为1。
# 2.27. GetJSONFloat
function GetJSONFloat(const QJSONObject: TJSONObject; const QPath:String):Double;
说明: 获取JSON对象中指定的键值中的浮点数数值,并以浮点数的形式返回。 返回值: Double类型。
- GetJSONFloat 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
- 示例
假设需要对以下JSON进行解析。
{
"status": "OK",
"Language":{
"DefaultLanguage": 1.1
}
}
2
3
4
5
6
//JScript
var J,s;
J= new TJSONObject();
s= "{\"status\": \"OK\",\"Language\":{\"DefaultLanguage\": 1.1}}";
Try{
j = TJSONObject(j.ParseJSONValue(s,false,false));
i = UGCM.GetJSONFloat(j,"Language.DefaultLanguage");
ShowMessage(FloatToStr(i));
}
Finally{
j.Free;
}
2
3
4
5
6
7
8
9
10
11
12
以上程序运行后获取到的值为1.1。
# 2.28. GetJSONBool
function GetJSONBool(const QJSONObject: TJSONObject; const QPath:String):Boolean;
说明: 获取JSON对象中指定的键值中的布尔数值,并以布尔值的形式返回。 返回值: Boolean类型。
- GetJSONBool 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
假设需要对以下JSON进行解析。
{
"status": true,
"Language":{
"DefaultLanguage": 1
}
}
2
3
4
5
6
//JScript
var J,s;
J= new TJSONObject();
s= "{\"status\": true,\"Language\":{\"DefaultLanguage\": 1.1}}";
Try{
j = TJSONObject(j.ParseJSONValue(s,false,false));
if (UGCM.GetJSONBool(j,"status")){
ShowMessage("{\"status\": true}");
}
}
Finally{
j.Free;
}
2
3
4
5
6
7
8
9
10
11
12
13
以上程序运行后获取到的值为{"status": true}
。
# 2.29. GetJSONValue
function GetJSONValue(const QJSONObject: TJSONValue; const QPath:String):TJSONValue;
说明: 获取JSON对象中指定的键值中的值。 返回值: TJSONValue类型。
- GetJSONBool 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
# 2.30. JSONArray_AddJSONObject
function JSONArray_AddJSONObject(QJSONArray:TJSONArray;const QJSONObject: TJSONValue):TJSONArray;
说明: 在原有的JSON队列中添加一个新的JSON对象 返回值: TJSONArray类型。
- GetJSONBool 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONArray | 要进行获取对象操作的JSON队列名称 |
QJSONObject | 要添加的JSON对象名称 |
假设有以下的队列:
[{"status":"ok"}]
需要向其中添加以下的json对象:
{"status":"no"}
var J,A,s1,s2;
s1 = "[{\"status\":\"ok\"}]";
s2 = "{\"status\":\"no\"}";
A = TJSONArray(UGCM.ParseJSONValue(s1));
J = UGCM.ParseJSONValue(s2);
A = UGCM.JSONArray_AddJSONObject(A,J);
ShowMessage(A.ToString);
2
3
4
5
6
7
执行以上程序,输出的结果为 [{"status","ok"},{"status":"no"}]
# 2.31. JSONObject_AddJSONArray*
function JSONObject_AddJSONArray(QJSONObject: TJSONObject; const Str: string; const Val: TJSONValue):TJSONObject;
说明: 在原有的JSON对象中添加一个新的JSON值以获取一个新的JSON对象 返回值: TJSONObject类型。
部分 | 说明 |
---|---|
QJSONObject | 要获取的JSON对象名称 |
Str | 要添加的键名 |
Val | 要添加的键值 |
假设有以下的json对象:
{"status":"ok"}
需要合并以下的json队列作为子对象
[{"status":"no"}]
var J1,J2,A,s1,s2;
s1 = "{\"status\":\"ok\"}";
s2 = "[{\"status\":\"no\"}]";
J1 = UGCM.ParseJSONValue(s1);
A = UGCM.ParseJSONValue(s2);
J2 = UGCM.JSONObject_AddJSONArray(TJSONObject(J1),"array",A);
ShowMessage(j2.ToString);
2
3
4
5
6
7
执行以上程序,输出的结果为 [{"status","ok"},"array":[{"status":"no"}]}
# 2.32. JSONParse
function JSONParse(QType, QPath, QJson: string): string;
说明: 解析JSON,获取JSON中的单元的取值。 返回值: string类型。
部分 | 说明 |
---|---|
QType | 要获取的JSON对象类型 GetJSONObject ,GetJSONArray ,GetJSONNumber 、GetJSONObject 、GetJSONValue 、GetJSONBool 、GetJSONPair |
QPath | 获取的JSON对象的路径名称 |
QJSON | 要解析的JSON对象文本 |
- 示例
{
"status": true,
"Language":{
"DefaultLanguage": 1
}
}
2
3
4
5
6
var s;
s = "{\"status\": \"OK\",\"Language\":{\"DefaultLanguage\": 1}}";
ShowMessage(UGCM.JSONParse("GetJSONString","status",s));
2
3
# 2.33. ParseJSONValue
function ParseJSONValue(QJson: string): TJSONValue;
说明: 获取字符串形式的JSON对象中指定的键值中的值。 返回值: TJSONValue类型。
- GetJSONBool 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
# 2.34. RunScript
function RunScript(ATaskName:string;AParams:TStringList=nil;AEvaluate:string=''):Variant;
说明: 执行在TaskRunner中设定的自定程序。 返回值: 返回执行的结果。
- RunScript 函数语法中各部分说明
部分 | 说明 |
---|---|
ATaskName | 自定程序的名称 |
AParams | 自定程序需要输入的参数信息 |
AEvaluate | 表达式的名称,此处指定表达式后,可在运行自定程序后返回表达式的运行结果 |
- 示例
{
var s;
s = new TStringList();
try{
s.values["dberp"] = "FastERP";
s.values["dbfastweb"] = "FastWeb";
s.values["energytype"] = "water";
s.values["groupcode"] = "C-1";
UGCM.RunScript("EnergyView",s,"");
}
finally{
s.Free;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15