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

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

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

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

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

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

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

    • 基本入门

    • 功能介绍

    • 控件说明

    • 系统工具

    • 系统管理

    • 云服务工具

    • 数据库工具

    • 专用模板

    • 外部功能

    • 开发流程

    • 函数程序

      • 系统函数
      • 系统程序
      • 自定函数
        • 1. UGMM类函数
          • 1.1. ApplicationVersion
          • 1.2. CreateGuid
          • 1.3. CreateStringList
          • 1.4. DecodeString
          • 1.5. EncodeString
          • 1.6. Expexcel
          • 1.7. FileUpload
          • 1.8. GetObject
          • 1.9. GetWebSubForm
          • 1.10. GetAppSubForm
          • 1.11. GetBeanCaption
          • 1.12. GetBeanCode
          • 1.13. GetBeanToSql
          • 1.14. GetNodeDataLink
          • 1.15. GetRunFrame
          • 1.16. GetDesignFrame
          • 1.17. GetDesignFormatEditing
          • 1.18. GetDesignRestAPI
          • 1.19. GetFrameCaption
          • 1.20. GetLanguageByGrid
          • 1.21. GetLanguageByName
          • 1.22. GetUnitCode
          • 1.23. GetNavigRoleGuid
          • 1.24. GetNavigUserGuid
          • 1.25. GetNavigUserGuid
          • 1.26. GetDllComponent
          • 1.27. GetSessionList
          • 1.28. GetSQLCommand
          • 1.29. GetSQLCommandNodeName
          • 1.30. GetSQLCommandText
          • 1.31. GetWebSubForm
          • 1.32. HTTPDecode
          • 1.33. HTTPEncode
          • 1.34. ImpExcel
          • 1.35. LT
          • 1.36. LogInChecking
          • 1.37. SendWsMsg
          • 1.38. SendWsMsgBySId
          • 1.39. SendWsMsgByStr
          • 1.40. URLDownloadToFile
          • 1.41. VerifyRunFramePermType
          • 1.42. VerifyPermGuid
        • 2. UGSM类函数
        • 3. UGCM类函数
          • 3.1. AmountToChinese
          • 3.2. GetFileStreamFileName
          • 3.3. Gettamptime
          • 3.4. GettampTotime
          • 3.5. HexStrToStream
          • 3.6. HexToInt
          • 3.7. HexToBytes
          • 3.8. RoundToCH
          • 3.9. NetHttpGet
          • 3.10. NetHttpPost
          • 3.11. NetHttpPut
          • 3.12. NetHttpDelete
          • 3.13. GetJSONObject
          • 3.14. GetJSONArray
          • 3.15. GetJSONString
          • 3.16. GetJSONNumber
          • 3.17. GetJSONInteger
          • 3.18. GetJSONFloat
          • 3.19. GetJSONBool
          • 3.20. GetJSONValue
          • 3.21. ParseJSONValue
      • 自定程序
  • 开发手册

目录
1. UGMM类函数
1.1. ApplicationVersion
1.2. CreateGuid
1.3. CreateStringList
1.4. DecodeString
1.5. EncodeString
1.6. Expexcel
1.7. FileUpload
1.8. GetObject
1.9. GetWebSubForm
1.10. GetAppSubForm
1.11. GetBeanCaption
1.12. GetBeanCode
1.13. GetBeanToSql
1.14. GetNodeDataLink
1.15. GetRunFrame
1.16. GetDesignFrame
1.17. GetDesignFormatEditing
1.18. GetDesignRestAPI
1.19. GetFrameCaption
1.20. GetLanguageByGrid
1.21. GetLanguageByName
1.22. GetUnitCode
1.23. GetNavigRoleGuid
1.24. GetNavigUserGuid
1.25. GetNavigUserGuid
1.26. GetDllComponent
1.27. GetSessionList
1.28. GetSQLCommand
1.29. GetSQLCommandNodeName
1.30. GetSQLCommandText
1.31. GetWebSubForm
1.32. HTTPDecode
1.33. HTTPEncode
1.34. ImpExcel
1.35. LT
1.36. LogInChecking
1.37. SendWsMsg
1.38. SendWsMsgBySId
1.39. SendWsMsgByStr
1.40. URLDownloadToFile
1.41. VerifyRunFramePermType
1.42. VerifyPermGuid
2. UGSM类函数
3. UGCM类函数
3.1. AmountToChinese
3.2. GetFileStreamFileName
3.3. Gettamptime
3.4. GettampTotime
3.5. HexStrToStream
3.6. HexToInt
3.7. HexToBytes
3.8. RoundToCH
3.9. NetHttpGet
3.10. NetHttpPost
3.11. NetHttpPut
3.12. NetHttpDelete
3.13. GetJSONObject
3.14. GetJSONArray
3.15. GetJSONString
3.16. GetJSONNumber
3.17. GetJSONInteger
3.18. GetJSONFloat
3.19. GetJSONBool
3.20. GetJSONValue
3.21. ParseJSONValue

自定函数

# FastWeb 自定函数

  • 适用平台:WEB(桌面),APP(移动)

# 1. UGMM类函数

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

# 1.1. ApplicationVersion

Function ApplicationVersion:String;
1

说明: 获取应用版本 返回值: 字符类型String

  • 示例
//JScript
  UgLabel01.Caption = UGMM.ApplicationVersion;
1
2
//PasScript
begin
  UgLabel01.Cantion := UGMM.ApplicationVersion;
End;
1
2
3
4

# 1.2. CreateGuid

Function  CreateGuid:string;
1

说明: 创建GUID唯一编号 返回值: 字符类型String

  • 示例
//JScript
  var vGuid;
  vGuid = UGMM.CreateGuid;
1
2
3
//PasScript
var
 vGuid:string;
begin
  vGuid := UGMM.CreateGuid;
End;
1
2
3
4
5
6

# 1.3. CreateStringList

Function CreateStringList(AEncoding:string='UTF8'):TStringList;
1

说明: 创建字符串列表指定编码类型 返回值: TStringList类型

  • CreateStringList 函数语法中各部分说明
部分 说明
AEncoding 指定编码类型(UTF-7,UTF-8,UniCode)
  • 示例
//JScript
  var vStrings;
  vStrings = UGMM.CreateStringList("UTF-8");
1
2
3
//PasScript
var
 vStrings:TStringList;
begin
 vStrings:=UGMM.CreateStringList('UTF-8');
end;
1
2
3
4
5
6

# 1.4. DecodeString

function DecodeString(AText:String):string;
1

说明: HTTP编码 返回值: 字符类型String

  • DecodeString 函数语法中各部分说明
部分 说明
AText 指定需要解密的字符串
  • 示例
//JScript
  ShowMessage(UGMM.DecodeString("NW9pUjVwaXY1TGl0NVp1OTVMcTY3N3lCUkdWc2NHaHA="));
1
2
//PasScript
begin
  ShowMessage(UGMM.DecodeString('NW9pUjVwaXY1TGl0NVp1OTVMcTY3N3lCUkdWc2NHaHA='));
End;
1
2
3
4
  • 字符串解密结果
我是中国人!
1

# 1.5. EncodeString

function EncodeString(AText:String):string;
1

说明: 字符加密 返回值: 字符类型String

  • EncodeString 函数语法中各部分说明
部分 说明
AText 指定需要加密的字符串
  • 示例
//JScript
  ShowMessage(UGMM.EncodeString("Hi,Hello"));
1
2
//PasScript
begin
  ShowMessage(UGMM.EncodeString('Hi,Hello'));
End;
1
2
3
4
  • 字符串加密结果
U0drc1NHVnNiRzg9UkdWc2NHaHA=
1

# 1.6. Expexcel

function  ExpExcel(ADBGrid:TUgDBGrid;Const ACaption,ATitle:String):Boolean;
1

说明: 打开导出数据表至Excel的文本。 返回值: Boolean值

  • GetObject 函数语法中各部分说明
部分 说明
ADBGrid 指定一个TUgDBGrid类表格
ACaption 指定导出对话框的标题
ATitle 指定导出的表格的标题名称
  • 示例
//JScript
  UGMM.ExpExcel(gridFrames,UGMM.LT("模块列表(WEB)"),UGMM.LT("模块列表(WEB)"));
1
2
//PasScript
  UGMM.ExpExcel(gridFrames,UGMM.LT('模块列表(WEB)'),UGMM.LT('模块列表(WEB)'));
1
2

# 1.7. FileUpload

Function UpLoadFile(Const AOwner:TComponent;Const AFrameGuid,AOrderCode:String;Const ACapacitySpace:int64 = 30 * 1024 * 1024;Const UpLoadFileEvent:TUpLoadFileEvent = Nil):string;
1

说明: 通过文件管理器上传文件 返回值: 无

  • FileUpload 函数语法中各部分说明
部分 说明
AOwner 所属的主组件对象
AFrameGuid 所属的主ID对象,对应会在文件上传目录下创建与ID同名的子文件夹
AOrderCode 所属的主ID下的子ID对象,对应会在文件上传目录的主ID目录下,创建与子ID同名的文件夹
ACapacitySpace 设定目录中允许上传的最大文件合计大小,以字节为单位
UpLoadFileEvent 当文件上传完成时需要触发的事件名称
  • 示例
//JScript
function UgButton01OnClick(sender)
{
  //通过与uploadfinished绑定,获取上传的文件名称
  UGMM.UpLoadFile(self,"ABC","12123",1000000,&uploadfinished);
}

function uploadfinished(aUpLoadList)
{
  showmessage(aUpLoadList);
}
1
2
3
4
5
6
7
8
9
10
11
//PasScript
procedure UgButton01OnClick(sender: TObject);
begin
  //通过与uploadfinished绑定,获取上传的文件名称
  UGMM.UpLoadFile(self,'ABC','12123',1000000,@uploadfinished);
end;

procedure uploadfinished(Const aUpLoadList:String);
Begin
  showmessage(aUpLoadList);
end;
1
2
3
4
5
6
7
8
9
10
11

# 1.8. GetObject

Function  GetObject(Const ASign:String):TObject;
1

说明: 获取线程管理共享对象 返回值: 对象类TObject

  • GetObject 函数语法中各部分说明
部分 说明
ASign 指定一个对象名称Name
  • 示例
//JScript
  var Obj;
  obj = UGMM.GetObject("ObjectName");
1
2
3
//PasScript
var
 obj:TObject;
begin
  obj := UGMM.GetObject('ObjectName');
End;
1
2
3
4
5
6

# 1.9. GetWebSubForm

Function  GetWebSubForm(ACaption:String;Const AMenuFlag:String = '';Const AType:String = 'WEB'):TUniForm;
1

说明: 获取子窗体(Desktop) 返回值: 窗体类TUniForm

  • GetWebSubForm 函数语法中各部分说明
部分 说明
ACaption 指定一个子窗体名称,可使用模块编码或者模块标题
AMenuFlag 菜单参数信息,呼叫运行后,可在窗口模块的MenuFlag属性中获取数值
AType 指定子窗体类型(默认Web)
  • 示例
//JScript
  var F,i;
  F = UGMM.GetWebSubForm("WebSubForm");
  TUgWebForm(F).Caption = "SubForm"; 
  ...
  if (F.ShowModal == mrOK) 
  {
     TUgWebForm(F).Close;
  }
1
2
3
4
5
6
7
8
9
//PasScript
Var
  F:TUniForm;
  i:String;
begin
  //打开任务登记
  F := UGMM.GetWebSubForm('WebSubForm');
  TUgWebForm(F).Caption := 'SubForm'; 
  ...
  if F.ShowModal = mrOK then 
  Begin
     TUgWebForm(F).Close;
  End;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 1.10. GetAppSubForm

Function  GetAppSubForm(ACaption:String;Const AMenuFlag:String = '';Const AFullScreen:Boolean = True):TUnimForm;
1

说明: 获取子窗体(Mobile) 返回值: 窗体类TUniForm

  • GetAppSubForm 函数语法中各部分说明
部分 说明
ACaption 指定一个子窗体名称,可使用模块编码或者模块标题
AMenuFlag 菜单参数信息,呼叫运行后,可在窗口模块的MenuFlag属性中获取数值
AFullScreen 指定是否全屏幕显示
  • 示例
//JScript
  var F,i;
  F = UGMM.GetAppSubForm("AppSubForm");
  TUgAppForm(F).Caption = "SubForm"; 
  ...
  if (F.ShowModal == mrOK) 
  {
     TUgAppForm(F).Close;
  }
1
2
3
4
5
6
7
8
9
//PasScript
Var
  F:TUnimForm;
  i:String;
begin
  //打开任务登记
  F := UGMM.GetAppSubForm('AppSubForm');
  TUgAppForm(F).Caption := 'SubForm'; 
  ...
  if F.ShowModal = mrOK then 
  Begin
     TUgAppForm(F).Close;
  End;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 1.11. GetBeanCaption

function  GetBeanCaption(AGuid:String):string;
1

说明:通过Bean模块ID来获取Bean模块的标题描述名称。 返回值: string

  • GetBeanCaption 函数语法中各部分说明
部分 说明
AGuid 指定一个子窗体ID

# 1.12. GetBeanCode

function  GetBeanCode(AGuid:String):string;
1

说明: 通过Bean模块ID来获取Bean模块的编号 返回值: string

  • GetBeanCode 函数语法中各部分说明
部分 说明
AGuid 指定一个子窗体ID
  • 示例
//JScript
UGMM.GetBeanCode("8F62424E-FD72-422B-8C2F-0A25A4F9FEAC");
1
2
//PasScript
UGMM.GetBeanCode('8F62424E-FD72-422B-8C2F-0A25A4F9FEAC');
1
2

# 1.13. GetBeanToSql

function  GetBeanToSql(Const AGuid:String):string;
1

说明:将当前的Bean模块输出为SQL脚本,用于导入至其他项目使用。 返回值String

  • GetBeanToSql 函数语法说明
部分 说明
AGuid 指定一个子窗体ID

# 1.14. GetNodeDataLink

Function GetNodeDataLink(Const ANodeName:String):TFDConnection;
1

说明: 获取节点数据库 返回值: TFDConnection

  • GetNodeDataLink 函数语法中各部分说明
部分 说明
ACaption 指定一个子窗体名称
AFullScreen 指定是否全屏幕显示
  • 示例
//JScript
  var FDConn;
  FDConn = UGMM.GetNodeDataLink("FastERP");
  UgFDQuery01 := TUgFDQuery01.Create;
  UgFDQuery01.Connection := FDConn;
  try{
     //打开数据
    UgFDQuery01.SQL.Text := "Select * from Basic_Unit";
    UgFDQuery01.Open();
  }
  Finally{
    UgFDQuery01.free;
  }
1
2
3
4
5
6
7
8
9
10
11
12
13
//PasScript
Var  
  FDConn:TFDConnection;
begin
  //获取 FastERP 节点数据库
  FDConn := UGMM.GetNodeDataLink('FastERP');
  UgFDQuery01 := TUgFDQuery01.Create;
  UgFDQuery01.Connection := FDConn;
  try
     //打开数据
    UgFDQuery01.SQL.Text := 'Select * from Basic_Unit';
    UgFDQuery01.Open();
  Finally
    UgFDQuery01.free;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

---1.14.

# 1.15. GetRunFrame

Function  GetRunFrame(AOwner:TComponent;AKey:String;AGetSoure:TGetSource):TComponent;
1

说明: 获取运行模块 返回值: TComponent类型

  • GetRunFrame 函数语法中各部分说明
部分 说明
AOwner 批定窗体所属者
AKey 指定窗体的唯一Guid
AGetSoure 批定窗体来源类型(gsData,gsFile)
  • 示例
//JScript
  var M,R,C;
  C = UGMM.GetRunFrame(Self,H,iif(pos(".",H) > 0,gsFile,gsData));
  if (C != nil)
  {
    TControl(C).Parent = Self;
    C.Name="WebHomePages";
    TUGWebRunFrame(C).Align = TAlign.alClient;
    if (C.GetInterface(IUGRunScript,R))
    R.Run(nil);
  }
1
2
3
4
5
6
7
8
9
10
11
//PasScript
var
  M : TMemoryStream;
  R : IUGRunScript;
  C : TComponent;
begin
  C := UGMM.GetRunFrame(Self,H,iif(pos('.',H) > 0,gsFile,gsData));
  if C <> nil then
  begin
    TControl(C).Parent := Self;
    C.Name:='WebHomePages';
    TUGWebRunFrame(C).Align := TAlign.alClient;
    if C.GetInterface(IUGRunScript,R) Then
    R.Run(nil);
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 1.16. GetDesignFrame

Function  GetDesignFrame(AOwner:TComponent;AGuid:String):TComponent;
1

说明: 获取模块设计器 返回值: TComponent类型

  • GetDesignFrame 函数语法中各部分说明
部分 说明
AOwner 批定窗体所属者
AGuid 指定窗体的唯一Guid
  • 示例
//JScript
  var p,f,g;
  if (cdsFrames.IsEmpty)
    RaiseException(UGMM.LT("Can't design without record"));
  if (UGMM.Informations.Values["UserGuid"] != cdsFrames.FieldbyName("Developer").asString)
    RaiseException(UGMM.LT("You do not have permission to design this module")); 
  if (Self.IsDesignMode)
    RaiseException(UGMM.LT("The module list is in IDE development mode. Design modules are prohibited"));

  g = cdsFrames.FieldbyName("Guid").AsString;
  p = TUniTabSheet(Self.Parent.Owner.FindComponent("PDesign" + ReplaceText(ReplaceText(g,"-","_"),".","_")));
  if (!Assigned(p))
  {
    p = TUniTabSheet(Self.Parent.Owner);
    p.Name = "PDesign" + ReplaceText(ReplaceText(g,"-","_"),".","_");
    p.Caption =cdsFrames.FieldbyName("Caption").AsString + ".Web";
    p.PageControl = TUniTabSheet(Self.Parent).PageControl;
    p.Closable = True;

    f = TUGDesignFrame(UGMM.GetDesignFrame(p,g));
    f.Align = alClient;
    f.Parent = p;
  }
  p.PageControl.ActivePage = p;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//PasScript
Var
  p:TUniTabSheet;
  f:TUGDesignFrame;
  g:String;
Begin
  if cdsFrames.IsEmpty then
    RaiseException(UGMM.LT('Can''t design without record'));
  if UGMM.Informations.Values['UserGuid'] <> cdsFrames.FieldbyName('Developer').asString then
    RaiseException(UGMM.LT('You do not have permission to design this module')); 
  if Self.IsDesignMode then 
    RaiseException(UGMM.LT('The module list is in IDE development mode. Design modules are prohibited'));

  g := cdsFrames.FieldbyName('Guid').AsString;
  p := TUniTabSheet(Self.Parent.Owner.FindComponent('PDesign' + ReplaceText(ReplaceText(g,'-','_'),'.','_')));
  //showmessage(Self.Parent.Owner.name);
  if Not Assigned(p) then
  Begin
    p := TUniTabSheet.Create(Self.Parent.Owner);
    p.Name := 'PDesign' + ReplaceText(ReplaceText(g,'-','_'),'.','_');
    p.Caption :=cdsFrames.FieldbyName('Caption').AsString + '.Web';
    p.PageControl := TUniTabSheet(Self.Parent).PageControl;
    p.Closable := True;

    f := TUGDesignFrame(UGMM.GetDesignFrame(p,g));
    f.Align := alClient;
    f.Parent := p;
  End;
  p.PageControl.ActivePage := p;
End;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

# 1.17. GetDesignFormatEditing

Function  GetDesignFormatEditing(AGuid:String):TComponent;
1

说明: 获取模块编辑器 返回值: TComponent类型

  • GetDesignFormatEditing 函数语法中各部分说明
部分 说明
AGuid 指定窗体的唯一Guid
  • 示例
//JScript
  var f,g;
  if (cdsFrames.IsEmpty)
    RaiseException(UGMM.LT("Can't design without record"));
  if (UGMM.Informations.Values["UserGuid"] != cdsFrames.FieldbyName("Developer").asString)
    RaiseException(UGMM.LT("You do not have permission to design this module")); 
  if (Self.IsDesignMode)
    RaiseException(UGMM.LT("The module list is in IDE development mode. Design modules are prohibited"));
  g = cdsFrames.FieldbyName("Guid").AsString;
  f = TUniForm(UGMM.GetDesignFormatEditing(g));
  f.ShowModal;
1
2
3
4
5
6
7
8
9
10
11
//PasScript
Var
  f:TUniForm;
  g:String;
Begin
  if cdsFrames.IsEmpty then
    RaiseException(UGMM.LT('Can''t design without record'));
  if UGMM.Informations.Values['UserGuid'] <> cdsFrames.FieldbyName('Developer').asString then
    RaiseException(UGMM.LT('You do not have permission to design this module')); 
  if Self.IsDesignMode then 
    RaiseException(UGMM.LT('The module list is in IDE development mode. Design modules are prohibited'));
  g := cdsFrames.FieldbyName('Guid').AsString;
  f := TUniForm(UGMM.GetDesignFormatEditing(g));
  f.ShowModal;
End;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 1.18. GetDesignRestAPI

    Function  GetDesignRestAPI(AOwner:TComponent;AGuid:String):TComponent;
1

说明: 获取RestAPI接口编辑器 返回值: TComponent类型

  • GetDesignRestAPI 函数语法中各部分说明
部分 说明
AOwner 批定窗体所属者
AGuid 指定RestAPI接口的唯一Guid
  • 示例
//JScript
  var p,f,g;
  if (cdsFrames.IsEmpty)
    RaiseException(UGMM.LT("Can't design without record"));
  if (UGMM.Informations.Values["UserGuid"] != cdsFrames.FieldbyName("Developer").asString)
    RaiseException(UGMM.LT("You do not have permission to design this module")); 
  if (Self.IsDesignMode)
    RaiseException(UGMM.LT("The module list is in IDE development mode. Design modules are prohibited"));

  g = cdsFrames.FieldbyName("Guid").AsString;
  p = TUniTabSheet(Self.Parent.Owner.FindComponent("PDesign" + ReplaceText(ReplaceText(g,"-","_"),".","_")));
  if (!Assigned(p))
  {
    p = TUniTabSheet(Self.Parent.Owner);
    p.Name = "PDesign" + ReplaceText(ReplaceText(g,"-","_"),".","_");
    p.Caption =cdsFrames.FieldbyName("Caption").AsString + ".Web";
    p.PageControl = TUniTabSheet(Self.Parent).PageControl;
    p.Closable = True;

    f = TUGDesignFrame(UGMM.GetDesignFrame(p,g));
    f.Align = alClient;
    f.Parent = p;
  }
  p.PageControl.ActivePage = p;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//PasScript
Var
  g:String;
  f:TUniFrame;
  p:TUniTabSheet;
begin
  if cdsRestAPIs.IsEmpty then
    RaiseException(UGMM.LT('Can''t design without record'));
  if UGMM.Informations.Values['UserGuid'] <> cdsRestAPIs.FieldbyName('Developer').asString then
    RaiseException(UGMM.LT('You do not have permission to design this module')); 
  if Self.IsDesignMode then 
    RaiseException(UGMM.LT('The module list is in IDE development mode. Design modules are prohibited'));

  g := cdsRestAPIs.FieldbyName('Guid').AsString;

  p := TUniTabSheet(Self.Parent.Owner.FindComponent('PDesign' + ReplaceText(ReplaceText(g,'-','_'),'.','_')));

  if Not Assigned(p) then
  Begin
    p := TUniTabSheet.Create(Self.Parent.Owner);
    p.Name := 'PDesign' + ReplaceText(ReplaceText(g,'-','_'),'.','_');
    p.Caption :=cdsRestAPIs.FieldbyName('APIName').AsString + '.Pas';
    p.PageControl := TUniTabSheet(Self.Parent).PageControl;
    p.Closable := True;

    f := TUniFrame(UGMM.GetDesignRestAPI(p,g));
    f.Align := alClient;
    f.Parent := p;
  End;
  p.PageControl.ActivePage := p;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

# 1.19. GetFrameCaption

function  GetFrameCaption(AGuid:String):string;
1

说明: 根据模块地址获取模块标题 返回值: string类型

  • GetFrameCaption 函数语法中各部分说明
部分 说明
AGuid 指定模块的唯一地址Guid
  • 示例
//JScript
  var vCaption;
  vCaption = UGMM.GetFrameCaption("29B1B867-2CC6-413C-9058-FB332D3D0EDD");
1
2
3
//PasScript
var
 vCaption:String;
begin
  //获取模块标题
  vCaption := UGMM.GetFrameCaption('29B1B867-2CC6-413C-9058-FB332D3D0EDD');
end;
1
2
3
4
5
6
7

# 1.20. GetLanguageByGrid

function  GetLanguageByGrid(ALanuageName:String):string;
1

说明: 根据语言名称查找语言地址 返回值: string类型

  • GetLanguageByGrid 函数语法中各部分说明
部分 说明
ALanuageName 指定语言名称

# 1.21. GetLanguageByName

function  GetLanguageByName(ALanuageGuid:String):string;
1

说明: 根据语言地址查找语言名称 返回值: string类型

  • GetLanguageByName 函数语法中各部分说明
部分 说明
ALanuageGuid 指定语言址址Guid

# 1.22. GetUnitCode

function  GetUnitCode(Const AGuid:String;Const AUnitName:string = ''):string;
1

说明: 获取公共单元代码 返回值: string类型

  • GetUnitCode 函数语法中各部分说明
部分 说明
AGuid 指定模块唯一地址Guid
AUnitName 指定模块单元名称(可选)

# 1.23. GetNavigRoleGuid

Function  GetNavigRoleGuid(ANavig:Integer;ACreateTime:TDateTime):String;
1

说明: 获取导航角色存储地址 返回值: string类型

  • GetNavigRoleGuid 函数语法中各部分说明
部分 说明
ANavig 指定排序顺序(tyFirst = 1;tyPrior = 2;tyNext = 3;tyLast = 4;)
ACreateTime 指定排序时间

# 1.24. GetNavigUserGuid

Function  GetNavigUserGuid(ANavig:Integer;ACreateTime:TDateTime):String;
1

说明: 获取导航用户存储地址 返回值: string类型

  • GetNavigUserGuid 函数语法中各部分说明
部分 说明
ANavig 指定排序顺序(tyFirst = 1;tyPrior = 2;tyNext = 3;tyLast = 4;)
ACreateTime 指定排序时间

1

# 1.25. GetNavigUserGuid

Function  GetNavigUserGuid(ANavig:Integer;ACreateTime:TDateTime):String;
1

说明: 获取导航用户存储地址 返回值: string类型

  • GetNavigUserGuid 函数语法中各部分说明
部分 说明
ANavig 指定排序顺序(tyFirst = 1;tyPrior = 2;tyNext = 3;tyLast = 4;)
ACreateTime 指定排序时间

1

# 1.26. GetDllComponent

Function  GetDllComponent(APathName:String;AOwner:TComponent):TComponent;
1

说明: 获取DLL中的窗体对象 返回值: TComponent类型

  • GetDllComponent 函数语法中各部分说明
部分 说明
APathName 指定窗体路径
AOwner 指定窗体的所有者Owner

1

# 1.27. GetSessionList

Function  GetSessionList:TClientDataSet;
1

说明: 获取会话列表 返回值: TComponent类型

  • GetSessionList 函数语法中各部分说明 无

1

# 1.28. GetSQLCommand

function  GetSQLCommand(Const ASQLCommandId:String):TSQLCommand;
1

说明:返回SQLCommand对象。 返回值:TSQLCommand对象。

  • GetSQLCommand 函数语法中各部分说明
部分 说明
ASQLCommandId 预设SQL的编号

# 1.29. GetSQLCommandNodeName

function  GetSQLCommandNodeName(ASQLCommandId:String):string;
1

说明:返回预设SQL对应的节点数据库名称。 返回值:String类型。

  • GetSQLCommandNodeName 函数语法中各部分说明
部分 说明
ASQLCommandId 预设SQL的编号
//JScript
Strings = UGMM.GetSQLCommandNodeName("SQL001");
1
2
//PasScript
Strings := UGMM.GetSQLCommandNodeName('SQL001');
1
2

# 1.30. GetSQLCommandText

function  GetSQLCommandText(Const ASQLCommandId:String):String;
1

说明:返回预设SQL文本的内容。 返回值:String类型。

  • GetSQLCommand 函数语法中各部分说明
部分 说明
ASQLCommandId 预设SQL的编号
//JScript
Strings = UGMM.GetSQLCommandText("SQL001");
1
2
//PasScript
Strings := UGMM.GetSQLCommandText('SQL001');
1
2

# 1.31. GetWebSubForm

Function GetWebSubForm(AModuleName:String): TUgWebForm;
1

说明:根据指定的模块编号打开模块,显示在窗口中。 返回值:TUgWebForm 类型。

  • GetWebSubForm 函数语法中各部分说明
部分 说明
AModuleName 要打开的模块的编号或模块的名称
//JScript
  var F;
  //打开布种资料编辑界面	W-EQ-MOD-2120-2
  F = UGMM.GetWebSubForm("W-EQ-MOD-2120-2");
  if (F.ShowModal == mrOK)
  {

  }
  //释放打开的窗口W-EQ-MOD-2120-2
  UGMM.DelWebSubForm("W-EQ-MOD-2120-2");
1
2
3
4
5
6
7
8
9
10
//PasScript
var
  F: TUgWebForm;
begin
  F := UGMM.GetWebSubForm('W-EQ-MOD-2120-2');
  if F.ShowModal = mrOK then
  begin
  
  end;
  //释放打开的窗口W-EQ-MOD-2120-2
  UGMM.DelWebSubForm('W-EQ-MOD-2120-2');
end;

1
2
3
4
5
6
7
8
9
10
11
12
13

# 1.32. HTTPDecode

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

说明: HTTP解码 返回值: 字符类型String

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

# 1.33. HTTPEncode

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

说明: HTTP编码 返回值: 字符类型String

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

# 1.34. ImpExcel

function ImpExcel(ADBGrid:TUgDBGrid;Const ACaption,ARequiredItems:String):Boolean;
1

说明: 从Excel表格中选择数据导入至数据表中。 返回值: 布尔类型: Boolean。

  • ImpExcel函数语法中各部分说明
部分 说明
ADBGrid 要接受数据的数据表格控件名称
ACaption 打开的导入窗口的标题名称
ARequiredItems 设置所需项的名称,可留空后在打开窗口中进行设置
  • 示例

  我们可以为其分配一个按钮,一个数据表格控件以触发事件:

//JScript
function UgButton05OnClick(sender){
    if (UGMM.ImpExcel(UgDBGrid01,"Import Excel",""))
    {
      UgRFDataSet01.ApplyUpdates(-1);
    }
}

{
  UgRFDataSet01.Connection = GETRFWeb;
  UgRFDataSet01.SQL.Text = "SELECT TOP 0 * FROM Pass_Cust";
  UgRFDataSet01.Open;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
//PasScript
procedure UgButton05OnClick(sender: tobject);
begin
    if UGMM.ImpExcel(UgDBGrid01,'Import Excel','') then
    begin
      UgRFDataSet01.ApplyUpdates(-1);
    End;
end;

Begin
  UgRFDataSet01.Connection := GETRFWeb;
  UgRFDataSet01.SQL.Text := 'SELECT TOP 0 * FROM Pass_Cust';
  UgRFDataSet01.Open;
End.
1
2
3
4
5
6
7
8
9
10
11
12
13
14

  运行后会打开界面,首先需要选择Excel文件上传。请注意,这种方式对上传的表格表头有要求,表格的第一行必须是列的名称。且表格中的其余空白行不能有修改属性等的操作。

  点击[Browse...]选择文件并点击[Upload]上传,右侧的表中双击各个行的Excel列名,在下拉表格中选择表格中对应的列名。

  选择完成后,点击右侧的[导入]按钮,开始执行导入操作。进度条达到100%后自动关闭对话框返回至原先的界面。


# 1.35. LT

Function  LT(AText:String):string;
1

说明: 获取言语信息 返回值: 字符类型String

  • LT 函数语法中各部分说明
部分 说明
AText 指定多语言关键字(默认语言内容)
  • 示例
//JScript
  UgLabel01.Cantion := UGMM.LT("Cust Name");
1
2
//PasScript
begin
  UgLabel01.Cantion := UGMM.LT('Cust Name');
End;
1
2
3
4

# 1.36. LogInChecking

Function LogInChecking(AUserType,AUserName,APassWord,ALenguage,AModeType:String):Boolean;
1

说明: 验证用户登录 返回值: Boolean类型

  • LogInChecking 函数语法中各部分说明
部分 说明
AUserType 用户类型(开发用户、框架用户、系统用户)
AUserName 登录用户名
APassWord 登录用户密码
ALenguage 指定用户登录语言
AModeType 指定登录类型(Web,App)
  • 示例
//JScript
  //验证用户密码
  if UGMM.LogInChecking(GetSignInType(FSignInType),edUserName.Text,edPassWord.Text,edLanguage.Text,"WEB")
  {//密码正确时登陆
   ...
  }
1
2
3
4
5
6
//PasScript
begin
  //验证用户密码
  if UGMM.LogInChecking(GetSignInType(FSignInType),edUserName.Text,edPassWord.Text,edLanguage.Text,'WEB') then
  begin//密码正确时登陆
   ...
  end;
end;
1
2
3
4
5
6
7
8

# 1.37. 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 参数信息,以键值对的方式进行
  • 示例
//JScript
  var l;
  l = new TStringList();
  l.Values["text"] = "Hello WebSocket Test";
  if (UGMM.SendWsMsg("demo","callback","bean-001","updatememo","0",l)) 
  { 
    ShowMessage("Send Success!");  
  }
  l.Free;
1
2
3
4
5
6
7
8
9
//PasScript
var 
  l: TStringList;
begin
  l := TStringList.Create();
  l.Values['text'] := 'Hello WebSocket Test';
  if (UGMM.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

# 1.38. SendWsMsgBySId

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

说明:向指定的会话ID的客户端发送WebSocket信息。 返回值:Boolean,用于反馈是否发送成功。

  • SendWsMsgBySId 函数语法中各部分说明
部分 说明
sid 指定会话的名称
msg 要发送的消息内容
  • 示例
//JScript
  UGMM.SendWsMsgBySId("esp32_001","Off");
1
2
//PasScript
  UGMM.SendWsMsgBySId('esp32_001','Off');
1
2

# 1.39. SendWsMsgByStr

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

说明:向WS服务器发送WebSocket信息。 返回值:Boolean,用于反馈是否发送成功。

  • SendWsMsgByStr 函数语法中各部分说明
部分 说明
msg 要发送的消息内容,仅支持传输指定的json
  • 示例
//JScript
  msg = "{" +
    "\"username\": \"demo\"," +              					 		//WebSocket消息发送的目标用户
     "\"action\": \"callback\"," +            					 		//WebSocket消息告知IsoBean执行的动作
     "\"tag\": \"0\"," + 
     "\"data\": {" +
        "\"callbackcomponent\": \"wb-das-0001_dashboard-demo1\"," +   	//执行动作的目标组件名称
        "\"callbackeventname\": \"update\"," +  			//执行触发OnAjaxEvent事件的 eventname(事件名称)
    	"\"callbackparams\": [" +             						 //传输的键值,可以有一对或者多对
      	"{" +
            "\"paramname\": \"type\"," +
        	"\"paramvalue\": \"header\"" +
      	"}," +
      	"{" +
        	"\"paramname\": \"dataMonthOrder\"," +
        	"\"paramvalue\": \"" + Q.FieldByName("dataMonthOrder").asString + "\"" +
      	"}," +
      	"{" +
            "\"paramname\": \"dataNewMember\"," +
        	"\"paramvalue\": \"" + Q.FieldByName("dataNewMeber").asString + "\"" +
      	"}," +
      	"{" +
        	"\"paramname\": \"dataOnceConsume\"," +
        	"\"paramvalue\": \"" + Q.FieldByName("dataOnceConsume").asString + "\"" +
      	"}" +
    	"]" +
     "}" +
  "}";
  UGMM.SendWsMsgByStr(msg);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//PasScript
  msg = '{' +
    '"username": "demo",' +              					 		//WebSocket消息发送的目标用户
    '"action": "callback",' +            					 		//WebSocket消息告知IsoBean执行的动作
    '"tag": "0",' + 
    '"data": {' +
        '"callbackcomponent": "wb-das-0001_dashboard-demo1",' +   	//执行动作的目标组件名称
        '"callbackeventname": "update",' +  			//执行触发OnAjaxEvent事件的 eventname(事件名称)
    	'"callbackparams": [' +             						 //传输的键值,可以有一对或者多对
      	'{' +
            '"paramname": "type",' +
        	'"paramvalue": "header"' +
      	'},' +
      	'{' +
        	'"paramname": "dataMonthOrder",' +
        	'"paramvalue": "' + Q.FieldByName('dataMonthOrder').asString + '"' +
      	'},' +
      	'{' +
            '"paramname": "dataNewMember",' +
        	'"paramvalue": "' + Q.FieldByName('dataNewMeber').asString + '"' +
      	'},' +
      	'{' +
        	'"paramname": "dataOnceConsume",' +
        	'"paramvalue": "' + Q.FieldByName('dataOnceConsume').asString + '"' +
      	'}' +
    	']' +
     '}' +
  '}';
  UGMM.SendWsMsgByStr(msg);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# 1.40. URLDownloadToFile

Function URLDownloadToFile(AUrl: string;AFileName: string):Integer;
1

说明: 根据URL下载文件到指定目录 返回值: Integer类型

  • URLDownloadToFile 函数语法中各部分说明
部分 说明
AUrl 指定远程文件Url地址
AFileName 指定本地文件路径(含文件名)
  • 示例
//JScript
   //下载文件到本地,并通过UgPDFFrame控件打开预览
   if (UGMM.URLDownloadToFile("File URL","temp\\report.pdf") == 0) 
     UgPDFFrame01.PdfURL = "temp\\report.pdf";
1
2
3
4
//PasScript
   //下载文件到本地,并通过UgPDFFrame控件打开预览
   if UGMM.URLDownloadToFile('File URL','temp\report.pdf') =0 then 
     UgPDFFrame01.PdfURL := 'temp\report.pdf';
1
2
3
4

# 1.41. VerifyRunFramePermType

Function  VerifyRunFramePermType(ARunFarme:TComponent;APermName:String;ACreateUser:String):Boolean;
1

说明: 验证运行模块类型权限 返回值: Boolean类型

  • VerifyRunFramePermType 函数语法中各部分说明
部分 说明
ARunFarme 指定窗体类
APermName 指定权限名称
ACreateUser 指定操作用户
  • 示例
//JScript
   if (UGMM.VerifyRunFramePermType(TUgWebRunFrame(Self),"New","admin")
   {
     ShowMessage("permissions available");
   }
1
2
3
4
5
//PasScript
begin
   if UGMM.VerifyRunFramePermType(TUgWebRunFrame(Self),'New','admin') Then
   Begin
     ShowMessage('permissions available');
   end;
end;
1
2
3
4
5
6
7

# 1.42. VerifyPermGuid

Function  VerifyPermGuid(AGuid:String):Boolean;
1

说明: 以权限地址获取用户是否有权限 返回值: Boolean类型

  • VerifyPermGuid 函数语法中各部分说明
部分 说明
AGuid 指定权限唯一地址Guid
  • 示例
//JScript
   if (UGMM.VerifyPermGuid("Guid")
   {
     ShowMessage("permissions available");
   }
1
2
3
4
5
//PasScript
begin
   if UGMM.VerifyPermGuid('Guid') Then
   Begin
     ShowMessage('permissions available');
   end;
end;
1
2
3
4
5
6
7

# 2. UGSM类函数

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


# 3. UGCM类函数

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

# 3.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
//PasScript
Var 
  Amount:double;
begin
  Amount := 123456.78;
  Showmessage(UGCM.AmountToChinese(Amount));
end;
1
2
3
4
5
6
7

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


# 3.2. GetFileStreamFileName

function GetFileStreamFileName(AFileStream: TFileStream): string;
1

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

  • GetFileStreamFileName 函数语法中各部分说明
部分 说明
AFileStream 指定文件流
  • 示例
//JScript
function UgFileUploadButton01OnCompleted(sender,astream){
    var DestName,DestFolder;
    DestFolder=UGSM.StartPath+"temp\\";
    DestName=DestFolder+UgFileUploadButton01.FileName;
    //上传文件
    CopyFile(UGCM.GetFileStreamFileName(AStream), DestName, False);
    ugedit04.Text = DestName;
}
1
2
3
4
5
6
7
8
9
//PasScript
procedure UgFileUploadButton01OnCompleted(sender: tobject;astream: tfilestream);
var
  DestName : string;
  DestFolder : string;
begin
    //远程文件路径
    DestFolder:=UGSM.StartPath+'temp\';
    DestName:=DestFolder+UgFileUploadButton01.FileName;
    //上传文件
    CopyFile(UGCM.GetFileStreamFileName(AStream), DestName, False);
    ugedit04.Text := DestName;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13

# 3.3. 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
//PasScript
Var 
  Time:String;
begin
  Time := '2020-12-01 12:12:12';
  Showmessage(UGCM.Gettamptime(Time,13));
end;
1
2
3
4
5
6
7

运行结果 :1606795932000


# 3.4. GettampTotime

function GettampTotime(vtamp: string): string; 
1

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

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

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


# 3.5. HexStrToStream

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

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

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

1

# 3.6. 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
//PasScript
Var 
  Hex:String;
begin
  Hex := '0A';
  Showmessage(IntToStr(UGCM.HexToInt(Hex)));
end;
1
2
3
4
5
6
7

运行结果:10


# 3.7. HexToBytes

function HexToBytes(AHex: string): TBytes;
1

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

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

1

# 3.8. 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
//PasScript
//保留一位小数
Var 
  d:double;
begin
  d:=12345.56;
  Showmessage(FloatToStr(UGCM.RoundToCH(d,1)));
end;
1
2
3
4
5
6
7
8

运行结果:12345.6


# 3.9. 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
//PasScript
//ZoneMinder API用于获取监视器列表
//curl http://server/zm/api/monitors.json
begin
  s := UGCM.NetHttpGet(edtURL.Text + '/monitors.json?token=' + token,'');
  mmLog.Lines.Clear;
  mmLog.Lines.Add(DateTimeToStr(now()) + ': ' + s);
end;
1
2
3
4
5
6
7
8

# 3.10. 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
//PasScript
//ZoneMinder 使用API来修改监视器功能
//curl -XPOST http://server/zm/api/monitors/1.json -d "Monitor[Function]=Modect&Monitor[Enabled]=1"
Var
  s: string;
  postString: 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
11
12

# 3.11. 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
//PasScript
//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
13

# 3.12. 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
//PasScript
//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
11

# 3.13. 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
//PasScript
Var 
  J:TJSONObject;
  s: String;
begin
  J:=TJSONObject.Create;
  s:= '{"status": "OK","Language":{"DefaultLanguage": 1}}';
  Try
     j := TJSONObject(j.ParseJSONValue(s,false,false));
     j :=UGCM.GetJSONObject(j,'Language');
     ShowMessage(UGCM.GetJSONNumber(j,'DefaultLanguage'));
     //上述两句程序也可改写为
     //ShowMessage(UGCM.GetJSONNumber(j,'Language.DefaultLanguage'));
  Finally
    j.Free;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

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

# 3.14. 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
//PasScript
Var 
  J:TJSONObject;
  A:TJSONArray;
  s: String;
begin
  J:=TJSONObject.Create;
  A:= TJSONArray.Create;
  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;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

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

# 3.15. 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
//PasScript
Var 
  J:TJSONObject;
  s: String;
begin
  J:=TJSONObject.Create;
  s:= '{"status": "OK","Language":{"DefaultLanguage": 1}}';
  Try
     j := TJSONObject(j.ParseJSONValue(s,false,false));
     ShowMessage(UGCM.GetJSONString(j,'status'));
  Finally
    j.Free;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14

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

# 3.16. 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
//PasScript
Var 
  J:TJSONObject;
  s: String;
begin
  J:=TJSONObject.Create;
  s:= '{"status": "OK","Language":{"DefaultLanguage": 1}}';
  Try
     j := TJSONObject(j.ParseJSONValue(s,false,false));
     j :=UGCM.GetJSONObject(j,'Language');
     ShowMessage(UGCM.GetJSONNumber(j,'DefaultLanguage'));
     //上述两句程序也可改写为
     //ShowMessage(UGCM.GetJSONNumber(j,'Language.DefaultLanguage'));
  Finally
    j.Free;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

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

# 3.17. 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
//PasScript
Var 
  J:TJSONObject;
  s: String;
  i: Integer;
begin
  J:=TJSONObject.Create;
  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;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

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

# 3.18. 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
//PasScript
Var 
  J:TJSONObject;
  s: String;
  i: Double;
begin
  J:=TJSONObject.Create;
  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;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

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

# 3.19. 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
//PasScript
Var 
  J:TJSONObject;
  s: String;
begin
  J:=TJSONObject.Create;
  s:= '{"status": true,"Language":{"DefaultLanguage": 1}}';
  Try
     j := TJSONObject(j.ParseJSONValue(s,false,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
15

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

# 3.20. GetJSONValue

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

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

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

# 3.21. ParseJSONValue

function ParseJSONValue(QJson: string): TJSONValue;
1

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

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

← 系统程序 自定程序→

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