自定函数
# FastERP 自定函数
# 1. 基类函数
本章节的函数在使用时需以FThis.
开头。
# 1.1. GetContextDataValue
function GetContextDataValue(QiData: Integer; QFieldName: string): Variant;
说明: 获取上文窗体数据集中的字段值。 返回值: 变体Variant类型。
- GetContextDataValue函数语法中各部分说明
部分 | 说明 |
---|---|
QiData | 数据集索引 |
QFieldName | 数据集字段名称 |
- 示例
VAR
vVariant:Variant;
vStr:string;
begin
vVariant := FThis. GetContextDataValue(0, 'FBiller');
vStr := VarToStr(vVariant);
Showmessage('数据集字段值是:'+ vStr);
end;
2
3
4
5
6
7
8
# 1.2. IsExistsContext
function IsExistsContext: Boolean;
说明: 判断窗体是否有上文窗体。 返回值: 布尔Boolean类型。
- 示例
VAR
vBoolean:Boolean;
begin
vBoolean := FThis.IsExistsContext;
IF vBoolean THEN
Showmessage('存在上文窗体!');
end;
2
3
4
5
6
7
# 1.3. OperateLog
function OperateLog(opeType: string): Boolean;
说明: 登记操作日志。 返回值: 布尔Boolean类型。
- OperateLog函数语法中各部分说明
部分 | 说明 |
---|---|
opeType | 动作类型 |
示例
begin
if FThis.OperateLog('作废') then
Showmessage('作废日志登记成功!');
end;
2
3
4
# 2. DM类函数
本章节的函数在使用时需以DM.
开头。
# 2.1. ExecProcedure
function ExecProcedure(const QstoreName: string; QParams: TArrayaString): Boolean;
说明: 执行存储过程。 返回值: 布尔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;
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;
说明: 执行存储过程。 返回值: 字符串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;
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;
说明: 获取缓存数据集。 返回值: TSQModuleDataset数据集类型。
- GetCachData函数语法中各部分说明
部分 | 说明 |
---|---|
QName | 缓存数据集索引 |
- 示例
VAR
vDataSet: TSQModuleDataset;
begin
//根据缓存数据集索引名获取缓存数据集
vDataSet := DM.GetCachData('付款方式');
//判断获取到的缓存数据集是否为空
if vDataSet <> nil then
Showmessage('获取付款方式缓存数据集成功!');
end;
2
3
4
5
6
7
8
9
# 2.4. GetUserDefault
function GetUserDefault(QDefaultName: string): String;
说明: 获取用户默认值。 返回值: 字符 String类型。
- GetUserDefault函数语法中各部分说明
部分 | 说明 |
---|---|
QDefaultName | 默认值索引名称 |
- 示例
VAR
vStr: String;
begin
//根据默认值索引名称获取默认值
vStr:= DM.GetUserDefault ('白坯仓库');
//判断获取到的白坯仓库默认值是否为空
if vStr <> '' then
Showmessage('获取到的白坯仓库默认值是:'+ vStr);
end;
2
3
4
5
6
7
8
9
# 2.5. OpenData
function OpenData(QDataSet: TRFDataSet): Boolean;
说明: 打开数据集。 返回值: 布尔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;
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;
说明: 打开数据集。 返回值: 布尔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;
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;
说明: 批量打开数据集。 返回值: 布尔Boolean类型。
- OpenDatas函数语法中各部分说明
部分 | 说明 |
---|---|
QDataSetList | 数据集对象集合 |
- 示例
脚本中暂不支持TList<>对象。
# 2.8. SaveData
function SaveData(QDataSet: TRFDataSet): Boolean; overload;
说明: 数据集提交。 返回值: 布尔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;
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;
说明: 数据集提交。 返回值: 布尔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;
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;
说明: 批量提交数据集。 返回值: 布尔Boolean类型。
- SaveDatas函数语法中各部分说明
部分 | 说明 |
---|---|
QDataSetList | 数据集对象集合 |
- 示例
脚本中暂不支持TList<>对象。
# 2.11. 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 | 参数信息,以键值对的方式进行 |
- 示例
//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;
2
3
4
5
6
7
8
9
10
11
12
# 2.12. SendWsMsgBySid
function SendWsMsgBySId(const sid, msg: string): Boolean;
说明:向指定的会话ID的客户端发送WebSocket信息。 返回值:Boolean,用于反馈是否发送成功。
- SendWsMsgBySId 函数语法中各部分说明
部分 | 说明 |
---|---|
sid | 指定会话的名称 |
msg | 要发送的消息内容 |
- 示例
//PasScript
DM.SendWsMsgBySId('esp32_001','Off');
2
# 2.13. SendWsMsgByStr
function SendWsMsgByStr(const msg: string): Boolean;
说明:向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);
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;
说明: 判断字段是否为空。 返回值: 布尔Boolean类型。
- CheckFieldEmpty函数语法中各部分说明
部分 | 说明 |
---|---|
QField | 数据集字段对象 |
- 示例
If DBFun.CheckFieldEmpty (FThis.dts0.FieldByName('FBiller')) then
Begin
Showmessage('数据集字段FBiller 内容为空。');
End;
2
3
4
# 3.2. CheckUser
function CheckUser(QUserName: string): Boolean;
说明: 校验用户合法性 返回值: 布尔Boolean类型。
- CheckUser函数语法中各部分说明
部分 | 说明 |
---|---|
QUserName | 用户名称 |
- 示例
Begin
//校验客户编号是否存在
If DBFun.CheckUser ('刘德华') then
Begin
Showmessage(刘德华用户未授权!');
End;
end;
2
3
4
5
6
7
# 3.3. DataSetIsEdit
function DataSetIsEdit(const QDataSet: TRFDataSet): Boolean;
说明: 判断数据集是否处于编辑状态。 返回值: 布尔Boolean类型。
- DataSetIsEdit函数语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 数据集对象 |
- 示例
If DBFun.DataSetIsEdit(FThis.dts0) then
Begin
Showmessage('数据集dts0处理编辑状态。');
End;
2
3
4
# 3.4. DataSetTableCompute
function DataSetTableCompute(ADataSet: TSQModuleDataSet; AOperator, AFieldName: String; AFilter: String = ''): Variant;
说明: 数据集字段统计 返回值: 变体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;
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;
说明: 文件下载 返回值: 布尔 Boolean 类型
- FileDownload函数语法中各部分说明
部分 | 说明 |
---|---|
ARemoteFileName | 远程文件名 |
ALocalNewFileName | 本地文件名 |
- 示例
//从服务器Downloads目录下载1.txt文件到本地
begin
DBFUN.FileDownload('Downloads/1.txt','1.txt');
end;
2
3
4
# 3.6. FileUpload
function FileUpload(const ALocalFileName: string; const ARemoteFilePath: string = ''; const ARemoteFileName: string = ''): Boolean;
说明: 文件上传 返回值: 布尔 Boolean 类型
- FileUpload函数语法中各部分说明
部分 | 说明 |
---|---|
ALocalFileName | 本地文件名 |
ARemoteFilePath | 远程目录 |
ARemoteFileName | 远程文件名 |
- 示例
//将exe根目录的1.txt文件上传至服务器Downloads目录下,上传可重新指定文件名
begin
DBFUN.UpDownload('1.txt','Downloads','New1.txt');
end;
2
3
4
# 3.7. FocusedRecordGetValues*
function FocusedRecordGetValues(AFocusedRecord: TcxCustomGridRecord; QColumn: TcxGridDBColumn):
Variant; overload;;
function FocusedRecordGetValues(AFocusedRecord: TcxCustomGridRecord; QColumn: TcxGridDBBandedColumn):
Variant; overload;
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;
2
3
4
5
6
7
8
# 3.8. GetBatchNo
function GetBatchNo(QBillID: string): string;
说明: 获取批号流水号 返回值: 字符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;
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;
说明: 获取单据流水号 返回值: 字符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;
2
3
4
5
6
7
# 3.10. GetColorNo
function GetColorNo(QBillID: string; QDate: TDateTime; QPreview: Boolean): string;
说明: 获取色号(印染行业专用) 返回值: 字符 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;
2
3
4
5
6
7
# 3.11. GetFirstDayofMonth
function GetFirstDayofMonth(const DT: TDateTime): TDateTime;
说明: 获取指定日期所在月份的第一天 返回值: 日期TDateTime类型
- GetFirstDayofMonth函数语法中各部分说明
部分 | 说明 |
---|---|
DT | 指定的一个日期类型 |
- 示例
Var
vMonthBeginDay:TDateTime;
Begin
vMonthBeginDay := DBFun.GetFirstDayofMonth('2019-07-10');
end;
2
3
4
5
运行结果: 2019-07-01
# 3.12. GetLastDayofMonth
function GetLastDayofMonth(const DT: TDateTime): TDateTime;
说明: 获取指定日期所在月份的第后一天 返回值: 日期TDateTime类型
- GetLastDayofMonth函数语法中各部分说明
部分 | 说明 |
---|---|
DT | 指定的一个日期类型 |
- 示例
Var
vMonthEndDay:TDateTime;
Begin
vMonthEndDay := DBFun.GetFirstDayofMonth('2019-07-10');
end;
2
3
4
5
运行结果: 2019-07-31
# 3.13. GetListBySQL
function GetListBySQL(QSQL: string): TStringList;
说明: 根据SQL获取字符串列表 返回值: 字符串列表TStringList
- GetListBySQL函数语法中各部分说明
部分 | 说明 |
---|---|
QSQL | 指定一个SQL内容 |
- 示例
Var
vStrList:TStringList;
begin
//将Basic_Process表里的FProcessName内容组成一个字符串列表
vStrList:= DBFun. GetListBySQL ('Select FProcessName From Basic_Process');
end;
2
3
4
5
6
# 3.14. GetNodeID
function GetNodeID(QCount: Integer = 1; QNoRecord: Boolean = False): Integer;
说明: 获取唯一ID 返回值: 整数Integer 类型
- GetNodeID函数语法中各部分说明
部分 | 说明 |
---|---|
QCount | 取多少个ID(不能超过999) |
QNoRecord | 是否返回结果集 |
- 示例
//数据集dts1新增记录时,生成主键唯一ID
procedure TMyHandler.dts1OnNewRecord(DataSet: TDataSet);
begin
FThis.dts1.Edit;
FThis.dts1FInterID.asInteger:= DBFUN.GetNodeID;
end;
2
3
4
5
6
# 3.15. GetNow
Function GetNow(byServer: Boolean; QGetType, TimeForamt: string): Variant;
说明: 获取日期时间 返回值: 变体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;
2
3
4
5
6
7
8
9
10
11
# 3.16. GetNumber
function GetNumber(S: string): string;
说明: 截取字符串中的数字 返回值: 字符String类型
- GetNumber函数语法中各部分说明
部分 | 说明 |
---|---|
S | 指定一个包含数字的字符串 |
- 示例
var
v:string;
begin
v:= DM.GetNumber ('12A56B.A11');
//显示返回的SQL内容
Showmessage(v);
end;
2
3
4
5
6
7
运行结果: 125611
# 3.17. GetSelectedDataCount
function GetSelectedDataCount(QDataSet: TRFDataSet; FSelectField: string = 'FSelected'): Integer;
说明: 返回值:
- GetSelectedDataCount函数语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 指定的一个数据集类型 |
FSelectField | 指定的数据集中作为标记的字段名称,默认字段名称为FSelected,也可自定 |
- 示例
Var
iCount:Integer;
Begin
//获取数据集dts1中,FSelected字段选中状态的记录个数
iCount:= DBFun.GetSelectedDataCount (FThis.dts1);
end;
2
3
4
5
6
# 3.18. GetSelectedValues
function GetSelectedValues(QDataSet: TRFDataSet; QKeyField: string; QSelectField:string = 'FSelected'):string;
说明: 获取 返回值: 字符string类型。
- GetSelectedValues程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 指定一个需要操作的数据集对象 |
QKeyField | 主键字段名称 |
QSelectField | 表示状态的字段名称 |
- 示例
var
vStr: String;
begin
vStr := DBFun.GetSelectedValues(FThis.dts0, 'FInterID',vInterIDList, 'FSelected');
end;
2
3
4
5
# 3.19. GetSQLValue
function GetSQLValue (const QSQL: string): Variant;
说明: 获取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;
2
3
4
5
6
7
8
9
10
11
12
# 3.20. GetStrByList
function GetStrByList(QStr: TStrings; QQuotedStr: Boolean = True): String;
说明: 根据字符串列表组装成格式化的字符串 返回值: 字符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;
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;
2
3
4
5
6
7
8
9
10
11
12
运行结果: 1902001, 156987, 11258
# 3.21. GetStrBySQL
function GetStrBySQL(QSQL: string): String;
说明: 根据SQL组装字符串 返回值: 字符String类型
- GetStrBySQL函数语法中各部分说明
部分 | 说明 |
---|---|
QSQL | 指定一个SQL内容 |
- 示例
Var
vStr:String;
begin
//将Basic_Process表里的FProcessName内容组成一个字符串
vStr := DBFun.GetStrBySQL('Select FProcessName From Basic_Process');
end;
2
3
4
5
6
运行结果: 翻布;配桶;染色;定型
# 3.22. GetTransSQL
function GetTransSQL(ASQLCode: string): string;
说明: 根据SQL配置编号获取SQL语句内容 返回值:
- GetTransSQL函数语法中各部分说明
部分 | 说明 |
---|---|
ASQLCode | 指定一个SQL配置编号 |
- 示例
var
vSQL:string;
begin
vSQL:= DBFun.GetTransSQL ('SQL_Cust');
//显示返回的SQL内容
Showmessage(vSQL);
end;
2
3
4
5
6
7
# 3.23. GetJSONObject
function GetJSONObject(const QJSONObject: TJSONValue; const QPath:String):TJSONObject;
说明: 获取JSON对象中指定的嵌套对象。 返回值: TJSONObject类型。
- GetJSONObject 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
- 示例
假设需要对以下JSON进行解析。
{
"status": "OK",
"Language":{
"DefaultLanguage": 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;
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;
说明: 获取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
//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;
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;
说明: 获取JSON对象中指定键值的字符串。 返回值: String类型。
- GetJSONString 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
假设需要对以下JSON进行解析。
{
"status": "OK",
"Language":{
"DefaultLanguage": 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;
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;
说明: 获取JSON对象中指定的键值中的数值。 返回值: String类型。
- GetJSONNumber 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
- 示例
假设需要对以下JSON进行解析。
{
"status": "OK",
"Language":{
"DefaultLanguage": 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;
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;
说明: 获取JSON对象中指定的键值中的整数数值,并以整数的形式返回。 返回值: Integer类型。
- GetJSONInteger 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
- 示例
假设需要对以下JSON进行解析。
{
"status": "OK",
"Language":{
"DefaultLanguage": 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;
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;
说明: 获取JSON对象中指定的键值中的浮点数数值,并以浮点数的形式返回。 返回值: Double类型。
- GetJSONFloat 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
- 示例
假设需要对以下JSON进行解析。
{
"status": "OK",
"Language":{
"DefaultLanguage": 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;
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;
说明: 获取JSON对象中指定的键值中的布尔数值,并以布尔值的形式返回。 返回值: Boolean类型。
- GetJSONBool 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
假设需要对以下JSON进行解析。
{
"status": true,
"Language":{
"DefaultLanguage": 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;
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;
说明: 获取JSON对象中指定的键值中的值。 返回值: TJSONValue类型。
- GetJSONBool 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
# 3.31. JSONArray_AddJSONObject
function JSONArray_AddJSONObject(QJSONArray:TJSONArray;const QJSONObject: TJSONValue):TJSONArray;
说明: 在原有的JSON队列中添加一个新的JSON对象 返回值: TJSONArray类型。
- GetJSONBool 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONArray | 要进行获取对象操作的JSON队列名称 |
QJSONObject | 要添加的JSON对象名称 |
假设有以下的队列:
[{"status":"ok"}]
需要向其中添加以下的json对象:
{"status":"no"}
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;
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;
说明: 在原有的JSON对象中添加一个新的JSON值以获取一个新的JSON对象 返回值: TJSONObject类型。
部分 | 说明 |
---|---|
QJSONObject | 要获取的JSON对象名称 |
Str | 要添加的键名 |
Val | 要添加的键值 |
假设有以下的json对象:
{"status":"ok"}
需要合并以下的json队列作为子对象
[{"status":"no"}]
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;
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;
说明: 解析JSON,获取JSON中的单元的取值。 返回值: string类型。
部分 | 说明 |
---|---|
QType | 要获取的JSON对象类型 GetJSONObject ,GetJSONArray ,GetJSONNumber 、GetJSONObject 、GetJSONValue 、GetJSONBool 、GetJSONPair |
QPath | 获取的JSON对象的路径名称 |
QJSON | 要解析的JSON对象文本 |
- 示例
```JSON
{
"status": true,
"Language":{
"DefaultLanguage": 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;
2
3
4
5
6
7
# 3.34. ParseJSONValue
function ParseJSONValue(QJson: string): TJSONValue;
说明: 获取字符串形式的JSON对象中指定的键值中的值。 返回值: TJSONValue类型。
- GetJSONBool 函数语法中各部分说明
部分 | 说明 |
---|---|
QJSONObject | 要进行获取对象操作的JSON对象名称 |
QPath | 对象在JSON中的路径名称,路径的名称之间以"."作为分隔标志 |
# 3.35. HTTPDecode
function HTTPDecode(const AStr: string): string;
说明: HTTP解码 返回值: 字符类型String
- HTTPDecode 函数语法中各部分说明
部分 | 说明 |
---|---|
AStr | 指定需要解码的字符串 |
# 3.36. HTTPEncode
function HTTPEncode(const AStr: string): string;
说明: HTTP编码 返回值: 字符类型String
- HTTPEncode 函数语法中各部分说明
部分 | 说明 |
---|---|
AStr | 指定需要编码的字符串 |
# 3.37. InputBoxDate
function InputBoxDate(ATitle, ACaption: String; var AResult: TDateTime): Boolean;
2
说明: 日期输入对话框 返回值: 布尔Boolean类型
- InputBoxDate函数语法中各部分说明
部分 | 说明 |
---|---|
ATitle | 对话框标题 |
ACaption | 输入值说明 |
AResult | 输入值变量 |
- 示例
var
vDate:TDateTime;
begin
vDate := Now();
DBFun.InputBoxDate ('请输入日期... ', vDate);
end;
2
3
4
5
6
运行结果
# 3.38. InputBoxDateTime
function InputBoxDateTime(ATitle, ACaption: String; var AResult: TDateTime): Boolean;
说明: 日期时间输入对话框 返回值: 布尔Boolean类型
- InputBoxDateTime函数语法中各部分说明
部分 | 说明 |
---|---|
ATitle | 对话框标题 |
ACaption | 输入值说明 |
AResult | 输入值变量 |
- 示例
var
vDate:TDateTime;
begin
vDate := Now();
DBFun.InputBoxDateTime ('请输入日期时间... ', vDate);
end;
2
3
4
5
6
运行结果
# 3.39. InputBoxFloat
function InputBoxFloat(ATitle, ACaption: String; var AResult: Double): Boolean;
说明: 浮点数输入对话框 返回值: 布尔Boolean类型
- InputBoxFloat函数语法中各部分说明
部分 | 说明 |
---|---|
ATitle | 对话框标题 |
AResult | 输入值变量 |
- 示例
var
vValue:double;
begin
vValue := 123.25;
DBFun.InputBoxFloat ('请输入浮点数... ', vValue);
DBFun.InputBoxInt ('请输入整数... ', vValue);
end;
2
3
4
5
6
7
运行结果
# 3.40. InputBoxInt
function InputBoxInt(ATitle, ACaption: String; var AResult: Integer): Boolean;
说明: 整数输入对话框 返回值: 布尔Boolean类型
- InputBoxInt函数语法中各部分说明
部分 | 说明 |
---|---|
ATitle | 对话框标题 |
ACaption | 输入值说明 |
AResult | 输入值变量 |
- 示例
var
vValue:Integer;
begin
vValue := 123;
DBFun.InputBoxInt ('请输入整数... ', vValue);
end;
2
3
4
5
6
运行结果
# 3.41. InputBoxMemo
function InputBoxMemo(ATitle, ACaption: String; var AResult: string): Boolean;
说明: 大文本输入对话框 返回值: 布尔Boolean类型
- InputBoxMemo函数语法中各部分说明
部分 | 说明 |
---|---|
ATitle | 对话框标题 |
AResult | 输入值变量 |
- 示例
var
vStr:string;
begin
vStr := '我是中国人,我骄傲,我自豪!';
DBFun.InputBoxMemo ('请输入内容...',vStr);
end;
2
3
4
5
6
运行结果
# 3.42. InputBoxStr
function InputBoxStr(ATitle, ACaption: String; var AResult: string): Boolean;
说明: 字符串输入对话框 返回值: 布尔Boolean类型
- InputBoxStr函数语法中各部分说明
部分 | 说明 |
---|---|
ATitle | 对话框标题 |
AResult | 输入值变量 |
- 示例
var
vStr:string;
begin
vStr := '您好!';
DBFun.InputBoxStr('请输入字符串...',vStr);
end;
2
3
4
5
6
运行结果
# 3.43. IsDBRep
function IsDBRep(QSQL: string; QKeyName: string; QKeyValue: string; QDBName: String = ''): Boolean;
说明: 校验重复值。 返回值: 布尔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;
2
3
4
5
6
7
8
9
10
11
12
13
14
# 3.44. NextMonth
Function NextMonth(ADateTime: Variant): string;
说明: 获取指定日期下一个月第一天 返回值: 字符string类型
- NextMonth函数语法中各部分说明
部分 | 说明 |
---|---|
ADateTime | 指定的一个变体类型 |
- 示例
Var
vNextMonth:String;
Begin
vNextMonth:= DBFun.NextMonth ('2019-07-10');
end;
2
3
4
5
运行结果: 2019-08-01
# 3.45. OperateLog
function OperateLog(opeType: string;QNote: string=''): Boolean;
说明: 记录操作日志 返回值: 布尔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;
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;
说明: 根据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;
2
3
4
5
6
7
8
9
10
11
# 3.47. RoundToCH
function RoundToCH(const AValue: Double; const ADigit: Integer): Double;
说明: 四舍五入函数 返回值: 双精度Double类型
- 函数语法中各部分说明
部分 | 说明 |
---|---|
AValue | 指定一个Double类型的数值 |
ADigit | 指定一个小数点保留位数 |
- 示例
Var
vValue: Double;
Begin
vValue:= DBFun.RoundToCH (12.357,2);
end;
2
3
4
5
运行结果: 12.36
# 3.48. SelectedRecordCount
function SelectedRecordCount(ADBGridView: TcxGridDBTableView): Integer;
说明: 获取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;
2
3
4
5
6
7
8
9
10
11
# 3.49. SelectedRecordValue
function SelectedRecordValue(ADBGridView: TcxGridDBTableView; ACount, AKeyFieldIdx: Integer): Variant;
说明: 根据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;
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;
说明: 显示确认对话框 返回值: 布尔Boolean类型
- ShowConfirmDialogue函数语法中各部分说明
部分 | 说明 |
---|---|
Caption | 对话框标题 |
Text | 对话框内容 |
iWidth | 对话框宽度 |
- 示例
begin
if DBFUN.ShowConfirmDialogue('请确认','确认删除资料吗?',256) then
begin
…
end;
end;
2
3
4
5
6
运行结果
# 3.51. ShowConfirmDialogue
function ShowConfirmDialogue(const Caption, Text, OkCaption, NoCaption: string; iWidth: Integer = 295): Integer; overload;
说明: 多按钮可自定按钮标签对话框 返回值: 整数Integer类型
- ShowConfirmDialogue函数语法中各部分说明
部分 | 说明 |
---|---|
Caption | 对话框标题 |
Text | 对话框内容 |
OkCaption | OK按钮标签,可自定义按钮标签 |
NoCaption | No按钮标签,可自定义按钮标签 |
iWidth | 对话框宽度 |
- 示例
Var
i:integer;
begin
i := DBFUN.ShowConfirmDialogue('提示','请选择消息发送类型?', '微信', '邮件',256);
if i = 1 then
//代码片段
else
//代码片段
end;
end;
2
3
4
5
6
7
8
9
10
运行结果
# 3.52. ShowErrorDialogue
function ShowErrorDialogue(const Caption, Text: string; iWidth: Integer = 295): Boolean;
说明: 错误消息提示对话框 返回值: 布尔Boolean类型
- ShowErrorDialogue函数语法中各部分说明
部分 | 说明 |
---|---|
Caption | 对话框标题 |
Text | 对话框内容 |
iWidth | 对话框宽度 |
- 示例
var
begin
DBFUN. ShowWarningDialogue ('错误','数据格式不正确!',256);
end;
2
3
4
运行结果
# 3.53. ShowInformationDialogue
function ShowInformationDialogue(const Caption, Text: string; iWidth: Integer = 295): Boolean;
说明: 消息提示对话框 返回值: 布尔Boolean类型
- ShowInformationDialogue函数语法中各部分说明
部分 | 说明 |
---|---|
Caption | 对话框标题 |
Text | 对话框内容 |
iWidth | 对话框宽度 |
- 示例
var
begin
DBFUN. ShowInformationDialogue ('提示','删除成功!',256);
end;
2
3
4
运行结果
# 3.54. ShowInputDialogue
function ShowInputDialogue(const Caption, Text: string; DefaultContent: string = ''): string;
说明: 文本输入对话框 返回值: 字符string类型
- ShowInputDialogue函数语法中各部分说明
部分 | 说明 |
---|---|
Caption | 对话框标题 |
Text | 内容说明 |
DefaultContent | 默认值 |
- 示例
Var
vStr:string;
begin
vStr := DBFUN.ShowInputDialogue('请输入','员工编号','001');
end;
2
3
4
5
运行结果
# 3.55. ShowWarningDialogue
function ShowWarningDialogue(const Caption, Text: string; iWidth: Integer = 295): Boolean;
说明: 警告消息提示对话框 返回值: 布尔Boolean类型
- ShowWarningDialogue函数语法中各部分说明
部分 | 说明 |
---|---|
Caption | 对话框标题 |
Text | 对话框内容 |
iWidth | 对话框宽度 |
- 示例
var
begin
DBFUN. ShowWarningDialogue ('警告','读取的文件不正确!',256);
end;
2
3
4
运行结果
# 4. Wechat类 (微信公众号消息推送函数)
本章节的函数在使用时需以Wechat.
开头。
# 4.1. SendArticleMessage
function SendArticleMessage(const AccountName, AOpenID: string; AContent: TArrayaString): Boolean;
说明: 发送图文信息 返回值: 布尔Boolean类型
- SendArticleMessage函数语法中各部分说明
部分 | 说明 |
---|---|
AccountName | 微信公众号 |
AOpenID | 微信用户AOpenID,OpenID为微信用户唯一标识ID |
AContent | 微信消息内容 |
- 示例
Begin
//调用方式
Wechat.SendArticleMessage('test','oxCHX6X4rjxj-TEStyhPmkNILNp9A','ArrayString');
End;
2
3
4
# 4.2. SendCustomMessage
function SendCustomMessage(const AccountName, AOpenID, AContent: string): Boolean;
说明: 发送文本消息 返回值: 布尔Boolean类型
- SendCustomMessage函数语法中各部分说明
部分 | 说明 |
---|---|
AccountName | 微信公众号 |
AOpenID | 微信用户AOpenID,OpenID为微信用户唯一标识ID |
AContent | 微信消息内容 |
- 示例
Begin
//调用方式
Wechat.SendCustomMessage('test','oxCHX6X4rjxj-TEStyhPmkNILNp9A','你好!');
End;
2
3
4
# 4.3. SendTemplateMessage
function SendTemplateMessage(const AccountName, AJsonContent: string): Boolean;
说明: 发送模板消息 返回值: 布尔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;
2
3
4
# 4.4. SendWechatMsg
function SendWechatMsg(const AccountName, AOpenID, ATemplateID, AContent: string): Boolean;
说明: 发送模板消息 返回值: 布尔Boolean类型
- SendWechatMsg函数语法中各部分说明
部分 | 说明 |
---|---|
AccountName | 微信公众号 |
AOpenID | 微信用户AOpenID,OpenID为微信用户唯一标识ID |
ATemplateID | 微信消息模板ID |
AContent | 微信消息内容 |
- 示例
Begin
//调用方式
Wechat.SendWechatMsg('test','oxCHX6X4rjxj-TEStyhPmkNILNp9A','templateID','TemplateContent');
End;
2
3
4
# 5. PaxScript注册函数
# 5.1. BIG2cn
function BIG2cn(BigStr: string): string;
说明: 繁体字转简体字 返回值: 字符string类型
- BIG2cn函数语法中各部分说明
部分 | 说明 |
---|---|
BigStr | 指定一个繁体字符串 |
- 示例
//简体字换为繁体字
begin
BIG2cn('我是中國人!');
end;
2
3
4
运行结果
# 5.2. Cn2Big
function Cn2Big(CnStr: string): string;
说明: 简体字转繁体字 返回值: 字符string类型
- Cn2Big函数语法中各部分说明
部分 | 说明 |
---|---|
CnStr | 指定一个简体字符串 |
- 示例
//简体字换为繁体字
begin
Cn2Big('我是中国人!');
end;
2
3
4
运行结果
# 5.3. DigitToEn
function DigitToEn(strDigits: String; intRMB: Boolean): String;
说明: 数字转换为英文 返回值: 字符string类型
- DigitToEn函数语法中各部分说明
部分 | 说明 |
---|---|
strDigits | 指定一个小写数字串 |
intRMB | 是否转换为英文金额显示 |
- 示例
//数字转换为英文
var
s:string;
begin
s := DigitToEn('10023.8',true);
end;
2
3
4
5
6
运行结果 TEN THOUSAND TWENTY-THREE YUANS AND EIGHT CENTS ONLY
# 5.4. GetChinaMoney
function GetChinaMoney(small: Variant): string;
说明: 小数转换为中国大写金额 返回值: 字符string类型
- GetChinaMoney函数语法中各部分说明
部分 | 说明 |
---|---|
small | 指定一个小写数字金额 |
- 示例
//简体字换为繁体字
var
s:string;
begin
s := GetChinaMoney('123.58');
end;
2
3
4
5
6
运行结果 壹佰贰拾叁元伍角捌分
# 5.5. GetHostName
function GetHostName: string;
说明: 获取计算机名称 返回值: 字符string类型
- 示例
var
vHostName:string;
Begin
vHostName := GetHostName;
End;
2
3
4
5
运行结果: SCZHF-PC
# 5.6. GetHostIP
function GetHostIP: String;
说明: 获取计算机IP地址 返回值: 字符String类型
- 示例 var
vHostIP:string;
Begin
vHostIP:= GetHostIP;
End;
2
3
4
运行结果: 192.168.1.100
# 5.7. GetMacAddress
function GetMacAddress: string;
说明: 获取计算机网卡地址 返回值: 字符String类型
- 示例
var
vHostMacAddress:string;
Begin
vHostMacAddress:= GetMacAddress;
End;
2
3
4
5
运行结果: 01:1A:1B:EF:0A:BC
# 5.8. GetPropValue
function GetPropValue(QControl:TComponent; QControlProp: string): Variant;
说明: 获取控件属性值 返回值: 变体Variant 类型
- GetPropValue函数语法中各部分说明
部分 | 说明 |
---|---|
QControl | 需要获取属性的控件 |
QControlProp | 控件属性名称 |
- 示例
var
vPropValue:variant;
begin
//获取窗体FThis.dbdts0FItemName对象的Name名称
vPropValue := GetPropValue(FThis.dbdts0FItemName,'Name');
Showmessage(vPropValue);
end;
2
3
4
5
6
7
# 5.9. MACToStr
function MACToStr(ByteArr: PByte; Len: Integer): String;
说明: MAC地址转字符串 返回值: 字符Srting类型
- MACToStr函数语法中各部分说明
部分 | 说明 |
---|---|
ByteArr | MAC地址 |
Len | 长度 |
- 示例
# 5.10. NetHttpGet
function NetHttpGet(Qurl: string): string;
说明: 获取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;
2
3
4
5
6
7
运行结果
# 5.11. NetHttpPost
function NetHttpPost(Qurl, QDataString: string): string;
说明: 提交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=
2
运行结果 收到新邮件
# 6. 模板窗体打开方式函数
# 6.1. ExpExcel
function ExpExcel(AComponent:TComponent;Const ACaption,ATitle:String;Const E:TDetailsExportEvent = nil):Boolean;
说明: 打开表格导出的对话框 返回值: 布尔Boolean类型
- ExpExcel函数语法中各部分说明
部分 | 说明 |
---|---|
AComponent | 要导出的数据表组件名称,在系统中名称通常为FThis.tbGriddtsx |
ACaption | 对话框标题栏显示的名称 |
ATitle | 导出的表格文件的名称 |
- 示例
begin
//指定的数据的序号,请查看菜单中的设计-模块设计-窗体设计中指定的序号,比如数据集的序号为1,则此处指定为tbGriddts1。
ExpExcel(FThis.tbGriddts1,'导出客户资料','客户资料',nil);
end;
2
3
4
运行结果
# 6.2. InputNumber
function InputNumber(AField: TField; ACantion: string = ''): Boolean;
说明: 数字输入小键盘 返回值: 布尔Boolean类型
- InputNumber函数语法中各部分说明
部分 | 说明 |
---|---|
AField | 指定数据集字段,数值型的字段 |
ACantion | 小键盘标签 |
- 示例
Begin
InputNumber(FThis.dts0.FieldByName('FInterID'),'请输入一个数字');
End;
2
3
运行结果
# 6.3. InputNumberR
function InputNumberR(var vStr: string; ACantion: string = ''): Boolean;
说明: 字符型变量输入小键盘 返回值: 布尔Boolean类型
- 函数语法中各部分说明
部分 | 说明 |
---|---|
vStr | 一个字符型变量 |
ACantion | 小键盘标签 |
- 示例
Var
vStr:String;
Begin
//带变量
vStr := '1234';
InputNumberR(vStr,'请输入字符串');
End;
2
3
4
5
6
7
运行结果
# 6.4. InputNumberStr
function InputNumberStr(AField: TField; ACantion: string = ''): Boolean;
说明: 字符串输入小键盘 返回值: 布尔Boolean类型
- InputNumberStr函数语法中各部分说明
部分 | 说明 |
---|---|
AField | 指定数据集字段,字段需要是字符型的 |
ACantion | 小键盘标签 |
- 示例
Begin
//字符型字段
InputNumberStr (FThis.dts0.FieldByName('FItemCode'),'请输入字符串');
End;
2
3
4
运行结果
# 6.5. MiniWebPage
function MiniWebPage(AUrl: String; ACaption: string = ''): TBaseWebPage;
说明: 以弹窗方式打开网页浏览页面。 返回值: 返回TBaseWebPage对象。
- 函数语法中各部分说明
部分 | 说明 |
---|---|
AUrl | 打开窗口默认加载的网页地址 |
ACaption | 打开窗口的标题 |
- 示例:
begin
MiniWebPage('http://192.168.0.113:8080','主页');
end.
2
3
# 6.6. ShowDBTreeView
function ShowDBTreeView(QModuleCode: String; QModuleCaption: string = ''; QbMulti: Boolean = false): TBaseDBTreeView;
说明: 树型模板打开方式 返回值: TBaseDBTreeView对象
- 函数语法中各部分说明
部分 | 说明 |
---|---|
QModuleCode | 模块代码 |
QModuleCaption | 模块标题,可以指定窗体打开时候的标签名称 |
QbMulti | 窗体是否可以多开 |
- 示例
Begin
//打开客户分类窗体,以下三种方式都是可以的,结果一样。
ShowDBTreeView('CustGroupList');
ShowDBTreeView('CustGroupList', '客户分类');
ShowDBTreeView('CustGroupList', '客户分类',false);
End;
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;
说明: 编辑模板的打开方式 返回值: TBaseEdit对象
- ShowEdit函数语法中各部分说明
部分 | 说明 |
---|---|
QModuleCode | 模块代码 |
QKeyID | 主键值 |
QContextForm | 上文窗体 |
QModuleCaption | 模块标题,可以指定窗体打开时候的标签名称 |
QbMulti | 窗体是否可以多开 |
QbFree | 关闭窗体时是否释放窗体 |
- 示例
Begin
//打开客户资料编辑窗体
ShowEdit ('CustEdit',FThis.dts1.FieldByName('FInterID').asString,FThis);
End;
2
3
4
# 6.8. ShowEditList
function ShowEditList(QModuleCode: String; QModuleCaption: string = ''; QbMulti: Boolean = false): TBaseEditList;
说明: 列表编辑模板打开方式 返回值: TBaseEditList 对象
- ShowEditList函数语法中各部分说明
部分 | 说明 |
---|---|
QModuleCode | 模块代码 |
QModuleCaption | 模块标题,可以指定窗体打开时候的标签名称 |
QbMulti | 窗体是否可以多开 |
QForm | 上文窗体 |
- 示例
Begin
//打开一个币种资料列表编辑窗体
ShowEditList('CurrencyList','币种资料');
End;
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;
说明: 带参数编辑模板打开方式 返回值: 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;
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;
说明: 数据统计模板打开方式 返回值: TBaseGroupTJ对象
- 函数语法中各部分说明
部分 | 说明 |
---|---|
QModuleCode | 模块代码 |
QModuleCaption | 模块标题,可以指定窗体打开时候的标签名称 |
QbMulti | 窗体是否可以多开 |
- 示例
Begin
//打开交叉报表
ShowGroupByList (' ReportStockBillMaster','化工料生产领用汇总表');
End;
2
3
4
# 6.11. ShowHandWrite
function ShowHandWrite(QData:string): string;
说明: 手写输入法 返回值: 字符串String类型
- ShowHandWrite函数语法中各部分说明
部分 | 说明 |
---|---|
QData | 一个默认的字符串,可以是原文本 |
- 示例
Var
vStr:String;
Begin
//显示手写板功能
vStr := ShowHandWrite ('');
End;
2
3
4
5
6
运行效果:
# 6.12. ShowHomePage
function ShowHomePage(QModuleCode: String; QModuleCaption: string = ''; QbMulti: Boolean = false): TBaseHomePage;
说明: 主页模板打开方式 返回值: TBaseHomePage
- 函数语法中各部分说明
部分 | 说明 |
---|---|
QModuleCode | 模块代码 |
QModuleCaption | 模块标题,可以指定窗体打开时候的标签名称 |
QbMulti | 窗体是否可以多开 |
- 示例
Begin
//打开主页
ShowHomePage(' HomePage_001','主页');
End;
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;
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;
2
3
4
# 6.14. ShowImportR
function ShowImportR(QModuleCode: String; QModuleCaption: string = ''; QDataSetNum: Integer = 0;QForm: TModuleFormBase = nil; QbFree: Boolean = false; QSQLFilter: String = ''): Boolean;
说明: 导入模板窗体打开方式(返回主键字符串) 返回值: 布尔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;
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;
说明: 列表模板打开方式 返回值: TBaseList对象
- ShowList函数语法中各部分说明
部分 | 说明 |
---|---|
QModuleCode | 模块代码 |
QModuleCaption | 模块标题,可以指定窗体打开时候的标签名称 |
QbMulti | 窗体是否可以多开 |
QForm | 上文窗体 |
- 示例
Begin
//打开一个客户列表窗体
ShowList('CustList','客户列表');
End;
2
3
4
# 6.16. ShowPivotGrid
function ShowPivotGrid(QModuleCode: String; QModuleCaption: string = ''; QbMulti: Boolean = false): TBasePivotGrid;
说明: 交叉报表模板打开方式 返回值: TBasePivotGrid
- ShowPivotGrid函数语法中各部分说明
部分 | 说明 |
---|---|
QModuleCode | 模块代码,模块设计中指定唯一模块代码 |
QModuleCaption | 模块标题,可以指定窗体打开时候的标签名称 |
QbMulti | 窗体是否可以多开 |
- 示例
Begin
//打开交叉报表
ShowPivotGrid('ReportSMPMaterialBillPivot','料单耗用表');
End;
2
3
4
# 6.17. ShowPlayer
function ShowPlayer(ACaption: string; AUrl: string = ''; ASimple:Boolean=false):TBasePlayer;
说明: 弹窗式打开视频播放页面 返回值: TBasePlayer对象
- ShowPlayer函数语法中各部分说明
部分 | 说明 |
---|---|
ACaption | 页面显示的标题 |
AUrl | 视频播放的地址 |
ASimple | 是否启用简单模式,在简单模式中窗口仅显示视频不显示视频控制区的按钮 |
- 示例
begin
//ShowPlayer('现场直播','rtmp://192.168.0.113/live/001');
ShowPlayer('视频播放','http://192.168.0.113:8080/sample.mp4');
end.
2
3
4
# 6.18. ShowPopup
function ShowPopup(QModuleCode: string; QKeyID: string; QContextForm: TModuleFormBase = nil;QModuleCaption: string = '';
QbMulti: Boolean = false; QbFree: Boolean = false): TBasePopup;
2
说明: 弹窗式编辑模板的打开方式 返回值: TBasePopup对象
- ShowPopup函数语法中各部分说明
部分 | 说明 |
---|---|
QModuleCode | 模块代码 |
QKeyID | 主键值 |
QContextForm | 上文窗体 |
QModuleCaption | 模块标题,可以指定窗体打开时候的标签名称 |
QbMulti | 窗体是否可以多开 |
QbFree | 关闭窗体时是否释放窗体 |
- 示例
Begin
//打开客户资料编辑窗体
ShowPopup('CustEdit',FThis.dts1.FieldByName('FInterID').asString,FThis);
End;
2
3
4
# 6.19. ShowSPList
function ShowSPList(QModuleCode: String; QModuleCaption: string = ''; QbMulti: Boolean = false; QForm: TModuleFormBase = nil): TBaseSPList;
说明: 存储过程模板列表打开方式 返回值: TBaseSPList对象
- ShowSPList函数语法中各部分说明
部分 | 说明 |
---|---|
QModuleCode | 模块代码 |
QModuleCaption | 模块标题,可以指定窗体打开时候的标签名称 |
QbMulti | 窗体是否可以多开 |
QForm | 上文窗体 |
- 示例
Begin
//打开存储过程模板列表。
ShowSPList(' ReportInvStockSFC ','化工料收发存汇总表');
End;
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;
说明: 在页面中打开网页。 返回值: TBaseWebPage对象。
- ShowWebPage函数语法中各部分说明
部分 | 说明 |
---|---|
AUrl | 网页地址 |
ACaption | 页面标题 |
QbMulti | 是否启用多页面模式,即系统中该模块只允许在一个网页页面标签中使用 |
- 示例:
begin
ShowWebPage('http://192.168.0.113:8805','EMS',True);
end.
2
3
# 7. 全局类函数
# 7.1. AppInfo
function AppInfo: TAppInfo;
说明: 平台信息类(平台及中间件连接信息) 返回值: TAppInfo类
- 示例
Begin
//读取程序名称
AppInfo.AppName;
End;
2
3
4
# 7.2. CommonDM
function CommonDM: TCommonModule;
说明: 全局常用数据类(目前只用来做全局多语言使用) 返回值: TCommonModule类
- 示例
Begin
//读取S_ButtonConfrim的多语言内容
CommonDM. GetLangString('S_ButtonConfrim');
End;
2
3
4
# 7.3. Company
function Company: TCompany;
说明: 公司资料类(公司信息) 返回值: TCompany类
- 示例
Begin
//获取公司繁体名称
Company. CompanyNameTW;
End;
2
3
4
# 7.4. InvSystemParams
function InvSystemParams: TInvSystemParams;
说明: 存货核算参数类(存货核算时单价和金额小数点位数、核算方式等信息) 返回值: TInvSystemParams类
- 示例
Begin
//读取存货核算金额小数点保留位数
InvSystemParams. AmountDecLen;
End;
2
3
4
# 7.5. SystemParams
function SystemParams: TSystemParams;
说明: 系统参数类(会计期间、单价和金额小数点位数等信息) 返回值: TSystemParams类
- 示例
Begin
//读取当前期间年份
SystemParams. CurrentYear;
End;
2
3
4
# 7.6. UserInfo
function UserInfo: TUserInfo;
说明: 用户信息类(操作员属性) **返回值:**TUserInfo类
- 示例
Begin
//调取用户名称
UserInfo.UserName;
//调取用户管理员标识
UserInfo.IsAdmin;
End;
2
3
4
5
6