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

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

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

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

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

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

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 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
  • FastBPM帮助主页
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI说明
    • 控件使用
    • 函数程序

      • 自定函数
        • 1. UGCM类
          • 1.1. AmountToChinese
          • 1.2. Base64Get
          • 1.3. CreateGuid
          • 1.4. Decrypt
          • 1.5. Encrypt
          • 1.6. ExcuteDosCmd
          • 1.7. GetFileStreamFileName
          • 1.8. Gettamptime
          • 1.9. GettampTotime
          • 1.10. HexStrToStream
          • 1.11. HexToInt
          • 1.12. HexToIEEE754
          • 1.13. HexToBytes
          • 1.14. HTTPDecode
          • 1.15. HTTPEncode
          • 1.16. KillTask
          • 1.17. PingServer
          • 1.18. RoundToCH
          • 1.19. StreamToStr
          • 1.20. NetHttpGet
          • 1.21. NetHttpPost
          • 1.22. NetHttpPut
          • 1.23. NetHttpDelete
          • 1.24. GetJSONObject
          • 1.25. GetJSONArray
          • 1.26. GetJSONString
          • 1.27. GetJSONNumber
          • 1.28. GetJSONInteger
          • 1.29. GetJSONFloat
          • 1.30. GetJSONBool
          • 1.31. GetJSONPair
          • 1.32. GetJSONValue
          • 1.33. JSONArray_AddJSONObject
          • 1.34. JSONObject_AddJSONArray*
          • 1.35. JSONParse
          • 1.36. ParseJSONValue
          • 1.37. ToJSONObjectString
          • 1.38. ToJSONArrayString
          • 1.39. ToJSONObject
          • 1.40. ToJSONArray
        • 2. UGDM类
          • 2.1. 属性
          • 2.1.1. DBConnection
          • 2.1.2. DataSet
          • 2.2. SendWsMsgBySId
          • 2.3. SendWsMsgByStr
          • 2.4. SendWsMsg
          • 2.5. DownFile
          • 2.6. OpenData
          • 2.7. SaveData
      • 自定程序
目录

自定函数

# 自定函数

  以下自定函数用于工作流脚本设计环节。

# 1. UGCM类

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

# 1.1. AmountToChinese

function AmountToChinese(ls: Variant): string;
1

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

  • AmountToChinese 函数语法中各部分说明
部分 说明
ls 指定一个金额(浮点数)
  • 示例
//pascal
var
  Amount: Float;
begin
  Amount := 123456.78;
  ShowMessage(UGCM.AmountToChinese(Amount));
end.
1
2
3
4
5
6
7

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

# 1.2. Base64Get

function  Base64Get(FileName:String):String;
1

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

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

# 1.3. CreateGuid

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

  • 返回值: string 类型

  • 示例

  ShowMessage(UGCM.CreateGuid);
1

# 1.4. Decrypt

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

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

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

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

运行结果 :Hello

# 1.5. Encrypt

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

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

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

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

运行结果 :yrN+GsI=

# 1.6. ExcuteDosCmd

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

# 1.7. GetFileStreamFileName

function GetFileStreamFileName(AFileStream: TFileStream): string;
1

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

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

# 1.8. Gettamptime

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

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

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

运行结果 :1606795932000


# 1.9. GettampTotime

function GettampTotime(vtamp: string): string; 
1

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

  • GettampTotime 函数语法中各部分说明
部分 说明
vtamp 指定一个时间戳
  • 示例
var
  Timetamp: string;
begin
  Timetamp := '1606795932000';
  Showmessage(UGCM.GettampTotime(Timetamp));
end.
1
2
3
4
5
6

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


# 1.10. HexStrToStream

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

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

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

# 1.11. HexToInt

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

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

  • HexToInt 函数语法中各部分说明
部分 说明
AHex 指定16进制字符
  • 示例
var
  Hex: string;
begin
  Hex := '0A';
  Showmessage(IntToStr(UGCM.HexToInt(Hex)));
end.
1
2
3
4
5
6

运行结果:10

# 1.12. HexToIEEE754

function HexToIEEE754(hexVal: string): Real;
1

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

部分 说明
hexVal 使用十六进制表示的字符串
var
  Hex: string;
begin
  Hex := '41A40000';
  Showmessage(FloatToStr(UGCM. HexToIEEE754(Hex)));
end.
1
2
3
4
5
6

运行结果:20.5


# 1.13. HexToBytes

function HexToBytes(AHex: string): TBytes;
1

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

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

# 1.14. HTTPDecode

function HTTPDecode(const AStr: string): string;
1

说明: URL解码。 返回值: 字符串类型。

  • HTTPDecode 函数语法中各部分说明。
部分 说明
AStr 要解码的字符串

# 1.15. HTTPEncode

function HTTPEncode(const AStr: string): string;
1

说明: URL编码。 返回值: 字符串类型。

  • HTTPEncode 函数语法中各部分说明。
部分 说明
AStr 要编码的字符串

# 1.16. KillTask

function KillTask(ExeFileName: string): integer;
1

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

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

# 1.17. PingServer

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

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

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

# 1.18. RoundToCH

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

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

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

运行结果:12345.6


# 1.19. StreamToStr

Function StreamToStr(AStream:TMemoryStream):String;
1

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

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

# 1.20. 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
//ZoneMinder API用于获取监视器列表
//curl http://server/zm/api/monitors.json
  s := UGCM.NetHttpGet(URL + '/monitors.json?token=' + token,'');
  Showmessage(DateTimeToStr(now()) + ': ' + s);
1
2
3
4

# 1.21. 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等
  • 示例
//ZoneMinder 使用API来修改监视器功能
//curl -XPOST http://server/zm/api/monitors/1.json -d "Monitor[Function]=Modect&Monitor[Enabled]=1"
var 
  postString,s:String;
begin
  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);
end.
1
2
3
4
5
6
7
8
9
10

# 1.22. 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等
  • 示例
//ZoneMinder使用API来编辑监视器
//此命令会将监视器 1 的“名称”字段更改为“test1”
//curl -XPUT http://server/zm/api/monitors/1.json -d "Monitor[Name]=test1"
//修改检视器名称
var
  s:string;
begin
  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);
end.
1
2
3
4
5
6
7
8
9
10
11
12

# 1.23. NetHttpDelete

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

说明: HTTP DELETE方法,通过向请求地址发送DELETE请求获取返回信息。 返回值: String类型。

  • NetHttpDelete 函数语法中各部分说明
部分 说明
QUrl 指定一个地址
QSource 请求体的内容,默认请保持为空状态
  • 示例
//ZoneMinder使用API来删除监视器
//curl -XDELETE http://server/zm/api/monitors/1.json
//删除监视器
var
  s: string;
begin
  s := UGCM.NetHttpDelete(edtURL.Text + '/monitors/4.json?token=' + token,'');
  mmLog.Lines.Clear;
  mmLog.Lines.Add(DateTimeToStr(now()) + ': ' + s);
end.
1
2
3
4
5
6
7
8
9
10

# 1.24. 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
var
  J: TJsonObject;
  s: string;
begin
  J := TJsonObject.Create();
  s := '{"status":"OK","Language":{"DefaultLanguage":1}}';
  try
    j := TJSONObject(j.ParseJSONValue(s,false));
    j := UGCM.GetJSONObject(j,'Language');
    ShowMessage(UGCM.GetJSONNumber(j,'DefaultLanguage'));
  finally
    j.Free;
  end;
end.
1
2
3
4
5
6
7
8
9
10
11
12
13
14

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

# 1.25. 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
var
  J: TJSONObject;
  A: TJSONArray;
begin
  s := '{"status":"OK","Language":{"DefaultLanguage":1,"options":[{"options":1},{"options":2}]}}';
  try
    J := TJSONObject(j.ParseJSONValue(s,false));
    A := UGCM.GetJSONArray(j,'Language.options');
    J := TJSONObject(A.Items[1]);
    ShowMessage(UGCM.GetJSONNumber(j,'options'));
  finally
    j.Free;
    A.Free;
  end;
end.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

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

# 1.26. 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
var
  J: TJSONObject;
  s: String;
begin
  J := TJSONObject.create();
  s := '{"status":"OK","Language":{"DefaultLanguage":1}}';
  try
    j := TJSONObject(j.ParseJSONValue(s,false));
    ShowMessage(UGCM.GetJSONString(j,'status'));
  finally
    j.Free;
  end;
end.
1
2
3
4
5
6
7
8
9
10
11
12
13

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

# 1.27. 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
var
  J: TJSONObject;
  s: String;
begin
  J := TJSONObject.create();
  s := '{"status":"OK","Language":{"DefaultLanguage":1}}';
  try
    j := TJSONObject(j.ParseJSONValue(s,false));
    j :=UGCM.GetJSONObject(j,'Language');
    ShowMessage(UGCM.GetJSONNumber(j,'DefaultLanguage'));
  finally
    j.Free;
  end;
end.
1
2
3
4
5
6
7
8
9
10
11
12
13
14

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

# 1.28. 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
var
  J: TJSONObject;
  s: string;
  i: Integer;
begin
  J := TJSONObject.create();
  s := '{"status":"OK","Language":{"DefaultLanguage":1}}';
  try
    j := TJSONObject(j.ParseJSONValue(s,false));
    i := UGCM.GetJSONInteger(j,'Language.DefaultLanguage');
    ShowMessage(IntToStr(i));
  finally
    j.Free;
  end;
end.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

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

# 1.29. 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
var
  J: TJSONObject;
  s: string;
  i: Float;
begin
  J := TJSONObject.create();
  s := '{"status":"OK","Language":{"DefaultLanguage":1}}';
  try
    j := TJSONObject(j.ParseJSONValue(s,false));
    i := UGCM.GetJSONFloat(j,'Language.DefaultLanguage');
    ShowMessage(FloatToStr(i));
  finally
    j.Free;
  end;
end.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

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

# 1.30. 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
var
  J: TJSONObject;
  s: string;
begin
  J := TJSONObject.create();
  s := '{"status":"OK","Language":{"DefaultLanguage":1}}';
  try
    j := TJSONObject(j.ParseJSONValue(s,false));
    if UGCM.GetJSONBool(j,'status') then
      ShowMessage('{"status":true}');
  finally
    j.Free;
  end;
end.
1
2
3
4
5
6
7
8
9
10
11
12
13
14

  以上程序运行后获取到的值为{"status": true}。

# 1.31. GetJSONPair

function GetJSONPair(const QJSONObject: TJSONValue; const QPath:String):TJSONPair;
1

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

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

# 1.32. GetJSONValue

function GetJSONValue(const QJSONObject: TJSONValue; const QPath:String):TJSONValue;
1

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

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

# 1.33. 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: TJSONObject;
  A: TJSONArray;
  s1,s2: string;
begin
  s1 := '[{"status":"ok"}]';
  s2 := '{"status":"no"}';
  A := TJSONArray(UGCM.ParseJSONValue(s1));
  J := UGCM.ParseJSONValue(s2);
  A := UGCM.JSONArray_AddJSONObject(A,J);
  ShowMessage(A.ToString);
end.
1
2
3
4
5
6
7
8
9
10
11
12

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

# 1.34. 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: TJSONObject;
  A: TJSONArray;
  s1,s2: string;
begin
  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);
end.
1
2
3
4
5
6
7
8
9
10
11
12

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

# 1.35. 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: string;
begin
  s := '{"status":"OK","Language":{"DefaultLanguage":1}}';
  ShowMessage(UGCM.JSONParse('GetJSONString','status',s));
end.
1
2
3
4
5
6

# 1.36. ParseJSONValue

function ParseJSONValue(QJson: string): TJSONValue;
1

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

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

# 1.37. ToJSONObjectString

function ToJSONObjectString(ADataSet:TDataSet;const AOnlyUpdatedRecords: Boolean = False; const AChildRecords: Boolean = True; const AValueRecords: Boolean = True; const AEncodeBase64Blob: Boolean = True): string;
1

说明:将数据集中的数据转换为json文本。 返回值:字符串类型。

  • ToJSONObjectString函数语法中各部分说明
部分 说明
ADataSet 要转换的数据集
AOnlyUpdatedRecords 是否仅展示有更新的记录
AChildRecords 显示子记录
AValueRecords 取值记录
AEncodeBase64Blob 将二进制内容以base64编码输出

# 1.38. ToJSONArrayString

function ToJSONArrayString(ADataSet:TDataSet;const AOnlyUpdatedRecords: Boolean = False; const AChildRecords: Boolean = True; const AValueRecords: Boolean = True; const AEncodeBase64Blob: Boolean = True): string;
1

说明:将数据集中的数据转换为json队列文本。 返回值:字符串类型。

  • ToJSONArrayString函数语法中各部分说明
部分 说明
ADataSet 要转换的数据集
AOnlyUpdatedRecords 是否仅展示有更新的记录
AChildRecords 显示子记录
AValueRecords 取值记录
AEncodeBase64Blob 将二进制内容以base64编码输出

# 1.39. ToJSONObject

function ToJSONObject(ADataSet:TDataSet;const AOnlyUpdatedRecords: Boolean = False; const AChildRecords: Boolean = True; const AValueRecords: Boolean = True; const AEncodeBase64Blob: Boolean = True): TJSONObject;
1

说明:将数据集中的数据转换为json对象。 返回值:字符串类型。

  • ToJSONObject函数语法中各部分说明
部分 说明
ADataSet 要转换的数据集
AOnlyUpdatedRecords 是否仅展示有更新的记录
AChildRecords 显示子记录
AValueRecords 取值记录
AEncodeBase64Blob 将二进制内容以base64编码输出

# 1.40. ToJSONArray

function ToJSONArray(ADataSet:TDataSet;const AOnlyUpdatedRecords: Boolean = False; const AChildRecords: Boolean = True; const AValueRecords: Boolean = True; const AEncodeBase64Blob: Boolean = True): TJSONArray;
1

说明:将数据集中的数据转换为json队列对象。 返回值:字符串类型。

  • ToJSONArray函数语法中各部分说明
部分 说明
ADataSet 要转换的数据集
AOnlyUpdatedRecords 是否仅展示有更新的记录
AChildRecords 显示子记录
AValueRecords 取值记录
AEncodeBase64Blob 将二进制内容以base64编码输出

# 2. UGDM类

# 2.1. 属性

# 2.1.1. DBConnection

  指代当前的数据集连接设置。

# 2.1.2. DataSet

  指代使用的数据集。

# 2.2. SendWsMsgBySId

function SendWsMsgBySId(const sid, msg: string): Boolean;
1

说明:向指定sid的客户端发送websocket消息。 返回值:Boolean类型。

  • SendWsMsgBySId函数语法中各部分说明
部分 说明
sid 要发送消息的客户端websocket会话ID
msg 要发送的消息

# 2.3. SendWsMsgByStr

function SendWsMsgByStr(const msg: string): Boolean;
1

说明:向服务端发送websocket消息。 返回值:Boolean类型。

  • SendWsMsgByStr函数语法中各部分说明
部分 说明
msg 要发送的消息

# 2.4. SendWsMsg

function SendWsMsg(const acusername, acname, accom, atag, acevent: string; acparams:TStringlist=nil): Boolean;
1

说明:向指定的用户登录的Bean窗口发送WebSocket信息。 返回值:Boolean,用于反馈是否发送成功。

  • SendWsMsg 函数语法中各部分说明
部分 说明
acusername 登录的用户名称
acname 动作名称,指定为 callback
accom 调用的Bean模块的编号
atag 绑定的控件的Tag编号,只允许输入整数类型
acevent 调用的事件名称
acparams 参数信息,以键值对的方式进行
  • 示例
//PasScript
var 
  l: TStringList;
begin
  l := TStringList.Create();
  l.Values['text'] := 'Hello WebSocket Test';
  if (DM.SendWsMsg('demo','callback','bean-001','updatememo','0',l))  then
  begin
    ShowMessage('Send Success!');  
  end;
  l.Free;
end;
1
2
3
4
5
6
7
8
9
10
11
12

# 2.5. DownFile

function DownFile(RemotePath,filename:string;isshow:boolean=true):string;
1

说明:下载文件。 返回值:文本,显示内容。

  • DownFile 函数语法中各部分说明
部分 说明
RemotePath 远端路径
filename 文件名称
isshow 是否显示

# 2.6. OpenData

function OpenData(QDataSet: TRFDataSet): Boolean; 
1

说明:打开数据集。 返回值:Boolean。

  • OpenData 函数语法中各部分说明
部分 说明
QDataSet 要打开的数据集名称

# 2.7. SaveData

function SaveData(QDataSet: TRFDataSet): Boolean; 
1

说明:保存数据集。 返回值:Boolean。

  • SaveData 函数语法中各部分说明
部分 说明
QDataSet 要保存的数据集名称
控件使用
自定程序

← 控件使用 自定程序→

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