📄 u_645_command.pas
字号:
' 掩码='''+str6+''','+
' 标识='''+str7+''' '+
' where 命令='''+str1+''' ';
datam.ADOQ1.Close;
datam.ADOQ1.SQL.Clear;
datam.ADOQ1.SQL.Text :=sqlstr;
datam.ADOQ1.ExecSQL;
datam.ADOConnection1.CommitTrans;
except
datam.ADOConnection1.RollbackTrans;
MyMsgBox(' 添加"命令"在"命令集"中的过程失败!','系 统 错 误', 0);
exit;
end;
end
else
begin
MyMsgBox(' 该"命令"已经在"命令集"中存在!','系 统 错 误', 0);
exit;
end;
end
else
begin
try
datam.ADOConnection1.BeginTrans;
sqlstr :='insert into '+T_name+' (命令,名称,长度,块标志,读写,掩码,标识)'+
' values ('+
' '''+str1+''','+
' '''+str2+''','+
' '''+str3+''','+
' '''+str4+''','+
' '''+str5+''','+
' '''+str6+''','+
' '''+str7+''')';
datam.ADOQ1.Close;
datam.ADOQ1.SQL.Clear;
datam.ADOQ1.SQL.Text :=sqlstr;
datam.ADOQ1.ExecSQL;
datam.ADOConnection1.CommitTrans;
except
datam.ADOConnection1.RollbackTrans;
MyMsgBox(' 添加"命令"在"命令集"中的过程失败!','系 统 错 误', 0);
exit;
end;
end;
Dbgrid_show(T_name);
f_645.DBGrid1.Refresh;
end;
procedure TF_645.RzEdit3KeyPress(Sender: TObject; var Key: Char);
begin
case key of
'0'..'9':;
chr(8):;
else
key:=chr(0);
end;
end;
procedure TF_645.RzShapeButton2Click(Sender: TObject);
var
T_name,sqlstr,str:string;
begin
T_name := trim(rZEDIT1.Text);
str := trim(DBedit1.Text);
sqlstr := 'delete from '+T_name+' where 命令= '''+str+''' ';
if MessageDlg('确认是要删除"'+Rzlabel5.Caption+'"中的['+str+']"命令" 吗?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
datam.ADOQ1.Close;
datam.ADOQ1.SQL.Clear;
datam.ADOQ1.SQL.Text :=sqlstr;
datam.ADOQ1.ExecSQL;
Dbgrid_show(T_name);
f_645.DBGrid1.Refresh;
end;
end;
procedure TF_645.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
s1,s2:string;
begin
with TMyCustomDBGrid (Sender) do
begin
s1 := DataLink.Fields[6].AsString;
s2 := DataLink.Fields[4].AsString;
if s1 = '1' then
Canvas.Font.Color:= clRED; // .Brush.Color
if s2 = '1' then
Canvas.Font.Color:= clblue; // .Brush.Color
DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
end;
procedure TF_645.DBGrid1CellClick(Column: TColumn);
var
s_field,s_table,sqlstr,s_flag:string;
begin
s_field := trim(DBedit1.Text);
s_table := trim(Rzedit1.Text);
if (s_field <> '') or (s_table <> '') then
begin
sqlstr := 'select * from '+s_table+' where 命令='''+s_field+''' ';
try
with datam.ADOQ1 do
begin
close;
Sql.Clear;
Sql.Add(sqlstr);
Open;
s_flag := fieldbyname('标识').AsString ;
if s_flag = '0' then
begin
Rzpagecontrol3.ActivePageIndex :=0;
//Rzcombobox2.Text := trim(s_field);
end
ELSE
BEGIN
Rzpagecontrol3.ActivePageIndex :=1; // 自定义命令
Rzedit8.Text := fieldbyname('命令').AsString ;
Rzedit9.Text := fieldbyname('名称').AsString ;
Rzedit10.Text := fieldbyname('长度').AsString ;
Rzcombobox5.Text := fieldbyname('掩码').AsString ;
s_flag := fieldbyname('块标志').AsString ;
if s_flag ='0' then
Rzcombobox4.ItemIndex := 0
else
Rzcombobox4.ItemIndex := 1;
s_flag := fieldbyname('读写').AsString ;
if s_flag ='0' then
Rzcombobox6.ItemIndex := 0
else
Rzcombobox6.ItemIndex := 1;
END;
// showmessage(fieldbyname('命令').AsString);
end;
except
MyMsgBox(' 提取数据失败!','系 统 错 误', 0);
exit;
end;
end;
end;
procedure TF_645.RzRadioGroup1Click(Sender: TObject);
begin
if RzRadioGroup1.Buttons[0].Checked then
begin
Rzedit6.Enabled := true;
Rzedit6.Clear;
Rzedit6.SetFocus;
Rzedit7.Enabled := false;
Rzedit7.Clear;
Rzspinedit1.Enabled := false;
Rzspinedit1.Value :=1;
Rzcheckbox1.Enabled := true;
Rzcheckbox1.Checked := false;
Rzedit12.Enabled := false;;
Rzedit12.Clear;
end
else
begin
Rzedit6.Enabled := false;
Rzedit6.Clear;
Rzcheckbox1.Checked := false;
Rzedit12.Enabled := false;;
Rzedit12.Clear;
Rzcheckbox1.Enabled := false;
Rzedit7.Enabled := true;
Rzedit7.Clear;
Rzspinedit1.Enabled := true;
Rzspinedit1.Value :=1;
Rzedit7.SetFocus;
end;
end;
procedure TF_645.RzPageControl2Change(Sender: TObject);
var
sqlstr,str,str1:string;
i,j,h:integer;
filename :string;
k,m:integer;
begin
case rzpagecontrol2.ActivePageIndex of
0:
begin
Rzedit6.Enabled := true;
Rzedit6.Clear;
Rzedit6.SetFocus;
Rzedit7.Enabled := false;
Rzedit7.Clear;
Rzspinedit1.Enabled := false;
Rzspinedit1.Value :=1;
f_645.DBEdit1.DataField := '命令';
end;
1:
begin
checklist1RF; //抄表
end;
2:
begin
checklist2RF; //编程
end;
end;
end;
procedure TF_645.RzComboBox7Change(Sender: TObject);
begin
if Rzcombobox7.ItemIndex =3 then
begin
Rzlabel23.Visible := true;
Rzdatetimeedit3.Visible := true;
Rzdatetimeedit4.Visible := true;
end
else
begin
Rzlabel23.Visible := false;
Rzdatetimeedit3.Visible := false;
Rzdatetimeedit4.Visible := false;
end;
end;
procedure TF_645.RzShapeButton3Click(Sender: TObject);
var
d_1,d_2,sqlstr,bh,s_bh,sql_str,str:string;
i,len:integer;
begin
d_1 := formatdatetime('yyyy-mm-dd hh:ss:mm',now);
d_2 := formatdatetime('yyyy-mm-dd 00:00:00',now);
if RzRadioGroup1.Buttons[0].Checked then
begin
if not Rzcheckbox1.Checked then
begin
Rzedit6.Text:= PadLStr(trim(Rzedit6.Text),12,'0');
bh := trim(Rzedit6.Text);
sql_str :='select * from '+trim(edit1.Text)+'_bh where 表号='''+bh+'''';
with datam.ADOQ1 do
begin
close;
sql.Clear;
sql.Add(sql_str);
open;
end;
if datam.ADOQ1.RecordCount<>0 then
begin
MyMsgBox('库中已经存在该表号数据,请重新录入!','系 统 错 误', 0);
rzedit6.SetFocus;
exit;
end;
sqlstr := 'insert into '+ trim(edit1.Text)+'_bh (表号,录入日期)'+
' values ('+
' '''+bh+''','+
' '''+d_1+''')';
try
with datam.ADOQ1 do
begin
datam.ADOConnection1.BeginTrans;
close;
sql.Clear;
sql.Add(sqlstr);
execsql;
datam.ADOConnection1.CommitTrans;
end;
except
datam.ADOConnection1.RollbackTrans;
MyMsgBox(' 插入数据失败!','系 统 错 误', 0);
exit;
end;
end
else
begin
IF trim(Rzedit12.Text) ='' then
begin
MyMsgBox(' 请在下面的输入或选择"定位表号",本记录将插入在"定位表号"之后!','系 统 错 误', 0);
exit;
end;
sqlstr :='select * from '+ trim(edit1.Text)+'_bh'+' where 表号='''+trim(Rzedit12.Text)+''' ';
with datam.ADOQ1 do
begin
close;
sql.Clear;
sql.Add(sqlstr);
open;
str := trim(fieldbyname('录入日期').AsString);
d_1 := copy(str,1,length(str)-1)+inttostr(strtoint(rightstr(str,1)) +1);
Rzedit6.Text:= PadLStr(trim(Rzedit6.Text),12,'0');
bh := trim(Rzedit6.Text);
sqlstr := 'insert into '+ trim(edit1.Text)+'_bh (表号,录入日期)'+
' values ('+
' '''+bh+''','+
' '''+d_1+''')';
try
with datam.ADOQ1 do
begin
datam.ADOConnection1.BeginTrans;
close;
sql.Clear;
sql.Add(sqlstr);
execsql;
datam.ADOConnection1.CommitTrans;
end;
except
datam.ADOConnection1.RollbackTrans;
MyMsgBox(' 插入数据失败!','系 统 错 误', 0);
exit;
end;
end;
end;
end
else
begin
bh := trim(Rzedit7.Text);
Rzedit7.Text:= PadLStr(trim(Rzedit7.Text),12,'0');
len := strtoint(Rzspinedit1.Text);
for i := 0 to len do
begin
s_bh := inttostr(strtoint(bh) + i);
s_bh := PadLStr(s_bh,12,'0');
sqlstr := 'insert into '+ trim(edit1.Text)+'_bh (表号,录入日期)'+
' values ('+
' '''+s_bh+''','+
' '''+d_1+''')';
try
with datam.ADOQ1 do
begin
datam.ADOConnection1.BeginTrans;
close;
sql.Clear;
sql.Add(sqlstr);
execsql;
datam.ADOConnection1.CommitTrans;
end;
except
datam.ADOConnection1.RollbackTrans;
MyMsgBox(' 插入数据失败!','系 统 错 误', 0);
exit;
end;
end;
end;
sqlstr := 'select 表号,录入日期 from '+trim(edit1.Text)+'_bh'+' where 录入日期>= '''+d_2+''' order by 录入日期 ' ;
with datam.ADOQ3 do
begin
try
close;
sql.Clear;
sql.Add(sqlstr);
open;
f_645.DBEdit2.DataField := '表号';
except
MyMsgBox(' 查询数据失败!','系 统 错 误', 0);
exit;
end;
end;
end;
procedure TF_645.RzBitBtn1Click(Sender: TObject);
var
sqlstr:string;
d_1,d_2:string;
begin
if Rzcombobox7.ItemIndex <> 3 then
begin
if (trim(rzdatetimeedit1.Text) = '') or
(trim(rzdatetimeedit2.Text) = '') then
begin
MyMsgBox(' 请设定查询数据的"日期时间"范围!','系 统 错 误', 0);
exit;
end;
d_1 :=trim(rzdatetimeedit1.Text)+' '+trim(rzdatetimeedit2.Text);
if length(d_1) <> 19 then
begin
MyMsgBox(' 查询数据的"日期时间"范围设置有误!','系 统 错 误', 0);
exit;
end;
case Rzcombobox7.ItemIndex of
0: sqlstr := 'select 表号,录入日期 from '+trim(edit1.Text)+'_bh'+' where 录入日期= '''+d_1+''' order by 录入日期' ;
1: sqlstr := 'select 表号,录入日期 from '+trim(edit1.Text)+'_bh'+' where 录入日期>='''+d_1+''' order by 录入日期';
2: sqlstr := 'select 表号,录入日期 from '+trim(edit1.Text)+'_bh'+' where 录入日期<='''+d_1+''' order by 录入日期';
end;
end
else
begin
if (trim(rzdatetimeedit1.Text) = '') or
(trim(rzdatetimeedit2.Text) = '') or
(trim(rzdatetimeedit3.Text) = '') or
(trim(rzdatetimeedit4.Text) = '') then
begin
MyMsgBox(' 请设定查询数据的"日期时间"范围!','系 统 错 误', 0);
exit;
end;
d_1 :=trim(rzdatetimeedit1.Text)+' '+trim(rzdatetimeedit2.Text);
d_2 :=trim(rzdatetimeedit3.Text)+' '+trim(rzdatetimeedit4.Text);
if (length(d_1) <> 19) or (length(d_2) <> 19) then
begin
MyMsgBox(' 查询数据的"日期时间"范围设置有误!','系 统 错 误', 0);
exit;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -