愛招飛幫助手冊 愛招飛幫助手冊
  • 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
  • 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
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式