自定函数
# FastWeb 自定函数
- 适用平台:WEB(桌面),APP(移动)
# 1. UGMM类函数
UGMM类函数在程序中调用时,必须以UGMM.开头。
# 1.1. ApplicationVersion
Function ApplicationVersion:String;
说明: 获取应用版本 返回值: 字符类型String
- 示例
//JScript
UgLabel01.Caption = UGMM.ApplicationVersion;
2
//PasScript
begin
UgLabel01.Cantion := UGMM.ApplicationVersion;
End;
2
3
4
# 1.2. CreateGuid
Function CreateGuid:string;
说明: 创建GUID唯一编号 返回值: 字符类型String
- 示例
//JScript
var vGuid;
vGuid = UGMM.CreateGuid;
2
3
//PasScript
var
vGuid:string;
begin
vGuid := UGMM.CreateGuid;
End;
2
3
4
5
6
# 1.3. CreateStringList
Function CreateStringList(AEncoding:string='UTF8'):TStringList;
说明: 创建字符串列表指定编码类型 返回值: TStringList类型
- CreateStringList 函数语法中各部分说明
部分 | 说明 |
---|---|
AEncoding | 指定编码类型(UTF-7,UTF-8,UniCode) |
- 示例
//JScript
var vStrings;
vStrings = UGMM.CreateStringList("UTF-8");
2
3
//PasScript
var
vStrings:TStringList;
begin
vStrings:=UGMM.CreateStringList('UTF-8');
end;
2
3
4
5
6
# 1.4. DecodeString
function DecodeString(AText:String):string;
说明: HTTP编码 返回值: 字符类型String
- DecodeString 函数语法中各部分说明
部分 | 说明 |
---|---|
AText | 指定需要解密的字符串 |
- 示例
//JScript
ShowMessage(UGMM.DecodeString("NW9pUjVwaXY1TGl0NVp1OTVMcTY3N3lCUkdWc2NHaHA="));
2
//PasScript
begin
ShowMessage(UGMM.DecodeString('NW9pUjVwaXY1TGl0NVp1OTVMcTY3N3lCUkdWc2NHaHA='));
End;
2
3
4
- 字符串解密结果
我是中国人!
# 1.5. EncodeString
function EncodeString(AText:String):string;
说明: 字符加密 返回值: 字符类型String
- EncodeString 函数语法中各部分说明
部分 | 说明 |
---|---|
AText | 指定需要加密的字符串 |
- 示例
//JScript
ShowMessage(UGMM.EncodeString("Hi,Hello"));
2
//PasScript
begin
ShowMessage(UGMM.EncodeString('Hi,Hello'));
End;
2
3
4
- 字符串加密结果
U0drc1NHVnNiRzg9UkdWc2NHaHA=
# 1.6. Expexcel
function ExpExcel(ADBGrid:TUgDBGrid;Const ACaption,ATitle:String):Boolean;
说明: 打开导出数据表至Excel的文本。 返回值: Boolean值
- GetObject 函数语法中各部分说明
部分 | 说明 |
---|---|
ADBGrid | 指定一个TUgDBGrid类表格 |
ACaption | 指定导出对话框的标题 |
ATitle | 指定导出的表格的标题名称 |
- 示例
//JScript
UGMM.ExpExcel(gridFrames,UGMM.LT("模块列表(WEB)"),UGMM.LT("模块列表(WEB)"));
2
//PasScript
UGMM.ExpExcel(gridFrames,UGMM.LT('模块列表(WEB)'),UGMM.LT('模块列表(WEB)'));
2
# 1.7. FileUpload
Function UpLoadFile(Const AOwner:TComponent;Const AFrameGuid,AOrderCode:String;Const ACapacitySpace:int64 = 30 * 1024 * 1024;Const UpLoadFileEvent:TUpLoadFileEvent = Nil):string;
说明: 通过文件管理器上传文件 返回值: 无
- 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);
}
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;
2
3
4
5
6
7
8
9
10
11
# 1.8. GetObject
Function GetObject(Const ASign:String):TObject;
说明: 获取线程管理共享对象 返回值: 对象类TObject
- GetObject 函数语法中各部分说明
部分 | 说明 |
---|---|
ASign | 指定一个对象名称Name |
- 示例
//JScript
var Obj;
obj = UGMM.GetObject("ObjectName");
2
3
//PasScript
var
obj:TObject;
begin
obj := UGMM.GetObject('ObjectName');
End;
2
3
4
5
6
# 1.9. GetWebSubForm
Function GetWebSubForm(ACaption:String;Const AMenuFlag:String = '';Const AType:String = 'WEB'):TUniForm;
说明: 获取子窗体(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;
}
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;
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;
说明: 获取子窗体(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;
}
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;
2
3
4
5
6
7
8
9
10
11
12
13
14
# 1.11. GetBeanCaption
function GetBeanCaption(AGuid:String):string;
说明:通过Bean模块ID来获取Bean模块的标题描述名称。 返回值: string
- GetBeanCaption 函数语法中各部分说明
部分 | 说明 |
---|---|
AGuid | 指定一个子窗体ID |
# 1.12. GetBeanCode
function GetBeanCode(AGuid:String):string;
说明: 通过Bean模块ID来获取Bean模块的编号 返回值: string
- GetBeanCode 函数语法中各部分说明
部分 | 说明 |
---|---|
AGuid | 指定一个子窗体ID |
- 示例
//JScript
UGMM.GetBeanCode("8F62424E-FD72-422B-8C2F-0A25A4F9FEAC");
2
//PasScript
UGMM.GetBeanCode('8F62424E-FD72-422B-8C2F-0A25A4F9FEAC');
2
# 1.13. GetBeanToSql
function GetBeanToSql(Const AGuid:String):string;
说明:将当前的Bean模块输出为SQL脚本,用于导入至其他项目使用。 返回值String
- GetBeanToSql 函数语法说明
部分 | 说明 |
---|---|
AGuid | 指定一个子窗体ID |
# 1.14. GetNodeDataLink
Function GetNodeDataLink(Const ANodeName:String):TFDConnection;
说明: 获取节点数据库 返回值: 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;
}
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;
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;
说明: 获取运行模块 返回值: 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);
}
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;
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;
说明: 获取模块设计器 返回值: 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;
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;
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;
说明: 获取模块编辑器 返回值: 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;
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;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 1.18. GetDesignRestAPI
Function GetDesignRestAPI(AOwner:TComponent;AGuid:String):TComponent;
说明: 获取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;
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;
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;
说明: 根据模块地址获取模块标题 返回值: string类型
- GetFrameCaption 函数语法中各部分说明
部分 | 说明 |
---|---|
AGuid | 指定模块的唯一地址Guid |
- 示例
//JScript
var vCaption;
vCaption = UGMM.GetFrameCaption("29B1B867-2CC6-413C-9058-FB332D3D0EDD");
2
3
//PasScript
var
vCaption:String;
begin
//获取模块标题
vCaption := UGMM.GetFrameCaption('29B1B867-2CC6-413C-9058-FB332D3D0EDD');
end;
2
3
4
5
6
7
# 1.20. GetLanguageByGrid
function GetLanguageByGrid(ALanuageName:String):string;
说明: 根据语言名称查找语言地址 返回值: string类型
- GetLanguageByGrid 函数语法中各部分说明
部分 | 说明 |
---|---|
ALanuageName | 指定语言名称 |
# 1.21. GetLanguageByName
function GetLanguageByName(ALanuageGuid:String):string;
说明: 根据语言地址查找语言名称 返回值: string类型
- GetLanguageByName 函数语法中各部分说明
部分 | 说明 |
---|---|
ALanuageGuid | 指定语言址址Guid |
# 1.22. GetUnitCode
function GetUnitCode(Const AGuid:String;Const AUnitName:string = ''):string;
说明: 获取公共单元代码 返回值: string类型
- GetUnitCode 函数语法中各部分说明
部分 | 说明 |
---|---|
AGuid | 指定模块唯一地址Guid |
AUnitName | 指定模块单元名称(可选) |
# 1.23. GetNavigRoleGuid
Function GetNavigRoleGuid(ANavig:Integer;ACreateTime:TDateTime):String;
说明: 获取导航角色存储地址 返回值: string类型
- GetNavigRoleGuid 函数语法中各部分说明
部分 | 说明 |
---|---|
ANavig | 指定排序顺序(tyFirst = 1;tyPrior = 2;tyNext = 3;tyLast = 4;) |
ACreateTime | 指定排序时间 |
# 1.24. GetNavigUserGuid
Function GetNavigUserGuid(ANavig:Integer;ACreateTime:TDateTime):String;
说明: 获取导航用户存储地址 返回值: string类型
- GetNavigUserGuid 函数语法中各部分说明
部分 | 说明 |
---|---|
ANavig | 指定排序顺序(tyFirst = 1;tyPrior = 2;tyNext = 3;tyLast = 4;) |
ACreateTime | 指定排序时间 |
# 1.25. GetNavigUserGuid
Function GetNavigUserGuid(ANavig:Integer;ACreateTime:TDateTime):String;
说明: 获取导航用户存储地址 返回值: string类型
- GetNavigUserGuid 函数语法中各部分说明
部分 | 说明 |
---|---|
ANavig | 指定排序顺序(tyFirst = 1;tyPrior = 2;tyNext = 3;tyLast = 4;) |
ACreateTime | 指定排序时间 |
# 1.26. GetDllComponent
Function GetDllComponent(APathName:String;AOwner:TComponent):TComponent;
说明: 获取DLL中的窗体对象 返回值: TComponent类型
- GetDllComponent 函数语法中各部分说明
部分 | 说明 |
---|---|
APathName | 指定窗体路径 |
AOwner | 指定窗体的所有者Owner |
# 1.27. GetSessionList
Function GetSessionList:TClientDataSet;
说明: 获取会话列表 返回值: TComponent类型
- GetSessionList 函数语法中各部分说明 无
# 1.28. GetSQLCommand
function GetSQLCommand(Const ASQLCommandId:String):TSQLCommand;
说明:返回SQLCommand对象。 返回值:TSQLCommand对象。
- GetSQLCommand 函数语法中各部分说明
部分 | 说明 |
---|---|
ASQLCommandId | 预设SQL的编号 |
# 1.29. GetSQLCommandNodeName
function GetSQLCommandNodeName(ASQLCommandId:String):string;
说明:返回预设SQL对应的节点数据库名称。 返回值:String类型。
- GetSQLCommandNodeName 函数语法中各部分说明
部分 | 说明 |
---|---|
ASQLCommandId | 预设SQL的编号 |
//JScript
Strings = UGMM.GetSQLCommandNodeName("SQL001");
2
//PasScript
Strings := UGMM.GetSQLCommandNodeName('SQL001');
2
# 1.30. GetSQLCommandText
function GetSQLCommandText(Const ASQLCommandId:String):String;
说明:返回预设SQL文本的内容。 返回值:String类型。
- GetSQLCommand 函数语法中各部分说明
部分 | 说明 |
---|---|
ASQLCommandId | 预设SQL的编号 |
//JScript
Strings = UGMM.GetSQLCommandText("SQL001");
2
//PasScript
Strings := UGMM.GetSQLCommandText('SQL001');
2
# 1.31. GetWebSubForm
Function GetWebSubForm(AModuleName:String): TUgWebForm;
说明:根据指定的模块编号打开模块,显示在窗口中。 返回值: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");
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;
2
3
4
5
6
7
8
9
10
11
12
13
# 1.32. HTTPDecode
function HTTPDecode(const AStr: string): string;
说明: HTTP解码 返回值: 字符类型String
- HTTPDecode 函数语法中各部分说明
部分 | 说明 |
---|---|
AStr | 指定需要解码的字符串 |
# 1.33. HTTPEncode
function HTTPEncode(const AStr: string): string;
说明: HTTP编码 返回值: 字符类型String
- HTTPEncode 函数语法中各部分说明
部分 | 说明 |
---|---|
AStr | 指定需要编码的字符串 |
# 1.34. ImpExcel
function ImpExcel(ADBGrid:TUgDBGrid;Const ACaption,ARequiredItems:String):Boolean;
说明: 从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;
}
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.
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;
说明: 获取言语信息 返回值: 字符类型String
- LT 函数语法中各部分说明
部分 | 说明 |
---|---|
AText | 指定多语言关键字(默认语言内容) |
- 示例
//JScript
UgLabel01.Cantion := UGMM.LT("Cust Name");
2
//PasScript
begin
UgLabel01.Cantion := UGMM.LT('Cust Name');
End;
2
3
4
# 1.36. LogInChecking
Function LogInChecking(AUserType,AUserName,APassWord,ALenguage,AModeType:String):Boolean;
说明: 验证用户登录 返回值: Boolean类型
- LogInChecking 函数语法中各部分说明
部分 | 说明 |
---|---|
AUserType | 用户类型(开发用户、框架用户、系统用户) |
AUserName | 登录用户名 |
APassWord | 登录用户密码 |
ALenguage | 指定用户登录语言 |
AModeType | 指定登录类型(Web,App) |
- 示例
//JScript
//验证用户密码
if UGMM.LogInChecking(GetSignInType(FSignInType),edUserName.Text,edPassWord.Text,edLanguage.Text,"WEB")
{//密码正确时登陆
...
}
2
3
4
5
6
//PasScript
begin
//验证用户密码
if UGMM.LogInChecking(GetSignInType(FSignInType),edUserName.Text,edPassWord.Text,edLanguage.Text,'WEB') then
begin//密码正确时登陆
...
end;
end;
2
3
4
5
6
7
8
# 1.37. 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 | 参数信息,以键值对的方式进行 |
- 示例
//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;
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;
2
3
4
5
6
7
8
9
10
11
12
# 1.38. SendWsMsgBySId
function SendWsMsgBySId(const sid, msg: string): Boolean;
说明:向指定的会话ID的客户端发送WebSocket信息。 返回值:Boolean,用于反馈是否发送成功。
- SendWsMsgBySId 函数语法中各部分说明
部分 | 说明 |
---|---|
sid | 指定会话的名称 |
msg | 要发送的消息内容 |
- 示例
//JScript
UGMM.SendWsMsgBySId("esp32_001","Off");
2
//PasScript
UGMM.SendWsMsgBySId('esp32_001','Off');
2
# 1.39. SendWsMsgByStr
function SendWsMsgByStr(const msg: string): Boolean;
说明:向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);
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);
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;
说明: 根据URL下载文件到指定目录 返回值: Integer类型
- URLDownloadToFile 函数语法中各部分说明
部分 | 说明 |
---|---|
AUrl | 指定远程文件Url地址 |
AFileName | 指定本地文件路径(含文件名) |
- 示例
//JScript
//下载文件到本地,并通过UgPDFFrame控件打开预览
if (UGMM.URLDownloadToFile("File URL","temp\\report.pdf") == 0)
UgPDFFrame01.PdfURL = "temp\\report.pdf";
2
3
4
//PasScript
//下载文件到本地,并通过UgPDFFrame控件打开预览
if UGMM.URLDownloadToFile('File URL','temp\report.pdf') =0 then
UgPDFFrame01.PdfURL := 'temp\report.pdf';
2
3
4
# 1.41. VerifyRunFramePermType
Function VerifyRunFramePermType(ARunFarme:TComponent;APermName:String;ACreateUser:String):Boolean;
说明: 验证运行模块类型权限 返回值: Boolean类型
- VerifyRunFramePermType 函数语法中各部分说明
部分 | 说明 |
---|---|
ARunFarme | 指定窗体类 |
APermName | 指定权限名称 |
ACreateUser | 指定操作用户 |
- 示例
//JScript
if (UGMM.VerifyRunFramePermType(TUgWebRunFrame(Self),"New","admin")
{
ShowMessage("permissions available");
}
2
3
4
5
//PasScript
begin
if UGMM.VerifyRunFramePermType(TUgWebRunFrame(Self),'New','admin') Then
Begin
ShowMessage('permissions available');
end;
end;
2
3
4
5
6
7
# 1.42. VerifyPermGuid
Function VerifyPermGuid(AGuid:String):Boolean;
说明: 以权限地址获取用户是否有权限 返回值: Boolean类型
- VerifyPermGuid 函数语法中各部分说明
部分 | 说明 |
---|---|
AGuid | 指定权限唯一地址Guid |
- 示例
//JScript
if (UGMM.VerifyPermGuid("Guid")
{
ShowMessage("permissions available");
}
2
3
4
5
//PasScript
begin
if UGMM.VerifyPermGuid('Guid') Then
Begin
ShowMessage('permissions available');
end;
end;
2
3
4
5
6
7
# 2. UGSM类函数
UGSM类程序在程序中调用时,必须以UGSM.开头。
# 3. UGCM类函数
UGCM类程序在程序中调用时,必须以UGCM.开头。
# 3.1. AmountToChinese
function AmountToChinese(ls: Variant): string;
说明: 金额转大写(中文) 返回值: string类型
- AmountToChinese 函数语法中各部分说明
部分 | 说明 |
---|---|
ls | 指定一个金额(浮点数) |
- 示例
//JScript
var Amount;
Amount = 123456.78;
Showmessage(UGCM.AmountToChinese(Amount));
2
3
4
//PasScript
Var
Amount:double;
begin
Amount := 123456.78;
Showmessage(UGCM.AmountToChinese(Amount));
end;
2
3
4
5
6
7
运行结果 :壹拾贰万叁仟肆佰伍拾陆元柒角捌分
# 3.2. GetFileStreamFileName
function GetFileStreamFileName(AFileStream: TFileStream): string;
说明: 根据文件流获取文件名(含路径) 返回值: 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;
}
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;
2
3
4
5
6
7
8
9
10
11
12
13
# 3.3. Gettamptime
function Gettamptime(vtime: string; vlen: Integer): string;
说明: 获取时间戳 返回值: string类型
- Gettamptime 函数语法中各部分说明
部分 | 说明 |
---|---|
vtime | 指定一个时间 |
vlen | 指定时间戳长度 |
- 示例
//JScript
var Time;
Time = "2020-12-01 12:12:12";
Showmessage(UGCM.Gettamptime(Time,13));
2
3
4
//PasScript
Var
Time:String;
begin
Time := '2020-12-01 12:12:12';
Showmessage(UGCM.Gettamptime(Time,13));
end;
2
3
4
5
6
7
运行结果 :1606795932000
# 3.4. GettampTotime
function GettampTotime(vtamp: string): string;
说明: 根据时间戳转时间 返回值: string类型
- GettampTotime 函数语法中各部分说明
部分 | 说明 |
---|---|
vtamp | 指定一个时间戳 |
- 示例
//JScript
var Timetamp;
Timetamp = "1606795932000";
Showmessage(UGCM.GettampTotime(Timetamp));
2
3
4
//PasScript
Var
Timetamp:String;
begin
Timetamp := '1606795932000';
Showmessage(UGCM.GettampTotime(Timetamp));
end;
2
3
4
5
6
7
运行结果 :2020-12-01 12:12:12.000
# 3.5. HexStrToStream
function HexStrToStream(AHexStr: string; AStream: TStream): Boolean;
说明: 16进制转流 返回值: Boolean类型
- HexStrToStream 函数语法中各部分说明
部分 | 说明 |
---|---|
AHexStr | 指定16进制字符串 |
AStream | 指定流对象 |
# 3.6. HexToInt
function HexToInt(const AHex: string): Integer;
说明: 16进制转整型 返回值: Integer类型
- HexToInt 函数语法中各部分说明
部分 | 说明 |
---|---|
AHex | 指定16进制字符 |
- 示例
//JScript
var Hex;
Hex = "0A";
Showmessage(IntToStr(UGCM.HexToInt(Hex)));
2
3
4
//PasScript
Var
Hex:String;
begin
Hex := '0A';
Showmessage(IntToStr(UGCM.HexToInt(Hex)));
end;
2
3
4
5
6
7
运行结果:10
# 3.7. HexToBytes
function HexToBytes(AHex: string): TBytes;
说明: 16进制字符串转字节数组 返回值: TBytes类型
- HexToBytes 函数语法中各部分说明
部分 | 说明 |
---|---|
AHex | 指定16进制字符串 |
- 示例
# 3.8. RoundToCH
function RoundToCH(const AValue: Double; const ADigit: Integer): Double;
说明: 四舍五入 返回值: Double类型
- RoundToCH 函数语法中各部分说明
部分 | 说明 |
---|---|
AValue | 指定一个浮点数 |
ADigit | 指定小数位保留位数 |
- 示例
//JScript
//保留一位小数
var d;
d=12345.56;
Showmessage(FloatToStr(UGCM.RoundToCH(d,1)));
2
3
4
5
//PasScript
//保留一位小数
Var
d:double;
begin
d:=12345.56;
Showmessage(FloatToStr(UGCM.RoundToCH(d,1)));
end;
2
3
4
5
6
7
8
运行结果:12345.6
# 3.9. 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
//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;
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;
说明: 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);
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;
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;
说明: 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);
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;
2
3
4
5
6
7
8
9
10
11
12
13
# 3.12. NetHttpDelete
function NetHttpDelete(const Qurl: string; const QSource:string = ''): string;
说明: 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);
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;
2
3
4
5
6
7
8
9
10
11
# 3.13. 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
//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;
}
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;
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;
说明: 获取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
//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;
}
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;
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;
说明: 获取JSON对象中指定键值的字符串。 返回值: String类型。
- GetJSONString 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
假设需要对以下JSON进行解析。
{
"status": "OK",
"Language":{
"DefaultLanguage": 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;
}
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;
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;
说明: 获取JSON对象中指定的键值中的数值。 返回值: String类型。
- GetJSONNumber 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
- 示例
假设需要对以下JSON进行解析。
{
"status": "OK",
"Language":{
"DefaultLanguage": 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;
}
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;
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;
说明: 获取JSON对象中指定的键值中的整数数值,并以整数的形式返回。 返回值: Integer类型。
- GetJSONInteger 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
- 示例
假设需要对以下JSON进行解析。
{
"status": "OK",
"Language":{
"DefaultLanguage": 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;
}
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;
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;
说明: 获取JSON对象中指定的键值中的浮点数数值,并以浮点数的形式返回。 返回值: Double类型。
- GetJSONFloat 函数语法中各部分说明
部分 | 说明 |
---|---|
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.1}}";
Try{
j = TJSONObject(j.ParseJSONValue(s,false,false));
i = UGCM.GetJSONFloat(j,"Language.DefaultLanguage");
ShowMessage(FloatToStr(i));
}
Finally{
j.Free;
}
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;
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;
说明: 获取JSON对象中指定的键值中的布尔数值,并以布尔值的形式返回。 返回值: Boolean类型。
- GetJSONBool 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
假设需要对以下JSON进行解析。
{
"status": true,
"Language":{
"DefaultLanguage": 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;
}
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;
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;
说明: 获取JSON对象中指定的键值中的值。 返回值: TJSONValue类型。
- GetJSONBool 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
# 3.21. ParseJSONValue
function ParseJSONValue(QJson: string): TJSONValue;
说明: 获取字符串形式的JSON对象中指定的键值中的值。 返回值: TJSONValue类型。
- GetJSONBool 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |