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

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

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

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

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

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

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

    • 基本入门

    • 功能介绍

    • 控件说明

    • 功能用法

    • 专用模板

    • 开发流程

    • 函数程序

      • 系统函数
      • 系统程序
      • 自定函数
        • 1. 基类函数
          • 1.1. GetContextDataValue
          • 1.2. IsExistsContext
          • 1.3. OperateLog
        • 2. DM类函数
          • 2.1. ExecProcedure
          • 2.2. ExecProcedureR
          • 2.3. GetCachData
          • 2.4. GetUserDefault
          • 2.5. OpenData
          • 2.6. OpenData
          • 2.7. OpenDatas
          • 2.8. SaveData
          • 2.9. SaveData
          • 2.10. SaveDatas
          • 2.11. SendWsMsg
          • 2.12. SendWsMsgBySid
          • 2.13. SendWsMsgByStr
        • 3. DBFun类函数
          • 3.1. CheckFieldEmpty
          • 3.2. CheckUser
          • 3.3. DataSetIsEdit
          • 3.4. DataSetTableCompute
          • 3.5. FileDownload
          • 3.6. FileUpload
          • 3.7. FocusedRecordGetValues*
          • 3.8. GetBatchNo
          • 3.9. GetBillNo
          • 3.10. GetColorNo
          • 3.11. GetFirstDayofMonth
          • 3.12. GetLastDayofMonth
          • 3.13. GetListBySQL
          • 3.14. GetNodeID
          • 3.15. GetNow
          • 3.16. GetNumber
          • 3.17. GetSelectedDataCount
          • 3.18. GetSelectedValues
          • 3.19. GetSQLValue
          • 3.20. GetStrByList
          • 3.21. GetStrBySQL
          • 3.22. GetTransSQL
          • 3.23. GetJSONObject
          • 3.24. GetJSONArray
          • 3.25. GetJSONString
          • 3.26. GetJSONNumber
          • 3.27. GetJSONInteger
          • 3.28. GetJSONFloat
          • 3.29. GetJSONBool
          • 3.30. GetJSONValue
          • 3.31. JSONArray_AddJSONObject
          • 3.32. JSONObject_AddJSONArray
          • 3.33. JSONParse
          • 3.34. ParseJSONValue
          • 3.35. HTTPDecode
          • 3.36. HTTPEncode
          • 3.37. InputBoxDate
          • 3.38. InputBoxDateTime
          • 3.39. InputBoxFloat
          • 3.40. InputBoxInt
          • 3.41. InputBoxMemo
          • 3.42. InputBoxStr
          • 3.43. IsDBRep
          • 3.44. NextMonth
          • 3.45. OperateLog
          • 3.46. ReturnValue
          • 3.47. RoundToCH
          • 3.48. SelectedRecordCount
          • 3.49. SelectedRecordValue
          • 3.50. ShowConfirmDialogue
          • 3.51. ShowConfirmDialogue
          • 3.52. ShowErrorDialogue
          • 3.53. ShowInformationDialogue
          • 3.54. ShowInputDialogue
          • 3.55. ShowWarningDialogue
        • 4. Wechat类 (微信公众号消息推送函数)
          • 4.1. SendArticleMessage
          • 4.2. SendCustomMessage
          • 4.3. SendTemplateMessage
          • 4.4. SendWechatMsg
        • 5. PaxScript注册函数
          • 5.1. BIG2cn
          • 5.2. Cn2Big
          • 5.3. DigitToEn
          • 5.4. GetChinaMoney
          • 5.5. GetHostName
          • 5.6. GetHostIP
          • 5.7. GetMacAddress
          • 5.8. GetPropValue
          • 5.9. MACToStr
          • 5.10. NetHttpGet
          • 5.11. NetHttpPost
        • 6. 模板窗体打开方式函数
          • 6.1. ExpExcel
          • 6.2. InputNumber
          • 6.3. InputNumberR
          • 6.4. InputNumberStr
          • 6.5. MiniWebPage
          • 6.6. ShowDBTreeView
          • 6.7. ShowEdit
          • 6.8. ShowEditList
          • 6.9. ShowEditP
          • 6.10. ShowGroupByList
          • 6.11. ShowHandWrite
          • 6.12. ShowHomePage
          • 6.13. ShowImport
          • 6.14. ShowImportR
          • 6.15. ShowList
          • 6.16. ShowPivotGrid
          • 6.17. ShowPlayer
          • 6.18. ShowPopup
          • 6.19. ShowSPList
          • 6.20. ShowWebPage
        • 7. 全局类函数
          • 7.1. AppInfo
          • 7.2. CommonDM
          • 7.3. Company
          • 7.4. InvSystemParams
          • 7.5. SystemParams
          • 7.6. UserInfo
      • 自定程序
目录

自定函数

# FastERP 自定函数

# 1. 基类函数

  本章节的函数在使用时需以FThis.开头。

# 1.1. GetContextDataValue

function GetContextDataValue(QiData: Integer; QFieldName: string): Variant;
1

说明: 获取上文窗体数据集中的字段值。 返回值: 变体Variant类型。

  • GetContextDataValue函数语法中各部分说明
部分 说明
QiData 数据集索引
QFieldName 数据集字段名称
  • 示例
VAR
 vVariant:Variant; 
 vStr:string;
begin
   vVariant := FThis. GetContextDataValue(0, 'FBiller');
   vStr := VarToStr(vVariant);
   Showmessage('数据集字段值是:'+ vStr);
end;
1
2
3
4
5
6
7
8

# 1.2. IsExistsContext

function IsExistsContext: Boolean;
1

说明: 判断窗体是否有上文窗体。 返回值: 布尔Boolean类型。

  • 示例
VAR
 vBoolean:Boolean; 
begin
   vBoolean := FThis.IsExistsContext;
   IF vBoolean THEN
     Showmessage('存在上文窗体!');
end;
1
2
3
4
5
6
7

# 1.3. OperateLog

function OperateLog(opeType: string): Boolean;
1

说明: 登记操作日志。 返回值: 布尔Boolean类型。

  • OperateLog函数语法中各部分说明
部分 说明
opeType 动作类型

示例

begin
   if FThis.OperateLog('作废') then
   Showmessage('作废日志登记成功!');
end;
1
2
3
4

# 2. DM类函数

  本章节的函数在使用时需以DM.开头。

# 2.1. ExecProcedure

function ExecProcedure(const QstoreName: string; QParams: TArrayaString): Boolean;
1

说明: 执行存储过程。 返回值: 布尔Boolean类型。

  • ExecProcedure函数语法中各部分说明
部分 说明
QstoreName 存储过程名称
QParams 参数数组
  • 示例
var
  tempVar:TArrayaString;
begin
  //通过提示对话框询问用户
  if not dbfun.ShowConfirmDialogue('提示','确定删除资料吗?',295) then Abort();
    //设置tempVar数组长度
SetLength(tempVar,4);
//存储过程参数赋值
    tempVar[0] := FThis.dts0.FieldByName('FInterID').AsString;
    tempVar[1] := 'Delete';
    tempVar[2] := '';
    tempVar[3] := '';
//执行存储过程
DM.ExecProcedure('sp_Basic_Item',tempVar);
//刷新当前窗体数据
FThis.CurrID := FThis.FCurrID;
//关闭当前窗体
    FThis.Close;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 2.2. ExecProcedureR

function ExecProcedureR(const QstoreName: string; QParams: TArrayaString): String;
1

说明: 执行存储过程。 返回值: 字符串Srtring类型。

  • ExecProcedureR函数语法中各部分说明
部分 说明
QstoreName 存储过程名称
QParams 参数数组
  • 示例
var
  tempVar:TArrayaString;
  vResult:string;
begin
  //通过提示对话框询问用户
  if not dbfun.ShowConfirmDialogue('提示','确定删除资料吗?',295) then Abort();
    //设置tempVar数组长度
SetLength(tempVar,4);
//存储过程参数赋值,最后一个参数值为返回值
    tempVar[0] := FThis.dts0.FieldByName('FInterID').AsString;
    tempVar[1] := 'Delete';
    tempVar[2] := '';
    tempVar[3] := '';
//执行存储过程
vResult := DM.ExecProcedureR('sp_Basic_Item',tempVar);
if vResult <> ''then
begin
    //显示返回值内容
	Showmessage(vResult);
end; 
//刷新当前窗体数据
FThis.CurrID := FThis.FCurrID;
//关闭当前窗体
    FThis.Close;
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

# 2.3. GetCachData

function GetCachData(QName: string): TSQModuleDataset;
1

说明: 获取缓存数据集。 返回值: TSQModuleDataset数据集类型。

  • GetCachData函数语法中各部分说明
部分 说明
QName 缓存数据集索引
  • 示例
VAR
 vDataSet: TSQModuleDataset;
begin
   //根据缓存数据集索引名获取缓存数据集
   vDataSet := DM.GetCachData('付款方式');
   //判断获取到的缓存数据集是否为空
   if vDataSet <> nil then
  	 Showmessage('获取付款方式缓存数据集成功!');
end;
1
2
3
4
5
6
7
8
9

# 2.4. GetUserDefault

function GetUserDefault(QDefaultName: string): String;
1

说明: 获取用户默认值。 返回值: 字符 String类型。

  • GetUserDefault函数语法中各部分说明
部分 说明
QDefaultName 默认值索引名称
  • 示例
VAR
 vStr: String;
begin
   //根据默认值索引名称获取默认值
   vStr:= DM.GetUserDefault ('白坯仓库');
   //判断获取到的白坯仓库默认值是否为空
   if vStr <> '' then
  	 Showmessage('获取到的白坯仓库默认值是:'+ vStr);
end;
1
2
3
4
5
6
7
8
9

# 2.5. OpenData

function OpenData(QDataSet: TRFDataSet): Boolean;
1

说明: 打开数据集。 返回值: 布尔Boolean类型。

  • OpenData函数语法中各部分说明
部分 说明
QDataSet TRFDataSet数据集对象
  • 示例
var
 vDataSet:TRFDataSet;
begin
    //创建数据集对象
    DM.CreateSQDataSet(vDataSet ,nil);
    Try
      //对数据集SQL赋值
    vDataSet.SQL.Text := 'SELECT * FROM Baisc_Whs';
    //打开数据集,以下二种方法都可行
    //打开方式1
    vDataSet.Open;
    //打开方式2
    DM.OpenData(vDataSet);
    If vDataSet.RecordCount > 0 then
    Begin
	    Showmessage('数据集不为空!');
    End;
    Finally
      vDataSet.Free;
End;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 2.6. OpenData

function OpenData(QDataSet: TSQModuleDataset): Boolean;
1

说明: 打开数据集。 返回值: 布尔Boolean类型。

  • OpenData函数语法中各部分说明
部分 说明
QDataSet TSQModuleDataset数据集对象
  • 示例
var
 vDataSet: TSQModuleDataset;
begin
    //创建数据集对象
    DM.CreateSQModuelDataSet(vDataSet ,nil);
    Try
      //对数据集SQL赋值
    vDataSet.SQL.Text := 'SELECT * FROM Baisc_Whs';
    //打开数据集,以下二种方法都可行
    //打开方式1
    vDataSet.Open;
    //打开方式2
    DM.OpenData(vDataSet);
    If vDataSet.RecordCount >0then
    Begin
	    Showmessage('数据集不为空!');
    End;
    Finally
      vDataSet.Free;
End;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 2.7. OpenDatas

function OpenDatas(QDataSetList: TList<TRFDataSet>): Boolean;
1

说明: 批量打开数据集。 返回值: 布尔Boolean类型。

  • OpenDatas函数语法中各部分说明
部分 说明
QDataSetList 数据集对象集合
  • 示例

脚本中暂不支持TList<>对象。


# 2.8. SaveData

function SaveData(QDataSet: TRFDataSet): Boolean; overload;
1

说明: 数据集提交。 返回值: 布尔Boolean类型。

  • SaveData函数语法中各部分说明
部分 说明
QDataSet TSQModuleDataset数据集对象
  • 示例
var
 vDataSet: TRFDataSet;
begin
    //创建数据集对象
    DM.CreateSQDataSet(vDataSet ,nil);
Try
      //对数据集SQL赋值
    vDataSet.SQL.Text := 'SELECT TOP 0 * FROM Baisc_Whs';
    //打开数据集
    vDataSet.Open;
    //新增一条数据
    vDataSet.Append;
    vDataSet.FieldByName('FInterID').asInteger := DBFun.GetNodeID;
    vDataSet.FieldByName('FWhsCode').asString:= '0101';
    vDataSet.FieldByName('FWhsName').asString := '白坯仓库';
    vDataSet.Post;
    If DM.SaveData(vDataSet) then
    Begin
	    Showmessage('数据提交成功!');
    End;
Finally
  vDataSet.Free;
End;
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

# 2.9. SaveData

function SaveData(QDataSet: TSQModuleDataset): Boolean; overload;
1

说明: 数据集提交。 返回值: 布尔Boolean类型。

  • SaveData函数语法中各部分说明
部分 说明
QDataSet TSQModuleDataset数据集对象
  • 示例
var
 vDataSet: TSQModuleDataset;
begin
    //创建数据集对象
    DM.CreateSQDataSet(vDataSet ,nil);
    Try
      //对数据集SQL赋值
    vDataSet.SQL.Text := 'SELECT TOP 0 * FROM Baisc_Whs';
    //打开数据集
    vDataSet.Open;
    //新增一条数据
    vDataSet.Append;
    vDataSet.FieldByName('FInterID').asInteger := DBFun.GetNodeID;
    vDataSet.FieldByName('FWhsCode').asString:= '0101';
    vDataSet.FieldByName('FWhsName').asString := '白坯仓库';
    vDataSet.Post;
    If DM.SaveData(vDataSet) then
    Begin
	    Showmessage('数据提交成功!');
    End;
    Finally
      vDataSet.Free;
End;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 2.10. SaveDatas

function SaveDatas(QDataSetList: TList<TRFDataSet>): Boolean;
1

说明: 批量提交数据集。 返回值: 布尔Boolean类型。

  • SaveDatas函数语法中各部分说明
部分 说明
QDataSetList 数据集对象集合
  • 示例

脚本中暂不支持TList<>对象。


# 2.11. SendWsMsg

function SendWsMsg(const acusername, acname, accom, atag, acevent: string;acparams:TStringlist=nil): Boolean;
1

说明:向指定的用户登录的Bean窗口发送WebSocket信息。 返回值:Boolean,用于反馈是否发送成功。

  • SendWsMsg 函数语法中各部分说明
部分 说明
acusername 登录的用户名称
acname 动作名称,指定为 callback
accom 调用的Bean模块的编号
atag 绑定的控件的Tag编号,只允许输入整数类型
acevent 调用的事件名称
acparams 参数信息,以键值对的方式进行
  • 示例
//PasScript
var 
  l: TStringList;
begin
  l := TStringList.Create();
  l.Values['text'] := 'Hello WebSocket Test';
  if (DM.SendWsMsg('demo','callback','bean-001','updatememo','0',l))  then
  begin
    ShowMessage('Send Success!');  
  end;
  l.Free;
end;
1
2
3
4
5
6
7
8
9
10
11
12

# 2.12. SendWsMsgBySid

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

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

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

# 2.13. SendWsMsgByStr

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

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

  • SendWsMsgByStr 函数语法中各部分说明
部分 说明
msg 要发送的消息内容,仅支持传输指定的json
  • 示例
//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 + '"' +
      	'}' +
    	']' +
     '}' +
  '}';
  DM.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

# 3. DBFun类函数

  本章节的函数在使用时需以DBFun.开头。

# 3.1. CheckFieldEmpty

function CheckFieldEmpty(QField: TField): Boolean;
1

说明: 判断字段是否为空。 返回值: 布尔Boolean类型。

  • CheckFieldEmpty函数语法中各部分说明
部分 说明
QField 数据集字段对象
  • 示例
If DBFun.CheckFieldEmpty (FThis.dts0.FieldByName('FBiller')) then
Begin
  Showmessage('数据集字段FBiller 内容为空。');
End;
1
2
3
4

# 3.2. CheckUser

function CheckUser(QUserName: string): Boolean;
1

说明: 校验用户合法性 返回值: 布尔Boolean类型。

  • CheckUser函数语法中各部分说明
部分 说明
QUserName 用户名称
  • 示例
Begin
//校验客户编号是否存在
If DBFun.CheckUser ('刘德华') then
Begin
	Showmessage(刘德华用户未授权!');
End;
end;
1
2
3
4
5
6
7

# 3.3. DataSetIsEdit

function DataSetIsEdit(const QDataSet: TRFDataSet): Boolean;
1

说明: 判断数据集是否处于编辑状态。 返回值: 布尔Boolean类型。

  • DataSetIsEdit函数语法中各部分说明
部分 说明
QDataSet 数据集对象
  • 示例
If DBFun.DataSetIsEdit(FThis.dts0) then
Begin
  Showmessage('数据集dts0处理编辑状态。');
End;
1
2
3
4

# 3.4. DataSetTableCompute

function DataSetTableCompute(ADataSet: TSQModuleDataSet; AOperator, AFieldName: String; AFilter: String = ''): Variant;
1

说明: 数据集字段统计 返回值: 变体Variant类型

  • DataSetTableCompute函数语法中各部分说明
部分 说明
ADataSet 指定一个需要统计的数据集对象
AOperator 操作符(最大值MAX、最小值MIN、统计COUNT、合计SUM、平均值AVG)
AFieldName 指定一个需要统计的字段名称
AFilter 数据集过滤条件内容
  • 示例
    //统计单据明细对应的码单明细
var
      v: Variant;
begin
    //判断窗体是否处于字段改变状态
     if FThis.FFieldChanging then exit; 
     try
    //设置窗体处于字段改变状态
     FThis.FFieldChanging := true;
    //判断数据集dts2是否为空
 if not FThis.dts2.IsEmpty then
 begin
//初始化变量v
 v := null;
 FThis.dts1.First;
 while Not FThis.dts1.Eof do
 begin
   if FThis.dts2.RecordCount > 0 then
   begin
FThis.dts1.Edit;
//统计dts2数据集被选中的FAuxQty字段的汇总数
v := DBFUN.DataSetTableCompute(FThis.dts2,'SUM','FAuxQty',
'FID='+FThis.dts1FID.AsString+' and FSelected = 1');
DBFUN.SetFieldVariant(FThis.dts1FAuxQty,v);

//统计dts2数据集被选中的记录数
v := DBFUN.DataSetTableCompute(FThis.dts2,'Count','1',
'FID='+FThis.dts1FID.AsString+' and FSelected = 1');
    DBFUN.SetFieldValue(FThis.dts1FQtyPiece,v);
   end;
    FThis.dts1.Next;
 end;
 end;
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
32
33
34

# 3.5. FileDownload

function FileDownload(const ARemoteFileName, ALocalNewFileName: string): Boolean;
1

说明: 文件下载 返回值: 布尔 Boolean 类型

  • FileDownload函数语法中各部分说明
部分 说明
ARemoteFileName 远程文件名
ALocalNewFileName 本地文件名
  • 示例
//从服务器Downloads目录下载1.txt文件到本地
begin
  DBFUN.FileDownload('Downloads/1.txt','1.txt');
end;
1
2
3
4

# 3.6. FileUpload

function FileUpload(const ALocalFileName: string; const ARemoteFilePath: string = ''; const ARemoteFileName: string = ''): Boolean;
1

说明: 文件上传 返回值: 布尔 Boolean 类型

  • FileUpload函数语法中各部分说明
部分 说明
ALocalFileName 本地文件名
ARemoteFilePath 远程目录
ARemoteFileName 远程文件名
  • 示例
//将exe根目录的1.txt文件上传至服务器Downloads目录下,上传可重新指定文件名
begin
  DBFUN.UpDownload('1.txt','Downloads','New1.txt');
end;
1
2
3
4

# 3.7. FocusedRecordGetValues*

function FocusedRecordGetValues(AFocusedRecord: TcxCustomGridRecord; QColumn: TcxGridDBColumn): 
Variant; overload;;   
function FocusedRecordGetValues(AFocusedRecord: TcxCustomGridRecord; QColumn: TcxGridDBBandedColumn): 
Variant; overload;
1
2
3
4

说明: 获取表格记录中指定单元格中的值 返回值: 变体 Variant 类型

  • FocusedRecordGetValues函数语法中各部分说明
部分 说明
AFocusedRecord 表格记录对象
QColumn 表格记录中指定列对象
  • 示例
procedure TMyHandler.tbGriddts0OnCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; 
AViewInfo: TcxGridTableDataCellViewInfo; Var ADone: Boolean);
var
 s:string;
begin
 //获取表格中tbGriddts0FBillNo列的值
 s:= DBFUN.FocusedRecordGetValues(AViewInfo.GridRecord,FThis.tbGriddts0FBillNo);
end;
1
2
3
4
5
6
7
8

# 3.8. GetBatchNo

function GetBatchNo(QBillID: string): string;
1

说明: 获取批号流水号 返回值: 字符String类型。

  • GetBatchNo函数语法中各部分说明
部分 说明
QBillID 流水编号
  • 示例
//单据保存时,生成单据明细的批号信息
procedure TMyHandler.tbSaveOnClick(Sender: TObject);
begin
 //判断数据集dts1是否为空
 if FThis.dts1.IsEmpty then exit;
 FThis.dts1.First;
 FThis.dts1.DisableControls;
 while not FThis.dts1.Eof do
 begin
   FThis.dts1.Edit;
   if FThis.dts1FBatchNo.AsString = '' then
      //生成批号
      FThis.dts1FBatchNo.AsString := DBFUN.GetBatchNo('17020004');
   FThis.dts1.Next;
 end;
 FThis.dts1.EnableControls;
 FThis.dts1.ReadOnly := false ;
 //保存单据
 FThis.DoSave;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 3.9. GetBillNo

function GetBillNo(QBillID: string; QDate: TDateTime; QPreview: Boolean): string;
1

说明: 获取单据流水号 返回值: 字符String类型。

  • GetBillNo函数语法中各部分说明
部分 说明
QBillID 单据流水号规则编号
QDate 日期
QPreview 是否预览模式
  • 示例
//数据集dts1新增记录时,生成流水号
// 参数QPreview为true时,流水号生成只是预览模式,还未正式产生
procedure TMyHandler.dts1OnNewRecord(DataSet: TDataSet);
begin
   FThis.dts1.Edit;
FThis.dts1FBatchNo.AsString := DBFUN.GetBillNo ('17020004',Now(),false);
end;
1
2
3
4
5
6
7

# 3.10. GetColorNo

function GetColorNo(QBillID: string; QDate: TDateTime; QPreview: Boolean): string;
1

说明: 获取色号(印染行业专用) 返回值: 字符 String 类型

  • GetColorNo函数语法中各部分说明
部分 说明
QBillID 色号流水规则编号
QDate 日期
QPreview 是否预览模式
  • 示例
//数据集dts1新增记录时,生成色号
//参数QPreview为true时,色号生成只是预览模式,还未正式产生
procedure TMyHandler.dts1OnNewRecord(DataSet: TDataSet);
begin
   FThis.dts1.Edit;
FThis.dts1FColorNo.AsString := DBFUN.GetColorNo('9900001',Now(),false);
end;
1
2
3
4
5
6
7

# 3.11. GetFirstDayofMonth

function GetFirstDayofMonth(const DT: TDateTime): TDateTime;
1

说明: 获取指定日期所在月份的第一天 返回值: 日期TDateTime类型

  • GetFirstDayofMonth函数语法中各部分说明
部分 说明
DT 指定的一个日期类型
  • 示例
Var
vMonthBeginDay:TDateTime;
Begin
   vMonthBeginDay  := DBFun.GetFirstDayofMonth('2019-07-10');
end;
1
2
3
4
5

运行结果: 2019-07-01


# 3.12. GetLastDayofMonth

function GetLastDayofMonth(const DT: TDateTime): TDateTime;
1

说明: 获取指定日期所在月份的第后一天 返回值: 日期TDateTime类型

  • GetLastDayofMonth函数语法中各部分说明
部分 说明
DT 指定的一个日期类型
  • 示例
Var
vMonthEndDay:TDateTime;
Begin
   vMonthEndDay  := DBFun.GetFirstDayofMonth('2019-07-10');
end;
1
2
3
4
5

运行结果: 2019-07-31


# 3.13. GetListBySQL

function GetListBySQL(QSQL: string): TStringList;
1

说明: 根据SQL获取字符串列表 返回值: 字符串列表TStringList

  • GetListBySQL函数语法中各部分说明
部分 说明
QSQL 指定一个SQL内容
  • 示例
Var
  vStrList:TStringList;
begin
  //将Basic_Process表里的FProcessName内容组成一个字符串列表
  vStrList:= DBFun. GetListBySQL ('Select FProcessName From Basic_Process');
end;
1
2
3
4
5
6

# 3.14. GetNodeID

function GetNodeID(QCount: Integer = 1; QNoRecord: Boolean = False): Integer;
1

说明: 获取唯一ID 返回值: 整数Integer 类型

  • GetNodeID函数语法中各部分说明
部分 说明
QCount 取多少个ID(不能超过999)
QNoRecord 是否返回结果集
  • 示例
//数据集dts1新增记录时,生成主键唯一ID
procedure TMyHandler.dts1OnNewRecord(DataSet: TDataSet);
begin
   FThis.dts1.Edit;
FThis.dts1FInterID.asInteger:= DBFUN.GetNodeID;
end;
1
2
3
4
5
6

# 3.15. GetNow

Function GetNow(byServer: Boolean; QGetType, TimeForamt: string): Variant;
1

说明: 获取日期时间 返回值: 变体Variant 类型

  • GetNow函数语法中各部分说明
部分 说明
byServer 是否按服务器时间
QGetType 获取类型(NEW,SQL)
TimeForamt 日期时间格式 yyyy-mm-dd
  • 示例
//数据集dts1新增记录时,生成记录创建时间
procedure TMyHandler.dts1OnNewRecord(DataSet: TDataSet);
begin
   FThis.dts1.Edit;
   //获取本地日期时间
FThis.dts1FCreateDate.asDateTime := DBFUN.GetNow;
   //获取服务器日期时间
FThis.dts1FCreateDate.asDateTime := DBFUN.GetNow(true);
   //获取服务器日期
FThis.dts1FCreateDate.asDateTime := DBFUN.GetNow(true, 'NEW', 'yyyy-mm-dd');
end;
1
2
3
4
5
6
7
8
9
10
11

# 3.16. GetNumber

function GetNumber(S: string): string;
1

说明: 截取字符串中的数字 返回值: 字符String类型

  • GetNumber函数语法中各部分说明
部分 说明
S 指定一个包含数字的字符串
  • 示例
var
v:string;
begin
v:= DM.GetNumber ('12A56B.A11');
//显示返回的SQL内容
Showmessage(v);
end;
1
2
3
4
5
6
7

运行结果: 125611


# 3.17. GetSelectedDataCount

function GetSelectedDataCount(QDataSet: TRFDataSet; FSelectField: string = 'FSelected'): Integer;
1

说明: 返回值:

  • GetSelectedDataCount函数语法中各部分说明
部分 说明
QDataSet 指定的一个数据集类型
FSelectField 指定的数据集中作为标记的字段名称,默认字段名称为FSelected,也可自定
  • 示例
Var
iCount:Integer;
Begin
   //获取数据集dts1中,FSelected字段选中状态的记录个数
   iCount:= DBFun.GetSelectedDataCount (FThis.dts1);
end;
1
2
3
4
5
6

# 3.18. GetSelectedValues

function GetSelectedValues(QDataSet: TRFDataSet; QKeyField: string; QSelectField:string = 'FSelected'):string;
1

说明: 获取 返回值: 字符string类型。

  • GetSelectedValues程序语法中各部分说明
部分 说明
QDataSet 指定一个需要操作的数据集对象
QKeyField 主键字段名称
QSelectField 表示状态的字段名称
  • 示例
var
  vStr: String;
begin
    vStr := DBFun.GetSelectedValues(FThis.dts0, 'FInterID',vInterIDList, 'FSelected');
end;
1
2
3
4
5

# 3.19. GetSQLValue

function GetSQLValue (const QSQL: string): Variant;
1

说明: 获取SQL语句值。 返回值: 变体Variant类型。

  • GetSQLValue函数语法中各部分说明
部分 说明
QSQL SQL语句字符串
  • 示例
var
  vVariant
vSQL:string;
begin
//执行函数
vVariant:= DBFun.GetSQLValue ('SELECT FWhsName FROM Basic_Whs WHERE FInterID =  1');
if VarToStr(vVariant) = '白坯仓库' then
begin
    //显示返回值内容
	Showmessage('取值正确!');
end; 
end;
1
2
3
4
5
6
7
8
9
10
11
12

# 3.20. GetStrByList

function GetStrByList(QStr: TStrings; QQuotedStr: Boolean = True): String;
1

说明: 根据字符串列表组装成格式化的字符串 返回值: 字符String类型

  • GetStrByList函数语法中各部分说明
部分 说明
QStr 指一定个字符串列表,包含需要组装的内容
QQuotedStr 是否以字符类型组装
  • 示例1
Var
  vStrList:TStringList;
  vStr:string;
begin
  vStrList := TStringList.Create;
  try
  	vStrList.CommaText:= '1902001,156987,11258';
    vStr := DBFun.GetStrByList(vStrList);
  finally
    vStrList.free;
end;
end;
1
2
3
4
5
6
7
8
9
10
11
12

运行结果: '1902001', '156987', '11258'

  • 示例2
Var
  vStrList:TStringList;
  vStr:string;
begin
  vStrList := TStringList.Create;
  try
  	vStrList.CommaText:= '1902001,156987,11258';
    vStr := DBFun.GetStrByList(vStrList,false);
  finally
    vStrList.free;
end;
end;
1
2
3
4
5
6
7
8
9
10
11
12

运行结果: 1902001, 156987, 11258


# 3.21. GetStrBySQL

function GetStrBySQL(QSQL: string): String;
1

说明: 根据SQL组装字符串 返回值: 字符String类型

  • GetStrBySQL函数语法中各部分说明
部分 说明
QSQL 指定一个SQL内容
  • 示例
Var
  vStr:String;
begin
  //将Basic_Process表里的FProcessName内容组成一个字符串
  vStr := DBFun.GetStrBySQL('Select FProcessName From Basic_Process');
end;
1
2
3
4
5
6

运行结果: 翻布;配桶;染色;定型


# 3.22. GetTransSQL

function GetTransSQL(ASQLCode: string): string;
1

说明: 根据SQL配置编号获取SQL语句内容 返回值:

  • GetTransSQL函数语法中各部分说明
部分 说明
ASQLCode 指定一个SQL配置编号
  • 示例
var
vSQL:string;
begin
vSQL:= DBFun.GetTransSQL ('SQL_Cust');
//显示返回的SQL内容
Showmessage(vSQL);
end;
1
2
3
4
5
6
7

# 3.23. GetJSONObject

function GetJSONObject(const QJSONObject: TJSONValue; const QPath:String):TJSONObject;
1

说明: 获取JSON对象中指定的嵌套对象。 返回值: TJSONObject类型。

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

  假设需要对以下JSON进行解析。

{
    "status": "OK",
    "Language":{
        "DefaultLanguage": 1
    }
}
1
2
3
4
5
6
//PasScript
Var 
  J:TJSONObject;
  s: String;
begin
  J:=TJSONObject.Create;
  s:= '{"status": "OK","Language":{"DefaultLanguage": 1}}';
  Try
     j := TJSONObject(DBFun.ParseJSONValue(s));
     j := DBFun.GetJSONObject(j,'Language');
     ShowMessage(DBFun.GetJSONNumber(j,'DefaultLanguage'));
     //上述两句程序也可改写为
     //ShowMessage(DBFun.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.24. GetJSONArray

function GetJSONArray(const QJSONObject: TJSONValue; 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
//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(DBFun.ParseJSONValue(s));
     A := DBFun.GetJSONArray(j,'Language.options');
     J := TJSONObject(A.Items[1]);
     ShowMessage(DBFun.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.25. GetJSONString

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

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

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

  假设需要对以下JSON进行解析。

{
    "status": "OK",
    "Language":{
        "DefaultLanguage": 1
    }
}
1
2
3
4
5
6
//PasScript
Var 
  J:TJSONObject;
  s: String;
begin
  J:=TJSONObject.Create;
  s:= '{"status": "OK","Language":{"DefaultLanguage": 1}}';
  Try
     j := TJSONObject(DBFun.ParseJSONValue(s));
     ShowMessage(DBFun.GetJSONString(j,'status'));
  Finally
    j.Free;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14

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

# 3.26. GetJSONNumber

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

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

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

  假设需要对以下JSON进行解析。

{
    "status": "OK",
    "Language":{
        "DefaultLanguage": 1
    }
}
1
2
3
4
5
6
//PasScript
Var 
  J:TJSONObject;
  s: String;
begin
  J:=TJSONObject.Create;
  s:= '{"status": "OK","Language":{"DefaultLanguage": 1}}';
  Try
     j := TJSONObject(DBFun.ParseJSONValue(s));
     j := DBFun.GetJSONObject(j,'Language');
     ShowMessage(DBFun.GetJSONNumber(j,'DefaultLanguage'));
     //上述两句程序也可改写为
     //ShowMessage(DBFun.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.27. GetJSONInteger

function GetJSONInteger(const QJSONObject: TJSONValue; const QPath:String):Integer;
1

说明: 获取JSON对象中指定的键值中的整数数值,并以整数的形式返回。 返回值: Integer类型。

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

  假设需要对以下JSON进行解析。

{
    "status": "OK",
    "Language":{
        "DefaultLanguage": 1
    }
}
1
2
3
4
5
6
//PasScript
Var 
  J:TJSONObject;
  s: String;
  i: Integer;
begin
  J:=TJSONObject.Create;
  s:= '{"status": "OK","Language":{"DefaultLanguage": 1}}';
  Try
     j := TJSONObject(DBFun.ParseJSONValue(s));
     i := DBFun.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.28. GetJSONFloat

function GetJSONFloat(const QJSONObject: TJSONValue; 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
//PasScript
Var 
  J:TJSONObject;
  s: String;
  i: Double;
begin
  J:=TJSONObject.Create;
  s:= '{"status": "OK","Language":{"DefaultLanguage": 1.1}}';
  Try
     j := TJSONObject(DBFun.ParseJSONValue(s));
     i := DBFun.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.29. GetJSONBool

function GetJSONBool(const QJSONObject: TJSONValue; const QPath:String):Boolean;
1

说明: 获取JSON对象中指定的键值中的布尔数值,并以布尔值的形式返回。 返回值: Boolean类型。

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

  假设需要对以下JSON进行解析。

{
    "status": true,
    "Language":{
        "DefaultLanguage": 1
    }
}
1
2
3
4
5
6
//PasScript
Var 
  J:TJSONObject;
  s: String;
begin
  J:=TJSONObject.Create;
  s:= '{"status": true,"Language":{"DefaultLanguage": 1}}';
  Try
     j := TJSONObject(DBFun.ParseJSONValue(s));
     if (DBFun.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.30. GetJSONValue

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

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

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

# 3.31. 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:TJSONValue;
  A:TJSONArray;
  s1,s2: String;
begin
  s1:= '[{"status":"ok"}]';
  s2:= '{"status":"no"}';
  A := TJSONArray(DBFun.ParseJSONValue(s1));
  J := DBFun.ParseJSONValue(s2);
  A := DBFun.JSONArray_AddJSONObject(A,J);
  ShowMessage(A.ToString);
end;
1
2
3
4
5
6
7
8
9
10
11
12

  执行以上程序,输出的结果为 [{"status","ok"},{"status":"no"}]

# 3.32. 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:TJSONValue;
  J2:TJSONValue;
  A: TJSONValue;
  s1,s2: String;
begin
  s1:= '{"status":"ok"}';
  s2:= '[{"status":"no"}]';
  J1 := DBfun.ParseJSONValue(s1);
  A := DBfun.ParseJSONValue(s2);
  J2 := DBfun.JSONObject_AddJSONArray(TJSONObject(J1),'array',A);
  ShowMessage(j2.ToString);
end;
1
2
3
4
5
6
7
8
9
10
11
12
13

  执行以上程序,输出的结果为 [{"status","ok"},"array":[{"status":"no"}]}

# 3.33. 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对象文本
  • 示例
```JSON
{
    "status": true,
    "Language":{
        "DefaultLanguage": 1
    }
}
1
2
3
4
5
6
7
//PasScript
Var 
  s: String;
begin
  s:= '{"status": "OK","Language":{"DefaultLanguage": 1}}';
  ShowMessage(DBFun.JSONParse('GetJSONString','status',s));
end;
1
2
3
4
5
6
7

# 3.34. ParseJSONValue

function ParseJSONValue(QJson: string): TJSONValue;
1

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

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

# 3.35. HTTPDecode

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

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

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

# 3.36. HTTPEncode

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

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

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

# 3.37. InputBoxDate

function InputBoxDate(ATitle, ACaption: String; var AResult: TDateTime): Boolean;

1
2

说明: 日期输入对话框 返回值: 布尔Boolean类型

  • InputBoxDate函数语法中各部分说明
部分 说明
ATitle 对话框标题
ACaption 输入值说明
AResult 输入值变量
  • 示例
var
  vDate:TDateTime;
begin
  vDate := Now();
  DBFun.InputBoxDate ('请输入日期... ', vDate);
end;
1
2
3
4
5
6

运行结果 请输入日期


# 3.38. InputBoxDateTime

function InputBoxDateTime(ATitle, ACaption: String; var AResult: TDateTime): Boolean;
1

说明: 日期时间输入对话框 返回值: 布尔Boolean类型

  • InputBoxDateTime函数语法中各部分说明
部分 说明
ATitle 对话框标题
ACaption 输入值说明
AResult 输入值变量
  • 示例
var
  vDate:TDateTime;
begin
  vDate := Now();
  DBFun.InputBoxDateTime ('请输入日期时间... ', vDate);
end;
1
2
3
4
5
6

运行结果 输入日期时间


# 3.39. InputBoxFloat

function InputBoxFloat(ATitle, ACaption: String; var AResult: Double): Boolean;
1

说明: 浮点数输入对话框 返回值: 布尔Boolean类型

  • InputBoxFloat函数语法中各部分说明
部分 说明
ATitle 对话框标题
AResult 输入值变量
  • 示例
var
  vValue:double;
begin
  vValue := 123.25;
  DBFun.InputBoxFloat ('请输入浮点数... ', vValue);
DBFun.InputBoxInt ('请输入整数... ', vValue);
end;
1
2
3
4
5
6
7

运行结果 浮点数输入


# 3.40. InputBoxInt

function InputBoxInt(ATitle, ACaption: String; var AResult: Integer): Boolean;
1

说明: 整数输入对话框 返回值: 布尔Boolean类型

  • InputBoxInt函数语法中各部分说明
部分 说明
ATitle 对话框标题
ACaption 输入值说明
AResult 输入值变量
  • 示例
var
  vValue:Integer;
begin
  vValue := 123;
  DBFun.InputBoxInt ('请输入整数... ', vValue);
end;
1
2
3
4
5
6

运行结果 请输入整数


# 3.41. InputBoxMemo

function InputBoxMemo(ATitle, ACaption: String; var AResult: string): Boolean;
1

说明: 大文本输入对话框 返回值: 布尔Boolean类型

  • InputBoxMemo函数语法中各部分说明
部分 说明
ATitle 对话框标题
AResult 输入值变量
  • 示例
var
  vStr:string;
begin
  vStr := '我是中国人,我骄傲,我自豪!';
  DBFun.InputBoxMemo ('请输入内容...',vStr);
end;
1
2
3
4
5
6

运行结果 大文本输入对话框


# 3.42. InputBoxStr

function InputBoxStr(ATitle, ACaption: String; var AResult: string): Boolean;
1

说明: 字符串输入对话框 返回值: 布尔Boolean类型

  • InputBoxStr函数语法中各部分说明
部分 说明
ATitle 对话框标题
AResult 输入值变量
  • 示例
var
  vStr:string;
begin
  vStr := '您好!';
  DBFun.InputBoxStr('请输入字符串...',vStr);
end;
1
2
3
4
5
6

运行结果 字符串输入对话框


# 3.43. IsDBRep

function IsDBRep(QSQL: string; QKeyName: string; QKeyValue: string; QDBName: String = ''): Boolean;
1

说明: 校验重复值。 返回值: 布尔Boolean类型。

  • IsDBRep函数语法中各部分说明
部分 说明
QSQL SQL语句字符串
QKeyName 校验字段名称
QKeyValue 校验值
QDBName 帐套名,可指定其它帐套
  • 示例
Var
 vSQL:string;
 vKeyName:string;
 vKeyValue:string;
Begin
    //校验客户编号是否存在
    vSQL:= 'SELECT FInterID,FCustCode,FCustName FROM Basic_Cust';
    vKeyName:= 'FCustCode';
    vKeyValue:= '01001';
	If DBFun.IsDBRep (vSQL, vKeyName, vKeyValue) then
    Begin
    	Showmessage('客户编号 '+ vKeyValue +' 已经存在!');
    End;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 3.44. NextMonth

Function NextMonth(ADateTime: Variant): string;
1

说明: 获取指定日期下一个月第一天 返回值: 字符string类型

  • NextMonth函数语法中各部分说明
部分 说明
ADateTime 指定的一个变体类型
  • 示例
Var
vNextMonth:String;
Begin
   vNextMonth:= DBFun.NextMonth ('2019-07-10');
end;
1
2
3
4
5

运行结果: 2019-08-01


# 3.45. OperateLog

function OperateLog(opeType: string;QNote: string=''): Boolean;
1

说明: 记录操作日志 返回值: 布尔Boolean类型

  • 函数语法中各部分说明
部分 说明
opeType 操作类型
QNote 操作具体内容
  • 示例
procedure TMyHandler.tbDelOnClick(Sender: TObject);
var
  tempVar:TArrayaString;
vResult:string;
begin
  //通过提示对话框询问用户
  if not dbfun.ShowConfirmDialogue('提示','确定删除资料吗?',295) then Abort();
    //设置tempVar数组长度
SetLength(tempVar,4);
//存储过程参数赋值,最后一个参数值为返回值
    tempVar[0] := FThis.dts0.FieldByName('FInterID').AsString;
    tempVar[1] := 'Delete';
    tempVar[2] := '';
tempVar[3] := '';
//执行存储过程
vResult := DM.ExecProcedureR('sp_Basic_Item',tempVar);
if vResult ='OK'then
begin
    //登记操作日志
    DBFun.OperateLog('删除', FThis.dts0.FieldByName('FItemName').AsString);
	Showmessage('删除成功!');
end; 
//刷新当前窗体数据
FThis.CurrID := FThis.FCurrID;
//关闭当前窗体
    FThis.Close;
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

# 3.46. ReturnValue

function ReturnValue(sSQL: String; iReturnType: Integer = 0): Variant;
1

说明: 根据SQL取值 返回值: 变体Variant类型

  • ReturnValue函数语法中各部分说明
部分 说明
sSQL 指定一个SQL内容
iReturnType iReturnType返回值类型 0:字符;1:整数;2:浮点;3:布尔;4日期
  • 示例
var
vSQL:string;
v:variant;
begin
    //获取字符内容
v:= DM.ReturnValue (vSQL);
    //获取整数内容
v:= DM.ReturnValue (vSQL,1);
    //获浮点内容
v:= DM.ReturnValue (vSQL,2);
end;
1
2
3
4
5
6
7
8
9
10
11

# 3.47. RoundToCH

function RoundToCH(const AValue: Double; const ADigit: Integer): Double;
1

说明: 四舍五入函数 返回值: 双精度Double类型

  • 函数语法中各部分说明
部分 说明
AValue 指定一个Double类型的数值
ADigit 指定一个小数点保留位数
  • 示例
Var
 vValue: Double;
Begin
   vValue:= DBFun.RoundToCH (12.357,2);
end;
1
2
3
4
5

运行结果: 12.36


# 3.48. SelectedRecordCount

function SelectedRecordCount(ADBGridView: TcxGridDBTableView): Integer;
1

说明: 获取cxGrid表格被选中的记录数 返回值: 整数Integer类型

  • SelectedRecordCount函数语法中各部分说明
部分 说明
ADBGridView 指定一个cxGrid数据表格
  • 示例
Var
  iSelectedCount: Integer;
begin
  //获取表格tbGriddts0选中的记录数
  iSelectedCount := DBFUN.SelectedRecordCount(FThis.tbGriddts0);
  if iSelectedCount = 0 then
  begin
    DBFun.ShowInformationDialogue('提示', '请先选择一条记录!',295);
    Exit;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11

# 3.49. SelectedRecordValue

function SelectedRecordValue(ADBGridView: TcxGridDBTableView; ACount, AKeyFieldIdx: Integer): Variant;
1

说明: 根据cxGrid表格列坐标获取列值 返回值: 变体Variant类型

  • SelectedRecordValue函数语法中各部分说明
部分 说明
ADBGridView 指定一个cxGrid数据表格
ACount 列行号
AKeyFieldIdx 列索引号
  • 示例
//这是一个在表格中批量打印的例子
procedure TMyHandler.tbPrintOnClick(Sender: TObject);
var
vBaseEdit:TBaseEdit;
  iSelectedCount, KeyFieldIdx: Integer;
  QKeyField: string;
  vDataID: Variant;
  i,j:integer;
  vSQL:string;
  vProductWeightOflength:string;
begin
  //获取表格tbGriddts0选中的记录数
  iSelectedCount := DBFUN.SelectedRecordCount(FThis.tbGriddts0);
  if iSelectedCount = 0 then
  begin
    DBFun.ShowInformationDialogue('提示', '请先选择一条记录!',295);
    Exit;
  end;
    //创建窗体
    vBaseEdit := ShowEdit('ManMoEdit','');
QKeyField := 'FInterID';
//获取关键字段的索引号
    KeyFieldIdx := FThis.tbGriddts0.GetColumnByFieldName(QKeyField).Index;
    for i := 0 to iSelectedCount - 1 do
begin
  //获取指定列的值
      vDataID := DBFUN.SelectedRecordValue(FThis.tbGriddts0,i,KeyFieldIdx);
      //打开窗体数据
      vBaseEdit.CurrID := vDataID;
      //调用窗体打印事件
      vBaseEdit.DoPrint;
end;
//释放窗体
    vBaseEdit.free;
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
32
33
34
35

# 3.50. ShowConfirmDialogue

function ShowConfirmDialogue(const Caption, Text: string; iWidth: Integer = 295): Boolean; overload;
1

说明: 显示确认对话框 返回值: 布尔Boolean类型

  • ShowConfirmDialogue函数语法中各部分说明
部分 说明
Caption 对话框标题
Text 对话框内容
iWidth 对话框宽度
  • 示例
begin
  if DBFUN.ShowConfirmDialogue('请确认','确认删除资料吗?',256) then
  begin
     …
  end;
end;
1
2
3
4
5
6

运行结果 确认对话框


# 3.51. ShowConfirmDialogue

function ShowConfirmDialogue(const Caption, Text, OkCaption, NoCaption: string; iWidth: Integer = 295): Integer; overload;
1

说明: 多按钮可自定按钮标签对话框 返回值: 整数Integer类型

  • ShowConfirmDialogue函数语法中各部分说明
部分 说明
Caption 对话框标题
Text 对话框内容
OkCaption OK按钮标签,可自定义按钮标签
NoCaption No按钮标签,可自定义按钮标签
iWidth 对话框宽度
  • 示例
Var
 i:integer;
begin
  i := DBFUN.ShowConfirmDialogue('提示','请选择消息发送类型?', '微信', '邮件',256);
  if i = 1 then
     //代码片段
  else
     //代码片段
  end;
end;
1
2
3
4
5
6
7
8
9
10

运行结果 选择类型


# 3.52. ShowErrorDialogue

function ShowErrorDialogue(const Caption, Text: string; iWidth: Integer = 295): Boolean;
1

说明: 错误消息提示对话框 返回值: 布尔Boolean类型

  • ShowErrorDialogue函数语法中各部分说明
部分 说明
Caption 对话框标题
Text 对话框内容
iWidth 对话框宽度
  • 示例
var
begin
	DBFUN. ShowWarningDialogue ('错误','数据格式不正确!',256);
end;
1
2
3
4

运行结果 错误信息


# 3.53. ShowInformationDialogue

function ShowInformationDialogue(const Caption, Text: string; iWidth: Integer = 295): Boolean;
1

说明: 消息提示对话框 返回值: 布尔Boolean类型

  • ShowInformationDialogue函数语法中各部分说明
部分 说明
Caption 对话框标题
Text 对话框内容
iWidth 对话框宽度
  • 示例
var
begin
	DBFUN. ShowInformationDialogue ('提示','删除成功!',256);
end;
1
2
3
4

运行结果 提示对话框


# 3.54. ShowInputDialogue

function ShowInputDialogue(const Caption, Text: string; DefaultContent: string = ''): string;
1

说明: 文本输入对话框 返回值: 字符string类型

  • ShowInputDialogue函数语法中各部分说明
部分 说明
Caption 对话框标题
Text 内容说明
DefaultContent 默认值
  • 示例
Var
  vStr:string;
begin
  vStr := DBFUN.ShowInputDialogue('请输入','员工编号','001');
end;
1
2
3
4
5

运行结果 显示员工编号输入窗口


# 3.55. ShowWarningDialogue

function ShowWarningDialogue(const Caption, Text: string; iWidth: Integer = 295): Boolean;
1

说明: 警告消息提示对话框 返回值: 布尔Boolean类型

  • ShowWarningDialogue函数语法中各部分说明
部分 说明
Caption 对话框标题
Text 对话框内容
iWidth 对话框宽度
  • 示例
var
begin
	DBFUN. ShowWarningDialogue ('警告','读取的文件不正确!',256);
end;
1
2
3
4

运行结果 警告提示对话框


# 4. Wechat类 (微信公众号消息推送函数)

  本章节的函数在使用时需以Wechat.开头。

# 4.1. SendArticleMessage

function SendArticleMessage(const AccountName, AOpenID: string; AContent: TArrayaString): Boolean;
1

说明: 发送图文信息 返回值: 布尔Boolean类型

  • SendArticleMessage函数语法中各部分说明
部分 说明
AccountName 微信公众号
AOpenID 微信用户AOpenID,OpenID为微信用户唯一标识ID
AContent 微信消息内容
  • 示例
Begin
    //调用方式
	Wechat.SendArticleMessage('test','oxCHX6X4rjxj-TEStyhPmkNILNp9A','ArrayString');
End;
1
2
3
4

# 4.2. SendCustomMessage

function SendCustomMessage(const AccountName, AOpenID, AContent: string): Boolean;
1

说明: 发送文本消息 返回值: 布尔Boolean类型

  • SendCustomMessage函数语法中各部分说明
部分 说明
AccountName 微信公众号
AOpenID 微信用户AOpenID,OpenID为微信用户唯一标识ID
AContent 微信消息内容
  • 示例
Begin
    //调用方式
	Wechat.SendCustomMessage('test','oxCHX6X4rjxj-TEStyhPmkNILNp9A','你好!');
End;
1
2
3
4

# 4.3. SendTemplateMessage

function SendTemplateMessage(const AccountName,  AJsonContent: string): Boolean;
1

说明: 发送模板消息 返回值: 布尔Boolean类型

  • SendTemplateMessage函数语法中各部分说明
部分 说明
AccountName 微信公众号
AJsonContent Json格式化字符串,格式请参考https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Template_Message_Interface.html (opens new window)
  • 示例
Begin
    //调用方式
	Wechat.SendTemplateMessage('test','JsonContent');
End;
1
2
3
4

# 4.4. SendWechatMsg

function SendWechatMsg(const AccountName, AOpenID, ATemplateID, AContent: string): Boolean;
1

说明: 发送模板消息 返回值: 布尔Boolean类型

  • SendWechatMsg函数语法中各部分说明
部分 说明
AccountName 微信公众号
AOpenID 微信用户AOpenID,OpenID为微信用户唯一标识ID
ATemplateID 微信消息模板ID
AContent 微信消息内容
  • 示例
Begin
    //调用方式
	Wechat.SendWechatMsg('test','oxCHX6X4rjxj-TEStyhPmkNILNp9A','templateID','TemplateContent');
End;
1
2
3
4

# 5. PaxScript注册函数

# 5.1. BIG2cn

function BIG2cn(BigStr: string): string;
1

说明: 繁体字转简体字 返回值: 字符string类型

  • BIG2cn函数语法中各部分说明
部分 说明
BigStr 指定一个繁体字符串
  • 示例
//简体字换为繁体字
begin
  BIG2cn('我是中國人!');
end;
1
2
3
4

运行结果


# 5.2. Cn2Big

function Cn2Big(CnStr: string): string;
1

说明: 简体字转繁体字 返回值: 字符string类型

  • Cn2Big函数语法中各部分说明
部分 说明
CnStr 指定一个简体字符串
  • 示例
//简体字换为繁体字
begin
  Cn2Big('我是中国人!');
end;
1
2
3
4

运行结果


# 5.3. DigitToEn

function DigitToEn(strDigits: String; intRMB: Boolean): String;
1

说明: 数字转换为英文 返回值: 字符string类型

  • DigitToEn函数语法中各部分说明
部分 说明
strDigits 指定一个小写数字串
intRMB 是否转换为英文金额显示
  • 示例
//数字转换为英文
var
    s:string;
begin
  s := DigitToEn('10023.8',true);
end;
1
2
3
4
5
6

运行结果 TEN THOUSAND TWENTY-THREE YUANS AND EIGHT CENTS ONLY


# 5.4. GetChinaMoney

function GetChinaMoney(small: Variant): string;
1

说明: 小数转换为中国大写金额 返回值: 字符string类型

  • GetChinaMoney函数语法中各部分说明
部分 说明
small 指定一个小写数字金额
  • 示例
//简体字换为繁体字
var
    s:string;
begin
  s := GetChinaMoney('123.58');
end;
1
2
3
4
5
6

运行结果 壹佰贰拾叁元伍角捌分


# 5.5. GetHostName

function GetHostName: string;
1

说明: 获取计算机名称 返回值: 字符string类型

  • 示例
var
 vHostName:string;
Begin
	vHostName := GetHostName;
End;
1
2
3
4
5

运行结果: SCZHF-PC


# 5.6. GetHostIP

function GetHostIP: String;
1

说明: 获取计算机IP地址 返回值: 字符String类型

  • 示例 var
vHostIP:string;
Begin
   vHostIP:= GetHostIP;
End;
1
2
3
4

运行结果: 192.168.1.100


# 5.7. GetMacAddress

function GetMacAddress: string;
1

说明: 获取计算机网卡地址 返回值: 字符String类型

  • 示例
var
 vHostMacAddress:string;
Begin
	vHostMacAddress:= GetMacAddress;
End;
1
2
3
4
5

运行结果: 01:1A:1B:EF:0A:BC


# 5.8. GetPropValue

function GetPropValue(QControl:TComponent; QControlProp: string): Variant;
1

说明: 获取控件属性值 返回值: 变体Variant 类型

  • GetPropValue函数语法中各部分说明
部分 说明
QControl 需要获取属性的控件
QControlProp 控件属性名称
  • 示例
var
  vPropValue:variant;
begin
  //获取窗体FThis.dbdts0FItemName对象的Name名称
  vPropValue := GetPropValue(FThis.dbdts0FItemName,'Name');
  Showmessage(vPropValue);
end;
1
2
3
4
5
6
7

# 5.9. MACToStr

function MACToStr(ByteArr: PByte; Len: Integer): String;
1

说明: MAC地址转字符串 返回值: 字符Srting类型

  • MACToStr函数语法中各部分说明
部分 说明
ByteArr MAC地址
Len 长度
  • 示例

# 5.10. NetHttpGet

function NetHttpGet(Qurl: string): string;
1

说明: 获取Http请求 返回值: 字符string类型

  • NetHttpGet函数语法中各部分说明
部分 说明
Qurl Http 内容
  • 示例
var
  vValue:string;
begin
  //获取一个64位唯一ID
  vValue := NetHttpGet('http://192.168.1.100:8809/system/newid');
  DBFun.ShowInformationDialogue('提示',vValue,500) ;
end;
1
2
3
4
5
6
7

运行结果


# 5.11. NetHttpPost

function NetHttpPost(Qurl, QDataString: string): string;
1

说明: 提交Http请求 返回值: 字符string类型

  • NetHttpPost函数语法中各部分说明
部分 说明
Qurl Http 内容
  • 示例
//通过RestAPI发送一封邮件
http://192.168.1.100:8809/rest/email/sendmail?subject=NewMail&email=youname@yourdomain.com&content= Welcome to use IsoFace series products&attachment=
1
2

运行结果 收到新邮件


# 6. 模板窗体打开方式函数

# 6.1. ExpExcel

function  ExpExcel(AComponent:TComponent;Const ACaption,ATitle:String;Const E:TDetailsExportEvent = nil):Boolean;
1

说明: 打开表格导出的对话框 返回值: 布尔Boolean类型

  • ExpExcel函数语法中各部分说明
部分 说明
AComponent 要导出的数据表组件名称,在系统中名称通常为FThis.tbGriddtsx
ACaption 对话框标题栏显示的名称
ATitle 导出的表格文件的名称
  • 示例
begin
  //指定的数据的序号,请查看菜单中的设计-模块设计-窗体设计中指定的序号,比如数据集的序号为1,则此处指定为tbGriddts1。
  ExpExcel(FThis.tbGriddts1,'导出客户资料','客户资料',nil);
end;
1
2
3
4

运行结果

# 6.2. InputNumber

function InputNumber(AField: TField; ACantion: string = ''): Boolean;
1

说明: 数字输入小键盘 返回值: 布尔Boolean类型

  • InputNumber函数语法中各部分说明
部分 说明
AField 指定数据集字段,数值型的字段
ACantion 小键盘标签
  • 示例
Begin 
   InputNumber(FThis.dts0.FieldByName('FInterID'),'请输入一个数字');
End;
1
2
3

运行结果


# 6.3. InputNumberR

function InputNumberR(var vStr: string; ACantion: string = ''): Boolean;
1

说明: 字符型变量输入小键盘 返回值: 布尔Boolean类型

  • 函数语法中各部分说明
部分 说明
vStr 一个字符型变量
ACantion 小键盘标签
  • 示例
Var
 vStr:String;
Begin 
   //带变量
   vStr := '1234';
   InputNumberR(vStr,'请输入字符串');
End;
1
2
3
4
5
6
7

运行结果


# 6.4. InputNumberStr

function InputNumberStr(AField: TField; ACantion: string = ''): Boolean;
1

说明: 字符串输入小键盘 返回值: 布尔Boolean类型

  • InputNumberStr函数语法中各部分说明
部分 说明
AField 指定数据集字段,字段需要是字符型的
ACantion 小键盘标签
  • 示例
Begin 
   //字符型字段
   InputNumberStr (FThis.dts0.FieldByName('FItemCode'),'请输入字符串');
End;
1
2
3
4

运行结果

# 6.5. MiniWebPage

function MiniWebPage(AUrl: String; ACaption: string = ''): TBaseWebPage;
1

说明: 以弹窗方式打开网页浏览页面。 返回值: 返回TBaseWebPage对象。

  • 函数语法中各部分说明
部分 说明
AUrl 打开窗口默认加载的网页地址
ACaption 打开窗口的标题
  • 示例:
begin
  MiniWebPage('http://192.168.0.113:8080','主页');
end.
1
2
3

# 6.6. ShowDBTreeView

function ShowDBTreeView(QModuleCode: String; QModuleCaption: string = ''; QbMulti: Boolean = false): TBaseDBTreeView;
1

说明: 树型模板打开方式 返回值: TBaseDBTreeView对象

  • 函数语法中各部分说明
部分 说明
QModuleCode 模块代码
QModuleCaption 模块标题,可以指定窗体打开时候的标签名称
QbMulti 窗体是否可以多开
  • 示例
Begin
//打开客户分类窗体,以下三种方式都是可以的,结果一样。
ShowDBTreeView('CustGroupList');
	ShowDBTreeView('CustGroupList', '客户分类');
ShowDBTreeView('CustGroupList', '客户分类',false);
End;
1
2
3
4
5
6

# 6.7. ShowEdit

function ShowEdit(QModuleCode: string; QKeyID: string; QContextForm: TModuleFormBase = nil; QModuleCaption: string = '';QbMulti: Boolean = false; QbFree: Boolean = false): TBaseEdit;
1

说明: 编辑模板的打开方式 返回值: TBaseEdit对象

  • ShowEdit函数语法中各部分说明
部分 说明
QModuleCode 模块代码
QKeyID 主键值
QContextForm 上文窗体
QModuleCaption 模块标题,可以指定窗体打开时候的标签名称
QbMulti 窗体是否可以多开
QbFree 关闭窗体时是否释放窗体
  • 示例
Begin
    //打开客户资料编辑窗体
	ShowEdit ('CustEdit',FThis.dts1.FieldByName('FInterID').asString,FThis);
End;
1
2
3
4

# 6.8. ShowEditList

function ShowEditList(QModuleCode: String; QModuleCaption: string = ''; QbMulti: Boolean = false): TBaseEditList;
1

说明: 列表编辑模板打开方式 返回值: TBaseEditList 对象

  • ShowEditList函数语法中各部分说明
部分 说明
QModuleCode 模块代码
QModuleCaption 模块标题,可以指定窗体打开时候的标签名称
QbMulti 窗体是否可以多开
QForm 上文窗体
  • 示例
Begin
    //打开一个币种资料列表编辑窗体
	ShowEditList('CurrencyList','币种资料');
End;
1
2
3
4

# 6.9. ShowEditP

function ShowEditP(QModuleCode: string; QKeyID: string; QParams: TStringList = nil; QContextForm: TModuleFormBase = nil;QModuleCaption: string = ''; QbMulti: Boolean = false; QbFree: Boolean = false): TBaseEdit;
1

说明: 带参数编辑模板打开方式 返回值: TBaseEdit对象

  • 函数语法中各部分说明
部分 说明
QModuleCode 模块代码
QKeyID 主键值
QParams 窗体参数值,可预定一些参数到窗体中,供脚本使用
QContextForm 上文窗体
QModuleCaption 模块标题,可以指定窗体打开时候的标签名称
QbMulti 窗体是否可以多开
QbFree 关闭窗体时是否释放窗体
  • 示例
var
 vStringList:TStringList;
begin
  //创建参数对象
  vStringList:=TStringList.Create;
  vStringList.CommaText := 'A=1,B=2,C=3,D=4';
  try
    ShowEditP('CustEdit','',vStringList);
  finally
    vStringList.free;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
  • 示例解读:

      在CustEdit模块设计中,将字段信息的一个字段[默认值类型]设置成VAR_PARAMS,然后[默认值]设置成A,当数据集新增记录的时候,字段值就会读取参数中A的值1。   当然传给窗体的参数可以在脚本中灵活使用,可以根据不同用户设置不同的参数值。


# 6.10. ShowGroupByList

function ShowGroupByList(QModuleCode: String; QModuleCaption: string = ''; QbMulti: Boolean = false): TBaseGroupTJ;
1

说明: 数据统计模板打开方式 返回值: TBaseGroupTJ对象

  • 函数语法中各部分说明
部分 说明
QModuleCode 模块代码
QModuleCaption 模块标题,可以指定窗体打开时候的标签名称
QbMulti 窗体是否可以多开
  • 示例
Begin 
    //打开交叉报表
	ShowGroupByList (' ReportStockBillMaster','化工料生产领用汇总表');
End;
1
2
3
4

# 6.11. ShowHandWrite

function ShowHandWrite(QData:string): string;
1

说明: 手写输入法 返回值: 字符串String类型

  • ShowHandWrite函数语法中各部分说明
部分 说明
QData 一个默认的字符串,可以是原文本
  • 示例
Var
  vStr:String;
Begin 
   //显示手写板功能
   vStr := ShowHandWrite ('');
End;
1
2
3
4
5
6

运行效果:


# 6.12. ShowHomePage

function ShowHomePage(QModuleCode: String; QModuleCaption: string = ''; QbMulti: Boolean = false): TBaseHomePage;
1

说明: 主页模板打开方式 返回值: TBaseHomePage

  • 函数语法中各部分说明
部分 说明
QModuleCode 模块代码
QModuleCaption 模块标题,可以指定窗体打开时候的标签名称
QbMulti 窗体是否可以多开
  • 示例
Begin 
    //打开主页
	ShowHomePage(' HomePage_001','主页');
End;
1
2
3
4

# 6.13. ShowImport

function ShowImport(QForm:TModuleFormBase;QTargetDataSet: TSQModuleDataSet; QModuleCode: string; QModuleCaption: string = ''; QSQLFilter:
  string = ''; QSourceDataSetIndex: Integer = 0; QSourceField: string = '';QTargetField: string = ''; QbFree: Boolean =
  false; QbSelectOnly: Boolean = false; QFieldChanging: Boolean = false;): Boolean;
1
2
3

说明: 导入模板窗体打开方式 返回值: 布尔Boolean类型

  • ShowImport函数语法中各部分说明
部分 说明
QForm 上文窗体
QTargetDataSet 目标数据集(需要接收数据的数据集)
QModuleCode 导入窗体模板代码
QModuleCaption 导入窗体模板名称
QSQLFilter SQL过滤条件
QSourceDataSetIndex 源数据集索引号
QSourceField 源数据集字段
QTargetField 目数据集标字段
QbSelectOnly 是否单选,为Ture的时候,导入窗体只能导入一条数据到目标窗体
QbFree 关闭导入窗体是否释放窗体
QFieldChanging 是否触发字段改变事件
  • 示例
Begin 
    //打开选择工序导入窗体,工序导入到dts0数据集中。
    ShowImport(FThis, FThis.dts0, 'SelectProcess', '选择工序',  '', 0, '', '', true, true, false);
End;
1
2
3
4

# 6.14. ShowImportR

function ShowImportR(QModuleCode: String; QModuleCaption: string = ''; QDataSetNum: Integer = 0;QForm: TModuleFormBase = nil; QbFree: Boolean = false; QSQLFilter: String = ''): Boolean;
1

说明: 导入模板窗体打开方式(返回主键字符串) 返回值: 布尔Boolean类型

  • ShowImportR函数语法中各部分说明
部分 说明
QModuleCode 导入窗体模板代码
QModuleCaption 导入窗体模板名称
QDataSetNum 目标数据集索引号
QForm 上文窗体
QSQLFilter SQL过滤条件
  • 示例
procedure TMyHandler.tb0btnImportOutStockOnClick(Sender: TObject);
var
 vStr:String;
 vSQL1,vSQL2,vSQL3:string;
 sWhere:string;
 vVariant:variant;
 vInteger:integer;
begin
  //读取数据控制参数
  vVariant := DBFUN.GetSQLValue('SELECT isnull(FParamValue,0) FROM Dict_ExtendParams WHERE FParamID = 117');
  vInteger := vVariant; 
  ShowImportR('CLInvOutStockSelect','选择成品出库单',0,FThis,False);
  vStr := FThis.TagString;
  if vStr = '' then exit;
  if VStr <> '' then
  begin
     vSQL1 := DBFUN.GetTransSQL('SQL_CLStockOutTOSalInvoiceMaster'); 
     if vInteger=0 then
        vSQL2 := DBFUN.GetTransSQL('SQL_CLStockOutTOSalInvoice')
     else
        vSQL2 := DBFUN.GetTransSQL('SQL_CLStockOutTOSalInvoiceEntry');
        
     vSQL3 := DBFUN.GetTransSQL('SQL_CLStockOutTOSalInvoice');
     
     vSQL1 := ForMat(vSQL1,['('+FThis.dts0.keyList+')']);
     vSQL2 := ForMat(vSQL2,['('+FThis.dts0.keyList+')']);
     vSQL3 := ForMat(vSQL3,['('+FThis.dts0.keyList+')']);
   if DBFUN.ShowConfirmDialogue('提示','导入会清空所有单据明细,请确认?',295) then
   begin 
    FThis.dts1.First;
    while not FThis.dts1.Eof do
    begin
     while not FThis.dts2.eof do
     begin
       FThis.dts2.Delete;
     end;
     FThis.dts1.Delete;  
    end; 
     FThis.TransSQLToDataSet(vSQL1,FThis.dts0,true);
     FThis.TransSQLToDataSet(vSQL2,FThis.dts1,true);
     FThis.TransSQLToDataSet(vSQL3,FThis.dts2,true);
     FThis.TagString :='';
     FThis.dts1.First;
   end;
  end;
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

# 6.15. ShowList

function ShowList(QModuleCode: String; QModuleCaption: string = ''; QbMulti: Boolean = false;QForm: TModuleFormBase = nil): TBaseList;
1

说明: 列表模板打开方式 返回值: TBaseList对象

  • ShowList函数语法中各部分说明
部分 说明
QModuleCode 模块代码
QModuleCaption 模块标题,可以指定窗体打开时候的标签名称
QbMulti 窗体是否可以多开
QForm 上文窗体
  • 示例
Begin
    //打开一个客户列表窗体
	ShowList('CustList','客户列表');
End;
1
2
3
4

# 6.16. ShowPivotGrid

function ShowPivotGrid(QModuleCode: String; QModuleCaption: string = ''; QbMulti: Boolean = false): TBasePivotGrid;
1

说明: 交叉报表模板打开方式 返回值: TBasePivotGrid

  • ShowPivotGrid函数语法中各部分说明
部分 说明
QModuleCode 模块代码,模块设计中指定唯一模块代码
QModuleCaption 模块标题,可以指定窗体打开时候的标签名称
QbMulti 窗体是否可以多开
  • 示例
Begin 
    //打开交叉报表
	ShowPivotGrid('ReportSMPMaterialBillPivot','料单耗用表');
End;
1
2
3
4

# 6.17. ShowPlayer

function ShowPlayer(ACaption: string; AUrl: string = ''; ASimple:Boolean=false):TBasePlayer;
1

说明: 弹窗式打开视频播放页面 返回值: TBasePlayer对象

  • ShowPlayer函数语法中各部分说明
部分 说明
ACaption 页面显示的标题
AUrl 视频播放的地址
ASimple 是否启用简单模式,在简单模式中窗口仅显示视频不显示视频控制区的按钮
  • 示例
begin
    //ShowPlayer('现场直播','rtmp://192.168.0.113/live/001');
    ShowPlayer('视频播放','http://192.168.0.113:8080/sample.mp4');
end.
1
2
3
4

# 6.18. ShowPopup

function ShowPopup(QModuleCode: string; QKeyID: string; QContextForm: TModuleFormBase = nil;QModuleCaption: string = ''; 
QbMulti: Boolean = false; QbFree: Boolean = false): TBasePopup;
1
2

说明: 弹窗式编辑模板的打开方式 返回值: TBasePopup对象

  • ShowPopup函数语法中各部分说明
部分 说明
QModuleCode 模块代码
QKeyID 主键值
QContextForm 上文窗体
QModuleCaption 模块标题,可以指定窗体打开时候的标签名称
QbMulti 窗体是否可以多开
QbFree 关闭窗体时是否释放窗体
  • 示例
Begin
    //打开客户资料编辑窗体
	ShowPopup('CustEdit',FThis.dts1.FieldByName('FInterID').asString,FThis);
End;
1
2
3
4

# 6.19. ShowSPList

function ShowSPList(QModuleCode: String; QModuleCaption: string = ''; QbMulti: Boolean = false; QForm: TModuleFormBase = nil): TBaseSPList;
1

说明: 存储过程模板列表打开方式 返回值: TBaseSPList对象

  • ShowSPList函数语法中各部分说明
部分 说明
QModuleCode 模块代码
QModuleCaption 模块标题,可以指定窗体打开时候的标签名称
QbMulti 窗体是否可以多开
QForm 上文窗体
  • 示例
Begin
//打开存储过程模板列表。
ShowSPList(' ReportInvStockSFC ','化工料收发存汇总表');
End;
1
2
3
4
  • 示例解读:

  存储过程模板列表主要是可以自由构建SQL内容,可以将数据集查询条件做为参数融入到SQL语句中,而不是象列表模板一样,将数据集查询条件自己拼接作为Where条件内容使用。   存储过程列表模板SQL典型内容:

DECLARE @FDate1         datetime,
       @FDate2         datetime,
       @FBillID        int, 
       @FStockID       int,
       @FItemCode      varchar(30),
       @FBatchNO       varchar(50)
       
SELECT @FDate1 = :FDate1, @FDate2 = :FDate2, @FStockID = :FStockID,
      @FItemCode = :FItemCode,@FBatchNO = :FBatchNO
1
2
3
4
5
6
7
8
9

  其中:FDate1,:FDate2,:FStockID,:FItemCode,:FBatchNO 都是指查询条件,模板执行时,系统会自动解析这些参数,获取到查询条件对应的查询内容。


# 6.20. ShowWebPage

function ShowWebPage(AUrl: String; ACaption: string = ''; QbMulti: Boolean = false): TBaseWebPage;
1

说明: 在页面中打开网页。 返回值: TBaseWebPage对象。

  • ShowWebPage函数语法中各部分说明
部分 说明
AUrl 网页地址
ACaption 页面标题
QbMulti 是否启用多页面模式,即系统中该模块只允许在一个网页页面标签中使用
  • 示例:
begin
  ShowWebPage('http://192.168.0.113:8805','EMS',True);
end.
1
2
3

# 7. 全局类函数

# 7.1. AppInfo

function AppInfo: TAppInfo;
1

说明: 平台信息类(平台及中间件连接信息) 返回值: TAppInfo类

  • 示例
Begin 
//读取程序名称
AppInfo.AppName;
End;
1
2
3
4

# 7.2. CommonDM

function CommonDM: TCommonModule;
1

说明: 全局常用数据类(目前只用来做全局多语言使用) 返回值: TCommonModule类

  • 示例
Begin 
    //读取S_ButtonConfrim的多语言内容
	CommonDM. GetLangString('S_ButtonConfrim');
End;
1
2
3
4

# 7.3. Company

function Company: TCompany;
1

说明: 公司资料类(公司信息) 返回值: TCompany类

  • 示例
Begin 
//获取公司繁体名称
Company. CompanyNameTW;
End;
1
2
3
4

# 7.4. InvSystemParams

function InvSystemParams: TInvSystemParams;
1

说明: 存货核算参数类(存货核算时单价和金额小数点位数、核算方式等信息) 返回值: TInvSystemParams类

  • 示例
Begin 
//读取存货核算金额小数点保留位数
InvSystemParams. AmountDecLen;
End;
1
2
3
4

# 7.5. SystemParams

function SystemParams: TSystemParams;
1

说明: 系统参数类(会计期间、单价和金额小数点位数等信息) 返回值: TSystemParams类

  • 示例
Begin 
//读取当前期间年份
SystemParams. CurrentYear;
End;
1
2
3
4

# 7.6. UserInfo

function UserInfo: TUserInfo;
1

说明: 用户信息类(操作员属性) **返回值:**TUserInfo类

  • 示例
Begin 
    //调取用户名称
	UserInfo.UserName;
    //调取用户管理员标识
	UserInfo.IsAdmin;
End;
1
2
3
4
5
6

系统程序
自定程序

← 系统程序 自定程序→

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