愛招飛幫助手冊 愛招飛幫助手冊
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • FastERP-1幫助主頁
  • 學習手冊

    • 基本入門

    • 功能介紹

    • 控制元件說明

    • 功能用法

    • 專用模板

    • 開發流程

    • 函式程式

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

自定函式

# FastERP 自定函式

# 1. 基類函式

  本章節的函式在使用時需以FThis.開頭。

# 1.1. GetContextDataValue

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

說明: 獲取上文窗體數據集中的欄位值。 返回值: 變體Variant型別。

  • GetContextDataValue函式語法中各部分說明
部分 說明
QiData 數據集索引
QFieldName 數據集欄位名稱
  • 示例
VAR
 vVariant:Variant; 
 vStr:string;
begin
   vVariant := FThis. GetContextDataValue(0, 'FBiller');
   vStr := VarToStr(vVariant);
   Showmessage('數據集欄位值是:'+ vStr);
end;
1
2
3
4
5
6
7
8

# 1.2. IsExistsContext

function IsExistsContext: Boolean;
1

說明: 判斷窗體是否有上文窗體。 返回值: 布爾Boolean型別。

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

# 1.3. OperateLog

function OperateLog(opeType: string): Boolean;
1

說明: 登記操作日誌。 返回值: 布爾Boolean型別。

  • OperateLog函式語法中各部分說明
部分 說明
opeType 動作型別

示例

begin
   if FThis.OperateLog('作廢') then
   Showmessage('作廢日誌登記成功!');
end;
1
2
3
4

# 2. DM類函式

  本章節的函式在使用時需以DM.開頭。

# 2.1. ExecProcedure

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

說明: 執行預存程序。 返回值: 布爾Boolean型別。

  • ExecProcedure函式語法中各部分說明
部分 說明
QstoreName 預存程序名稱
QParams 參數陣列
  • 示例
var
  tempVar:TArrayaString;
begin
  //通過提示對話方塊詢問使用者
  if not dbfun.ShowConfirmDialogue('提示','確定刪除資料嗎?',295) then Abort();
    //設定tempVar陣列長度
SetLength(tempVar,4);
//預存程序參數賦值
    tempVar[0] := FThis.dts0.FieldByName('FInterID').AsString;
    tempVar[1] := 'Delete';
    tempVar[2] := '';
    tempVar[3] := '';
//執行預存程序
DM.ExecProcedure('sp_Basic_Item',tempVar);
//重新整理目前窗體數據
FThis.CurrID := FThis.FCurrID;
//關閉目前窗體
    FThis.Close;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 2.2. ExecProcedureR

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

說明: 執行預存程序。 返回值: 字串Srtring型別。

  • ExecProcedureR函式語法中各部分說明
部分 說明
QstoreName 預存程序名稱
QParams 參數陣列
  • 示例
var
  tempVar:TArrayaString;
  vResult:string;
begin
  //通過提示對話方塊詢問使用者
  if not dbfun.ShowConfirmDialogue('提示','確定刪除資料嗎?',295) then Abort();
    //設定tempVar陣列長度
SetLength(tempVar,4);
//預存程序參數賦值,最後一個參數值為返回值
    tempVar[0] := FThis.dts0.FieldByName('FInterID').AsString;
    tempVar[1] := 'Delete';
    tempVar[2] := '';
    tempVar[3] := '';
//執行預存程序
vResult := DM.ExecProcedureR('sp_Basic_Item',tempVar);
if vResult <> ''then
begin
    //顯示返回值內容
	Showmessage(vResult);
end; 
//重新整理目前窗體數據
FThis.CurrID := FThis.FCurrID;
//關閉目前窗體
    FThis.Close;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# 2.3. GetCachData

function GetCachData(QName: string): TSQModuleDataset;
1

說明: 獲取快取數據集。 返回值: TSQModuleDataset數據集型別。

  • GetCachData函式語法中各部分說明
部分 說明
QName 快取數據集索引
  • 示例
VAR
 vDataSet: TSQModuleDataset;
begin
   //根據快取數據集索引名獲取快取數據集
   vDataSet := DM.GetCachData('付款方式');
   //判斷獲取到的快取數據集是否為空
   if vDataSet <> nil then
  	 Showmessage('獲取付款方式快取數據整合功!');
end;
1
2
3
4
5
6
7
8
9

# 2.4. GetUserDefault

function GetUserDefault(QDefaultName: string): String;
1

說明: 獲取使用者預設值。 返回值: 字元 String型別。

  • GetUserDefault函式語法中各部分說明
部分 說明
QDefaultName 預設值索引名稱
  • 示例
VAR
 vStr: String;
begin
   //根據預設值索引名稱獲取預設值
   vStr:= DM.GetUserDefault ('白坯倉庫');
   //判斷獲取到的白坯倉庫預設值是否為空
   if vStr <> '' then
  	 Showmessage('獲取到的白坯倉庫預設值是:'+ vStr);
end;
1
2
3
4
5
6
7
8
9

# 2.5. OpenData

function OpenData(QDataSet: TRFDataSet): Boolean;
1

說明: 打開數據集。 返回值: 布爾Boolean型別。

  • OpenData函式語法中各部分說明
部分 說明
QDataSet TRFDataSet數據集對像
  • 示例
var
 vDataSet:TRFDataSet;
begin
    //建立數據集對像
    DM.CreateSQDataSet(vDataSet ,nil);
    Try
      //對數據集SQL賦值
    vDataSet.SQL.Text := 'SELECT * FROM Baisc_Whs';
    //打開數據集,以下二種方法都可行
    //打開方式1
    vDataSet.Open;
    //打開方式2
    DM.OpenData(vDataSet);
    If vDataSet.RecordCount > 0 then
    Begin
	    Showmessage('數據集不為空!');
    End;
    Finally
      vDataSet.Free;
End;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 2.6. OpenData

function OpenData(QDataSet: TSQModuleDataset): Boolean;
1

說明: 打開數據集。 返回值: 布爾Boolean型別。

  • OpenData函式語法中各部分說明
部分 說明
QDataSet TSQModuleDataset數據集對像
  • 示例
var
 vDataSet: TSQModuleDataset;
begin
    //建立數據集對像
    DM.CreateSQModuelDataSet(vDataSet ,nil);
    Try
      //對數據集SQL賦值
    vDataSet.SQL.Text := 'SELECT * FROM Baisc_Whs';
    //打開數據集,以下二種方法都可行
    //打開方式1
    vDataSet.Open;
    //打開方式2
    DM.OpenData(vDataSet);
    If vDataSet.RecordCount >0then
    Begin
	    Showmessage('數據集不為空!');
    End;
    Finally
      vDataSet.Free;
End;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 2.7. OpenDatas

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

說明: 批次打開數據集。 返回值: 布爾Boolean型別。

  • OpenDatas函式語法中各部分說明
部分 說明
QDataSetList 數據集對像集合
  • 示例

指令碼中暫不支援TList<>對象。


# 2.8. SaveData

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

說明: 數據集提交。 返回值: 布爾Boolean型別。

  • SaveData函式語法中各部分說明
部分 說明
QDataSet TSQModuleDataset數據集對像
  • 示例
var
 vDataSet: TRFDataSet;
begin
    //建立數據集對像
    DM.CreateSQDataSet(vDataSet ,nil);
Try
      //對數據集SQL賦值
    vDataSet.SQL.Text := 'SELECT TOP 0 * FROM Baisc_Whs';
    //打開數據集
    vDataSet.Open;
    //新增一條數據
    vDataSet.Append;
    vDataSet.FieldByName('FInterID').asInteger := DBFun.GetNodeID;
    vDataSet.FieldByName('FWhsCode').asString:= '0101';
    vDataSet.FieldByName('FWhsName').asString := '白坯倉庫';
    vDataSet.Post;
    If DM.SaveData(vDataSet) then
    Begin
	    Showmessage('數據提交成功!');
    End;
Finally
  vDataSet.Free;
End;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 2.9. SaveData

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

說明: 數據集提交。 返回值: 布爾Boolean型別。

  • SaveData函式語法中各部分說明
部分 說明
QDataSet TSQModuleDataset數據集對像
  • 示例
var
 vDataSet: TSQModuleDataset;
begin
    //建立數據集對像
    DM.CreateSQDataSet(vDataSet ,nil);
    Try
      //對數據集SQL賦值
    vDataSet.SQL.Text := 'SELECT TOP 0 * FROM Baisc_Whs';
    //打開數據集
    vDataSet.Open;
    //新增一條數據
    vDataSet.Append;
    vDataSet.FieldByName('FInterID').asInteger := DBFun.GetNodeID;
    vDataSet.FieldByName('FWhsCode').asString:= '0101';
    vDataSet.FieldByName('FWhsName').asString := '白坯倉庫';
    vDataSet.Post;
    If DM.SaveData(vDataSet) then
    Begin
	    Showmessage('數據提交成功!');
    End;
    Finally
      vDataSet.Free;
End;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 2.10. SaveDatas

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

說明: 批次提交數據集。 返回值: 布爾Boolean型別。

  • SaveDatas函式語法中各部分說明
部分 說明
QDataSetList 數據集對像集合
  • 示例

指令碼中暫不支援TList<>對象。


# 2.11. SendWsMsg

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

說明:向指定的使用者登錄的Bean視窗發送WebSocket資訊。 返回值:Boolean,用於反饋是否發送成功。

  • SendWsMsg 函式語法中各部分說明
部分 說明
acusername 登錄的使用者名稱稱
acname 動作名稱,指定為 callback
accom 呼叫的Bean模組的編號
atag 繫結的控制元件的Tag編號,只允許輸入整數型別
acevent 呼叫的事件名稱
acparams 參數資訊,以鍵值對的方式進行
  • 示例
//PasScript
var 
  l: TStringList;
begin
  l := TStringList.Create();
  l.Values['text'] := 'Hello WebSocket Test';
  if (DM.SendWsMsg('demo','callback','bean-001','updatememo','0',l))  then
  begin
    ShowMessage('Send Success!');  
  end;
  l.Free;
end;
1
2
3
4
5
6
7
8
9
10
11
12

# 2.12. SendWsMsgBySid

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

說明:向指定的會話ID的客戶端發送WebSocket資訊。 返回值:Boolean,用於反饋是否發送成功。

  • SendWsMsgBySId 函式語法中各部分說明
部分 說明
sid 指定會話的名稱
msg 要發送的訊息內容
  • 示例
//PasScript
  DM.SendWsMsgBySId('esp32_001','Off');
1
2

# 2.13. SendWsMsgByStr

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

說明:向WS伺服器發送WebSocket資訊。 返回值:Boolean,用於反饋是否發送成功。

  • SendWsMsgByStr 函式語法中各部分說明
部分 說明
msg 要發送的訊息內容,僅支援傳輸指定的json
  • 示例
//PasScript
  msg = '{' +
    '"username": "demo",' +              					 		//WebSocket訊息發送的目標使用者
    '"action": "callback",' +            					 		//WebSocket訊息告知IsoBean執行的動作
    '"tag": "0",' + 
    '"data": {' +
        '"callbackcomponent": "wb-das-0001_dashboard-demo1",' +   	//執行動作的目標元件名稱
        '"callbackeventname": "update",' +  			//執行觸發OnAjaxEvent事件的 eventname(事件名稱)
    	'"callbackparams": [' +             						 //傳輸的鍵值,可以有一對或者多對
      	'{' +
            '"paramname": "type",' +
        	'"paramvalue": "header"' +
      	'},' +
      	'{' +
        	'"paramname": "dataMonthOrder",' +
        	'"paramvalue": "' + Q.FieldByName('dataMonthOrder').asString + '"' +
      	'},' +
      	'{' +
            '"paramname": "dataNewMember",' +
        	'"paramvalue": "' + Q.FieldByName('dataNewMeber').asString + '"' +
      	'},' +
      	'{' +
        	'"paramname": "dataOnceConsume",' +
        	'"paramvalue": "' + Q.FieldByName('dataOnceConsume').asString + '"' +
      	'}' +
    	']' +
     '}' +
  '}';
  DM.SendWsMsgByStr(msg);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# 3. DBFun類函式

  本章節的函式在使用時需以DBFun.開頭。

# 3.1. CheckFieldEmpty

function CheckFieldEmpty(QField: TField): Boolean;
1

說明: 判斷欄位是否為空。 返回值: 布爾Boolean型別。

  • CheckFieldEmpty函式語法中各部分說明
部分 說明
QField 數據集欄位對像
  • 示例
If DBFun.CheckFieldEmpty (FThis.dts0.FieldByName('FBiller')) then
Begin
  Showmessage('數據集欄位FBiller 內容為空。');
End;
1
2
3
4

# 3.2. CheckUser

function CheckUser(QUserName: string): Boolean;
1

說明: 校驗使用者合法性 返回值: 布爾Boolean型別。

  • CheckUser函式語法中各部分說明
部分 說明
QUserName 使用者名稱稱
  • 示例
Begin
//校驗客戶編號是否存在
If DBFun.CheckUser ('劉德華') then
Begin
	Showmessage(劉德華使用者未授權!');
End;
end;
1
2
3
4
5
6
7

# 3.3. DataSetIsEdit

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

說明: 判斷數據集是否處於編輯狀態。 返回值: 布爾Boolean型別。

  • DataSetIsEdit函式語法中各部分說明
部分 說明
QDataSet 數據集對像
  • 示例
If DBFun.DataSetIsEdit(FThis.dts0) then
Begin
  Showmessage('數據集dts0處理編輯狀態。');
End;
1
2
3
4

# 3.4. DataSetTableCompute

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

說明: 數據集欄位統計 返回值: 變體Variant型別

  • DataSetTableCompute函式語法中各部分說明
部分 說明
ADataSet 指定一個需要統計的數據集對像
AOperator 操作符(最大值MAX、最小值MIN、統計COUNT、合計SUM、平均值AVG)
AFieldName 指定一個需要統計的欄位名稱
AFilter 數據集過濾條件內容
  • 示例
    //統計單據明細對應的碼單明細
var
      v: Variant;
begin
    //判斷窗體是否處於欄位改變狀態
     if FThis.FFieldChanging then exit; 
     try
    //設定窗體處於欄位改變狀態
     FThis.FFieldChanging := true;
    //判斷數據集dts2是否為空
 if not FThis.dts2.IsEmpty then
 begin
//初始化變數v
 v := null;
 FThis.dts1.First;
 while Not FThis.dts1.Eof do
 begin
   if FThis.dts2.RecordCount > 0 then
   begin
FThis.dts1.Edit;
//統計dts2數據集被選中的FAuxQty欄位的彙總數
v := DBFUN.DataSetTableCompute(FThis.dts2,'SUM','FAuxQty',
'FID='+FThis.dts1FID.AsString+' and FSelected = 1');
DBFUN.SetFieldVariant(FThis.dts1FAuxQty,v);

//統計dts2數據集被選中的記錄數
v := DBFUN.DataSetTableCompute(FThis.dts2,'Count','1',
'FID='+FThis.dts1FID.AsString+' and FSelected = 1');
    DBFUN.SetFieldValue(FThis.dts1FQtyPiece,v);
   end;
    FThis.dts1.Next;
 end;
 end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

# 3.5. FileDownload

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

說明: 檔案下載 返回值: 布爾 Boolean 型別

  • FileDownload函式語法中各部分說明
部分 說明
ARemoteFileName 遠端檔名
ALocalNewFileName 本地檔名
  • 示例
//從伺服器Downloads目錄下載1.txt檔案到本地
begin
  DBFUN.FileDownload('Downloads/1.txt','1.txt');
end;
1
2
3
4

# 3.6. FileUpload

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

說明: 檔案上傳 返回值: 布爾 Boolean 型別

  • FileUpload函式語法中各部分說明
部分 說明
ALocalFileName 本地檔名
ARemoteFilePath 遠端目錄
ARemoteFileName 遠端檔名
  • 示例
//將exe根目錄的1.txt檔案上傳至伺服器Downloads目錄下,上傳可重新指定檔名
begin
  DBFUN.UpDownload('1.txt','Downloads','New1.txt');
end;
1
2
3
4

# 3.7. FocusedRecordGetValues*

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

說明: 獲取表格記錄中指定單元格中的值 返回值: 變體 Variant 型別

  • FocusedRecordGetValues函式語法中各部分說明
部分 說明
AFocusedRecord 表格記錄對像
QColumn 表格記錄中指定列對像
  • 示例
procedure TMyHandler.tbGriddts0OnCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; 
AViewInfo: TcxGridTableDataCellViewInfo; Var ADone: Boolean);
var
 s:string;
begin
 //獲取表格中tbGriddts0FBillNo列的值
 s:= DBFUN.FocusedRecordGetValues(AViewInfo.GridRecord,FThis.tbGriddts0FBillNo);
end;
1
2
3
4
5
6
7
8

# 3.8. GetBatchNo

function GetBatchNo(QBillID: string): string;
1

說明: 獲取批號流水號 返回值: 字元String型別。

  • GetBatchNo函式語法中各部分說明
部分 說明
QBillID 流水編號
  • 示例
//單據儲存時,產生單據明細的批號資訊
procedure TMyHandler.tbSaveOnClick(Sender: TObject);
begin
 //判斷數據集dts1是否為空
 if FThis.dts1.IsEmpty then exit;
 FThis.dts1.First;
 FThis.dts1.DisableControls;
 while not FThis.dts1.Eof do
 begin
   FThis.dts1.Edit;
   if FThis.dts1FBatchNo.AsString = '' then
      //產生批號
      FThis.dts1FBatchNo.AsString := DBFUN.GetBatchNo('17020004');
   FThis.dts1.Next;
 end;
 FThis.dts1.EnableControls;
 FThis.dts1.ReadOnly := false ;
 //儲存單據
 FThis.DoSave;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 3.9. GetBillNo

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

說明: 獲取單據流水號 返回值: 字元String型別。

  • GetBillNo函式語法中各部分說明
部分 說明
QBillID 單據流水號規則編號
QDate 日期
QPreview 是否預覽模式
  • 示例
//數據集dts1新增記錄時,產生流水號
// 參數QPreview為true時,流水號產生只是預覽模式,還未正式產生
procedure TMyHandler.dts1OnNewRecord(DataSet: TDataSet);
begin
   FThis.dts1.Edit;
FThis.dts1FBatchNo.AsString := DBFUN.GetBillNo ('17020004',Now(),false);
end;
1
2
3
4
5
6
7

# 3.10. GetColorNo

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

說明: 獲取色號(印染行業專用) 返回值: 字元 String 型別

  • GetColorNo函式語法中各部分說明
部分 說明
QBillID 色號流水規則編號
QDate 日期
QPreview 是否預覽模式
  • 示例
//數據集dts1新增記錄時,產生色號
//參數QPreview為true時,色號產生只是預覽模式,還未正式產生
procedure TMyHandler.dts1OnNewRecord(DataSet: TDataSet);
begin
   FThis.dts1.Edit;
FThis.dts1FColorNo.AsString := DBFUN.GetColorNo('9900001',Now(),false);
end;
1
2
3
4
5
6
7

# 3.11. GetFirstDayofMonth

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

說明: 獲取指定日期所在月份的第一天 返回值: 日期TDateTime型別

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

運行結果: 2019-07-01


# 3.12. GetLastDayofMonth

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

說明: 獲取指定日期所在月份的第后一天 返回值: 日期TDateTime型別

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

運行結果: 2019-07-31


# 3.13. GetListBySQL

function GetListBySQL(QSQL: string): TStringList;
1

說明: 根據SQL獲取字串列表 返回值: 字串列表TStringList

  • GetListBySQL函式語法中各部分說明
部分 說明
QSQL 指定一個SQL內容
  • 示例
Var
  vStrList:TStringList;
begin
  //將Basic_Process表裡的FProcessName內容組成一個字串列表
  vStrList:= DBFun. GetListBySQL ('Select FProcessName From Basic_Process');
end;
1
2
3
4
5
6

# 3.14. GetNodeID

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

說明: 獲取唯一ID 返回值: 整數Integer 型別

  • GetNodeID函式語法中各部分說明
部分 說明
QCount 取多少個ID(不能超過999)
QNoRecord 是否返回結果集
  • 示例
//數據集dts1新增記錄時,產生主鍵唯一ID
procedure TMyHandler.dts1OnNewRecord(DataSet: TDataSet);
begin
   FThis.dts1.Edit;
FThis.dts1FInterID.asInteger:= DBFUN.GetNodeID;
end;
1
2
3
4
5
6

# 3.15. GetNow

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

說明: 獲取日期時間 返回值: 變體Variant 型別

  • GetNow函式語法中各部分說明
部分 說明
byServer 是否按伺服器時間
QGetType 獲取型別(NEW,SQL)
TimeForamt 日期時間格式 yyyy-mm-dd
  • 示例
//數據集dts1新增記錄時,產生記錄建立時間
procedure TMyHandler.dts1OnNewRecord(DataSet: TDataSet);
begin
   FThis.dts1.Edit;
   //獲取本地日期時間
FThis.dts1FCreateDate.asDateTime := DBFUN.GetNow;
   //獲取伺服器日期時間
FThis.dts1FCreateDate.asDateTime := DBFUN.GetNow(true);
   //獲取伺服器日期
FThis.dts1FCreateDate.asDateTime := DBFUN.GetNow(true, 'NEW', 'yyyy-mm-dd');
end;
1
2
3
4
5
6
7
8
9
10
11

# 3.16. GetNumber

function GetNumber(S: string): string;
1

說明: 擷取字串中的數字 返回值: 字元String型別

  • GetNumber函式語法中各部分說明
部分 說明
S 指定一個包含數字的字串
  • 示例
var
v:string;
begin
v:= DM.GetNumber ('12A56B.A11');
//顯示返回的SQL內容
Showmessage(v);
end;
1
2
3
4
5
6
7

運行結果: 125611


# 3.17. GetSelectedDataCount

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

說明: 返回值:

  • GetSelectedDataCount函式語法中各部分說明
部分 說明
QDataSet 指定的一個數據集型別
FSelectField 指定的數據集中作為標記的欄位名稱,預設欄位名稱為FSelected,也可自定
  • 示例
Var
iCount:Integer;
Begin
   //獲取數據集dts1中,FSelected欄位選中狀態的記錄個數
   iCount:= DBFun.GetSelectedDataCount (FThis.dts1);
end;
1
2
3
4
5
6

# 3.18. GetSelectedValues

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

說明: 獲取 返回值: 字元string型別。

  • GetSelectedValues程式語法中各部分說明
部分 說明
QDataSet 指定一個需要操作的數據集對像
QKeyField 主鍵欄位名稱
QSelectField 表示狀態的欄位名稱
  • 示例
var
  vStr: String;
begin
    vStr := DBFun.GetSelectedValues(FThis.dts0, 'FInterID',vInterIDList, 'FSelected');
end;
1
2
3
4
5

# 3.19. GetSQLValue

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

說明: 獲取SQL語句值。 返回值: 變體Variant型別。

  • GetSQLValue函式語法中各部分說明
部分 說明
QSQL SQL語句字串
  • 示例
var
  vVariant
vSQL:string;
begin
//執行函式
vVariant:= DBFun.GetSQLValue ('SELECT FWhsName FROM Basic_Whs WHERE FInterID =  1');
if VarToStr(vVariant) = '白坯倉庫' then
begin
    //顯示返回值內容
	Showmessage('取值正確!');
end; 
end;
1
2
3
4
5
6
7
8
9
10
11
12

# 3.20. GetStrByList

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

說明: 根據字串列表組裝成格式化的字串 返回值: 字元String型別

  • GetStrByList函式語法中各部分說明
部分 說明
QStr 指一定個字串列表,包含需要組裝的內容
QQuotedStr 是否以字元型別組裝
  • 示例1
Var
  vStrList:TStringList;
  vStr:string;
begin
  vStrList := TStringList.Create;
  try
  	vStrList.CommaText:= '1902001,156987,11258';
    vStr := DBFun.GetStrByList(vStrList);
  finally
    vStrList.free;
end;
end;
1
2
3
4
5
6
7
8
9
10
11
12

運行結果: '1902001', '156987', '11258'

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

運行結果: 1902001, 156987, 11258


# 3.21. GetStrBySQL

function GetStrBySQL(QSQL: string): String;
1

說明: 根據SQL組裝字串 返回值: 字元String型別

  • GetStrBySQL函式語法中各部分說明
部分 說明
QSQL 指定一個SQL內容
  • 示例
Var
  vStr:String;
begin
  //將Basic_Process表裡的FProcessName內容組成一個字串
  vStr := DBFun.GetStrBySQL('Select FProcessName From Basic_Process');
end;
1
2
3
4
5
6

運行結果: 翻布;配桶;染色;定型


# 3.22. GetTransSQL

function GetTransSQL(ASQLCode: string): string;
1

說明: 根據SQL配置編號獲取SQL語句內容 返回值:

  • GetTransSQL函式語法中各部分說明
部分 說明
ASQLCode 指定一個SQL配置編號
  • 示例
var
vSQL:string;
begin
vSQL:= DBFun.GetTransSQL ('SQL_Cust');
//顯示返回的SQL內容
Showmessage(vSQL);
end;
1
2
3
4
5
6
7

# 3.23. GetJSONObject

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

說明: 獲取JSON對像中指定的巢狀對象。 返回值: TJSONObject型別。

  • GetJSONObject 函式語法中各部分說明
部分 說明
QJSONObject 要進行獲取對像操作的JSON對像名稱
QPath 對像在JSON中的路徑名稱,路徑的名稱之間以"."作為分隔標誌
  • 示例

  假設需要對以下JSON進行解析。

{
    "status": "OK",
    "Language":{
        "DefaultLanguage": 1
    }
}
1
2
3
4
5
6
//PasScript
Var 
  J:TJSONObject;
  s: String;
begin
  J:=TJSONObject.Create;
  s:= '{"status": "OK","Language":{"DefaultLanguage": 1}}';
  Try
     j := TJSONObject(DBFun.ParseJSONValue(s));
     j := DBFun.GetJSONObject(j,'Language');
     ShowMessage(DBFun.GetJSONNumber(j,'DefaultLanguage'));
     //上述兩句程式也可改寫為
     //ShowMessage(DBFun.GetJSONNumber(j,'Language.DefaultLanguage'));
  Finally
    j.Free;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

  以上程式運行后獲取到的值為1。

# 3.24. GetJSONArray

function GetJSONArray(const QJSONObject: TJSONValue; const QPath:String):TJSONArray;
1

說明: 獲取JSON對像中指定的陣列列。 返回值: TJSONArray型別。

  • GetJSONArray 函式語法中各部分說明
部分 說明
QJSONObject 要進行獲取對像操作的JSON對像名稱
QPath 對像在JSON中的路徑名稱,路徑的名稱之間以"."作為分隔標誌
  • 示例

  假設需要對以下JSON進行解析。

{
    "status": "OK",
    "Language":{
        "DefaultLanguage": 1,
        "options":[
            {"options":1},
            {"options":2}
        ]
    }
}
1
2
3
4
5
6
7
8
9
10
//PasScript
Var 
  J:TJSONObject;
  A:TJSONArray;
  s: String;
begin
  J:= TJSONObject.Create;
  A:= TJSONArray.Create;
  s:= '{"status": "OK","Language":{"DefaultLanguage": 1,"options":[{"options":1},{"options":2}]}}';
  Try
     j := TJSONObject(DBFun.ParseJSONValue(s));
     A := DBFun.GetJSONArray(j,'Language.options');
     J := TJSONObject(A.Items[1]);
     ShowMessage(DBFun.GetJSONNumber(j,'options'));
  Finally
    j.Free;
    A.Free;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

  以上程式運行后獲取到的值為2。

# 3.25. GetJSONString

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

說明: 獲取JSON對像中指定鍵值的字串。 返回值: String型別。

  • GetJSONString 函式語法中各部分說明
部分 說明
QJSONObject 要進行獲取對像操作的JSON對像名稱
QPath 對像在JSON中的路徑名稱,路徑的名稱之間以"."作為分隔標誌

  假設需要對以下JSON進行解析。

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

  以上程式運行后獲取到的值為OK。

# 3.26. GetJSONNumber

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

說明: 獲取JSON對像中指定的鍵值中的數值。 返回值: String型別。

  • GetJSONNumber 函式語法中各部分說明
部分 說明
QJSONObject 要進行獲取對像操作的JSON對像名稱
QPath 對像在JSON中的路徑名稱,路徑的名稱之間以"."作為分隔標誌
  • 示例

  假設需要對以下JSON進行解析。

{
    "status": "OK",
    "Language":{
        "DefaultLanguage": 1
    }
}
1
2
3
4
5
6
//PasScript
Var 
  J:TJSONObject;
  s: String;
begin
  J:=TJSONObject.Create;
  s:= '{"status": "OK","Language":{"DefaultLanguage": 1}}';
  Try
     j := TJSONObject(DBFun.ParseJSONValue(s));
     j := DBFun.GetJSONObject(j,'Language');
     ShowMessage(DBFun.GetJSONNumber(j,'DefaultLanguage'));
     //上述兩句程式也可改寫為
     //ShowMessage(DBFun.GetJSONNumber(j,'Language.DefaultLanguage'));
  Finally
    j.Free;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

  以上程式運行后獲取到的值為1。

# 3.27. GetJSONInteger

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

說明: 獲取JSON對像中指定的鍵值中的整數數值,並以整數的形式返回。 返回值: Integer型別。

  • GetJSONInteger 函式語法中各部分說明
部分 說明
QJSONObject 要進行獲取對像操作的JSON對像名稱
QPath 對像在JSON中的路徑名稱,路徑的名稱之間以"."作為分隔標誌
  • 示例

  假設需要對以下JSON進行解析。

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

  以上程式運行后獲取到的值為1。

# 3.28. GetJSONFloat

function GetJSONFloat(const QJSONObject: TJSONValue; const QPath:String):Double;
1

說明: 獲取JSON對像中指定的鍵值中的浮點數數值,並以浮點數的形式返回。 返回值: Double型別。

  • GetJSONFloat 函式語法中各部分說明
部分 說明
QJSONObject 要進行獲取對像操作的JSON對像名稱
QPath 對像在JSON中的路徑名稱,路徑的名稱之間以"."作為分隔標誌
  • 示例

  假設需要對以下JSON進行解析。

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

  以上程式運行后獲取到的值為1.1。

# 3.29. GetJSONBool

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

說明: 獲取JSON對像中指定的鍵值中的布爾數值,並以布林值的形式返回。 返回值: Boolean型別。

  • GetJSONBool 函式語法中各部分說明
部分 說明
QJSONObject 要進行獲取對像操作的JSON對像名稱
QPath 對像在JSON中的路徑名稱,路徑的名稱之間以"."作為分隔標誌

  假設需要對以下JSON進行解析。

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

  以上程式運行后獲取到的值為{"status": true}。

# 3.30. GetJSONValue

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

說明: 獲取JSON對像中指定的鍵值中的值。 返回值: TJSONValue型別。

  • GetJSONBool 函式語法中各部分說明
部分 說明
QJSONObject 要進行獲取對像操作的JSON對像名稱
QPath 對像在JSON中的路徑名稱,路徑的名稱之間以"."作為分隔標誌

# 3.31. JSONArray_AddJSONObject

function JSONArray_AddJSONObject(QJSONArray:TJSONArray;const QJSONObject: TJSONValue):TJSONArray;
1

說明: 在原有的JSON佇列中新增一個新的JSON對像 返回值: TJSONArray型別。

  • GetJSONBool 函式語法中各部分說明
部分 說明
QJSONArray 要進行獲取對像操作的JSON佇列名稱
QJSONObject 要新增的JSON對像名稱

  假設有以下的佇列:

[{"status":"ok"}]
1

  需要向其中新增以下的json對像:

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

  執行以上程式,輸出的結果為 [{"status","ok"},{"status":"no"}]

# 3.32. JSONObject_AddJSONArray

function JSONObject_AddJSONArray(QJSONObject: TJSONObject; const Str: string; const Val: TJSONValue):TJSONObject;
1

說明: 在原有的JSON對像中新增一個新的JSON值以獲取一個新的JSON對像 返回值: TJSONObject型別。

部分 說明
QJSONObject 要獲取的JSON對像名稱
Str 要新增的鍵名
Val 要新增的鍵值

  假設有以下的json對像:

{"status":"ok"}
1

  需要合併以下的json佇列作為子對像

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

  執行以上程式,輸出的結果為 [{"status","ok"},"array":[{"status":"no"}]}

# 3.33. JSONParse

function JSONParse(QType, QPath, QJson: string): string;
1

說明: 解析JSON,獲取JSON中的單元的取值。 返回值: string型別。

部分 說明
QType 要獲取的JSON對像型別 GetJSONObject,GetJSONArray,GetJSONNumber、GetJSONObject、GetJSONValue、GetJSONBool、GetJSONPair
QPath 獲取的JSON對象的路徑名稱
QJSON 要解析的JSON對像文字
  • 示例
```JSON
{
    "status": true,
    "Language":{
        "DefaultLanguage": 1
    }
}
1
2
3
4
5
6
7
//PasScript
Var 
  s: String;
begin
  s:= '{"status": "OK","Language":{"DefaultLanguage": 1}}';
  ShowMessage(DBFun.JSONParse('GetJSONString','status',s));
end;
1
2
3
4
5
6
7

# 3.34. ParseJSONValue

function ParseJSONValue(QJson: string): TJSONValue;
1

說明: 獲取字串形式的JSON對像中指定的鍵值中的值。 返回值: TJSONValue型別。

  • GetJSONBool 函式語法中各部分說明
部分 說明
QJSONObject 要進行獲取對像操作的JSON對像名稱
QPath 對像在JSON中的路徑名稱,路徑的名稱之間以"."作為分隔標誌

# 3.35. HTTPDecode

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

說明: HTTP解碼 返回值: 字元型別String

  • HTTPDecode 函式語法中各部分說明
部分 說明
AStr 指定需要解碼的字串

# 3.36. HTTPEncode

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

說明: HTTP編碼 返回值: 字元型別String

  • HTTPEncode 函式語法中各部分說明
部分 說明
AStr 指定需要編碼的字串

# 3.37. InputBoxDate

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

1
2

說明: 日期輸入對話方塊 返回值: 布爾Boolean型別

  • InputBoxDate函式語法中各部分說明
部分 說明
ATitle 對話方塊標題
ACaption 輸入值說明
AResult 輸入值變數
  • 示例
var
  vDate:TDateTime;
begin
  vDate := Now();
  DBFun.InputBoxDate ('請輸入日期... ', vDate);
end;
1
2
3
4
5
6

運行結果 請輸入日期


# 3.38. InputBoxDateTime

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

說明: 日期時間輸入對話方塊 返回值: 布爾Boolean型別

  • InputBoxDateTime函式語法中各部分說明
部分 說明
ATitle 對話方塊標題
ACaption 輸入值說明
AResult 輸入值變數
  • 示例
var
  vDate:TDateTime;
begin
  vDate := Now();
  DBFun.InputBoxDateTime ('請輸入日期時間... ', vDate);
end;
1
2
3
4
5
6

運行結果 輸入日期時間


# 3.39. InputBoxFloat

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

說明: 浮點數輸入對話方塊 返回值: 布爾Boolean型別

  • InputBoxFloat函式語法中各部分說明
部分 說明
ATitle 對話方塊標題
AResult 輸入值變數
  • 示例
var
  vValue:double;
begin
  vValue := 123.25;
  DBFun.InputBoxFloat ('請輸入浮點數... ', vValue);
DBFun.InputBoxInt ('請輸入整數... ', vValue);
end;
1
2
3
4
5
6
7

運行結果 浮點數輸入


# 3.40. InputBoxInt

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

說明: 整數輸入對話方塊 返回值: 布爾Boolean型別

  • InputBoxInt函式語法中各部分說明
部分 說明
ATitle 對話方塊標題
ACaption 輸入值說明
AResult 輸入值變數
  • 示例
var
  vValue:Integer;
begin
  vValue := 123;
  DBFun.InputBoxInt ('請輸入整數... ', vValue);
end;
1
2
3
4
5
6

運行結果 請輸入整數


# 3.41. InputBoxMemo

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

說明: 大文字輸入對話方塊 返回值: 布爾Boolean型別

  • InputBoxMemo函式語法中各部分說明
部分 說明
ATitle 對話方塊標題
AResult 輸入值變數
  • 示例
var
  vStr:string;
begin
  vStr := '我是中國人,我驕傲,我自豪!';
  DBFun.InputBoxMemo ('請輸入內容...',vStr);
end;
1
2
3
4
5
6

運行結果 大文字輸入對話方塊


# 3.42. InputBoxStr

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

說明: 字串輸入對話方塊 返回值: 布爾Boolean型別

  • InputBoxStr函式語法中各部分說明
部分 說明
ATitle 對話方塊標題
AResult 輸入值變數
  • 示例
var
  vStr:string;
begin
  vStr := '您好!';
  DBFun.InputBoxStr('請輸入字串...',vStr);
end;
1
2
3
4
5
6

運行結果 字串輸入對話方塊


# 3.43. IsDBRep

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

說明: 校驗重複值。 返回值: 布爾Boolean型別。

  • IsDBRep函式語法中各部分說明
部分 說明
QSQL SQL語句字串
QKeyName 校驗欄位名稱
QKeyValue 校驗值
QDBName 帳套名,可指定其它帳套
  • 示例
Var
 vSQL:string;
 vKeyName:string;
 vKeyValue:string;
Begin
    //校驗客戶編號是否存在
    vSQL:= 'SELECT FInterID,FCustCode,FCustName FROM Basic_Cust';
    vKeyName:= 'FCustCode';
    vKeyValue:= '01001';
	If DBFun.IsDBRep (vSQL, vKeyName, vKeyValue) then
    Begin
    	Showmessage('客戶編號 '+ vKeyValue +' 已經存在!');
    End;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 3.44. NextMonth

Function NextMonth(ADateTime: Variant): string;
1

說明: 獲取指定日期下一個月第一天 返回值: 字元string型別

  • NextMonth函式語法中各部分說明
部分 說明
ADateTime 指定的一個變體型別
  • 示例
Var
vNextMonth:String;
Begin
   vNextMonth:= DBFun.NextMonth ('2019-07-10');
end;
1
2
3
4
5

運行結果: 2019-08-01


# 3.45. OperateLog

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

說明: 記錄操作日誌 返回值: 布爾Boolean型別

  • 函式語法中各部分說明
部分 說明
opeType 操作型別
QNote 操作具體內容
  • 示例
procedure TMyHandler.tbDelOnClick(Sender: TObject);
var
  tempVar:TArrayaString;
vResult:string;
begin
  //通過提示對話方塊詢問使用者
  if not dbfun.ShowConfirmDialogue('提示','確定刪除資料嗎?',295) then Abort();
    //設定tempVar陣列長度
SetLength(tempVar,4);
//預存程序參數賦值,最後一個參數值為返回值
    tempVar[0] := FThis.dts0.FieldByName('FInterID').AsString;
    tempVar[1] := 'Delete';
    tempVar[2] := '';
tempVar[3] := '';
//執行預存程序
vResult := DM.ExecProcedureR('sp_Basic_Item',tempVar);
if vResult ='OK'then
begin
    //登記操作日誌
    DBFun.OperateLog('刪除', FThis.dts0.FieldByName('FItemName').AsString);
	Showmessage('刪除成功!');
end; 
//重新整理目前窗體數據
FThis.CurrID := FThis.FCurrID;
//關閉目前窗體
    FThis.Close;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

# 3.46. ReturnValue

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

說明: 根據SQL取值 返回值: 變體Variant型別

  • ReturnValue函式語法中各部分說明
部分 說明
sSQL 指定一個SQL內容
iReturnType iReturnType返回值型別 0:字元;1:整數;2:浮點;3:布爾;4日期
  • 示例
var
vSQL:string;
v:variant;
begin
    //獲取字元內容
v:= DM.ReturnValue (vSQL);
    //獲取整數內容
v:= DM.ReturnValue (vSQL,1);
    //獲浮點內容
v:= DM.ReturnValue (vSQL,2);
end;
1
2
3
4
5
6
7
8
9
10
11

# 3.47. RoundToCH

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

說明: 四捨五入函式 返回值: 雙精度Double型別

  • 函式語法中各部分說明
部分 說明
AValue 指定一個Double型別的數值
ADigit 指定一個小數點保留位數
  • 示例
Var
 vValue: Double;
Begin
   vValue:= DBFun.RoundToCH (12.357,2);
end;
1
2
3
4
5

運行結果: 12.36


# 3.48. SelectedRecordCount

function SelectedRecordCount(ADBGridView: TcxGridDBTableView): Integer;
1

說明: 獲取cxGrid表格被選中的記錄數 返回值: 整數Integer型別

  • SelectedRecordCount函式語法中各部分說明
部分 說明
ADBGridView 指定一個cxGrid數據表格
  • 示例
Var
  iSelectedCount: Integer;
begin
  //獲取表格tbGriddts0選中的記錄數
  iSelectedCount := DBFUN.SelectedRecordCount(FThis.tbGriddts0);
  if iSelectedCount = 0 then
  begin
    DBFun.ShowInformationDialogue('提示', '請先選擇一條記錄!',295);
    Exit;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11

# 3.49. SelectedRecordValue

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

說明: 根據cxGrid表格列座標獲取列值 返回值: 變體Variant型別

  • SelectedRecordValue函式語法中各部分說明
部分 說明
ADBGridView 指定一個cxGrid數據表格
ACount 列行號
AKeyFieldIdx 列索引號
  • 示例
//這是一個在表格中批次列印的例子
procedure TMyHandler.tbPrintOnClick(Sender: TObject);
var
vBaseEdit:TBaseEdit;
  iSelectedCount, KeyFieldIdx: Integer;
  QKeyField: string;
  vDataID: Variant;
  i,j:integer;
  vSQL:string;
  vProductWeightOflength:string;
begin
  //獲取表格tbGriddts0選中的記錄數
  iSelectedCount := DBFUN.SelectedRecordCount(FThis.tbGriddts0);
  if iSelectedCount = 0 then
  begin
    DBFun.ShowInformationDialogue('提示', '請先選擇一條記錄!',295);
    Exit;
  end;
    //建立窗體
    vBaseEdit := ShowEdit('ManMoEdit','');
QKeyField := 'FInterID';
//獲取關鍵欄位的索引號
    KeyFieldIdx := FThis.tbGriddts0.GetColumnByFieldName(QKeyField).Index;
    for i := 0 to iSelectedCount - 1 do
begin
  //獲取指定列的值
      vDataID := DBFUN.SelectedRecordValue(FThis.tbGriddts0,i,KeyFieldIdx);
      //打開窗體數據
      vBaseEdit.CurrID := vDataID;
      //呼叫窗體列印事件
      vBaseEdit.DoPrint;
end;
//釋放窗體
    vBaseEdit.free;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

# 3.50. ShowConfirmDialogue

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

說明: 顯示確認對話方塊 返回值: 布爾Boolean型別

  • ShowConfirmDialogue函式語法中各部分說明
部分 說明
Caption 對話方塊標題
Text 對話方塊內容
iWidth 對話方塊寬度
  • 示例
begin
  if DBFUN.ShowConfirmDialogue('請確認','確認刪除資料嗎?',256) then
  begin
     …
  end;
end;
1
2
3
4
5
6

運行結果 確認對話方塊


# 3.51. ShowConfirmDialogue

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

說明: 多按鈕可自定按鈕標籤對話方塊 返回值: 整數Integer型別

  • ShowConfirmDialogue函式語法中各部分說明
部分 說明
Caption 對話方塊標題
Text 對話方塊內容
OkCaption OK按鈕標籤,可自定義按鈕標籤
NoCaption No按鈕標籤,可自定義按鈕標籤
iWidth 對話方塊寬度
  • 示例
Var
 i:integer;
begin
  i := DBFUN.ShowConfirmDialogue('提示','請選擇訊息發送型別?', '微信', '郵件',256);
  if i = 1 then
     //程式碼片段
  else
     //程式碼片段
  end;
end;
1
2
3
4
5
6
7
8
9
10

運行結果 選擇型別


# 3.52. ShowErrorDialogue

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

說明: 錯誤訊息提示對話方塊 返回值: 布爾Boolean型別

  • ShowErrorDialogue函式語法中各部分說明
部分 說明
Caption 對話方塊標題
Text 對話方塊內容
iWidth 對話方塊寬度
  • 示例
var
begin
	DBFUN. ShowWarningDialogue ('錯誤','數據格式不正確!',256);
end;
1
2
3
4

運行結果 錯誤資訊


# 3.53. ShowInformationDialogue

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

說明: 訊息提示對話方塊 返回值: 布爾Boolean型別

  • ShowInformationDialogue函式語法中各部分說明
部分 說明
Caption 對話方塊標題
Text 對話方塊內容
iWidth 對話方塊寬度
  • 示例
var
begin
	DBFUN. ShowInformationDialogue ('提示','刪除成功!',256);
end;
1
2
3
4

運行結果 提示對話方塊


# 3.54. ShowInputDialogue

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

說明: 文字輸入對話方塊 返回值: 字元string型別

  • ShowInputDialogue函式語法中各部分說明
部分 說明
Caption 對話方塊標題
Text 內容說明
DefaultContent 預設值
  • 示例
Var
  vStr:string;
begin
  vStr := DBFUN.ShowInputDialogue('請輸入','員工編號','001');
end;
1
2
3
4
5

運行結果 顯示員工編號輸入視窗


# 3.55. ShowWarningDialogue

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

說明: 警告訊息提示對話方塊 返回值: 布爾Boolean型別

  • ShowWarningDialogue函式語法中各部分說明
部分 說明
Caption 對話方塊標題
Text 對話方塊內容
iWidth 對話方塊寬度
  • 示例
var
begin
	DBFUN. ShowWarningDialogue ('警告','讀取的檔案不正確!',256);
end;
1
2
3
4

運行結果 警告提示對話方塊


# 4. Wechat類 (微信公眾號訊息推送函式)

  本章節的函式在使用時需以Wechat.開頭。

# 4.1. SendArticleMessage

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

說明: 發送圖文資訊 返回值: 布爾Boolean型別

  • SendArticleMessage函式語法中各部分說明
部分 說明
AccountName 微信公眾號
AOpenID 微信使用者AOpenID,OpenID為微信使用者唯一標識ID
AContent 微信訊息內容
  • 示例
Begin
    //呼叫方式
	Wechat.SendArticleMessage('test','oxCHX6X4rjxj-TEStyhPmkNILNp9A','ArrayString');
End;
1
2
3
4

# 4.2. SendCustomMessage

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

說明: 發送文字訊息 返回值: 布爾Boolean型別

  • SendCustomMessage函式語法中各部分說明
部分 說明
AccountName 微信公眾號
AOpenID 微信使用者AOpenID,OpenID為微信使用者唯一標識ID
AContent 微信訊息內容
  • 示例
Begin
    //呼叫方式
	Wechat.SendCustomMessage('test','oxCHX6X4rjxj-TEStyhPmkNILNp9A','你好!');
End;
1
2
3
4

# 4.3. SendTemplateMessage

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

說明: 發送模板訊息 返回值: 布爾Boolean型別

  • SendTemplateMessage函式語法中各部分說明
部分 說明
AccountName 微信公眾號
AJsonContent Json格式化字串,格式請參考https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Template_Message_Interface.html (opens new window)
  • 示例
Begin
    //呼叫方式
	Wechat.SendTemplateMessage('test','JsonContent');
End;
1
2
3
4

# 4.4. SendWechatMsg

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

說明: 發送模板訊息 返回值: 布爾Boolean型別

  • SendWechatMsg函式語法中各部分說明
部分 說明
AccountName 微信公眾號
AOpenID 微信使用者AOpenID,OpenID為微信使用者唯一標識ID
ATemplateID 微信訊息模板ID
AContent 微信訊息內容
  • 示例
Begin
    //呼叫方式
	Wechat.SendWechatMsg('test','oxCHX6X4rjxj-TEStyhPmkNILNp9A','templateID','TemplateContent');
End;
1
2
3
4

# 5. PaxScript註冊函式

# 5.1. BIG2cn

function BIG2cn(BigStr: string): string;
1

說明: 繁體字轉簡體字 返回值: 字元string型別

  • BIG2cn函式語法中各部分說明
部分 說明
BigStr 指定一個繁體字串
  • 示例
//簡體字換為繁體字
begin
  BIG2cn('我是中國人!');
end;
1
2
3
4

運行結果


# 5.2. Cn2Big

function Cn2Big(CnStr: string): string;
1

說明: 簡體字轉繁體字 返回值: 字元string型別

  • Cn2Big函式語法中各部分說明
部分 說明
CnStr 指定一個簡體字串
  • 示例
//簡體字換為繁體字
begin
  Cn2Big('我是中國人!');
end;
1
2
3
4

運行結果


# 5.3. DigitToEn

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

說明: 數字轉換為英文 返回值: 字元string型別

  • DigitToEn函式語法中各部分說明
部分 說明
strDigits 指定一個小寫數字串
intRMB 是否轉換為英文金額顯示
  • 示例
//數字轉換為英文
var
    s:string;
begin
  s := DigitToEn('10023.8',true);
end;
1
2
3
4
5
6

運行結果 TEN THOUSAND TWENTY-THREE YUANS AND EIGHT CENTS ONLY


# 5.4. GetChinaMoney

function GetChinaMoney(small: Variant): string;
1

說明: 小數轉換為中國大寫金額 返回值: 字元string型別

  • GetChinaMoney函式語法中各部分說明
部分 說明
small 指定一個小寫數字金額
  • 示例
//簡體字換為繁體字
var
    s:string;
begin
  s := GetChinaMoney('123.58');
end;
1
2
3
4
5
6

運行結果 壹佰貳拾叁元伍角捌分


# 5.5. GetHostName

function GetHostName: string;
1

說明: 獲取計算機名稱 返回值: 字元string型別

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

運行結果: SCZHF-PC


# 5.6. GetHostIP

function GetHostIP: String;
1

說明: 獲取計算機IP地址 返回值: 字元String型別

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

運行結果: 192.168.1.100


# 5.7. GetMacAddress

function GetMacAddress: string;
1

說明: 獲取計算機網絡卡地址 返回值: 字元String型別

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

運行結果: 01:1A:1B:EF:0A:BC


# 5.8. GetPropValue

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

說明: 獲取控制元件屬性值 返回值: 變體Variant 型別

  • GetPropValue函式語法中各部分說明
部分 說明
QControl 需要獲取屬性的控制元件
QControlProp 控制元件屬性名稱
  • 示例
var
  vPropValue:variant;
begin
  //獲取窗體FThis.dbdts0FItemName對象的Name名稱
  vPropValue := GetPropValue(FThis.dbdts0FItemName,'Name');
  Showmessage(vPropValue);
end;
1
2
3
4
5
6
7

# 5.9. MACToStr

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

說明: MAC地址轉字串 返回值: 字元Srting型別

  • MACToStr函式語法中各部分說明
部分 說明
ByteArr MAC地址
Len 長度
  • 示例

# 5.10. NetHttpGet

function NetHttpGet(Qurl: string): string;
1

說明: 獲取Http請求 返回值: 字元string型別

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

運行結果


# 5.11. NetHttpPost

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

說明: 提交Http請求 返回值: 字元string型別

  • NetHttpPost函式語法中各部分說明
部分 說明
Qurl Http 內容
  • 示例
//通過RestAPI發送一封郵件
http://192.168.1.100:8809/rest/email/sendmail?subject=NewMail&email=youname@yourdomain.com&content= Welcome to use IsoFace series products&attachment=
1
2

運行結果 收到新郵件


# 6. 模板窗體打開方式函式

# 6.1. ExpExcel

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

說明: 打開表格導出的對話方塊 返回值: 布爾Boolean型別

  • ExpExcel函式語法中各部分說明
部分 說明
AComponent 要導出的數據表元件名稱,在系統中名稱通常為FThis.tbGriddtsx
ACaption 對話方塊標題欄顯示的名稱
ATitle 導出的表格檔案的名稱
  • 示例
begin
  //指定的數據的序號,請檢視功能表中的設計-模組設計-窗體設計中指定的序號,比如數據集的序號為1,則此處指定為tbGriddts1。
  ExpExcel(FThis.tbGriddts1,'導出客戶資料','客戶資料',nil);
end;
1
2
3
4

運行結果

# 6.2. InputNumber

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

說明: 數字輸入小鍵盤 返回值: 布爾Boolean型別

  • InputNumber函式語法中各部分說明
部分 說明
AField 指定數據集欄位,數值型的欄位
ACantion 小鍵盤標籤
  • 示例
Begin 
   InputNumber(FThis.dts0.FieldByName('FInterID'),'請輸入一個數字');
End;
1
2
3

運行結果


# 6.3. InputNumberR

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

說明: 字元型變數輸入小鍵盤 返回值: 布爾Boolean型別

  • 函式語法中各部分說明
部分 說明
vStr 一個字元型變數
ACantion 小鍵盤標籤
  • 示例
Var
 vStr:String;
Begin 
   //帶變數
   vStr := '1234';
   InputNumberR(vStr,'請輸入字串');
End;
1
2
3
4
5
6
7

運行結果


# 6.4. InputNumberStr

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

說明: 字串輸入小鍵盤 返回值: 布爾Boolean型別

  • InputNumberStr函式語法中各部分說明
部分 說明
AField 指定數據集欄位,欄位需要是字元型的
ACantion 小鍵盤標籤
  • 示例
Begin 
   //字元型欄位
   InputNumberStr (FThis.dts0.FieldByName('FItemCode'),'請輸入字串');
End;
1
2
3
4

運行結果

# 6.5. MiniWebPage

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

說明: 以彈窗方式打開網頁瀏覽頁面。 返回值: 返回TBaseWebPage對象。

  • 函式語法中各部分說明
部分 說明
AUrl 打開視窗預設載入的網頁地址
ACaption 打開視窗的標題
  • 示例:
begin
  MiniWebPage('http://192.168.0.113:8080','主頁');
end.
1
2
3

# 6.6. ShowDBTreeView

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

說明: 樹型模板打開方式 返回值: TBaseDBTreeView對像

  • 函式語法中各部分說明
部分 說明
QModuleCode 模組程式碼
QModuleCaption 模組標題,可以指定窗體打開時候的標籤名稱
QbMulti 窗體是否可以多開
  • 示例
Begin
//打開客戶分類窗體,以下三種方式都是可以的,結果一樣。
ShowDBTreeView('CustGroupList');
	ShowDBTreeView('CustGroupList', '客戶分類');
ShowDBTreeView('CustGroupList', '客戶分類',false);
End;
1
2
3
4
5
6

# 6.7. ShowEdit

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

說明: 編輯模板的打開方式 返回值: TBaseEdit對像

  • ShowEdit函式語法中各部分說明
部分 說明
QModuleCode 模組程式碼
QKeyID 主鍵值
QContextForm 上文窗體
QModuleCaption 模組標題,可以指定窗體打開時候的標籤名稱
QbMulti 窗體是否可以多開
QbFree 關閉窗體時是否釋放窗體
  • 示例
Begin
    //打開客戶資料編輯窗體
	ShowEdit ('CustEdit',FThis.dts1.FieldByName('FInterID').asString,FThis);
End;
1
2
3
4

# 6.8. ShowEditList

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

說明: 列表編輯模板打開方式 返回值: TBaseEditList 對像

  • ShowEditList函式語法中各部分說明
部分 說明
QModuleCode 模組程式碼
QModuleCaption 模組標題,可以指定窗體打開時候的標籤名稱
QbMulti 窗體是否可以多開
QForm 上文窗體
  • 示例
Begin
    //打開一個幣種資料列表編輯窗體
	ShowEditList('CurrencyList','幣種資料');
End;
1
2
3
4

# 6.9. ShowEditP

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

說明: 帶參數編輯模板打開方式 返回值: TBaseEdit對像

  • 函式語法中各部分說明
部分 說明
QModuleCode 模組程式碼
QKeyID 主鍵值
QParams 窗體參數值,可預定一些參數到窗體中,供指令碼使用
QContextForm 上文窗體
QModuleCaption 模組標題,可以指定窗體打開時候的標籤名稱
QbMulti 窗體是否可以多開
QbFree 關閉窗體時是否釋放窗體
  • 示例
var
 vStringList:TStringList;
begin
  //建立參數對像
  vStringList:=TStringList.Create;
  vStringList.CommaText := 'A=1,B=2,C=3,D=4';
  try
    ShowEditP('CustEdit','',vStringList);
  finally
    vStringList.free;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
  • 示例解讀:

      在CustEdit模組設計中,將欄位資訊的一個欄位[預設值型別]設定成VAR_PARAMS,然後[預設值]設定成A,當數據集新增記錄的時候,欄位值就會讀取參數中A的值1。   當然傳給窗體的參數可以在指令碼中靈活使用,可以根據不同使用者設定不同的參數值。


# 6.10. ShowGroupByList

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

說明: 數據統計模板打開方式 返回值: TBaseGroupTJ對像

  • 函式語法中各部分說明
部分 說明
QModuleCode 模組程式碼
QModuleCaption 模組標題,可以指定窗體打開時候的標籤名稱
QbMulti 窗體是否可以多開
  • 示例
Begin 
    //打開交叉報表
	ShowGroupByList (' ReportStockBillMaster','化工料生產領用匯總表');
End;
1
2
3
4

# 6.11. ShowHandWrite

function ShowHandWrite(QData:string): string;
1

說明: 手寫輸入法 返回值: 字串String型別

  • ShowHandWrite函式語法中各部分說明
部分 說明
QData 一個預設的字串,可以是原文字
  • 示例
Var
  vStr:String;
Begin 
   //顯示手寫板功能
   vStr := ShowHandWrite ('');
End;
1
2
3
4
5
6

運行效果:


# 6.12. ShowHomePage

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

說明: 主頁模板打開方式 返回值: TBaseHomePage

  • 函式語法中各部分說明
部分 說明
QModuleCode 模組程式碼
QModuleCaption 模組標題,可以指定窗體打開時候的標籤名稱
QbMulti 窗體是否可以多開
  • 示例
Begin 
    //打開主頁
	ShowHomePage(' HomePage_001','主頁');
End;
1
2
3
4

# 6.13. ShowImport

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

說明: 匯入模板窗體打開方式 返回值: 布爾Boolean型別

  • ShowImport函式語法中各部分說明
部分 說明
QForm 上文窗體
QTargetDataSet 目標數據集(需要接收數據的數據集)
QModuleCode 匯入窗體模板程式碼
QModuleCaption 匯入窗體模板名稱
QSQLFilter SQL過濾條件
QSourceDataSetIndex 源數據集索引號
QSourceField 源數據集欄位
QTargetField 目數據集標欄位
QbSelectOnly 是否單選,為Ture的時候,匯入窗體只能匯入一條數據到目標窗體
QbFree 關閉匯入窗體是否釋放窗體
QFieldChanging 是否觸發欄位改變事件
  • 示例
Begin 
    //打開選擇工序匯入窗體,工序匯入到dts0數據集中。
    ShowImport(FThis, FThis.dts0, 'SelectProcess', '選擇工序',  '', 0, '', '', true, true, false);
End;
1
2
3
4

# 6.14. ShowImportR

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

說明: 匯入模板窗體打開方式(返回主鍵字串) 返回值: 布爾Boolean型別

  • ShowImportR函式語法中各部分說明
部分 說明
QModuleCode 匯入窗體模板程式碼
QModuleCaption 匯入窗體模板名稱
QDataSetNum 目標數據集索引號
QForm 上文窗體
QSQLFilter SQL過濾條件
  • 示例
procedure TMyHandler.tb0btnImportOutStockOnClick(Sender: TObject);
var
 vStr:String;
 vSQL1,vSQL2,vSQL3:string;
 sWhere:string;
 vVariant:variant;
 vInteger:integer;
begin
  //讀取數據控制參數
  vVariant := DBFUN.GetSQLValue('SELECT isnull(FParamValue,0) FROM Dict_ExtendParams WHERE FParamID = 117');
  vInteger := vVariant; 
  ShowImportR('CLInvOutStockSelect','選擇成品出庫單',0,FThis,False);
  vStr := FThis.TagString;
  if vStr = '' then exit;
  if VStr <> '' then
  begin
     vSQL1 := DBFUN.GetTransSQL('SQL_CLStockOutTOSalInvoiceMaster'); 
     if vInteger=0 then
        vSQL2 := DBFUN.GetTransSQL('SQL_CLStockOutTOSalInvoice')
     else
        vSQL2 := DBFUN.GetTransSQL('SQL_CLStockOutTOSalInvoiceEntry');
        
     vSQL3 := DBFUN.GetTransSQL('SQL_CLStockOutTOSalInvoice');
     
     vSQL1 := ForMat(vSQL1,['('+FThis.dts0.keyList+')']);
     vSQL2 := ForMat(vSQL2,['('+FThis.dts0.keyList+')']);
     vSQL3 := ForMat(vSQL3,['('+FThis.dts0.keyList+')']);
   if DBFUN.ShowConfirmDialogue('提示','匯入會清空所有單據明細,請確認?',295) then
   begin 
    FThis.dts1.First;
    while not FThis.dts1.Eof do
    begin
     while not FThis.dts2.eof do
     begin
       FThis.dts2.Delete;
     end;
     FThis.dts1.Delete;  
    end; 
     FThis.TransSQLToDataSet(vSQL1,FThis.dts0,true);
     FThis.TransSQLToDataSet(vSQL2,FThis.dts1,true);
     FThis.TransSQLToDataSet(vSQL3,FThis.dts2,true);
     FThis.TagString :='';
     FThis.dts1.First;
   end;
  end;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

# 6.15. ShowList

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

說明: 列表模板打開方式 返回值: TBaseList對像

  • ShowList函式語法中各部分說明
部分 說明
QModuleCode 模組程式碼
QModuleCaption 模組標題,可以指定窗體打開時候的標籤名稱
QbMulti 窗體是否可以多開
QForm 上文窗體
  • 示例
Begin
    //打開一個客戶列表窗體
	ShowList('CustList','客戶列表');
End;
1
2
3
4

# 6.16. ShowPivotGrid

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

說明: 交叉報表模板打開方式 返回值: TBasePivotGrid

  • ShowPivotGrid函式語法中各部分說明
部分 說明
QModuleCode 模組程式碼,模組設計中指定唯一模組程式碼
QModuleCaption 模組標題,可以指定窗體打開時候的標籤名稱
QbMulti 窗體是否可以多開
  • 示例
Begin 
    //打開交叉報表
	ShowPivotGrid('ReportSMPMaterialBillPivot','料單耗用表');
End;
1
2
3
4

# 6.17. ShowPlayer

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

說明: 彈窗式打開視訊播放頁面 返回值: TBasePlayer對像

  • ShowPlayer函式語法中各部分說明
部分 說明
ACaption 頁面顯示的標題
AUrl 視訊播放的地址
ASimple 是否啟用簡單模式,在簡單模式中視窗僅顯示視訊不顯示視訊控制區的按鈕
  • 示例
begin
    //ShowPlayer('現場直播','rtmp://192.168.0.113/live/001');
    ShowPlayer('視訊播放','http://192.168.0.113:8080/sample.mp4');
end.
1
2
3
4

# 6.18. ShowPopup

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

說明: 彈窗式編輯模板的打開方式 返回值: TBasePopup對像

  • ShowPopup函式語法中各部分說明
部分 說明
QModuleCode 模組程式碼
QKeyID 主鍵值
QContextForm 上文窗體
QModuleCaption 模組標題,可以指定窗體打開時候的標籤名稱
QbMulti 窗體是否可以多開
QbFree 關閉窗體時是否釋放窗體
  • 示例
Begin
    //打開客戶資料編輯窗體
	ShowPopup('CustEdit',FThis.dts1.FieldByName('FInterID').asString,FThis);
End;
1
2
3
4

# 6.19. ShowSPList

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

說明: 預存程序模板列表打開方式 返回值: TBaseSPList對像

  • ShowSPList函式語法中各部分說明
部分 說明
QModuleCode 模組程式碼
QModuleCaption 模組標題,可以指定窗體打開時候的標籤名稱
QbMulti 窗體是否可以多開
QForm 上文窗體
  • 示例
Begin
//打開預存程序模板列表。
ShowSPList(' ReportInvStockSFC ','化工料收發存彙總表');
End;
1
2
3
4
  • 示例解讀:

  預存程序模板列表主要是可以自由構建SQL內容,可以將數據集查詢條件做為參數融入到SQL語句中,而不是象列表模板一樣,將數據集查詢條件自己拼接作為Where條件內容使用。   預存程序列表模板SQL典型內容:

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

  其中:FDate1,:FDate2,:FStockID,:FItemCode,:FBatchNO 都是指查詢條件,模板執行時,系統會自動解析這些參數,獲取到查詢條件對應的查詢內容。


# 6.20. ShowWebPage

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

說明: 在頁面中打開網頁。 返回值: TBaseWebPage對象。

  • ShowWebPage函式語法中各部分說明
部分 說明
AUrl 網頁地址
ACaption 頁面標題
QbMulti 是否啟用多頁面模式,即系統中該模組只允許在一個網頁頁面標籤中使用
  • 示例:
begin
  ShowWebPage('http://192.168.0.113:8805','EMS',True);
end.
1
2
3

# 7. 全域性類函式

# 7.1. AppInfo

function AppInfo: TAppInfo;
1

說明: 平臺資訊類(平臺及中介軟體連線資訊) 返回值: TAppInfo類

  • 示例
Begin 
//讀取程式名稱
AppInfo.AppName;
End;
1
2
3
4

# 7.2. CommonDM

function CommonDM: TCommonModule;
1

說明: 全域性常用數據類(目前只用來做全域性多語言使用) 返回值: TCommonModule類

  • 示例
Begin 
    //讀取S_ButtonConfrim的多語言內容
	CommonDM. GetLangString('S_ButtonConfrim');
End;
1
2
3
4

# 7.3. Company

function Company: TCompany;
1

說明: 公司資料類(公司資訊) 返回值: TCompany類

  • 示例
Begin 
//獲取公司繁體名稱
Company. CompanyNameTW;
End;
1
2
3
4

# 7.4. InvSystemParams

function InvSystemParams: TInvSystemParams;
1

說明: 存貨覈算參數類(存貨覈算時單價和金額小數點位數、覈算方式等資訊) 返回值: TInvSystemParams類

  • 示例
Begin 
//讀取存貨覈算金額小數點保留位數
InvSystemParams. AmountDecLen;
End;
1
2
3
4

# 7.5. SystemParams

function SystemParams: TSystemParams;
1

說明: 系統參數類(會計期間、單價和金額小數點位數等資訊) 返回值: TSystemParams類

  • 示例
Begin 
//讀取目前期間年份
SystemParams. CurrentYear;
End;
1
2
3
4

# 7.6. UserInfo

function UserInfo: TUserInfo;
1

說明: 使用者資訊類(操作員屬性) **返回值:**TUserInfo類

  • 示例
Begin 
    //調取使用者名稱稱
	UserInfo.UserName;
    //調取使用者管理員標識
	UserInfo.IsAdmin;
End;
1
2
3
4
5
6

系統程式
自定程式

← 系統程式 自定程式→

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