愛招飛幫助手冊 愛招飛幫助手冊
  • 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
  • Smart幫助主頁
  • 學習手冊

    • 基本入門

    • 功能介紹

    • 控制元件說明

    • 功能用法

    • 專用模板

    • 開發流程

    • 函式程式

      • 系統函式
      • 系統程式
      • 自定函式
      • 自定程式
        • 1. BaseFrom基類程式
          • 1.1. AddDataSet
          • 1.2. DataSetMoveRowDown
          • 1.3. DataSetMoveRowUp
          • 1.4. DataSetRowCopy
          • 1.5. DataSetSort
          • 1.6. OpenModbusThread
          • 1.7. PostData
          • 1.8. PostData
          • 1.9. SetBookMark
          • 1.10. SetDataParamValue
          • 1.11. StopModbusThread
          • 1.12. TransSQLToDataSet
        • 2. DM程式
          • 2.1. CreateDataSet
          • 2.2. CreateTableToSqlScript
          • 2.3. FillComboBox
          • 2.4. FillDBComboBox
          • 2.5. SetData
          • 2.6. SetDataParamValue
          • 2.7. SetPictureFileToFieldBlob
        • 3. PaxFunc程式
          • 3.1. AdvancedInfo
          • 3.2. Base64Put
          • 3.3. ChangeCamera
          • 3.4. CloseCamera
          • 3.5. GetMarkerAddress
          • 3.6. keybdEvent
          • 3.7. LoadCamerasList
          • 3.8. Msg
          • 3.9. OpenAPP
          • 3.10. OpenCamera
          • 3.11. OpenPlugProc
          • 3.12. SetCamView
          • 3.13. SetFocus
          • 3.14. SetPropValue
          • 3.15. ShowReport
          • 3.16. Speak
          • 3.17. WriteErrorLog
          • 3.18. WriteLog
          • 3.19. LoadStructureJSONArray
          • 3.20. LoadStructureJSONString
          • 3.21. LoadFromJSONObject
          • 3.22. LoadFromJSONArray
          • 3.23. LoadFromJSONString
          • 3.24. MergeFromJSONObject
          • 3.25. MergeFromJSONString
        • 4. IOT程式
          • 4.1. ComAddList
          • 4.2. ComClose
          • 4.3. ComConfig
          • 4.4. ComOpen
          • 4.5. ComWriteAnsiChar
          • 4.6. ComWriteAnsiLine
          • 4.7. ComWriteChar
          • 4.8. ComWriteString
          • 4.9. MQTTWrite
          • 4.10. OPCWrite
          • 4.11. RTUWrite
          • 4.12. TCPWrite
  • 開發手冊

目录

自定程式

# Smart 自定程式

# 1. BaseFrom基類程式

基類程式在指令碼中呼叫時,必須以FThis.開頭。

# 1.1. AddDataSet

procedure AddDataSet(QDataSet: TRFDataSet);
1

說明: 將數據集加入到窗體DataSetList數據集合

  • DoFirst程式語法中各部分說明
部分 說明
QDataSet 數據集對像
  • 示例
Begin
    //將數據集加入到DataSetList集合中
	FThis.AddDataSet(FThis.DataSet1);
end;
1
2
3
4

# 1.2. DataSetMoveRowDown

procedure DataSetMoveRowDown(QDataSet: TRFDataSet; QSort: string =
    'FEntryID');
1
2

說明: 數據集記錄下移

  • DataSetMoveRowDown程式語法中各部分說明
部分 說明
QDataSet 指定一個需要操作的數據集對像
QSort 排序欄位名稱,預設FEntryID
  • 示例
Begin
    //下移記錄
    FThis.DataSetMoveRowDown(FThis.dts1);
End;
1
2
3
4

# 1.3. DataSetMoveRowUp

procedure DataSetMoveRowUp(QDataSet: TRFDataSet; QSort: string =
    'FEntryID');
1
2

說明: 數據集記錄上移

  • DataSetMoveRowUp程式語法中各部分說明
部分 說明
QDataSet 指定一個需要操作的數據集對像
QSort 排序欄位名稱,預設FEntryID
  • 示例
Begin
    //上移記錄
    FThis.DataSetMoveRowUp(FThis.dts1);
End;
1
2
3
4

# 1.4. DataSetRowCopy

procedure DataSetRowCopy(QDataSet: TRFDataSet);
1

說明: 複製一條數據集記錄

  • DataSetRowCopy程式語法中各部分說明
部分 說明
QDataSet 指定一個需要操作的數據集對像
  • 示例
Begin
    //複製一條記錄
    FThis.DataSetRowCopy (FThis.dts1);
End;
1
2
3
4

# 1.5. DataSetSort

procedure DataSetSort(QDataSet: TRFDataSet; QSort: string = 'FEntryID');
1

說明: 數據集排序

  • DataSetSort程式語法中各部分說明
部分 說明
QDataSet 指定一個需要操作的數據集對像
QSort 數據集排序欄位名稱,預設是FEntryID
  • 示例
begin
    //排序數據集
    FThis.DataSetSort(FThis.dts1);
end;
1
2
3
4

# 1.6. OpenModbusThread

Procedure OpenModbusThread;
1

說明: 啟用窗體上所有Modbus執行緒

  • 示例
Begin
	FThis.OpenModbusThread;
end;
1
2
3

# 1.7. PostData

procedure TBaseForm.PostData(QDataSet: TRFDataSet);
1

說明: 儲存數據

  • DoFirst程式語法中各部分說明
部分 說明
QDataSet 數據集對像
  • 示例
Begin
    //提交數據集數據
    FThis.PostData (FThis.DataSet1);
end;
1
2
3
4

# 1.8. PostData

procedure PostData(QDataSet: TRFDataSet);
1

說明: 提交數據集

  • PostData程式語法中各部分說明
部分 說明
QDataSet 指定一個需要Post的數據集對像
  • 示例
begin
    //dts0數據集Post
    FThis.PostData(FThis.dts0);
    //也可以這樣寫
    if FThis.dts0.State in dsEditModes then
    FThis.dts0.Post;
end;
1
2
3
4
5
6
7

# 1.9. SetBookMark

procedure SetBookMark(QDataSet: TRFDataSet; QBK: Integer);
1

說明: 設定數據集書籤

  • SetBookMark程式語法中各部分說明
部分 說明
QDataSet 指定一個需要設定書籤的數據集
QBK 書籤操作型別 0,1,2
  • 示例
Begin
    //獲取數據集目前書籤記錄位置
    FTHis.SetBookMark(FThis.dts0,1);
    程式碼片段…
    //回到原書籤記錄位置
    FTHis.SetBookMark(FThis.dts0,2);
    程式碼片段…
end;
1
2
3
4
5
6
7
8

# 1.10. SetDataParamValue

procedure SetDataParamValue(QDataSet: TRFDataSet; QIndex: Integer; QVar:
    Variant);
1
2

說明: 數據集參數賦值

  • SetDataParamValue程式語法中各部分說明
部分 說明
QDataSet 指定一個需要操作的數據集對像
QIndex 數據集參數索引號
QVar 參數值
  • 示例
begin
    //數據集參數賦值
    FThis.SetDataParamValue(FThis.dts1,0, '123');
end;
1
2
3
4

# 1.11. StopModbusThread

Procedure StopModbusThread;
1

說明: 關閉窗體上所有Modbus執行緒

  • 示例
Begin
	FThis.StopModbusThread;
end;
1
2
3

# 1.12. TransSQLToDataSet

procedure TransSQLToDataSet(QSQLs: UnicodeString; QDataSets: TRFDataSet;
    bTrans: Boolean = true);
1
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;
1
2
3
4
5
6
7

# 2. DM程式

DM程式在指令碼中呼叫時,必須以DM.開頭

# 2.1. CreateDataSet

procedure CreateDataSet(var QDataSet: TRFDataSet; AOwner: TComponent = nil);
1

說明: 建立數據集對像

  • 程式語法中各部分說明
部分 說明
QDataSet 數據集變數
AOwner 所有者
  • 示例
Var
    vDataSet:TRFDataSet;
begin
    //建立vDataSet對像
    DM.CreateDataSet(vDataSet,nil);
    //下面建立方法與CreateDataSet效果一樣
    vDataSet:= TRFDataSet.Create(nil);
    vDataSet.Connection := DM.SQDBConnection;
end;
1
2
3
4
5
6
7
8
9

# 2.2. CreateTableToSqlScript

procedure CreateTableToSqlScript(ATable, AKeyFiled, ACurrID: string;
    AFileName: string = '');
1
2

說明: 將表數據導出

  • CreateTableToSqlScript程式語法中各部分說明
部分 說明
ATable 數據表名
AKeyFiled 主鍵欄位名
ACurrID 主鍵值
AFileName 導出檔名稱
  • 示例
begin
    //導出Basic_Item表的全部數據
    DM.CreateTableToSqlScript('Basic_Item','','');
    //導出Basic_Item表主鍵值為123的數據
    DM.CreateTableToSqlScript('Basic_Item','FInterID','123','');
    //導出Basic_Item表的全部數據,並指定檔名稱
    DM.CreateTableToSqlScript('Basic_Item','','Data_Basic_Item');
end;
1
2
3
4
5
6
7
8

# 2.3. FillComboBox

procedure FillComboBox(QControl: TComboBox; QSQL: string);

1
2

說明: 填充TComboBox下拉控制元件

  • FillComboBox程式語法中各部分說明
部分 說明
QControl 指定一個需要填充數據的TComboBox對像
QSQL 指定一個SQL字串,用來獲取填充數據

# 2.4. FillDBComboBox

procedure FillDBComboBox(QControl: TComboBox; QSQL: string);
1

說明: 填充TDBComboBox下拉控制元件

  • FillDBComboBox程式語法中各部分說明
部分 說明
QControl 指定一個需要填充數據的TcxDBComboBox對像
QSQL 指定一個SQL字串,用來獲取填充數據
  • 示例
Var
    vSQL:String;
begin
    vSQL:= 'Select FWhsName as FName from Basic_Whs';
    DM.FillDBComboBox(FThis.ComboBox1, vSQL);
end;
1
2
3
4
5
6

# 2.5. SetData

Procedure SetData(QSourceDataSet, QTargetDataSet: TRFDataSet);
1

說明: 數據集對拷

  • SetData程式語法中各部分說明
部分 說明
QSourceDataSet 源數據集
QTargetDataSet 目標數據集
  • 示例
Var
    vTargetDataSet: TRFDataSet;
begin
    //將dts0數據集數據拷貝給vTargetDataSet
    vTargetDataSet:= TRFDataSet.Create(nil);
    DBFun.SetData(FThis.dts0, vTargetDataSet);
end;
1
2
3
4
5
6
7

# 2.6. SetDataParamValue

procedure SetDataParamValue(QDataSet: TRFDataSet; QIndex: Integer; QVar:
    Variant);
1
2

說明: 數據集參數賦值

  • SetDataParamValue程式語法中各部分說明
部分 說明
QDataSet 指定一個需要操作的數據集對像
QIndex 數據集參數索引號
QVar 參數值
  • 示例
begin
    //數據集參數賦值
    DM.SetDataParamValue(FThis.dts1,0, '123');
end;
1
2
3
4

# 2.7. SetPictureFileToFieldBlob

Procedure SetPictureFileToFieldBlob(QFileName: string; QFiled: TField);
1

說明: 將圖片儲存到數據欄位

  • SetPictureFileToFieldBlob程式語法中各部分說明
部分 說明
QFileName 圖片名稱,來自檔案
QFiled 數據集欄位
  • 示例
begin
    //將c:\\Temp.jpg,儲存到數據欄位 FPicture中
    DM.SetPictureFileToFieldBlob('c:\\Temp.jpg',FThis.dts0.FieldByName('FPicture'));
end;
1
2
3
4

# 3. PaxFunc程式

PaxFunc註冊程式在指令碼中呼叫時,必須以PaxFunc.開頭。

# 3.1. AdvancedInfo

Procedure AdvancedInfo(AMapView: TAMapView);
1

說明: 載入高德地圖資訊

  • AdvancedInfo程式語法中各部分說明
部分 說明
AMapView 高德地圖控制元件
  • 示例
Begin
    paxfunc.AdvancedInfo(FThis.AMapView1);
    FThis.AMapView1.LoadMap;
End;
1
2
3
4

# 3.2. Base64Put

procedure Base64Put(Base64Str,FileName:String);
1

說明: base64字串儲存為檔案

  • Base64Put程式語法中各部分說明
部分 說明
Base64Str 指定一個Base64編碼字串。
FileName 需要儲存的檔案路徑。

# 3.3. ChangeCamera

Procedure ChangeCamera(QcomboBox: TcomboBox; QRVCamera: TRVCamera);
1

說明: 選擇視訊列表

  • ChangeCamera程式語法中各部分說明
部分 說明
QcomboBox 視訊下拉選單控制元件
QRVCamera 攝像頭控制元件
  • 示例
Begin
    PaxFunc.ChangeCamera(FThis.cmbCamera,FThis.RVCamera1);
End;
1
2
3

# 3.4. CloseCamera

Procedure CloseCamera(QRVCamera: TRVCamera);
1

說明: 關閉攝像頭

  • CloseCamera程式語法中各部分說明
部分 說明
QRVCamera 攝像頭控制元件
  • 示例
Begin
    PaxFunc.CloseCamera(FThis.RVCamera1);
End;
1
2
3

# 3.5. GetMarkerAddress

Procedure GetMarkerAddress(AMapView: TVCLCCAMapView; ALocation: TCCLngLat;
    AFrom:TBaseForm);
1
2

說明: 獲取地圖示記地址

  • GetMarkerAddress程式語法中各部分說明
部分 說明
AMapView 高德地圖控制元件
ALocation 經緯度對像
AFrom 窗體對像
  • 示例
procedure TMyHandler.VCLCCAMAPVIEW1MAPCLICKEVENT(ASender: TObject; APos:TCCLngLat);
var
    vTCCAMapMarker:TCCAMapMarker;
begin
    //點選地圖時的經緯座標
    FPos:=APos;

    //顯示經緯度到標籤上
    FThis.lbJW.Caption := FloatToStr(APos.Longitude)+','+ FloatToStr(APos.Latitude);
    FThis.TagString := '';

    //獲取經緯度的地址
    paxfunc.GetMarkerAddress(FThis.VCLCCAMapView1,APos,FThis);
    //清除地圖示記
    FThis.VCLCCAMapView1.Markers.Clear;

    //增加一個標記到地圖上
    vTCCAMapMarker := paxfunc.AddMarker(FThis.VCLCCAMapView1);
    if FThis.VCLCCAMapView1.MapLoadCompleted then
    begin
        with vTCCAMapMarker do
        begin
            //標記地圖資訊
            Title := FThis.TagString;
            Position.Longitude := APos.Longitude;
            Position.Latitude := APos.Latitude;
            // 設定了Content屬性Icon屬性失效。要自定義豐富的標記就用Content屬性吧
            Content:='<div>';
            Content:=Content+'<imagesrc="http://webapi.amap.com/theme/v1.3/markers/n/mark_r.png"></image>';

            //Content:=Content+'<span style="white-space: nowrap;border:1px solid#fff;background-color:#ff0000;font-size: 12px;color:white; padding: 4px10px;">'+FThis.TagString+'</span>';

            // 圖片19 x 31 pixels

            Content:=Content+'</div>'; // 必須有根div元素 不然縮放時圖示位置不會更新

            // 繪製
            draw;
        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

# 3.6. keybdEvent

Procedure keybdEvent(bVk, bScan: Byte; dwFlags: Cardinal;dwExtraInfo:
    Cardinal);
1
2

說明: 模擬鍵盤操作

  • keybdEvent程式語法中各部分說明
部分 說明
bVk 虛擬鍵值,如回車鍵為vk_return, tab鍵為vk_tab。
bScan 掃瞄碼,一般不用設定,用0代替就行。
dwFlags 選項標誌,如果為keydown則置0即可,如果為keyup則設成「KEYEVENTF_KEYUP」。
dwExtraInfo 額外資訊,一般不用設定,用0代替就行。
  • 示例
Begin

   //例子1:模擬按下'A'鍵

  PaxFunc.keybdEvent (65,0,0,0);

  PaxFunc.keybdEvent (65,0,KEYEVENTF_KEYUP,0);

   //例子2:模擬按下'ALT+F4'鍵

  PaxFunc.keybdEvent (18,0,0,0);

  PaxFunc.keybdEvent (115,0,0,0);

  PaxFunc.keybdEvent (115,0,KEYEVENTF_KEYUP,0);

  PaxFunc.keybdEvent (18,0,KEYEVENTF_KEYUP,0);

End;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 3.7. LoadCamerasList

Procedure LoadCamerasList(QCamerasList,QCameraSourceList: TStrings);
1

說明: 載入視訊列表

  • LoadCamerasList程式語法中各部分說明
部分 說明
QCamerasList 攝像頭列表
QCameraSourceList 攝像頭資源列表
  • 示例
Begin

End;
1
2
3

# 3.8. Msg

Procedure Msg(aMsg: string; aTitle: string = ''; iTime: Integer = 2; bTime:
    Boolean = true);
1
2

**說明:**訊息對話方塊

  • 程式語法中各部分說明
部分 說明
aMsg 訊息內容
aTitle 訊息對話方塊標題
iTime 自動關閉時間(秒)
bTime 是否啟用自動關閉定時器
  • 示例
Begin
    PaxFunc.Msg('你好!這是一個訊息對話方塊!','提示',2,true);
End;
1
2
3
  • 運行結果

# 3.9. OpenAPP

procedure OpenAPP(QFileName:string;QParam:string='';QShowCmd:integer=2);
1

說明: 打開第三方程式

  • OpenAPP程式語法中各部分說明
部分 說明
QFileName 程式名稱帶路徑
QParam 傳輸進去的參數
QShowCmd
  • 示例
Begin
    //打開Smart
    PaxFunc.OpenAPP('Smart.exe','',2);
End;
1
2
3
4

# 3.10. OpenCamera

Procedure OpenCamera(QRVCamera: TRVCamera);
1

說明: ChangeCamera打開攝像頭

  • OpenCamera程式語法中各部分說明
部分 說明
QRVCamera 攝像頭控制元件
  • 示例
Begin
    paxfunc.OpenForm('WebCamera','WebCamera');
End;
1
2
3

# 3.11. OpenPlugProc

procedure OpenPlugProc(const PlugName,ProcName: string);
1

說明: 呼叫外掛功能

  • 程式語法中各部分說明
部分 說明
PlugName 外掛名稱
ProcName 外掛中註冊的方法
  • 示例
Begin
    //呼叫外掛Test中的ShowFrom方法
    PaxFunc.OpenPlugProc('Test','ShowFrom');
End;
1
2
3
4

# 3.12. SetCamView

Procedure SetCamView(QCamView: TRVCamView; QRVCamera: TRVCamera);
1

說明:繫結攝像頭到視訊顯示控制元件

SetCamView程式語法中各部分說明

部分 說明
QCamView 視訊顯示控制元件
QRVCamera 攝像頭控制元件

示例

Begin
    PaxFunc.SetCamView(FThis.RVCamView, FThis.RVCamera1);
End;
1
2
3

# 3.13. SetFocus

Procedure SetFocus(QControl: TWinControl);
1

**說明:**設定控制元件焦點

  • SetFocus程式語法中各部分說明
部分 說明
QControl 需要設定焦點的控制元件
  • 示例
Begin
    PaxFunc.SetFocus(FThis.Edit1);
End;
1
2
3

# 3.14. SetPropValue

Procedure SetPropValue(QControl:TComponent; QControlProp: string; QValue:
    Variant);
1
2

說明: 設定控制元件屬性

  • SetPropValue程式語法中各部分說明
部分 說明
QControl 控制元件對像
QControlProp 控制元件屬性
QValue 屬性值
  • 示例
Begin
    //將控制元件FThis.dbdts0FCustCode的Enable設定成Fasle
    PaxFunc.SetPropValue(FThis.dbdts0FCustCode, 'Enable',False);
End;
1
2
3
4

# 3.15. ShowReport

Procedure ShowReport(QModuleID: string; QBaseForm: TBaseForm; QCurrID:
    string = ''; QMXID: string = '';QShowPrintDlg: Boolean = true; QPreview:
    Boolean = true);
1
2
3

說明: 打開報表設計窗體

  • ShowReport程式語法中各部分說明
部分 說明
QModuleID 模組ID
QBaseForm 窗體對像
QCurrID 主鍵值
QMXID 報表ID
QShowPrintDlg 是否打開列印對話方塊
QPreview 是否預覽
  • 示例
begin
    //打開報表配置
    PaxFunc.ShowReport('ReportPrint',FThis,'','',false,false);
    //預覽報表
    PaxFunc.ShowReport('ReportPrint',FThis,'','EB8BA008-4730-4BAC-AD5F-2D469C2FB732',false,True);
end;
1
2
3
4
5
6

# 3.16. Speak

procedure Speak(QSpeak: string);
1

說明: 將字串轉成語音

  • 程式語法中各部分說明
部分 說明
QSpeak 需要轉換成語音的內容
  • 示例
Begin
    PaxFunc.Speak('我是中國人,I am Chinese!');
End;
1
2
3

# 3.17. WriteErrorLog

procedure WriteErrorLog(AErrorText: string);
1

說明: 寫入錯誤日誌

  • WriteErrorLog程式語法中各部分說明
部分 說明
AErrorText 錯誤日誌內容
  • 示例
Begin
    //指定日誌檔案增加日誌內容
    PaxFunc. WriteErrorLog('數據讀取失敗失敗!');
End;
1
2
3
4

# 3.18. WriteLog

procedure WriteLog(aFileName: string; ALog: string);
1

說明: 指定檔案寫入日誌

  • WriteLog程式語法中各部分說明
部分 說明
aFileName 日誌檔名稱
ALog 日誌內容
  • 示例
Begin
    //指定日誌檔案增加日誌內容
    PaxFunc.WriteLog ('2019072301.txt', '測試');
End;
1
2
3
4

# 3.19. LoadStructureJSONArray

procedure LoadStructureJSONArray(ADataSet:TDataSet;const AJSONArray: TJSONArray; const AOwns: Boolean = True);
1

說明: 將數據集的數據表結構從JSONArrary中載入。

  • LoadStructureJSONArray程式語法中各部分說明
部分 說明
ADataSet 設定要載入的數據集
AJSONArray 設定源JSON佇列
AOwns 是否佔用

# 3.20. LoadStructureJSONString

procedure LoadStructureJSONString(ADataSet:TDataSet;const AJSONString: string); 
1

說明: 將數據集的數據表結構從JSON格式的字串中讀取載入。

  • LoadStructureJSONString程式語法中各部分說明
部分 說明
ADataSet 設定要載入的數據集
AJSONString 設定源JSON字串

# 3.21. LoadFromJSONObject

procedure LoadFromJSONObject(ADataSet:TDataSet;const AJSONObject: TJSONObject; const AOwns: Boolean = True)
1

說明: 數據集從JSON對像中獲取載入單條記錄。

  • LoadFromJSONObject程式語法中各部分說明
部分 說明
ADataSet 設定要載入的數據集
AJSONObject 設定源JSON對像
AOwns 是否佔用

# 3.22. LoadFromJSONArray

procedure LoadFromJSONArray(ADataSet:TDataSet;const AJSONArray: TJSONArray; const AOwns: Boolean = True);
1

說明: 數據集從JSON對像序列中獲取載入多條記錄。

  • LoadFromJSONArray程式語法中各部分說明
部分 說明
ADataSet 設定要載入的數據集
AJSONArray 設定源JSON佇列
AOwns 是否佔用

# 3.23. LoadFromJSONString

procedure LoadFromJSONString(ADataSet:TDataSet;const AJSONString: string);
1

說明: 數據集從JSON對象的字串中獲取載入數據記錄。

  • LoadFromJSONString程式語法中各部分說明
部分 說明
ADataSet 設定要載入的數據集
AJSONString 設定源JSON字串

# 3.24. MergeFromJSONObject

procedure MergeFromJSONObject(ADataSet:TDataSet;const AJSONObject: TJSONObject; const AOwns: Boolean = True);
1

說明: 數據集從JSON對像中讀取單條數據記錄併合並至數據集中。

  • MergeFromJSONObject程式語法中各部分說明
部分 說明
ADataSet 設定要載入的數據集
AJSONObject 設定源JSON對像
AOwns 是否佔用

# 3.25. MergeFromJSONString

procedure MergeFromJSONString(ADataSet:TDataSet;const AJSONString: string);
1

說明: 數據集從JSON對像字串中讀取數據記錄併合並至數據集中。

  • MergeFromJSONString程式語法中各部分說明
部分 說明
ADataSet 設定要載入的數據集
AJSONString 設定源JSON字串

# 4. IOT程式

  IOT程式在指令碼中呼叫時,必須以IOT.開頭。

# 4.1. ComAddList

procedure ComAddList(ATComboBox: TComboBox; AComPort: TComPort);
1
  • ComAddList程式語法中各部分說明
部分 說明
ATComboBox 下拉控制元件用來顯示通訊埠列表
AComPort 通訊埠通訊控制元件
  • 示例
Begin
    //將設備所有通訊埠埠加入到下拉選單控制元件中
    IOT.ComAddList(FThis.ComPort1, FThis.ComboBox1);
End;
1
2
3
4

# 4.2. ComClose

procedure ComClose(AComPort: TComPort);
1

說明: 關閉通訊埠

  • 示例
Begin
    //關閉通訊埠
    IOT.ComClose(FThis.ComPort1);
End;
1
2
3
4

# 4.3. ComConfig

procedure ComConfig(AComPort: TComPort);
1

說明: 呼叫通訊埠配置窗體

  • ComConfig程式語法中各部分說明
部分 說明
AComPort 通訊埠通訊控制元件
  • 示例
Begin
    //打開通訊埠配置窗體
    IOT.ComConfig(FThis.ComPort1);
End;
1
2
3
4

# 4.4. ComOpen

procedure ComOpen(AComPort: TComPort);

1
2

說明: 打開通訊埠

  • ComOpen程式語法中各部分說明
部分 說明
AComPort 通訊埠通訊控制元件
  • 示例
Begin
    //打開通訊埠
    IOT.ComOpen(FThis.ComPort1);
End;
1
2
3
4

# 4.5. ComWriteAnsiChar

procedure ComWriteAnsiChar(AComPort:TComPort;const Value: AnsiChar);
1

說明: 向通訊埠發送AnsiChar數據

  • ComWriteAnsiChar程式語法中各部分說明

  • 示例

Begin
    IOT.ComWriteAnsiChar(FThis.ComPort1, 'A');
End;
1
2
3

# 4.6. ComWriteAnsiLine

procedure ComWriteAnsiLine(AComPort:TComPort;const Value: AnsiString);
1

說明: 向通訊埠發送AnsiString數據

  • ComWriteAnsiLine程式語法中各部分說明

  • 示例

Begin
    // FThis.Memo1.Lines.Text 內容
    //begin
    SIZE 40 mm,30 mm
    CLS

    TEXT 50,30,"TSS24.BF2",0,1,1,"商品清單"

    TEXT 50,45,"4",0,1,1,"--------------------"

    TEXT 50,60,"TSS24.BF2",0,1,1,"紅塔山 1 15 15 "

    TEXT 50,90,"TSS24.BF2",0,1,1,"娃哈哈 1 15 15 "

    TEXT 50,120,"TSS24.BF2",0,1,1,"牛肉乾 1 15 15 "

    TEXT 50,150,"TSS24.BF2",0,1,1,"紅牛 1 15 15 "

    TEXT 50,170,"4",0,1,1,"--------------------"

    TEXT 50,190,"TSS24.BF2",0,1,1,"合計 1 15 15 "

    QRCODE 50,20,L,4,A,0,"www.gainscha.com"

    PRINT 1

    EOP

    //end

    IOT.ComWriteAnsiLine(FThis.ComPort1,FThis.Memo1.Lines.Text);

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

# 4.7. ComWriteChar

procedure ComWriteChar(AComPort:TComPort;const Value: Char);
1

說明: 向通訊埠發送Char數據

  • ComWriteChar程式語法中各部分說明

  • 示例

Begin
    IOT.ComWriteChar(FThis.ComPort1, 'T');
End;
1
2
3

# 4.8. ComWriteString

procedure ComWriteString(AComPort:TComPort;const Value: String);
1

說明: 向通訊埠發送String數據

  • ComWriteString程式語法中各部分說明

  • 示例

Begin
    IOT.ComWriteString (FThis.ComPort1, 'AABBCC');
End;
1
2
3

# 4.9. MQTTWrite

procedure MQTTWrite(QMQTTChannel:TMQTTChannel;QItemIndex:Integer; QTopic,
    QPayload: string);
1
2

說明: 向MQTT發送數據

  • MQTTWrite程式語法中各部分說明
部分 說明
QMQTTChannel MQTT集合對像
QItemIndex MQTTItem索引
QTopic 主題
QPayload 內容
  • 示例
Begin
    IOT. MQTTWrite(FThis. MQTTChannel1,0, 'T','T');
End;
1
2
3

# 4.10. OPCWrite

Procedure OPCWrite(QOPCServer:TdOPCDAClient;QGroupIndex,QItemIndex:Integer;QValue:Variant);
1

說明: 向OPC Item發送數據

  • OPCWrite程式語法中各部分說明
部分 說明
QOPCServer OPCServer
QGroupIndex OPC分組ID
QItemIndex OPC Item 索引
QValue 發送的數據
  • 示例
Begin
    IOT.OPCWrite (FThis.dOPCDAClient1,0,0,1);
End;
1
2
3

# 4.11. RTUWrite

procedure RTUWrite(QItem:TModbusRTUWriteChannel;QIndex:Integer);
1

說明: 執行Modbus RTU寫數據操作

  • RTUWrite程式語法中各部分說明
部分 說明
QItem ModbusRTU集合
QIndex ModbusRTU Item索引
  • 示例
Begin
    FThis.ModbusRTUWriteChannel1.ModbusList[0].DataValue := 1;
    IOT.RTUWrite(FThis.ModbusRTUWriteChannel1,0);
End;
1
2
3
4

# 4.12. TCPWrite

procedure TCPWrite(QItem:TModbusTCPWriteChannel;QIndex:Integer);
1

說明: 執行Modbus TCP寫數據操作

  • TCPWrite程式語法中各部分說明
部分 說明
QItem ModbusTCP集合
QIndex ModbusTCP Item索引
  • 示例
Begin
    FThis.ModbusTCPWriteChannel1.ModbusList[0].DataValue := 1;
    IOT.TCPWrite(FThis.ModbusTCPWriteChannel1,0);
End;
1
2
3
4

自定函式
通訊埠印表機

← 自定函式 通訊埠印表機→

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