爱招飞帮助手册 爱招飞帮助手册
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
  • TaskRunner帮助主页
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 公共单元
    • 工作流
    • 运行卫士
    • 自定报表
    • 自动化作业
    • 控件使用
    • 函数程序

      • 系统函数
      • 系统程序
      • 自定函数
        • 1. UGMM类
          • 1.1. GetDBConnection
          • 1.2. GetSQL
          • 1.3. GetPython
          • 1.4. GetWebSocketGUID
          • 1.5. PrintReport
          • 1.6. SendEmail
          • 1.7. WSServer_WriteStream
          • 1.8. WSServer_WriteString
        • 2. UGCM类
          • 2.1. AmountToChinese
          • 2.2. Base64Get
          • 2.3. CreateGuid
          • 2.4. Decrypt
          • 2.5. Encrypt
          • 2.6. ExcuteDosCmd
          • 2.7. GetFileStreamFileName
          • 2.8. Gettamptime
          • 2.9. GettampTotime
          • 2.10. HexStrToStream
          • 2.11. HexToInt
          • 2.12. HexToIEEE754
          • 2.13. HexToBytes
          • 2.14. KillTask
          • 2.15. PingServer
          • 2.16. RoundToCH
          • 2.17. StreamToStr
          • 2.18. NetHttpGet
          • 2.19. NetHttpPost
          • 2.20. NetHttpPut
          • 2.21. NetHttpDelete
          • 2.22. GetJSONObject
          • 2.23. GetJSONArray
          • 2.24. GetJSONString
          • 2.25. GetJSONNumber
          • 2.26. GetJSONInteger
          • 2.27. GetJSONFloat
          • 2.28. GetJSONBool
          • 2.29. GetJSONValue
          • 2.30. JSONArray_AddJSONObject
          • 2.31. JSONObject_AddJSONArray*
          • 2.32. JSONParse
          • 2.33. ParseJSONValue
          • 2.34. RunScript
      • 自定程序
  • 开发手册

目录

自定函数

# TaskRunner 自定函数

  以下是TaskRunner中使用到的相关自定函数。自定函数可用于 RestAPI 与 JScript 类型的自定程序中。

# 1. UGMM类

  UGMM类程序在程序中调用时,必须以UGMM.开头。

# 1.1. GetDBConnection

Function GetDBConnection(Const ADefName:String):TFDConnection;
1

  根据TaskRunner数据库连接设置中数据库连接的名称获取数据库连接。

参数名称 说明
ADefName 数据库连接设置的名称

# 1.2. GetSQL

Function GetSQL(Const ASQLID:String):String;
1

  获取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;
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 1.3. GetPython

Function GetPython(Const APyID:String):String;
1

  获取TaskRunner预设资料中设定的Python语句。

参数名称 说明
APyID 预设资料Python的名称

# 1.4. GetWebSocketGUID

  通过连接注册的会话ID获取连接ID。

参数名称 说明
AClientID 要查询的会话ID
  • 示例
  if (UGMM.WSServer_WriteStream(UGMM.GetWebSocketGUID("test"),"{\"action\":\message"\"}")){
    UGMM.AddLog("Send Success");
  })
1
2
3

# 1.5. PrintReport

function PrintReport(QReportName: string; QParams: TStrings; QPrintName:string='';QExportFile: Boolean=True;QExportFileType:string='PDF';QReturnUrl:Boolean=true):string;
1

  此方法用于输出自定报表格式的内容为报表档文件。

  • 参数说明
参数名称 说明
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;
  }
1
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;
1

  此方法用于发送邮件。

  • 参数说明
参数名称 说明
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

# 1.7. WSServer_WriteStream

WSServer_WriteStream(const aGuid:string;const aStream: TStream): Boolean;
1

  向指定目标的客户端发送流信息。

  • 参数说明
参数名称 说明
aGuid 连接的唯一ID
aStream 流数据信息
  • 示例
  if (UGMM.WSServer_WriteStream(Guid,Data)){
    UGMM.AddLog("Send Success");
  })
1
2
3

# 1.8. WSServer_WriteString

function  WSServer_WriteString(const aGuid:string;const aText: String): Boolean;
1

  向指定目标的客户端发送字符串信息。

  • 参数说明
参数名称 说明
aGuid 连接的唯一ID
aText 连接的消息字符串
  • 示例
  if (UGMM.WSServer_WriteStream(Guid,"{\"action\":\message"\"}")){
    UGMM.AddLog("Send Success");
  })
1
2
3

# 2. UGCM类

  UGCM类程序在程序中调用时,必须以UGCM.开头。

# 2.1. AmountToChinese

function AmountToChinese(ls: Variant): string;
1

说明: 金额转大写(中文) 返回值: string类型

  • AmountToChinese 函数语法中各部分说明
部分 说明
ls 指定一个金额(浮点数)
  • 示例
//JScript
  var Amount;
  Amount = 123456.78;
  Showmessage(UGCM.AmountToChinese(Amount));
1
2
3
4

运行结果 :壹拾贰万叁仟肆佰伍拾陆元柒角捌分

# 2.2. Base64Get

function  Base64Get(FileName:String):String;
1

说明:将文件通过base64转换为字符串,这种方式可以将二进制的文件以字符串的方式传输,便于管理。 返回值:string类型

  • Base64Get 函数语法中各部分说明
部分 说明
FileName 文件所在的地址
  • 示例
//JScript
{
  var str;
  str = UGCM.Base64Get("E:\\setup\\023-3.jpg");
  ShowMessage(str);
}
1
2
3
4
5
6

# 2.3. CreateGuid

function  CreateGuid:String;
1
  • 说明: 生成GUID

  • 返回值: string 类型

  • 示例

  ShowMessage(UGCM.CreateGuid);
1

# 2.4. Decrypt

function Decrypt(const Input: string; const Key: string): string;
1
  • 说明: 解密字符串。

  • 返回值: 解密密后的字符串。

  • Encrypt 函数语法中各部分说明。

部分 说明
Input 输入的加密字符串
Key 解密的密钥
  • 示例
  ShowMessage(UGCM.Decrypt("yrN+GsI=","key"));
1

运行结果 :Hello

# 2.5. Encrypt

function Encrypt(const Input: string; const Key: string): string;
1
  • 说明: 加密字符串。

  • 返回值: 加密后的字符串。

  • Encrypt 函数语法中各部分说明。

部分 说明
Input 输入的字符串
Key 加密的密钥
  • 示例
  ShowMessage(UGCM.Encrypt("Hello","key"));
1

运行结果 :yrN+GsI=

# 2.6. ExcuteDosCmd

function ExcuteDosCmd(CommandLine: string): string;
1
  • 说明: 执行Dos命令,获取执行结果。
  • 返回值: string 类型
  • ExcuteDosCmd 函数语法中各部分说明
部分 说明
CommandLine 命令行的字符串

# 2.7. GetFileStreamFileName

function GetFileStreamFileName(AFileStream: TFileStream): string;
1

说明: 根据文件流获取文件名(含路径) 返回值: string类型

  • GetFileStreamFileName 函数语法中各部分说明
部分 说明
AFileStream 指定文件流

# 2.8. Gettamptime

function Gettamptime(vtime: string; vlen: Integer): string;
1

说明: 获取时间戳 返回值: string类型

  • Gettamptime 函数语法中各部分说明
部分 说明
vtime 指定一个时间
vlen 指定时间戳长度
  • 示例
//JScript
  var Time;
  Time = "2020-12-01 12:12:12";
  Showmessage(UGCM.Gettamptime(Time,13));
1
2
3
4

运行结果 :1606795932000


# 2.9. GettampTotime

function GettampTotime(vtamp: string): string; 
1

说明: 根据时间戳转时间 返回值: string类型

  • GettampTotime 函数语法中各部分说明
部分 说明
vtamp 指定一个时间戳
  • 示例
//JScript
  var Timetamp;
  Timetamp = "1606795932000";
  Showmessage(UGCM.GettampTotime(Timetamp));
1
2
3
4

运行结果 :2020-12-01 12:12:12.000


# 2.10. HexStrToStream

function HexStrToStream(AHexStr: string; AStream: TStream): Boolean;
1

说明: 16进制转流 返回值: Boolean类型

  • HexStrToStream 函数语法中各部分说明
部分 说明
AHexStr 指定16进制字符串
AStream 指定流对象

# 2.11. HexToInt

function HexToInt(const AHex: string): Integer;
1

说明: 16进制转整型 返回值: Integer类型

  • HexToInt 函数语法中各部分说明
部分 说明
AHex 指定16进制字符
  • 示例
//JScript
  var Hex;
  Hex = "0A";
  Showmessage(IntToStr(UGCM.HexToInt(Hex)));
1
2
3
4

运行结果:10

# 2.12. HexToIEEE754

function HexToIEEE754(hexVal: string): Real;
1

  将表示IEEE754标准单精度浮点数的字符串转换为浮点数显示。

部分 说明
hexVal 使用十六进制表示的字符串
  var Hex;
  Hex = "41A40000";
  Showmessage(FloatToStr(UGCM. HexToIEEE754(Hex)));
1
2
3

运行结果:20.5


# 2.13. HexToBytes

function HexToBytes(AHex: string): TBytes;
1

说明: 16进制字符串转字节数组 返回值: TBytes类型

  • HexToBytes 函数语法中各部分说明
部分 说明
AHex 指定16进制字符串

# 2.14. KillTask

function KillTask(ExeFileName: string): integer;
1

说明: 结束进程。 返回值: 整数类型。

  • KillTask 函数语法中各部分说明。
部分 说明
ExeFileName 进程中的程序名称

# 2.15. PingServer

function PingServer(HostIP: string; LinkTimeOut: integer): boolean;
1

说明: 测试验证指定IP是否可以连接通讯。 返回值: Boolean类型

  • PingServer 函数语法中各部分说明
部分 说明
HostIP 测试服务器的IP地址
LinkTimeOut 超时阈值

# 2.16. RoundToCH

function RoundToCH(const AValue: Double; const ADigit: Integer): Double;
1

说明: 四舍五入 返回值: Double类型

  • RoundToCH 函数语法中各部分说明
部分 说明
AValue 指定一个浮点数
ADigit 指定小数位保留位数
  • 示例
//JScript
//保留一位小数
  var d;
  d=12345.56;
  Showmessage(FloatToStr(UGCM.RoundToCH(d,1)));
1
2
3
4
5

运行结果:12345.6


# 2.17. StreamToStr

Function StreamToStr(AStream:TMemoryStream):String;
1

说明: 流转字符串 返回值: String 类型。

部分 说明
AStream 待转换的数据流

# 2.18. NetHttpGet

 function NetHttpGet(const Qurl: string; const QSource:string = ''): string;
1

说明: 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);
1
2
3
4
5
6

# 2.19. NetHttpPost

function NetHttpPost(const Qurl: string; const QSource: string = ''; const QResponseContent: string = ''; const QContentType: string = ''): string;
1

说明: 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);
1
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;
1

说明: 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);
1
2
3
4
5
6
7
8
9
10

# 2.21. NetHttpDelete

function NetHttpDelete(const Qurl: string; const QSource:string = ''): string;
1

说明: 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);
1
2
3
4
5
6
7
8

# 2.22. GetJSONObject

function GetJSONObject(const QJSONObject: TJSONObject; const QPath:String):TJSONObject;
1

说明: 获取JSON对象中指定的嵌套对象。 返回值: TJSONObject类型。

  • GetJSONObject 函数语法中各部分说明
部分 说明
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}}";
  Try{
     j = TJSONObject(j.ParseJSONValue(s,false,false));
     j =UGCM.GetJSONObject(j,"Language");
     ShowMessage(UGCM.GetJSONNumber(j,"DefaultLanguage"));
  }
  Finally{
    j.Free;
  }
1
2
3
4
5
6
7
8
9
10
11
12

  以上程序运行后获取到的值为1。

# 2.23. GetJSONArray

function GetJSONArray(const QJSONObject: TJSONObject; const QPath:String):TJSONArray;
1

说明: 获取JSON对象中指定的数组列。 返回值: TJSONArray类型。

  • GetJSONArray 函数语法中各部分说明
部分 说明
QJSONObject 要进行获取对象操作的JSON对象名称
QPath 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志
  • 示例

  假设需要对以下JSON进行解析。

{
    "status": "OK",
    "Language":{
        "DefaultLanguage": 1,
        "options":[
            {"options":1},
            {"options":2}
        ]
    }
}
1
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;
  }
1
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;
1

说明: 获取JSON对象中指定键值的字符串。 返回值: String类型。

  • GetJSONString 函数语法中各部分说明
部分 说明
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}}";
  Try{
     j = TJSONObject(j.ParseJSONValue(s,false,false));
     ShowMessage(UGCM.GetJSONString(j,"status"));
  }
  Finally{
    j.Free;
  }
1
2
3
4
5
6
7
8
9
10
11

  以上程序运行后获取到的值为OK。

# 2.25. GetJSONNumber

function GetJSONNumber(const QJSONObject: TJSONObject; const QPath:String):String;
1

说明: 获取JSON对象中指定的键值中的数值。 返回值: String类型。

  • GetJSONNumber 函数语法中各部分说明
部分 说明
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}}";
  Try{
     j = TJSONObject(j.ParseJSONValue(s,false,false));
     j =UGCM.GetJSONObject(j,"Language");
     ShowMessage(UGCM.GetJSONNumber(j,"DefaultLanguage"));
  }
  Finally{
    j.Free;
  }
1
2
3
4
5
6
7
8
9
10
11
12

  以上程序运行后获取到的值为1。

# 2.26. GetJSONInteger

function GetJSONInteger(const QJSONObject: TJSONObject; const QPath:String):Integer;
1

说明: 获取JSON对象中指定的键值中的整数数值,并以整数的形式返回。 返回值: Integer类型。

  • GetJSONInteger 函数语法中各部分说明
部分 说明
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}}";
  Try{
     j = TJSONObject(j.ParseJSONValue(s,false,false));
     i = UGCM.GetJSONInteger(j,"Language.DefaultLanguage");
     ShowMessage(IntToStr(i));
  }
  Finally{
    j.Free;
  }
1
2
3
4
5
6
7
8
9
10
11
12

  以上程序运行后获取到的值为1。

# 2.27. GetJSONFloat

function GetJSONFloat(const QJSONObject: TJSONObject; const QPath:String):Double;
1

说明: 获取JSON对象中指定的键值中的浮点数数值,并以浮点数的形式返回。 返回值: Double类型。

  • GetJSONFloat 函数语法中各部分说明
部分 说明
QJSONObject 要进行获取对象操作的JSON对象名称
QPath 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志
  • 示例

  假设需要对以下JSON进行解析。

{
    "status": "OK",
    "Language":{
        "DefaultLanguage": 1.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;
  }
1
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;
1

说明: 获取JSON对象中指定的键值中的布尔数值,并以布尔值的形式返回。 返回值: Boolean类型。

  • GetJSONBool 函数语法中各部分说明
部分 说明
QJSONObject 要进行获取对象操作的JSON对象名称
QPath 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志

  假设需要对以下JSON进行解析。

{
    "status": true,
    "Language":{
        "DefaultLanguage": 1
    }
}
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;
  }
1
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;
1

说明: 获取JSON对象中指定的键值中的值。 返回值: TJSONValue类型。

  • GetJSONBool 函数语法中各部分说明
部分 说明
QJSONObject 要进行获取对象操作的JSON对象名称
QPath 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志

# 2.30. JSONArray_AddJSONObject

function JSONArray_AddJSONObject(QJSONArray:TJSONArray;const QJSONObject: TJSONValue):TJSONArray;
1

说明: 在原有的JSON队列中添加一个新的JSON对象 返回值: TJSONArray类型。

  • GetJSONBool 函数语法中各部分说明
部分 说明
QJSONArray 要进行获取对象操作的JSON队列名称
QJSONObject 要添加的JSON对象名称

  假设有以下的队列:

[{"status":"ok"}]
1

  需要向其中添加以下的json对象:

{"status":"no"}
1
  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);
1
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;
1

说明: 在原有的JSON对象中添加一个新的JSON值以获取一个新的JSON对象 返回值: TJSONObject类型。

部分 说明
QJSONObject 要获取的JSON对象名称
Str 要添加的键名
Val 要添加的键值

  假设有以下的json对象:

{"status":"ok"}
1

  需要合并以下的json队列作为子对象

[{"status":"no"}]
1
  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);
1
2
3
4
5
6
7

  执行以上程序,输出的结果为 [{"status","ok"},"array":[{"status":"no"}]}

# 2.32. JSONParse

function JSONParse(QType, QPath, QJson: string): string;
1

说明: 解析JSON,获取JSON中的单元的取值。 返回值: string类型。

部分 说明
QType 要获取的JSON对象类型 GetJSONObject,GetJSONArray,GetJSONNumber、GetJSONObject、GetJSONValue、GetJSONBool、GetJSONPair
QPath 获取的JSON对象的路径名称
QJSON 要解析的JSON对象文本
  • 示例
{
    "status": true,
    "Language":{
        "DefaultLanguage": 1
    }
}
1
2
3
4
5
6
  var s;
  s = "{\"status\": \"OK\",\"Language\":{\"DefaultLanguage\": 1}}";
  ShowMessage(UGCM.JSONParse("GetJSONString","status",s));
1
2
3

# 2.33. ParseJSONValue

function ParseJSONValue(QJson: string): TJSONValue;
1

说明: 获取字符串形式的JSON对象中指定的键值中的值。 返回值: TJSONValue类型。

  • GetJSONBool 函数语法中各部分说明
部分 说明
QJSONObject 要进行获取对象操作的JSON对象名称
QPath 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志

# 2.34. RunScript

function RunScript(ATaskName:string;AParams:TStringList=nil;AEvaluate:string=''):Variant;
1

说明: 执行在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;
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
系统程序
自定程序

← 系统程序 自定程序→

Copyright © 2021-2025 爱招飞IsoFace | ALL Rights Reserved
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式