愛招飛幫助手冊 愛招飛幫助手冊
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • 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
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式