自定函式
# 自定函式
以下自定函式用於工作流指令碼設計環節。
# 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 | 要儲存的數據集名稱 |