自定程序
# FastERP-1 自定程序
# 1. 基类程序
基类程序在脚本中调用时,必须以FThis.开头。
# 1.1. ChangeStatusInfo
procedure ChangeStatusInfo; virtual;
说明: 设置窗体按钮状态(单据模式下有效)
示例
begin
//刷新窗体按钮状态
FThis.ChangeStatusInfo;
end;
2
3
4
# 1.2. DataSetMoveRowDown
procedure DataSetMoveRowDown(QDataSet: TRFDataSet; QSort: string =
'FEntryID');
2
说明: 数据集记录下移
DataSetMoveRowDown程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 指定一个需要操作的数据集对象 |
QSort | 排序字段名称,默认FEntryID |
- 示例
Begin
//下移记录
FThis.DataSetMoveRowDown(FThis.dts1);
End;
2
3
4
# 1.3. DataSetMoveRowUp
procedure DataSetMoveRowUp(QDataSet: TRFDataSet; QSort: string =
'FEntryID');
2
说明: 数据集记录上移
DataSetMoveRowUp程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 指定一个需要操作的数据集对象 |
QSort | 排序字段名称,默认FEntryID |
- 示例
Begin
//上移记录
FThis.DataSetMoveRowUp(FThis.dts1);
End;
2
3
4
# 1.4. DataSetRowCopy
procedure DataSetRowCopy(QDataSet: TRFDataSet);
说明: 复制一条数据集记录
DataSetRowCopy程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 指定一个需要操作的数据集对象 |
- 示例
Begin
//复制一条记录
FThis.DataSetRowCopy (FThis.dts1);
End;
2
3
4
# 1.5. DeleteFiles
procedure DeleteFiles(QiData: Integer);
说明: 删除文件
DeleteFiles程序语法中各部分说明
部分 | 说明 |
---|---|
QiData | 数据集索引号,文件删除后,同时删除数据集中对应的记录。 |
- 示例
begin
//删除文件
FThis.DeleteFiles (0);
end;
2
3
4
# 1.6. DoAllRecords
procedure DoAllRecords(QDataSet: Integer = 0); virtual;
说明: 显示全部记录
DoAllRecords程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 数据集索引 |
- 示例
Begin
//显示数据集全部记录
FThis.DoAllRecords(0);
end;
2
3
4
# 1.7. DoBillBusiness
procedure DoBillBusiness(AFlag: String); virtual;
说明: 业务处理
DoBillBusiness程序语法中各部分说明
部分 | 说明 |
---|---|
AFlag | 业务操作标识 如:Check、UnCheck等 |
- 示例
begin
//执行业务处理Change,DoBillBusiness会调用窗体邦定的存储过程。
FThis.DoBillBusiness('Change');
end;
2
3
4
# 1.8. DoChange
procedure DoChange; virtual;
- **说明:**变更单据
# 1.9. DoCheck
procedure DoCheck; virtual;
- 说明: 审核单据,使FStatus=2
# 1.10. DoClose
procedure DoClose; virtual;
- 说明: 关闭窗体
# 1.11. DoClosed
procedure DoClosed; virtual;
- 说明: 关闭单据,使FClosed=1
# 1.12. DoCopyNew
procedure DoCopyNew; virtual;
- **说明:**复制单据
# 1.13. DoDel
procedure DoDel; virtual;
- 说明: 删除数据
# 1.14. DoDown
procedure DoDown(QDataSet: Integer = 0); virtual;
说明: 下一条记录
DoDown程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 数据集索引 |
- 示例
Begin
//定位到当前记录的下一条记录
FThis.DoDown(0);
end;
2
3
4
# 1.15. DoEdit
procedure DoEdit; virtual;
- 说明: 编辑单据
# 1.16. DoFirst
procedure DoFirst(QDataSet: Integer = 0); virtual;
说明: 第一条记录
DoFirst程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 数据集索引 |
- 示例
Begin
//定位到数据集第一条记录
FThis.DoFirst(0);
end;
2
3
4
# 1.17. DoLast
procedure DoLast(QDataSet: Integer = 0); virtual;
说明: 最末尾记录
DoLast程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 数据集索引 |
- 示例
Begin
//定位到数据集当前记录的最末尾记录
FThis.DoDown(0);
end;
2
3
4
# 1.18. DoNew
procedure DoNew; virtual;
说明: 新增单据或记录
示例
Begin
代码片段1…
FThis.DoNew;
代码片段2…
end;
2
3
4
5
# 1.19. DoQuickPrint
procedure DoQuickPrint; virtual;
- 说明: 报表快速打印,不会有打印对话框,直接打印到默认打印机
# 1.20. DoPrint
procedure DoPrint; virtual;
- 说明: 报表打印,会有打印对话框
# 1.21. DoRecover
procedure DoRecover; virtual;
- 说明: 还原单据,使FStatus=1
# 1.22. DoRefresh
procedure DoRefresh; virtual;
- 说明: 刷新数据
# 1.23. DoRevoke
procedure DoRevoke; virtual;
- 说明: 作废单据,使FStatus=0
# 1.24. DoSave
procedure DoSave; virtual;
- 说明: 保存数据
# 1.25. DoSelectAll
procedure DoSelectAll(QDataSet: Integer = 0); virtual;
说明: 全选
DoSelectAll程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 数据集索引 |
- 示例
Begin
//将数据集中所有记录的FSelected字段赋值True,表示选中。
FThis.DoSelectAll(0);
end;
2
3
4
# 1.26. DoSelectReverse函数
procedure DoSelectReverse(QDataSet: Integer = 0); virtual;
说明: 反选
DoSelectReverse程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 数据集索引 |
- 示例
Begin
//将数据集中所有记录的FSelected字段值进行或运算,True变成False,False变成True。
FThis.DoSelectReverse(0);
end;
2
3
4
# 1.27. DoSelectNot
procedure DoSelectNot(QDataSet: Integer = 0); virtual;
说明: 不选
DoSelectNot程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 数据集索引 |
- 示例
Begin
//将数据集中所有记录的FSelected字段赋值False。
FThis.DoSelectNot(0);
end;
2
3
4
# 1.28. DoUnCheck
procedure DoUnCheck; virtual;
- 说明: 消审单据,使FStatus=1
# 1.29. DoUnClosed
procedure DoUnClosed; virtual;
- 说明: 取消关闭单据,使FClosed=0
# 1.30. DoUp
procedure DoUp(QDataSet: Integer = 0); virtual;
说明: 上一条记录
DoUp程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 数据集索引 |
- 示例
Begin
//定位到当前记录的上一条记录
FThis.DoUp (0);
end;
2
3
4
# 1.31. DownLoadFiles
procedure DownLoadFiles(QiData: Integer; const RunFile: Boolean);
说明: 下载文件
DownLoadFiles程序语法中各部分说明
部分 | 说明 |
---|---|
QiData | 数据集索引号,文档记录数据集 |
RunFile | 下载后是否立即打开文档,默认True |
- 示例
begin
//下载文件并打开
FThis.DownLoadFiles(0);
end;
2
3
4
# 1.32. DoPreview
procedure DoPreview; virtual;
- **说明:**报表预览
# 1.33. GetCLInvData
procedure GetCLInvData(QMasterDataSet, QDetailDataSet, QMDDataSet:
TSQModuleDataSet;QMasterDataSetSQL, QDetailDataSetSQL, QMDDataSetSQL,
QKeyIDList: String; QForm: TModuleFormBase;bTrans: Boolean = true);
2
3
说明: 根据SQL获取库存数据传递到出库单上(主表、明细表、码单表) 印染纺织版本专用
GetCLInvData程序语法中各部分说明
部分 | 说明 |
---|---|
QMasterDataSet | 目标窗体主表数据集 |
QDetailDataSet | 目标窗体明细表数据集 |
QMDDataSet | 目标窗体码单表数据集 |
QMasterDataSetSQL | 用来生成主表数据集内容的SQL字符串 |
QDetailDataSetSQL | 用来生成明细表数据集内容的SQL字符串 |
QMDDataSetSQL | 用来生成码单表数据集内容的SQL字符串 |
QKeyIDList | 关键值字符串 |
QForm | 目标窗体 |
bTrans | 当字段不为空时是否传递内容。 |
- 示例
var
vStr:String;
vSQL1,vSQL2,vSQL3:string;
begin
FThis.dts0.Edit;
FTHis.dts0.Post;
FThis.dts0.Edit;
//获取库存记录的关键字值的字符串
ShowImportR('CLIInvBalListSelect','选择坯布库存',0,FThis,false);
vStr := FThis.dts0.keyList;
if vStr = '' then exit;
if VStr <> '' then
begin
vStr := '('+vStr+')';
vSQL1 := DBFUN.GetStrBySQL('SELECT FSQL FROM dbo.Dict_TransSQL WHERE FSQLCode =
''SQL_CLStockBillMaster''');
vSQL2 := DBFUN.GetStrBySQL('SELECT FSQL FROM dbo.Dict_TransSQL WHERE FSQLCode =
''SQL_CLStockBillDetail''');
vSQL3 := DBFUN.GetStrBySQL('SELECT FSQL FROM dbo.Dict_TransSQL WHERE FSQLCode =
''SQL_CLStockBillMD''');
//调用过程进行数据数据传递
GetCLInvData(FThis.dts0,FThis.dts1,FThis.dts2,vSQL1,vSQL2,vSQL3,vStr,FThis);
FThis.dts0.keyList :='';
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
# 1.34. MultiPrint
procedure MultiPrint(QDBGridView: TcxGridDBTableView; QKeyField: string;
QType: Integer = 3);
2
说明: 表格多选批量打印
MultiPrint程序语法中各部分说明
部分 | 说明 |
---|---|
QDBGridView | 指定一个Grid表格对象 如:FThis.tbGriddts0 |
QKeyField | 关键值字段名称,取Grid表格记录关键字值,如 FInterID |
QType | 类型,QType=1 直接打印,QType=2 显示打印属性对话框,QType=3 预览打印 |
- 示例
Begin
//数据集中必须要有FInterID 字段。
//直接打印
FTHis.MultiPrint(FThis.tbGriddts0,'FInterID',1);
//显示打印属性对话框,再打印
FTHis.MultiPrint(FThis.tbGriddts0,'FInterID',2);
//显示打印属性对话框,预览后再打印
FTHis.MultiPrint(FThis.tbGriddts0,'FInterID',3);
end;
2
3
4
5
6
7
8
9
# 1.35. NotMeOperate
procedure NotMeOperate;
说明: 非制单人不得操作
示例
Begin
//非制单人不得对单据做任何修改。
FTHis.NotMeOperate;
代码片段…
end;
2
3
4
5
# 1.36. OpenCurr
procedure OpenCurr;
- 说明: 重新读取窗体数据集数据
# 1.37. OpenEdit
procedure OpenEdit(QModuleCode: string; QkeyID: string); virtual;
说明: 打开编辑窗体
OpenEdit程序语法中各部分说明
部分 | 说明 |
---|---|
QModuleCode | 指定一个模块代码 如:CustEdit |
QkeyID | 指定一个主键值 |
- 示例
begin
//打开一个模板编号为CustEdit主键值是11201的编辑窗体。
FThis.OpenEdit('CustEdit', '11201');
end;
2
3
4
5
# 1.38. OpenNextContext
procedure OpenNextContext(QMode: string = '');
说明: 打开下文窗体
OpenNextContext程序语法中各部分说明
部分 | 说明 |
---|---|
QMode | 打开方式,QMode='', QMode='EDIT ' |
- 示例
begin
//打开一个空的下文窗体
FThis.OpenNextContext;
//打开一个下文窗体,主键值为当前窗体的主键值
FThis.OpenNextContext('EDIT');
end;
2
3
4
5
6
# 1.39. PageCount
procedure PageCount(QDataSet: TSQModuleDataSet);
- 说明: 数据集分页信息
# 1.40. PostData
procedure PostData(QDataSet: TRFDataSet);
说明: 提交数据集
PostData程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 指定一个需要Post的数据集对象 |
- 示例
begin
//dts0数据集Post
FThis.PostData(FThis.dts0);
//也可以这样写
if FThis.dts0.State in dsEditModes then
FThis.dts0.Post;
end;
2
3
4
5
6
7
# 1.41. PrintNotOperate
procedure PrintNotOperate;
说明: 打印后不得修改
示例
Begin
//如果单据已经打印过,则取消后面所有操作。
FTHis.PrintNotOperate;
代码片段…
end;
2
3
4
5
# 1.42. SelectPrint
procedure SelectPrint(QDataSet: TRFDataSet; FSelectField: string =
'FSelected'; QPerView: Boolean = true);
2
说明: 选择打印
SelectPrint程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 指定一个打印数据集 |
FSelectField | 指定一个打印数据集中表示选中状态的字段名称,默认FSelected |
QPerView | 是否预览,默认True |
- 示例
Begin
FTHis.SelectPrint (FThis.dts0);
end;
2
3
# 1.43. SetBookMark
procedure SetBookMark(QDataSet: TRFDataSet; QBK: Integer);
说明: 设置数据集书签
SetBookMark程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 指定一个需要设置书签的数据集 |
QBK | 书签操作类型 0,1,2 |
- 示例
Begin
//获取数据集当前书签记录位置
FTHis.SetBookMark(FThis.dts0,1);
代码片段…
//回到原书签记录位置
FTHis.SetBookMark(FThis.dts0,2);
代码片段…
end;
2
3
4
5
6
7
8
# 1.44. SetContextDataValue
procedure SetContextDataValue(QiData: Integer; QFieldName: string; QVar:
Variant);
2
说明: 上文窗体数据集字段赋值
SetContextDataValue程序语法中各部分说明
部分 | 说明 |
---|---|
QiData | 目标数据集索引号 |
QFieldName | 目标数据字段名称 |
QVar | 赋值内容 |
- 示例
Var
v:variant;
begin
//将12345 赋值给上文窗体数据集dts0中的FInterID字段
v:=12345;
FThis.SetContextDataValue(0,’FInterID’, v);
end;
2
3
4
5
6
7
# 1.45. SetCurrID
procedure SetCurrID(const value: string); virtual;
说明: 设置主键值
SetCurrID程序语法中各部分说明
部分 | 说明 |
---|---|
value | 主键值 |
# 1.46. SetDataValue
procedure SetDataValue(QiData: Integer; QFieldName: string; QValue:
Variant);
2
说明: 设置数据集字段值
SetDataValue程序语法中各部分说明
部分 | 说明 |
---|---|
QiData | 指定一个数据集对象 |
QFieldName | 指定一个数据集字段的名称 |
QValue | 数据值内容 |
- 示例
begin
//对dts0数据集FName字段赋值AABB
FThis.SetDataValue (FThis.dts0,'FName', 'AABB');
end;
2
3
4
# 1.47. SetModified
procedure SetModified(AModified: Boolean); virtual;
说明: 设置窗体状态
SetModified程序语法中各部分说明
部分 | 说明 |
---|---|
AModified | 窗体状态 |
- 示例
begin
//执行业务处理Change,DoBillBusiness会调用窗体邦定的存储过程。
FThis.SetModified (Fasle);
end;
2
3
4
# 1.48. SetUserRight
procedure SetUserRight;
- 说明: 读取操作员权限数据
# 1.49. TransMethod
procedure TransMethod(QfrmBase: TModuleFormBase; QKeyField: TField;
QMethodCode: string);
2
说明: 数据传递方案
TransMethod程序语法中各部分说明
部分 | 说明 |
---|---|
QfrmBase | 目标窗体对象 |
QKeyField | 关键值对象字段 |
QMethodCode | 传递方案编号,来自传递方案辅助设置 |
- 示例
Begin
//调用TRA_CustToManMo传递方案进行数据传递
FThis.TransMethod(FThis, Fthis.dts0.FieldByName('FCustID'), 'TRA_CustToManMo');
end;
2
3
4
# 1.50. TransSQLToDataSet
procedure TransSQLToDataSet(QSQLs: UnicodeString; QDataSets:
TSQModuleDataSet; bTrans: Boolean = true);
2
说明: SQL通用数据传递
TransSQLToDataSet程序语法中各部分说明
部分 | 说明 |
---|---|
QSQLs | SQL字符串,用来获取源数据 |
QDataSets | 目标数据集,需要接收数据的数据集对象 |
bTrans | 当目标字段不为空时,是否进行覆盖 |
- 示例
Var
vSQL:string;
Begin
vSQL:= 'select * from Basic_Process Order By FEntryID';
//将SQL语句执行结果传递到数据集dts1上
FThis.TransSQLToDataSet(vSQL,FThis.dts1);
End;
2
3
4
5
6
7
# 1.51. UploadFiles
procedure UploadFiles(QiData: Integer; QSingle: Boolean = true; QFilter:
string = '');
2
说明: 文件上传
UploadFiles程序语法中各部分说明
部分 | 说明 |
---|---|
QiData | 上传文件用来保存记录的数据集索引号 |
QSingle | 是否批量上传,默认True |
QFilter | 指定文件扩展名 如 *.txt |
- 示例
begin
//上传文件
FThis.UploadFiles(0,false,'');
end;
2
3
4
# 2. DBFun程序
DBFun程序在脚本中调用时,必须以DBFun.开头。
# 2.1. CheckEmpty
procedure CheckEmpty(QDataSet: TSQModuleDataSet);
说明: 数据集字段检空
CheckEmpty程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 指定一个需要操作的数据集对象 |
- 示例
begin
//数据集字段检空
DBFun.CheckEmpty(FThis.dts1);
end;
2
3
4
# 2.2. CheckRepeat
procedure CheckRepeat(QDataSet: TSQModuleDataSet);
说明: 数据集字段检重
CheckRepeat程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 指定一个需要操作的数据集对象 |
- 示例
begin
//数据集字段检重
DBFun.CheckRepeat(FThis.dts1);
end;
2
3
4
# 2.3. CopyStructure
procedure CopyStructure(ASourceDataSet, ATargetDataSet: TSQModuleDataSet);
说明: 复制数据集结构
CopyStructure程序语法中各部分说明
部分 | 说明 |
---|---|
ASourceDataSet | 源数据集 |
ATargetDataSet | 目标数据集 |
# 2.4. CreateTableToSqlScript
procedure CreateTableToSqlScript(ATable, AKeyFiled, ACurrID: string;
AFileName: string = '');
2
说明: 将表数据导出
CreateTableToSqlScript程序语法中各部分说明
部分 | 说明 |
---|---|
ATable | 数据表名 |
AKeyFiled | 主键字段名 |
ACurrID | 主键值 |
AFileName | 导出文件名称 |
- 示例
begin
//导出Basic_Item表的全部数据
DBFun.CreateTableToSqlScript('Basic_Item','','');
//导出Basic_Item表主键值为123的数据
DBFun.CreateTableToSqlScript('Basic_Item','FInterID','123','');
//导出Basic_Item表的全部数据,并指定文件名称
DBFun.CreateTableToSqlScript('Basic_Item','','Data_Basic_Item');
end;
2
3
4
5
6
7
8
# 2.5. DataSetMoveRowUp
procedure DataSetMoveRowUp(QDataSet: TRFDataSet; QSort: string =
'FEntryID');
2
说明: 记录上移
DataSetMoveRowUp程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 指定一个需要操作的数据集对象 |
QSort | 数据集排序字段名称,默认是FEntryID |
- 示例
begin
//上移记录
DBFun.DataSetMoveRowUp(FThis.dts1);
end;
2
3
4
# 2.6. DataSetMoveRowDown
procedure DataSetMoveRowDown(QDataSet: TRFDataSet; QSort: string =
'FEntryID');
2
- 说明: 记录下移
DataSetMoveRowDown程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 指定一个需要操作的数据集对象 |
QSort | 数据集排序字段名称,默认是FEntryID |
- 示例
begin
//下移记录
DBFun.DataSetMoveRowDown (FThis.dts1);
end;
2
3
4
# 2.7. DataSetRowCopy
procedure DataSetRowCopy(QDataSet: TRFDataSet);
说明: 复制一条记录
DataSetRowCopy程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 指定一个需要操作的数据集对象 |
- 示例
begin
//复制一条记录
DBFun.DataSetRowCopy (FThis.dts1);
end;
2
3
4
# 2.8. DataSetSort
procedure DataSetSort(QDataSet: TRFDataSet; QSort: string = 'FEntryID');
说明: 数据集排序
DataSetSort程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 指定一个需要操作的数据集对象 |
QSort | 数据集排序字段名称,默认是FEntryID |
- 示例
begin
//复制一条记录
DBFun.DataSetSort(FThis.dts1);
end;
2
3
4
# 2.9. FillComboBox
procedure FillComboBox(QControl: TComboBox; strFillSQL: string;
AWithEmptyRow: Boolean);
2
说明: 填充TComboBox下拉控件
FillComboBox程序语法中各部分说明
部分 | 说明 |
---|---|
QControl | 指定一个需要填充数据的TComboBox对象 |
strFillSQL | 指定一个SQL字符串,用来获取填充数据 |
AWithEmptyRow | 是否需要填充一条空记录 |
# 2.10. FillcxComboBox
procedure FillcxComboBox(QControl: TcxComboBox; strFillSQL: string;
AWithEmptyRow: Boolean);
2
说明: 填充TcxComboBox下拉控件
FillcxComboBox程序语法中各部分说明
部分 | 说明 |
---|---|
QControl | 指定一个需要填充数据的TcxComboBox对象 |
strFillSQL | 指定一个SQL字符串,用来获取填充数据 |
AWithEmptyRow | 是否需要填充一条空记录 |
# 2.11. FillcxGridDBViewCol
procedure FillcxGridDBViewCol(QControl: TcxGridDBColumn; strFillSQL: string;
AWithEmptyRow: Boolean);
2
说明: 填充TcxGridDBColumn表格列下拉控件
FillcxGridDBViewCol程序语法中各部分说明
部分 | 说明 |
---|---|
QControl | 指定一个需要填充数据的TcxGridDBColumn数据表格列对象 |
strFillSQL | 指定一个SQL字符串,用来获取填充数据 |
AWithEmptyRow | 是否需要填充一条空记录 |
# 2.12. FillDBComboBox
procedure FillDBComboBox(QControl: TcxDBComboBox; strFillSQL: string;
AWithEmptyRow: Boolean);
2
说明: 填充TcxDBComboBox下拉控件
FillDBComboBox程序语法中各部分说明
部分 | 说明 |
---|---|
QControl | 指定一个需要填充数据的TcxDBComboBox对象 |
strFillSQL | 指定一个SQL字符串,用来获取填充数据 |
AWithEmptyRow | 是否需要填充一条空记录 |
# 2.13. FillDBImageComboBox
procedure FillDBImageComboBox(QControl: TcxDBImageComboBox; sSQL: string;
AWithEmptyRow: Boolean);
2
说明: 填充TcxDBImageComboBox下拉控件
FillDBImageComboBox程序语法中各部分说明
部分 | 说明 |
---|---|
QControl | 指定一个需要填充数据的TcxDBImageComboBox对象 |
sSQL | 指定一个SQL字符串,用来获取填充数据 |
AWithEmptyRow | 是否需要填充一条空记录 |
- 示例
Var
vSQL:String;
begin
//填充数据SQL,值字段别名必须是FInterID,显示内容必须是FName 别名
vSQL:= 'Select FInterID,FWhsName as FName from Basic_Whs';
DBFun.FillDBImageComboBox(FThis.dbdts0FStockID, vSQL,True);
end;
2
3
4
5
6
7
# 2.14. FillImageComboBox
procedure FillImageComboBox(QControl: TcxImageComboBox; sSQL: string;
AWithEmptyRow: Boolean);
2
说明: 填充TcxImageComboBox下拉控件
FillImageComboBox程序语法中各部分说明
部分 | 说明 |
---|---|
QControl | 指定一个需要填充数据的TcxImageComboBox对象 |
sSQL | 指定一个SQL字符串,用来获取填充数据 |
AWithEmptyRow | 是否需要填充一条空记录 |
# 2.15. LoadDataFromDataSet
procedure LoadDataFromDataSet(ASource: TSQModuleDataSet; ATarget:
TSQModuleDataSet; ARecordCount: Integer = -1;ALoadDataType: TLoadDataType =
ldtCopyData; bCopyBill: Boolean = False);
2
3
说明: 数据集传递
LoadDataFromDataSet程序语法中各部分说明
部分 | 说明 |
---|---|
ASource | 源数据集 |
ATarget | 目标数据集 |
ARecordCount | 数据拷贝记录数 |
ALoadDataType | 数据拷贝类型(ldtCopyData, ldtCopyStruct, ldtStructAndData, ldtAppend); |
bCopyBill | 是否是单据拷贝 |
# 2.16. RepUpdateValue
procedure RepUpdateValue(QDataSet: TSQModuleDataSet);
说明: 数据集字段值更新
RepUpdateValue程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 指定一个需要操作的数据集对象 |
- 示例
begin
//数据集字段值更新,模块设计中字段信息的[默认值]列的内容设置为-1
//比如单据里有一个最后修改日期,当我们修改过单据保存时,这样最后修改日期就变成最新日期
DBFun.RepUpdateValue(FThis.dts1);
end;
2
3
4
5
# 2.17. SelectDataSetRecords
procedure SelectDataSetRecords(QDataSet: TRFDataSet; QSelectedType: string;
QSelectField: string = 'FSelected');
2
- SelectDataSetRecords程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 指定一个需要操作的数据集对象 |
QSelectedType | 操作类型(ALL,NO,OR) |
QSelectField | 选择状态字段的名称 |
- 示例
begin
//选中数据集dts1中的所有记录,FSelected = True
DBFun.SelectDataSetRecords(FThis.dts1, 'ALL', 'FSelected');
end;
2
3
4
# 2.18. SetData
Procedure SetData(QSourceDataSet, QTargetDataSet: TRFDataSet);
说明: 数据集对拷
SetData程序语法中各部分说明
部分 | 说明 |
---|---|
QSourceDataSet | 源数据集 |
QTargetDataSet | 目标数据集 |
- 示例
Var
vTargetDataSet: TRFDataSet;
begin
//将dts0数据集数据拷贝给vTargetDataSet
vTargetDataSet:= TRFDataSet.Create(nil);
DBFun.SetData(FThis.dts0, vTargetDataSet);
end;
2
3
4
5
6
7
# 2.19. SetDataParamValue
procedure SetDataParamValue(QDataSet: TRFDataSet; QIndex: Integer; QVar:
Variant);
2
说明: 数据集参数赋值
SetDataParamValue程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 指定一个需要操作的数据集对象 |
QIndex | 数据集参数索引号 |
QVar | 参数值 |
- 示例
begin
//数据集参数赋值
DBFun.SetDataParamValue(FThis.dts1,0, '123');
end;
2
3
4
# 2.20. SetDataViewRight
procedure SetDataViewRight(QDataSet: TSQModuleDataSet);
说明: 数据集数据权限解析
SetDataViewRight程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 指定一个TSQModuleDataSet数据集对象 |
- 示例
Var
vData:string;
begin
vData := TSQModuleDataSet.Create(nil);
try
vData.Connection := MainModule.SQDBConnection;
vData.SQL.Text := 'Select * from Basic_Whs '+#13+#10'
+’--VIEWDATA=FWhsName'
DBFun.SetDataViewRight(vData);
vData.Open;
finally
vData.free;
end;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
# 2.21. SetField
procedure SetField(QSourceField: TField; QTargetField: TField);
说明: 字段值拷贝
程序语法中各部分说明
部分 | 说明 |
---|---|
QsourceField | 源字段 |
QTargetField | 目标字段 |
- 示例
begin
DBFun.SetFieldValue(FThis.dts1.FieldBy('FNote'), '备注说明')
end;
2
3
# 2.22. SetFieldBool
procedure SetFieldBool(QField: TField; QValue: Boolean);
说明: 字段赋值 布尔类型
SetFieldBool程序语法中各部分说明
部分 | 说明 |
---|---|
QField | 指定一个数据集字段 |
QValue | 指定赋值内容 |
- 示例
begin
DBFun.SetFieldBool(FThis.dts1.FieldBy('FSelected'), true)
end;
2
3
# 2.23. SetFieldFloat
procedure SetFieldFloat(QField: TField; QValue: Double);
说明: 字段赋值 浮点类型
SetFieldFloat程序语法中各部分说明
部分 | 说明 |
---|---|
QField | 指定一个数据集字段 |
QValue | 指定赋值内容 |
- 示例
begin
DBFun.SetFieldFloat(FThis.dts1.FieldBy('FPrice'), 12.38)
end;
2
3
# 2.24. SetFieldInt
procedure SetFieldInt(QField: TField; QValue: Integer);
说明: 字段赋值 整型
SetFieldInt程序语法中各部分说明
部分 | 说明 |
---|---|
QField | 指定一个数据集字段 |
QValue | 指定赋值内容 |
- 示例
begin
DBFun.SetFieldInt(FThis.dts1.FieldBy('FCount'), 108)
end;
2
3
# 2.25. SetFieldStr
procedure SetFieldStr(QField: TField; QValue: string);
说明: 字段赋值 字符类型
SetFieldStr程序语法中各部分说明
部分 | 说明 |
---|---|
QField | 指定一个数据集字段 |
QValue | 指定赋值内容 |
- 示例
begin
DBFun.SetFieldStr(FThis.dts1.FieldBy('FNote'), '说明1');
end;
2
3
# 2.26. SetFieldTime
procedure SetFieldTime(QField: TField; QValue: TDateTime);
说明: 字段赋值 日期时间型
SetFieldTime程序语法中各部分说明
部分 | 说明 |
---|---|
QField | 指定一个数据集字段 |
QValue | 指定赋值内容 |
- 示例
begin
DBFun.SetFieldTime (FThis.dts1.FieldBy('FDate'), Now())
end;
2
3
# 2.27. SetFieldValue
procedure SetFieldValue(QField: TField; QValue: Variant);
说明: 字段赋值 变体类型
SetFieldValue程序语法中各部分说明
部分 | 说明 |
---|---|
QField | 指定一个数据集字段 |
QValue | 指定赋值内容 |
- 示例
begin
DBFun.SetFieldValue(FThis.dts1.FieldBy('FNote'), '备注说明');
end;
2
3
# 2.28. SetPictureFileToFieldBlob
Procedure SetPictureFileToFieldBlob(QFileName: string; QFiled: TField);
说明: 将图片保存到数据字段
程序语法中各部分说明
部分 | 说明 |
---|---|
QFileName | 图片名称,来自文件 |
QFiled | 数据集字段 |
- 示例
begin
//将c:\\Temp.jpg,保存到数据字段 FPicture中
DBFun.SetPictureFileToFieldBlob('c:\\Temp.jpg',FThis.dts0.FieldByName('FPicture'));
end;
2
3
4
# 2.29. SetProcParamVale
procedure SetProcParamVale(AStoredProc: TRFStoredProc; AParam, AValue:
string);
2
说明: RFStoredProc参数赋值
SetProcParamVale程序语法中各部分说明
部分 | 说明 |
---|---|
AStoredProc | 指定一个TRFStoredProc存储过程对象 |
AParam | 参数名称 |
AValue | 参数值 |
- 示例
Var
AStoredProc**:**TRFStoredProc;
vDataID:string;
Begin
AStoredProc := TRFStoredProc.Create(nil);
AStoredProc.Connection := DB.SQDBConnection;
Try
//指定存储过程名称
AStoredProc.StoredProcName := 'sp_Inv_CLStockBill';
vDataID:= DataSetList[0].
FieldByName(DataSetList[0].UpdateOptions.KeyFields).AsString;
AStoredProc.Prepare;
if AStoredProc.Prepared then
begin
//存储过程参数赋值
DBFun.SetProcParamVale(AStoredProc, 'ProcID',AFlag);
DBFun.SetProcParamVale(AStoredProc, 'DataID ',vDataID);
DBFun.SetProcParamVale(AStoredProc, 'UserID ',UserInfo.UserName);
Try
//执行存储过程
AStoredProc.ExecProc;
except
on E: Exception do
begin
E.message;
End;
End;
End;
finally
AStoredProc.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
25
26
27
28
29
30
31
32
# 2.30. ShowTrayHint
procedure ShowTrayHint(const AText: string; const ACaption: string = '';
AImageIndex: Integer= 0);
2
说明: 右下角消息提示框
ShowTrayHint程序语法中各部分说明
部分 | 说明 |
---|---|
AText | 消息内容 |
ACaption | 消息框标题 |
- 示例
begin
DBFun.ShowTrayHint('6号定型机1节温度超过80度!', '警告',0);
end;
2
3
# 2.31. TransFieldValue
procedure TransFieldValue(ASource: TRFDataSet; ATarget: TRFDataSet;
ATransFieldList: String);
2
说明: 根据指定字段数据集记录拷贝
TransFieldValue程序语法中各部分说明
部分 | 说明 |
---|---|
ASource | 源数据集 |
ATarget | 目标数据集 |
ATransFieldList | 需要拷贝的字段 |
- 示例
begin
//指定字段进行数据拷贝,将dts0拷贝到dts1
DBFun.TransFieldValue(FThis.dts0,FThis.dts1, 'FInterID;FCustID;FCustName');
end;
2
3
4
# 2.32. TransSQLToDataSet
procedure TransSQLToDataSet(QSQLs: TArrayaString; QDataSets: array of
TSQModuleDataSet; bTrans: Boolean = True);
2
# 3. DM程序
DM程序在脚本中调用时,必须以DM.开头。
# 3.1. CreateSQDataSet
procedure CreateSQDataSet(var QDataSet: TRFDataSet; AOwner: TComponent =
nil);
2
说明: 创建数据集对象
程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 数据集变量 |
AOwner | 所有者 |
- 示例
Var
vDataSet:TRFDataSet;
begin
//创建vDataSet对象
DM.CreateSQDataSet(vDataSet,nil);
//下面创建方法与CreateSQDataSet效果一样
vDataSet:= TRFDataSet.Create(nil);
vDataSet.Connection := DM.SQDBConnection;
end;
2
3
4
5
6
7
8
9
# 3.2. CreateSQModuelDataSet
procedure CreateSQModuelDataSet(var QDataSet: TSQModuleDataset; AOwner:
TComponent = nil);
2
说明: 创建数据集对象
程序语法中各部分说明
部分 | 说明 |
---|---|
QDataSet | 数据集变量 |
AOwner | 所有者 |
- 示例
Var
vDataSet:TSQModuleDataset;
begin
//创建vDataSet对象
DM.CreateSQModuleDataset(vDataSet,nil);
//下面创建方法与CreateSQModuelDataSet效果一样
vDataSet:= TRFDataSet.Create(nil);
vDataSet.Connection := DM.SQDBConnection;
end;
2
3
4
5
6
7
8
9
# 3.3. GetCompany
procedure GetCompany;
- 说明: 刷新公司信息
# 3.4. GetSystemParams
procedure GetSystemParams;
- 说明: 刷新系统参数设置
# 3.5. GetUserInfo
procedure GetUserInfo;
- 说明: 刷新用户信息
# 3.6. GetInvSystemParams
procedure GetInvSystemParams;
- 说明: 刷新存货核算参数设置
# 3.7. InitDataBase
procedure InitDataBase;
- 说明: 刷新系统(模块数据、配置数据、操作员信息、公司信息、系统设置…)
# 3.8. LoadCacheData
procedure LoadCacheData;
- 说明: 刷新缓存数据
# 3.9. LoadMsgLang
Procedure LoadMsgLang;
- 说明: 刷新自定消息配置
# 4. PaxScript注册程序
# 4.1. MasterSlaveTrans
procedure MasterSlaveTrans(QMasterDataSet, QDetailDataSet, QChildDataSet:
TSQModuleDataSet;QMasterDataSetSQL, QDetailDataSetSQL, QChildDataSetSQL,
QKeyIDList, MasterKeyFieldName, SlaveKeyFieldName: String;QForm:
TModuleFormBase; bTrans: Boolean = true);
2
3
4
说明: 通用主从表传递方案
MasterSlaveTrans程序语法中各部分说明
部分 | 说明 |
---|---|
QMasterDataSet | 目标窗体主表数据集 |
QDetailDataSet | 目标窗体从表数据集 |
QChildDataSet | 目标窗体子表数据集 |
QMasterDataSetSQL | 用来生成主表数据集内容的SQL字符串 |
QDetailDataSetSQL | 用来生成从表数据集内容的SQL字符串 |
QChildDataSetSQL | 用来生成子表数据集内容的SQL字符串 |
QKeyIDList | 关键值字符串 |
MasterKeyFieldName | 从表主键字段名称 |
SlaveKeyFieldName | 子表外键字段名称 |
QForm | 目标窗体 |
bTrans | 当字段不为空时是否传递内容。 |
- 示例
var
vStr:String;
vSQL1,vSQL2,vSQL3:string;
begin
FThis.dts0.Edit;
FTHis.dts0.Post;
FThis.dts0.Edit;、
//获取库存记录的关键字值的字符串
ShowImportR('CLIInvBalListSelect','选择坯布库存',0,FThis,false);
vStr := FThis.dts0.keyList;
if vStr = '' then exit;
if VStr \<\> '' then
begin
vStr := '('+vStr+')';
vSQL1 := DBFUN.GetStrBySQL('SELECT FSQL FROM dbo.Dict_TransSQL WHERE FSQLCode =
''SQL_CLStockBillMaster''');
vSQL2 := DBFUN.GetStrBySQL('SELECT FSQL FROM dbo.Dict_TransSQL WHERE FSQLCode =
''SQL_CLStockBillDetail''');
vSQL3 := DBFUN.GetStrBySQL('SELECT FSQL FROM dbo.Dict_TransSQL WHERE FSQLCode =
''SQL_CLStockBillMD''');
//调用过程进行数据数据传递
MasterSlaveTrans(FThis.dts0,FThis.dts1,FThis.dts2,vSQL1,vSQL2,vSQL3, 'FID',
'FStockkeyID',vStr,FThis);
FThis.dts0.keyList :='';
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
# 4.2. OpenAPP
procedure OpenAPP(QFileName:string;QParam:string='';QShowCmd:integer=2);
说明: 打开程序
程序语法中各部分说明
部分 | 说明 |
---|---|
QFileName | 程序名称 |
QParam | 参数字符串 |
QShowCmd | 参数个数 |
- 示例
Begin
//打开FastERP
OpenAPP('FastERP.exe');
End;
2
3
4
# 4.3. OpenFrame
procedure OpenFrame(ADLLName, AFunctionName, ACaption: String);
- 说明: 打开窗体
程序语法中各部分说明
部分 | 说明 |
---|---|
ADLLName | DLL名称 |
AFunctionName | DLL中的函数名称 |
ACaption | 窗体名称 |
# 4.4. OpenPGB
procedure OpenPGB(iMax:integer;QType:string='');
说明: 打开进度条
OpenPGB程序语法中各部分说明
部分 | 说明 |
---|---|
iMax | 进度条步骤数 |
QType | 进度条类型 |
# 4.5. OpenPGBA
procedure OpenPGBA(iMax:integer;QType:string='');
说明: 打开进度条
OpenPGBA程序语法中各部分说明
部分 | 说明 |
---|---|
iMax | 进度条步骤数 |
QType | 进度条类型 |
# 4.6. Speak
procedure Speak(QSpeak:string);
说明: 文字转语音
Speak程序语法中各部分说明
部分 | 说明 |
---|---|
QSpeak | 需要转语音的文字内容 |
- 示例
Begin
Speak('我是中国人!');
End;
2
3
# 4.7. SetPropValue
Procedure SetPropValue(QControl:TComponent; QControlProp: string; QValue:
Variant);
2
说明: 设置控件属性
SetPropValue程序语法中各部分说明
部分 | 说明 |
---|---|
QControl | 控件对象 |
QControlProp | 控件属性 |
QValue | 属性值 |
- 示例
Begin
//将控件FThis.dbdts0FCustCode的Enable设置成Fasle
SetPropValue(FThis.dbdts0FCustCode, 'Enable',False);
End;
2
3
4
# 4.8. ShutPGB
procedure ShutPGB;
说明: 释放进度条
示例
Begin
//设定进度条总步骤数
OpenPGB(3);
//执行步骤
StepPGB('这是第1步…');
StepPGB('这是第2步…');
StepPGB('这是第3步…');
//释放进度条
ShutPGB;
End;
2
3
4
5
6
7
8
9
10
# 4.9. StepPGB
procedure StepPGB(sInfo: string='';step:Integer=1);
2
说明: 设置进度条内容
StepPGB程序语法中各部分说明
部分 | 说明 |
---|---|
sInfo | 进度条标题内容 |
step | 步骤号 |
# 5. 系统固定模块打开方法
# 5.1. ShowAccountPeriod
procedure ShowAccountPeriod;
- 说明: 会计期间设置
# 5.2. ShowDataCach
procedure ShowDataCach;
- 说明: 数据缓存管理
# 5.3. ShowDlgInputMethod
procedure ShowDlgInputMethod;
- 说明: 对话框方案管理
# 5.4. ShowDyeCreateCard
procedure ShowDyeCreateCard;
- 说明: 开卡向导(印染版)
# 5.5. ShowDyeSplitCard
procedure ShowDyeSplitCard(QHX:Boolean=False);
- 说明: 拆卡向导(印染版)
# 5.6. ShowFinCaluOutStockPriceForm
procedure ShowFinCaluOutStockPriceForm;
- 说明: 存货核算-出库价格核算
# 5.7. ShowFinEndAccountForm
procedure ShowFinEndAccountForm;
- 说明: 存货核算-期末结转
# 5.8. ShowFinCaluPurchasePriceForm
procedure ShowFinCaluPurchasePriceForm;
- 说明: 存货核算-暂估入库核算
# 5.9. ShowFinCaluOtherInStockPriceForm
procedure ShowFinCaluOtherInStockPriceForm;
- 说明: 存货核算-其它入库核算
# 5.10. ShowFinCaluInvoicePriceForm
procedure ShowFinCaluInvoicePriceForm;
- 说明: 存货核算-外购入库核算
# 5.11. ShowGroupConfig
procedure ShowGroupConfig;
- 说明: 组织架构、职位、角色
# 5.12. ShowGroupInfo
procedure ShowGroupInfo(QGroupMode:string=' Group');
说明: 组织架构分类
ShowGroupInfo程序语法中各部分说明
部分 | 说明 |
---|---|
QGroupMode | 组织架构类型 |
# 5.13. ShowMailForm
procedure ShowMailForm(QSubject,QBody,QMail,QAttachment:string);
说明: 邮件发送
ShowMailForm程序语法中各部分说明
部分 | 说明 |
---|---|
QSubject | 主题 |
QBody | 邮件内容 |
QMail | 收件人邮箱 |
QAttachment | 附件 |
# 5.14. ShowModuleConfig
procedure ShowModuleConfig(QModuleID: string);
说明: 模块设计
ShowModuleConfig程序语法中各部分说明
部分 | 说明 |
---|---|
QModuleID | 模块唯一ID |
# 5.15. ShowParent
procedure ShowParent(AppFileName, FormCaption, CommandLine: string);
说明: 打开第三方exe并嵌入到系统中显示
ShowParent程序语法中各部分说明
部分 | 说明 |
---|---|
AppFileName | 第三方exe文件名称 |
FormCaption | 第三方exe窗体的标题名称 |
CommandLine | 命令行参数 |
begin
ShowParent('D:\IsoFace\Smart\Bin\Smart.exe','数据存取','数据存取.sdb');
end;
2
3
# 5.16. ShowRefMethod
procedure ShowRefMethod;
- 说明: 参照管理
# 5.17. ShowTransMethod
procedure ShowTransMethod;
- 说明: 传递方案管理
# 5.18. ShowTranSQL
procedure ShowTranSQL;
- 说明: SQL管理
# 5.19. ShowUserList
procedure ShowUserList;
- 说明: 用户管理
# 5.20. ShowValidateMethod
procedure ShowValidateMethod;
- 说明: 字段验证方案管理
# 5.21. ShowWorkDrawDesign
procedure ShowWorkDrawDesign;
- 说明: 流程图设计
# 5.22. Smart
procedure Smart(Caption: string);
说明: 指定模板名称打开Smart
Smart程序语法中各部分说明
部分 | 说明 |
---|---|
Caption | 模板名称 |
begin
Smart('数据存取');
end;
2
3