自定程式
# 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