📄 updatecar.pas
字号:
unit updatecar;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Buttons, Grids, DBGrids;
type
TForm_updatecar = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label9: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
ComboBox1: TComboBox;
BitBtn4: TBitBtn;
DateTimePicker1: TDateTimePicker;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
Label7: TLabel;
Edit5: TEdit;
Label8: TLabel;
DBGrid1: TDBGrid;
Label10: TLabel;
Edit6: TEdit;
Label11: TLabel;
Edit7: TEdit;
procedure FormShow(Sender: TObject);
procedure ComboBox1Enter(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Edit6KeyPress(Sender: TObject; var Key: Char);
procedure Edit5KeyPress(Sender: TObject; var Key: Char);
procedure Edit7KeyPress(Sender: TObject; var Key: Char);
procedure DBGrid1TitleClick(Column: TColumn);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form_updatecar: TForm_updatecar;
implementation
uses dm, adddriver;
{$R *.dfm}
procedure TForm_updatecar.FormShow(Sender: TObject);
begin
form_dm.ADOQuery_car.SQL.Text:='select A.* ,B.driver_name from (select * from car)A left join (select driver_name,car_id from driver_car)B on A.id=B.car_id;';
form_dm.ADOQuery_car.Active:=true;
dbgrid1.Refresh;
with form_dm.ADOtable_driver do
begin
open;
first;
combobox1.Items.Clear;
repeat
combobox1.Items.Add(form_dm.ADOtable_driver.fieldbyname('name').AsString);
form_dm.ADOtable_driver.Next;
until eof;
end;
edit1.text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='';
datetimepicker1.DateTime:=now;
combobox1.text:='';
end;
procedure TForm_updatecar.ComboBox1Enter(Sender: TObject);
begin
with form_dm.ADOtable_driver do
begin
open;
first;
combobox1.Items.Clear;
repeat
combobox1.Items.Add(form_dm.ADOtable_driver.fieldbyname('name').AsString);
form_dm.ADOtable_driver.Next;
until eof;
end;
end;
procedure TForm_updatecar.DBGrid1CellClick(Column: TColumn);
begin
edit1.Text:=dbgrid1.Fields[0].Text;
edit2.Text:=dbgrid1.Fields[1].Text;
edit3.Text:=dbgrid1.Fields[2].Text;
edit4.Text:=dbgrid1.Fields[3].Text;
edit5.Text:=dbgrid1.Fields[4].Text;
edit6.Text:=dbgrid1.Fields[7].Text;
edit7.Text:=dbgrid1.Fields[8].Text;
datetimepicker1.Date:=strtodate(dbgrid1.Fields[5].Text);
combobox1.Text:=dbgrid1.Fields[6].Text;
end;
procedure TForm_updatecar.BitBtn2Click(Sender: TObject);
begin
if trim(edit1.text)='' then
begin
showmessage('请选择你要删除的车辆!');
abort;
end;
if Application.MessageBox('确定要删除该车辆','系统提示',MB_YESNO)=idyes then
begin
with form_dm.ADOTable_car do
begin
try
open;
locate('id',trim(edit1.Text),[]);
Delete;
except
showmessage('删除车辆失败!');
abort;
end;
end;
form_dm.ADOTable_driver_car.open;
if form_dm.ADOTable_driver_car.Locate('car_id',trim(edit1.text),[]) then
begin
form_dm.ADOTable_driver_car.Delete;
end;
form_dm.ADOTable_driver_car.close;
form_dm.adoquery_car.Close;
form_dm.adoquery_car.open;
dbgrid1.Refresh;
showmessage('删除成功!');
edit1.text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='';
edit6.Text:='';
datetimepicker1.DateTime:=now;
combobox1.text:='';
end;
end;
procedure TForm_updatecar.BitBtn3Click(Sender: TObject);
begin
close;
end;
procedure TForm_updatecar.BitBtn4Click(Sender: TObject);
begin
form_adddriver.showmodal;
end;
procedure TForm_updatecar.BitBtn1Click(Sender: TObject);
begin
if edit1.Text='' then
begin
showmessage('车牌号不能为空!');
edit1.SetFocus;
abort;
end;
if edit2.Text='' then
begin
showmessage('车类型不能为空!');
edit2.SetFocus;
abort;
end;
if edit3.Text='' then
begin
showmessage('原始公里不能为空!');
edit3.SetFocus;
abort;
end;
if edit4.Text='' then
begin
showmessage('行驶证号不能为空!');
edit4.SetFocus;
abort;
end;
if edit5.Text='' then
begin
showmessage('标准油耗不能为空!');
edit5.SetFocus;
abort;
end;
if edit6.Text='' then
begin
showmessage('每公里单价不能为空!');
edit6.SetFocus;
abort;
end;
if edit6.Text='' then
begin
showmessage('公里补贴不能为空!');
edit6.SetFocus;
abort;
end;
if combobox1.Text='' then
begin
showmessage('驾驶员不能为空!');
combobox1.SetFocus;
abort;
end;
if Application.MessageBox('确定要修改该车辆信息吗?','系统提示',MB_YESNO)=idyes then
begin
with form_dm.ADOTable_car do
begin
Open;
try
Locate('id',trim(edit1.Text),[]);
except
showmessage('没有找到要修改的车辆!');
abort;
end;
edit;
fieldbyname('type').AsString:=trim(edit2.Text);
fieldbyname('km').AsFloat:=strtofloat(edit3.Text);
fieldbyname('price').AsFloat:=strtofloat(edit6.Text);
fieldbyname('runid').AsString:=trim(edit4.Text);
fieldbyname('oilconsume').asfloat:=strtofloat(edit5.Text);
fieldbyname('glj').AsFloat:=strtofloat(edit7.Text);
fieldbyname('examine').Asstring:=formatdatetime('yyyy-mm-dd',datetimepicker1.Datetime);
post;
end;
with form_dm.ADOTable_driver_car do
begin
open;
if locate('car_id',edit1.Text,[]) then
begin
delete;
end;
if combobox1.Text<>'' then
begin
if not locate('driver_name',combobox1.Text,[])then
begin
append;
fieldbyname('car_id').asstring:=trim(edit1.Text);
fieldbyname('driver_name').AsString:=trim(combobox1.Text);
post;
end
else
begin
showmessage('车辆修改成功,但是无法为其指定驾驶员,此驾驶员已经被指定为其他车辆!');
end;
end;
close;
end;
form_dm.adoquery_car.Close;
form_dm.adoquery_car.open;
showmessage('修改成功!');
end;
end;
procedure TForm_updatecar.Edit6KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in [#46,#48,#49,#50,#51,#52,#53,#54,#55,#56,#57,#13,#8]) then
begin
showmessage('只能为数字!');
key:=#0;
end;
if key = #13 then
edit7.SetFocus;
end;
procedure TForm_updatecar.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in [#46,#48,#49,#50,#51,#52,#53,#54,#55,#56,#57,#13,#8]) then
begin
showmessage('只能为数字!');
key:=#0;
end;
if key = #13 then
edit6.SetFocus;
end;
procedure TForm_updatecar.Edit7KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in [#46,#48,#49,#50,#51,#52,#53,#54,#55,#56,#57,#13,#8]) then
begin
showmessage('只能为数字!');
key:=#0;
end;
if key = #13 then
datetimepicker1.SetFocus;
end;
procedure TForm_updatecar.DBGrid1TitleClick(Column: TColumn);
var
i:integer;
fieldname:string;
begin//排序
i:=Column.Index;
if bSort=0 then
begin
fieldname:=DBGrid1.Columns[i].FieldName+' ASC';
bSort:=1;
end
else
begin
fieldname:=DBGrid1.Columns[i].FieldName+' DESC';
bSort:=0;
end;
form_dm.ADOquery_car.open;
form_dm.ADOquery_car.Sort:=fieldname;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -