260 lines
6.7 KiB
ObjectPascal
260 lines
6.7 KiB
ObjectPascal
unit uDevConfig;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||
Dialogs, StdCtrls, DB, Grids, BaseGrid,
|
||
AdvGrid, AdvUtil, AdvObj, FireDAC.Stan.Intf, FireDAC.Stan.Option,
|
||
FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf,
|
||
FireDAC.DApt.Intf, FireDAC.Stan.Async, FireDAC.DApt, FireDAC.Comp.DataSet,
|
||
FireDAC.Comp.Client;
|
||
|
||
type
|
||
TfrmDevConfig = class(TForm)
|
||
Label1: TLabel;
|
||
cb_nilm: TComboBox;
|
||
Label2: TLabel;
|
||
AdvStringGrid1: TAdvStringGrid;
|
||
Button1: TButton;
|
||
Button2: TButton;
|
||
Button3: TButton;
|
||
Label3: TLabel;
|
||
cb_nilmCh: TComboBox;
|
||
Label4: TLabel;
|
||
edt_devName: TEdit;
|
||
edt_devID: TEdit;
|
||
Edt_idxNo: TEdit;
|
||
Label5: TLabel;
|
||
FDQuery1: TFDQuery;
|
||
Button4: TButton;
|
||
Label6: TLabel;
|
||
edt_range: TEdit;
|
||
procedure FormShow(Sender: TObject);
|
||
procedure Button1Click(Sender: TObject);
|
||
procedure AdvStringGrid1ClickCell(Sender: TObject; ARow,
|
||
ACol: Integer);
|
||
procedure Button3Click(Sender: TObject);
|
||
procedure Button2Click(Sender: TObject);
|
||
procedure Button4Click(Sender: TObject);
|
||
private
|
||
{ Private declarations }
|
||
select_devID : integer;
|
||
function CheckDev(DevIdx : integer) : Boolean;
|
||
public
|
||
{ Public declarations }
|
||
procedure ShowDev();
|
||
end;
|
||
|
||
var
|
||
frmDevConfig: TfrmDevConfig;
|
||
|
||
implementation
|
||
|
||
uses uMain;
|
||
|
||
{$R *.dfm}
|
||
|
||
procedure TfrmDevConfig.ShowDev();
|
||
var
|
||
idxNo, i, nilmid, nilmCh, range : integer;
|
||
devID, devName, S : string;
|
||
begin
|
||
try
|
||
if not frmMain.FDConnection1.Connected then frmMain.FDConnection1.Connected := True;
|
||
if frmMain.FDConnection1.Connected then
|
||
begin
|
||
FDQuery1.Close;
|
||
FDQuery1.SQL.Clear;
|
||
FDQuery1.SQL.Text := 'SELECT * FROM "dev_info" ORDER BY "idxNo" ';
|
||
FDQuery1.Open;
|
||
|
||
if FDQuery1.RecordCount> 0 then
|
||
begin
|
||
FDQuery1.First;
|
||
i := 0;
|
||
|
||
AdvStringGrid1.RowCount := FDQuery1.RecordCount + 1;
|
||
While not FDQuery1.Eof do
|
||
begin
|
||
Inc(i, 1);
|
||
idxNo := FDQuery1.FieldByName('idxNo').asInteger;
|
||
devID := FDQuery1.FieldByName('devID').asString;
|
||
nilmid := FDQuery1.FieldByName('nilm_id').asInteger;
|
||
nilmCh := FDQuery1.FieldByName('nilm_chNo').asInteger;
|
||
devName := FDQuery1.FieldByName('devName').asString;
|
||
range := FDQuery1.FieldByName('range').asInteger;
|
||
|
||
AdvStringGrid1.Cells[0, i] := inttostr(idxNo);
|
||
AdvStringGrid1.Cells[1, i] := devID;
|
||
AdvStringGrid1.Cells[2, i] := devName;
|
||
AdvStringGrid1.Cells[3, i] := inttostr(nilmid);
|
||
AdvStringGrid1.Cells[4, i] := inttostr(nilmCh);
|
||
AdvStringGrid1.Cells[5, i] := FDQuery1.FieldByName('dev_status').asString;
|
||
AdvStringGrid1.Cells[6, i] := FDQuery1.FieldByName('lastUpdate').asString;
|
||
AdvStringGrid1.Cells[7, i] := inttostr(range);
|
||
|
||
FDQuery1.Next;
|
||
end;
|
||
end;
|
||
end;
|
||
except
|
||
on e : exception do
|
||
begin
|
||
frmMain.printlog('Database Connect Error :: '+e.Message, 'DB');
|
||
end;
|
||
end;
|
||
|
||
end;
|
||
|
||
procedure TfrmDevConfig.FormShow(Sender: TObject);
|
||
begin
|
||
ShowDev();
|
||
end;
|
||
|
||
procedure TfrmDevConfig.Button1Click(Sender: TObject);
|
||
var
|
||
sql, devID, nilmID, nilmCh, S : string;
|
||
begin
|
||
sql := '';
|
||
S := '';
|
||
S := cb_nilm.Text;
|
||
nilmID := Copy(S, 1, Pos(':',S)-1);
|
||
nilmCh := cb_nilmCh.Text;
|
||
devID := edt_devID.Text;
|
||
|
||
sql := 'INSERT INTO "dev_info" VALUES(DEFAULT, '+
|
||
''''+devID+''', '+
|
||
''+nilmID+', '+
|
||
''+nilmCh+', '+
|
||
''+edt_devName.Text+', '+
|
||
''+edt_range.Text+''+
|
||
')';
|
||
frmMain.insertSQL(sql);
|
||
|
||
ShowDev();
|
||
|
||
end;
|
||
|
||
procedure TfrmDevConfig.Button2Click(Sender: TObject);
|
||
var
|
||
sql : string;
|
||
begin
|
||
if (not CheckDev(StrToInt(edt_devID.Text))) and (select_devID>0) then
|
||
begin
|
||
sql := '';
|
||
{
|
||
sql := 'INSERT INTO "dev_info" VALUES(DEFAULT, '+
|
||
''''+devID+''', '+
|
||
''+nilmID+', '+
|
||
''+nilmCh+', '+
|
||
''''+edt_devName.Text+''' '+
|
||
')';
|
||
|
||
idxNo := FDQuery1.FieldByName('idxNo').asInteger;
|
||
devID := FDQuery1.FieldByName('devID').asString;
|
||
nilmid := FDQuery1.FieldByName('nilm_id').asInteger;
|
||
nilmCh := FDQuery1.FieldByName('nilm_chNo').asInteger;
|
||
devName := FDQuery1.FieldByName('devName').asString;
|
||
}
|
||
|
||
frmMain.insertSQL(sql);
|
||
|
||
sql := 'UPDATE "dev_info" SET '+
|
||
'"devID"='+edt_devID.Text+', '+
|
||
'"nilm_id"='+Copy(cb_nilm.Text, 1, Pos(':',cb_nilm.Text)-1)+', '+
|
||
'"nilm_chNo"='''+cb_nilmCh.Text+''', '+
|
||
'"devName"='''+edt_devName.Text+''', '+
|
||
'"range"='''+edt_range.Text+''' '+
|
||
' WHERE "idxNo"='+inttostr(select_devID);
|
||
frmMain.insertSQL(sql);
|
||
ShowDev();
|
||
|
||
select_devID := 0;
|
||
end else
|
||
begin
|
||
ShowMessage('Dev ID<49><44> ã<><C3A3> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.');
|
||
|
||
end;
|
||
|
||
end;
|
||
|
||
function TfrmDevConfig.CheckDev(DevIdx: Integer): Boolean;
|
||
begin
|
||
result := true;
|
||
try
|
||
if not frmMain.FDConnection1.Connected then frmMain.FDConnection1.Connected := True;
|
||
if frmMain.FDConnection1.Connected then
|
||
begin
|
||
FDQuery1.Close;
|
||
FDQuery1.SQL.Clear;
|
||
FDQuery1.SQL.Text := 'SELECT * FROM "dev_info" WHERE "idxNo"='+inttostr(DevIdx);
|
||
FDQuery1.Open;
|
||
|
||
if FDQuery1.RecordCount> 0 then
|
||
begin
|
||
result := false;
|
||
end;
|
||
end;
|
||
except
|
||
on e : exception do
|
||
begin
|
||
frmMain.printlog('Database Connect Error :: '+e.Message, 'DB');
|
||
end;
|
||
end;
|
||
|
||
end;
|
||
|
||
procedure TfrmDevConfig.Button3Click(Sender: TObject);
|
||
var
|
||
sql : string;
|
||
begin
|
||
if not CheckDev(StrToInt(Edt_idxNo.Text)) then
|
||
begin
|
||
sql := '';
|
||
sql := 'DELETE FROM "dev_info" WHERE "idxNo"='+Edt_idxNo.Text;
|
||
frmMain.insertSQL(sql);
|
||
|
||
ShowDev();
|
||
|
||
Edt_idxNo.Text := '0';
|
||
end else
|
||
begin
|
||
ShowMessage('Idx No<4E><6F> ã<><C3A3> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.');
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmDevConfig.Button4Click(Sender: TObject);
|
||
begin
|
||
ShowDev();
|
||
end;
|
||
|
||
procedure TfrmDevConfig.AdvStringGrid1ClickCell(Sender: TObject; ARow,
|
||
ACol: Integer);
|
||
var
|
||
nilmID : integer;
|
||
begin
|
||
if ARow > 0 then
|
||
begin
|
||
select_devID := StrToIntDef(AdvStringGrid1.Cells[0, ARow], 0);
|
||
Edt_idxNo.Text := AdvStringGrid1.Cells[0, ARow];
|
||
edt_DevID.Text := AdvStringGrid1.Cells[1, ARow];
|
||
edt_devName.Text := AdvStringGrid1.Cells[2, ARow];
|
||
edt_range.Text := AdvStringGrid1.Cells[7, ARow];
|
||
nilmID := StrToIntDef( AdvStringGrid1.Cells[3, ARow], 0);
|
||
if nilmID > 0 then
|
||
begin
|
||
if frmMain.fNILM[nilmID].idxNo>0 then
|
||
begin
|
||
cb_nilm.Text := format('%d:%s',[nilmID, frmMain.fNILM[nilmID]._NAME]);
|
||
end;
|
||
end;
|
||
cb_nilmCh.Text := AdvStringGrid1.Cells[4, ARow];
|
||
//AdvStringGrid1.Cells[5, ARow] := '';
|
||
//AdvStringGrid1.Cells[6, ARow] := '';
|
||
//AdvStringGrid1.Cells[7, ARow] := '';
|
||
end;
|
||
end;
|
||
|
||
end.
|