自定函数
# 自定函数
以下自定函数用于工作流脚本设计环节。
# 1. UGCM类
UGCM类程序在程序中调用时,必须以UGCM.开头。
# 1.1. AmountToChinese
function AmountToChinese(ls: Variant): string;
说明: 金额转大写(中文) 返回值: string类型
- AmountToChinese 函数语法中各部分说明
部分 | 说明 |
---|---|
ls | 指定一个金额(浮点数) |
- 示例
//pascal
var
Amount: Float;
begin
Amount := 123456.78;
ShowMessage(UGCM.AmountToChinese(Amount));
end.
2
3
4
5
6
7
运行结果 :壹拾贰万叁仟肆佰伍拾陆元柒角捌分
# 1.2. Base64Get
function Base64Get(FileName:String):String;
说明:将文件通过base64转换为字符串,这种方式可以将二进制的文件以字符串的方式传输,便于管理。 返回值:string类型
- Base64Get 函数语法中各部分说明
部分 | 说明 |
---|---|
FileName | 文件所在的地址 |
- 示例
var
str: String;
begin
str := UGCM.Base64Get('E:\setup\023-3.jpg');
ShowMessage(str);
end.
2
3
4
5
6
# 1.3. CreateGuid
function CreateGuid:String;
说明: 生成GUID
返回值: string 类型
示例
ShowMessage(UGCM.CreateGuid);
# 1.4. Decrypt
function Decrypt(const Input: string; const Key: string): string;
说明: 解密字符串。
返回值: 解密密后的字符串。
Encrypt 函数语法中各部分说明。
部分 | 说明 |
---|---|
Input | 输入的加密字符串 |
Key | 解密的密钥 |
- 示例
ShowMessage(UGCM.Decrypt('yrN+GsI=','key'));
运行结果 :Hello
# 1.5. Encrypt
function Encrypt(const Input: string; const Key: string): string;
说明: 加密字符串。
返回值: 加密后的字符串。
Encrypt 函数语法中各部分说明。
部分 | 说明 |
---|---|
Input | 输入的字符串 |
Key | 加密的密钥 |
- 示例
ShowMessage(UGCM.Encrypt('Hello','key'));
运行结果 :yrN+GsI=
# 1.6. ExcuteDosCmd
function ExcuteDosCmd(CommandLine: string): string;
- 说明: 执行Dos命令,获取执行结果。
- 返回值: string 类型
- ExcuteDosCmd 函数语法中各部分说明
部分 | 说明 |
---|---|
CommandLine | 命令行的字符串 |
# 1.7. GetFileStreamFileName
function GetFileStreamFileName(AFileStream: TFileStream): string;
说明: 根据文件流获取文件名(含路径) 返回值: string类型
- GetFileStreamFileName 函数语法中各部分说明
部分 | 说明 |
---|---|
AFileStream | 指定文件流 |
# 1.8. Gettamptime
function Gettamptime(vtime: string; vlen: Integer): string;
说明: 获取时间戳 返回值: string类型
- Gettamptime 函数语法中各部分说明
部分 | 说明 |
---|---|
vtime | 指定一个时间 |
vlen | 指定时间戳长度 |
- 示例
var
Time: string;
begin
Time := '2020-12-01 12:12:12';
ShowMessage(UGCM.Gettamptime(Time,13));
end.
2
3
4
5
6
运行结果 :1606795932000
# 1.9. GettampTotime
function GettampTotime(vtamp: string): string;
说明: 根据时间戳转时间 返回值: string类型
- GettampTotime 函数语法中各部分说明
部分 | 说明 |
---|---|
vtamp | 指定一个时间戳 |
- 示例
var
Timetamp: string;
begin
Timetamp := '1606795932000';
Showmessage(UGCM.GettampTotime(Timetamp));
end.
2
3
4
5
6
运行结果 :2020-12-01 12:12:12.000
# 1.10. HexStrToStream
function HexStrToStream(AHexStr: string; AStream: TStream): Boolean;
说明: 16进制转流 返回值: Boolean类型
- HexStrToStream 函数语法中各部分说明
部分 | 说明 |
---|---|
AHexStr | 指定16进制字符串 |
AStream | 指定流对象 |
# 1.11. HexToInt
function HexToInt(const AHex: string): Integer;
说明: 16进制转整型 返回值: Integer类型
- HexToInt 函数语法中各部分说明
部分 | 说明 |
---|---|
AHex | 指定16进制字符 |
- 示例
var
Hex: string;
begin
Hex := '0A';
Showmessage(IntToStr(UGCM.HexToInt(Hex)));
end.
2
3
4
5
6
运行结果:10
# 1.12. HexToIEEE754
function HexToIEEE754(hexVal: string): Real;
将表示IEEE754标准单精度浮点数的字符串转换为浮点数显示。
部分 | 说明 |
---|---|
hexVal | 使用十六进制表示的字符串 |
var
Hex: string;
begin
Hex := '41A40000';
Showmessage(FloatToStr(UGCM. HexToIEEE754(Hex)));
end.
2
3
4
5
6
运行结果:20.5
# 1.13. HexToBytes
function HexToBytes(AHex: string): TBytes;
说明: 16进制字符串转字节数组 返回值: TBytes类型
- HexToBytes 函数语法中各部分说明
部分 | 说明 |
---|---|
AHex | 指定16进制字符串 |
# 1.14. HTTPDecode
function HTTPDecode(const AStr: string): string;
说明: URL解码。 返回值: 字符串类型。
- HTTPDecode 函数语法中各部分说明。
部分 | 说明 |
---|---|
AStr | 要解码的字符串 |
# 1.15. HTTPEncode
function HTTPEncode(const AStr: string): string;
说明: URL编码。 返回值: 字符串类型。
- HTTPEncode 函数语法中各部分说明。
部分 | 说明 |
---|---|
AStr | 要编码的字符串 |
# 1.16. KillTask
function KillTask(ExeFileName: string): integer;
说明: 结束进程。 返回值: 整数类型。
- KillTask 函数语法中各部分说明。
部分 | 说明 |
---|---|
ExeFileName | 进程中的程序名称 |
# 1.17. PingServer
function PingServer(HostIP: string; LinkTimeOut: integer): boolean;
说明: 测试验证指定IP是否可以连接通讯。 返回值: Boolean类型
- PingServer 函数语法中各部分说明
部分 | 说明 |
---|---|
HostIP | 测试服务器的IP地址 |
LinkTimeOut | 超时阈值 |
# 1.18. RoundToCH
function RoundToCH(const AValue: Double; const ADigit: Integer): Double;
说明: 四舍五入 返回值: Double类型
- RoundToCH 函数语法中各部分说明
部分 | 说明 |
---|---|
AValue | 指定一个浮点数 |
ADigit | 指定小数位保留位数 |
- 示例
//保留一位小数
var
d:double;
begin
d := 12345.56;
Showmessage(FloatToStr(UGCM.RoundToCH(d,1)));
end.
2
3
4
5
6
7
运行结果:12345.6
# 1.19. StreamToStr
Function StreamToStr(AStream:TMemoryStream):String;
说明: 流转字符串 返回值: String 类型。
部分 | 说明 |
---|---|
AStream | 待转换的数据流 |
# 1.20. 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
//ZoneMinder API用于获取监视器列表
//curl http://server/zm/api/monitors.json
s := UGCM.NetHttpGet(URL + '/monitors.json?token=' + token,'');
Showmessage(DateTimeToStr(now()) + ': ' + s);
2
3
4
# 1.21. 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 等 |
- 示例
//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.
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;
说明: 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.
2
3
4
5
6
7
8
9
10
11
12
# 1.23. NetHttpDelete
function NetHttpDelete(const Qurl: string; const QSource:string = ''): string;
说明: 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.
2
3
4
5
6
7
8
9
10
# 1.24. 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
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.
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;
说明: 获取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
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.
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;
说明: 获取JSON对象中指定键值的字符串。 返回值: String类型。
- GetJSONString 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
假设需要对以下JSON进行解析。
{
"status": "OK",
"Language":{
"DefaultLanguage": 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.
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;
说明: 获取JSON对象中指定的键值中的数值。 返回值: String类型。
- GetJSONNumber 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
- 示例
假设需要对以下JSON进行解析。
{
"status": "OK",
"Language":{
"DefaultLanguage": 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.
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;
说明: 获取JSON对象中指定的键值中的整数数值,并以整数的形式返回。 返回值: Integer类型。
- GetJSONInteger 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
- 示例
假设需要对以下JSON进行解析。
{
"status": "OK",
"Language":{
"DefaultLanguage": 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.
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;
说明: 获取JSON对象中指定的键值中的浮点数数值,并以浮点数的形式返回。 返回值: Double类型。
- GetJSONFloat 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
- 示例
假设需要对以下JSON进行解析。
{
"status": "OK",
"Language":{
"DefaultLanguage": 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.
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;
说明: 获取JSON对象中指定的键值中的布尔数值,并以布尔值的形式返回。 返回值: Boolean类型。
- GetJSONBool 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
假设需要对以下JSON进行解析。
{
"status": true,
"Language":{
"DefaultLanguage": 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.
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;
说明: 获取JSON对象中指定的键值对的值。 返回值: TJSONPair类型。
- GetJSONPair 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
# 1.32. GetJSONValue
function GetJSONValue(const QJSONObject: TJSONValue; const QPath:String):TJSONValue;
说明: 获取JSON对象中指定的键值中的值。 返回值: TJSONValue类型。
- GetJSONBool 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
# 1.33. 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: 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.
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;
说明: 在原有的JSON对象中添加一个新的JSON值以获取一个新的JSON对象 返回值: TJSONObject类型。
部分 | 说明 |
---|---|
QJSONObject | 要获取的JSON对象名称 |
Str | 要添加的键名 |
Val | 要添加的键值 |
假设有以下的json对象:
{"status":"ok"}
需要合并以下的json队列作为子对象
[{"status":"no"}]
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.
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;
说明: 解析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: string;
begin
s := '{"status":"OK","Language":{"DefaultLanguage":1}}';
ShowMessage(UGCM.JSONParse('GetJSONString','status',s));
end.
2
3
4
5
6
# 1.36. ParseJSONValue
function ParseJSONValue(QJson: string): TJSONValue;
说明: 获取字符串形式的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;
说明:将数据集中的数据转换为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;
说明:将数据集中的数据转换为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;
说明:将数据集中的数据转换为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;
说明:将数据集中的数据转换为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;
说明:向指定sid的客户端发送websocket消息。 返回值:Boolean类型。
- SendWsMsgBySId函数语法中各部分说明
部分 | 说明 |
---|---|
sid | 要发送消息的客户端websocket会话ID |
msg | 要发送的消息 |
# 2.3. SendWsMsgByStr
function SendWsMsgByStr(const msg: string): Boolean;
说明:向服务端发送websocket消息。 返回值:Boolean类型。
- SendWsMsgByStr函数语法中各部分说明
部分 | 说明 |
---|---|
msg | 要发送的消息 |
# 2.4. SendWsMsg
function SendWsMsg(const acusername, acname, accom, atag, acevent: string; acparams:TStringlist=nil): Boolean;
说明:向指定的用户登录的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;
2
3
4
5
6
7
8
9
10
11
12
# 2.5. DownFile
function DownFile(RemotePath,filename:string;isshow:boolean=true):string;
说明:下载文件。 返回值:文本,显示内容。
- DownFile 函数语法中各部分说明
部分 | 说明 |
---|---|
RemotePath | 远端路径 |
filename | 文件名称 |
isshow | 是否显示 |
# 2.6. OpenData
function OpenData(QDataSet: TRFDataSet): Boolean;
说明:打开数据集。 返回值:Boolean。
- OpenData 函数语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 要打开的数据集名称 |
# 2.7. SaveData
function SaveData(QDataSet: TRFDataSet): Boolean;
说明:保存数据集。 返回值:Boolean。
- SaveData 函数语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 要保存的数据集名称 |