📄 u_645_command.pas
字号:
1: baud := br300;
2: baud := br600;
3: baud := br1200;
4: baud := br2400;
5: baud := br4800;
6: baud := br9600;
7: baud := br14400;
8: baud := br19200;
9: baud := br38400;
10: baud := br56000;
11: baud := br57600;
12: baud := br115200;
end;
rzlabeL24.Caption:='表号录入'+#13+'起始时间';
Rzmaskedit1.Visible := true;
Rzmaskedit2.Visible := true;
rzlabeL25.Visible := true;
rzlabeL25.Caption:='表号录入'+#13+'终止时间';
rzmaskedit1.Text:=formatdatetime('yyyy-mm-dd hh:nn:ss',now);
rzmaskedit2.Text:=formatdatetime('yyyy-mm-dd hh:nn:ss',now);
rzedit11.Visible := FALSE;
end;
procedure TF_645.RzTreeView1Change(Sender: TObject; Node: TTreeNode);
var
i:integer;
strsql:string;
begin
option :=rztreeview1.Selected.AbsoluteIndex;
if option = 0 then
begin
f_645.RzPageControl1.ActivePageIndex := 2;
edit1.Clear;
end
else
begin
edit1.Text := f_645.RzTreeView1.Selected.Text;
f_645.Caption := edit1.Text;
if S_meun = 'C' then
begin
f_645.RzPageControl1.ActivePageIndex := 0;
f_645.RzPageControl2.ActivePageIndex := 0;
end;
if S_meun = 'A' then
begin
f_645.RzPageControl1.ActivePageIndex := 1;
f_645.RzEdit1.Text :=f_645.RzTreeView1.Selected.Text;
f_645.RzLabel5.Caption := f_645.RzEdit1.Text + '【命 令 集】';
try
strsql := trim(f_645.RzEdit1.Text);
Dbgrid_show(strsql);
except
end;
end;
if S_meun = 'E' then
begin
f_645.RzPageControl1.ActivePageIndex := 1;
end;
end;
end;
procedure TF_645.RzRadioButton4Click(Sender: TObject);
begin
PCsound(200,1);
end;
procedure TF_645.RzComboBox1Change(Sender: TObject);
begin
case Rzcombobox1.ItemIndex of
0: com_NO := pncom1;
1: com_NO := pncom2;
2: com_NO := pncom3;
3: com_NO := pncom4;
4: com_NO := pncom5;
5: com_NO := pncom6;
6: com_NO := pncom7;
7: com_NO := pncom8;
8: com_NO := pncom9;
9: com_NO := pncom10;
10: com_NO := pncom11;
11: com_NO := pncom12;
else
begin
com_NO := pncom1;
Rzcombobox1.ItemIndex := 0;
end;
end;
end;
procedure TF_645.RzEdit1KeyPress(Sender: TObject; var Key: Char);
var
strsql,s,s1,filename:string;
i:integer;
begin
if not (Key in ['0'..'9',#8,'a'..'z','A'..'Z']) then
begin
Key:=#0 ;
end;
filename := extractfilepath(paramstr(0))+'\meter.txt';
s:= trim(rzedit1.Text);
if (pos(s,'(') > 0) or (pos(s,')') > 0) then
begin
MyMsgBox(' 【表类型名称】只能由汉字、字母或0-9的数字组成!','系 统 错 误', 0);
exit;
end;
if key = #13 then
if Rzedit1.text <> '' then
begin
if Tree_Boolean(s) then
begin
MyMsgBox(s + ' 表型号已经存在!请从左边选取该表型号。','系 统 错 误', 0);
exit;
end;
strsql:='Create table '+s+
' ('+
'命令 char(4) PRIMARY KEY,'+
'名称 char(100),'+
'长度 char(4),'+
'块标志 char(1),'+ //0:单;1:块
'读写 char(1),'+ //0:只读,抄表;1:可写可读,编程
'掩码 char(20),'+
'标识 char(1))'; //0:645;1:自定义
try
datam.ADOConnection1.Execute(strsql);
except
MyMsgBox(' 创建【'+s+'】表失败!可能该表已存在','系 统 错 误', 0);
exit;
end;
s1 := s+'_bh';
strsql:='Create table '+s1+
' ('+
'表号 char(12) PRIMARY KEY,'+
'录入日期 char(30))';
try
datam.ADOConnection1.Execute(strsql);
except
MyMsgBox(' 创建【'+s1+'】表失败!可能该表已存在','系 统 错 误', 0);
exit;
end;
s1 := s+'_data';
strsql:='Create table '+s1+
' ('+
'ID Counter PRIMARY KEY,'+
'表号 char(12),'+
'录入日期 char(30),'+
'命令 char(4),'+
'抄表日期 char(30),'+
'data1 char(20),'+
'data2 char(20),'+
'data3 char(20),'+
'data4 char(20),'+
'data5 char(20),'+
'data6 char(20),'+
'data7 char(20),'+
'data8 char(20),'+
'data9 char(20),'+
'data10 char(20),'+
'data11 char(20),'+
'data12 char(20),'+
'data13 char(20),'+
'data14 char(20),'+
'data15 char(20),'+
'data16 char(20),'+
'data17 char(20),'+
'data18 char(20),'+
'data19 char(20),'+
'data20 char(20))';
try
datam.ADOConnection1.Execute(strsql);
strsql :=' Create Index i表号 ON '+s1+' ([表号])';
datam.ADOConnection1.Execute(strsql);
strsql :=' Create Index i录入日期 ON '+s1+' ([录入日期])';
datam.ADOConnection1.Execute(strsql);
strsql :=' Create Index i命令 ON '+s1+' ([命令])';
datam.ADOConnection1.Execute(strsql);
except
MyMsgBox(' 创建【'+s1+'】表失败!可能该表已存在','系 统 错 误', 0);
exit;
end;
RWdatfile('X',filename,s);
f_645.RzLabel5.Caption := s + '【命 令 集】';
f_645.RzTreeView1.Items.AddChild(f_645.RzTreeView1.Items[0],s) ;
m_sum := m_sum + 1;
f_645.RzStatusPane2.Caption := '共'+inttostr(m_sum)+'个被选表型';
f_645.RzTreeView1.Items[m_sum].ImageIndex := 45;
f_645.RzTreeView1.Items[m_sum].SelectedIndex := 44;
f_645.RzTreeView1.Items[m_sum].Selected:= true;
Rztreeview1.Refresh;
end;
end;
procedure TF_645.RzPageControl1Change(Sender: TObject);
var
C_flag ,strsql:string;
i:integer;
TreeN: TTreeNode;
begin
case f_645.RzPageControl1.ActivePageIndex of
0:
begin
S_meun := 'C'; //通讯管理
RzPageControl2.ActivePageIndex :=0;
if trim(edit1.Text) = '' then
begin
MyMsgBox(' 请先选择一种"表型号"!','系 统 错 误', 0);
f_645.RzPageControl1.ActivePageIndex := 2;
exit;
end;
end;
1:
begin
S_meun := 'A'; //添加新表型号
{f_645.RzStringGrid1.
f_645.RzStringGrid1.Rows[1].Add('r1');
f_645.RzStringGrid1.Rows[2].Add('r2');
f_645.RzStringGrid1.Cols[1].Add('c1');
f_645.RzStringGrid1.Cols[2].Add('c2');
f_645.RzStringGrid1.Cells[3,4] := 'ss';}
if f_645.RzTreeView1.Selected.AbsoluteIndex = 0 then
begin
f_645.RzEdit1.Clear;
end
else
begin
f_645.RzEdit1.Text :=f_645.RzTreeView1.Selected.Text;
try
strsql := trim(f_645.RzEdit1.Text);
Dbgrid_show(strsql);
except
end;
end;
end;
2: S_meun := 'S'; //系统参数设置
end;
end;
procedure TF_645.RzComboBox2Change(Sender: TObject);
var
s:string;
begin
if Rzcombobox2.ItemIndex = -1 then
begin
MyMsgBox(' 请选择"命令集名称"!','系 统 错 误', 0);
exit;
end;
Rzcombobox3.Items.Clear;
//F_645.DataSource1.DataSet := datam.ADOQ1;
s := 'A'+inttostr(Rzcombobox2.ItemIndex+1);
datam.ADOQ1.Close;
datam.ADOQ1.SQL.Clear;
datam.ADOQ1.SQL.Text :='select * from 命令编码 where 命令分类 ='''+s+''' order by 命令编码 ';
datam.ADOQ1.Open;
if datam.ADOQ1.RecordCount > 0 then
begin
datam.ADOQ1.First;
while not datam.ADOQ1.Eof do
begin
Rzcombobox3.Items.Add(datam.ADOQ1.fieldbyname('命令编码').AsString+'【'+
datam.ADOQ1.fieldbyname('数据项名称').AsString+'】');
datam.ADOQ1.Next;
end;
end;
end;
procedure TF_645.RzComboBox3Change(Sender: TObject);
var
Commandstr,k_flag,w_flag:string;
begin
if Rzcombobox3.ItemIndex = -1 then
begin
MyMsgBox(' 请选择"命令"!','系 统 错 误', 0);
exit;
end;
Rzedit2.Clear;
Rzedit3.Clear;
Rzedit4.Clear;
Rzedit5.Clear;
Commandstr := TRIM(Rzcombobox3.Text);
delete(Commandstr,5,(length(Commandstr)-4));
datam.ADOQ1.Close;
datam.ADOQ1.SQL.Clear;
datam.ADOQ1.SQL.Text :='select * from 命令编码 where 命令编码 ='''+Commandstr+''' ';
datam.ADOQ1.Open;
if datam.ADOQ1.RecordCount > 0 then
begin
k_flag := datam.ADOQ1.fieldbyname('命令模式').AsString;
Rzedit4.Text := datam.ADOQ1.fieldbyname('数据格式').AsString;
w_flag := datam.ADOQ1.fieldbyname('写').AsString;
if k_flag = '1' then
begin
Rzedit2.Text := '块命令';
Rzedit3.Enabled := true;
end
else
begin
Rzedit2.Text := '单命令';
Rzedit3.Enabled := false;
Rzedit3.Text := datam.ADOQ1.fieldbyname('数据长度').AsString;
end;
Rzedit2.Text := k_flag+trim(Rzedit2.Text);
if w_flag = '1' then
Rzedit5.Text := '编程(可写)命令'
else
Rzedit5.Text := '抄表(只读)命令';
Rzedit5.Text := w_flag+trim(Rzedit5.Text);
end;
end;
procedure TF_645.RzShapeButton1Click(Sender: TObject);
var
T_name,sqlstr,str:string;
str1,str2,str3,str4,str5,str6,str7:string;
begin
T_name := trim(rZEDIT1.Text);
if f_645.RzPageControl3.ActivePageIndex = 0 then
begin
str1 := TRIM(Rzcombobox3.Text);
delete(str1,5,(length(str1)-4));
str2 := TRIM(Rzcombobox3.Text);
delete(str2,1,4);
str4 := trim(Rzedit2.Text);
delete(str4,2,(length(str4)-1));
if str4 = '1' then
begin
if trim(Rzedit3.Text) = '' then
begin
MyMsgBox(' "数据长度"不能为空值!','系 统 错 误', 0);
Rzedit3.SetFocus;
exit;
end ;
end
else
begin
str4 := '0';
end;
str3 :=trim(Rzedit3.Text);
str5 := trim(Rzedit5.Text);
delete(str5,2,(length(str5)-1));
str6 := trim(Rzedit4.Text);
str7 := '0';
end
else
begin
str1 := trim(Rzedit8.Text);
if length(str1) <> 4 then
begin
MyMsgBox(' "命令编码"长度必须是4位!','系 统 错 误', 0);
Rzedit8.SetFocus;
exit;
end;
str2 := trim(Rzedit9.Text);
if length(str2) = 0 then
begin
MyMsgBox(' "名称"不能为空!','系 统 错 误', 0);
Rzedit9.SetFocus;
exit;
end;
str3 := trim(Rzedit10.Text);
if length(str3) =0 then
begin
MyMsgBox(' "数据长度"不能为空!','系 统 错 误', 0);
Rzedit10.SetFocus;
exit;
end;
if Rzcombobox4.ItemIndex <> -1 then
str4 := inttostr(Rzcombobox4.ItemIndex)
else
begin
MyMsgBox(' "块命令标识"不能为空!','系 统 错 误', 0);
Rzcombobox4.SetFocus;
exit;
end;
if Rzcombobox6.ItemIndex <> -1 then
str5 := inttostr(Rzcombobox6.ItemIndex)
else
begin
MyMsgBox(' "命令功能"不能为空!','系 统 错 误', 0);
Rzcombobox6.SetFocus;
exit;
end;
if trim(Rzcombobox5.Text) <> '' then
str6 := trim(Rzcombobox5.Text)
else
begin
MyMsgBox(' "数据格式"不能为空!','系 统 错 误', 0);
Rzcombobox5.SetFocus;
exit;
end;
str7 := '1';
end;
sqlstr :='select * from '+ T_name +' where 命令 ='''+str1+''' ' ;
datam.ADOQ1.Close;
datam.ADOQ1.SQL.Clear;
datam.ADOQ1.SQL.Text :=sqlstr;
datam.ADOQ1.Open;
if datam.ADOQ1.RecordCount > 0 then
begin
if MessageDlg('该"命令"已经在"命令集"中存在,是否要更新?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
try
datam.ADOConnection1.BeginTrans;
sqlstr :='update '+T_name+' set '+
' 名称='''+str2+''','+
' 长度='''+str3+''','+
' 块标志='''+str4+''','+
' 读写='''+str5+''','+
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -