📄 danjia.pas
字号:
unit DanJia;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBCtrls, StdCtrls, Buttons, ExtCtrls, Grids, DBGrids, ComCtrls,
Mask, DB, ADODB;
type
TDanJiaForm = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
bitbtn_insert: TBitBtn;
bitbtn_modify: TBitBtn;
bitbtn_delete: TBitBtn;
bitbtn_post: TBitBtn;
bitbtn_cancel: TBitBtn;
DBNavigator1: TDBNavigator;
Panel3: TPanel;
DBGrid1: TDBGrid;
Panel4: TPanel;
Label1: TLabel;
Label3: TLabel;
Label6: TLabel;
DS_Tj: TDataSource;
ADQ_Tj: TADOQuery;
ADOQry_update: TADOQuery;
Label2: TLabel;
Com_Dw: TComboBox;
ADOQry_insert: TADOQuery;
Ed_bh: TEdit;
Ed_Name: TEdit;
Ed_Dj: TEdit;
bitbtn_quit: TBitBtn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure bitbtn_postClick(Sender: TObject);
procedure bitbtn_quitClick(Sender: TObject);
procedure bitbtn_modifyClick(Sender: TObject);
procedure bitbtn_insertClick(Sender: TObject);
procedure bitbtn_deleteClick(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure bitbtn_cancelClick(Sender: TObject);
private
{ Private declarations }
public
Select_flag:integer;
procedure cleardata;
procedure enabledAdd;
procedure enabledfalse;
procedure AddData;
{ Public declarations }
end;
var
DanJiaForm: TDanJiaForm;
implementation
uses DataModule;
{$R *.dfm}
procedure TdanjiaForm.cleardata ;
begin
//Ed_bh.Clear ;
Ed_Name.Clear ;
Ed_Dj.Clear ;
end;
procedure TDanjiaForm.enabledAdd ;
begin
bitbtn_insert.Enabled :=false;
bitbtn_delete.Enabled :=false;
bitbtn_post.Enabled :=true;
bitbtn_cancel.Enabled :=true;
Ed_Name.Enabled :=true;
Com_Dw.Enabled :=true;
Ed_Dj.Enabled :=true;
//Ed_bh.Enabled :=true;
end;
procedure TDanJiaForm.enabledfalse ;
begin
Com_Dw.Enabled :=false;
Ed_Dj.Enabled :=false;
Ed_bh.Enabled :=false;
Com_Dw.Enabled :=false;
Ed_Name.Enabled :=false;
end;
procedure TDanJiaForm.AddData ;
begin
Ed_Name.Text :=ADQ_Tj.FieldByName('sfname').Text;
Com_Dw.Text :=ADQ_Tj.FieldByName('dw').Text;
Ed_Dj.Text :=ADQ_Tj.FieldByName('price').Text;
Ed_bh.Text :=ADQ_Tj.FieldByName('djid').Value ;
end;
procedure TDanJiaForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=cafree;
DanJiaForm:=nil;
end;
procedure TDanJiaForm.FormCreate(Sender: TObject);
begin
ADQ_Tj.Close ;
ADQ_Tj.Open ;
end;
procedure TDanJiaForm.bitbtn_postClick(Sender: TObject);
begin
try
if DB_module.ADOCon.InTransaction then DB_module.ADOCon.RollbackTrans ;
DB_module.ADOCon.BeginTrans;
if Select_flag=1 then
begin
if ADOQry_insert.Active then
ADOQry_insert.Close;
//ADOQry_insert.Parameters.ParamByName('djid').Value :=Ed_bh.text ;
ADOQry_insert.Parameters.ParamByName('sfname').Value :=Ed_Name.Text ;
ADOQry_insert.Parameters.ParamByName('dw').Value :=Com_Dw.Text;
ADOQry_insert.Parameters.ParamByName('price').Value :=Ed_Dj.Text;
ADOQry_insert.ExecSQL;
DB_module.ADOCon.CommitTrans;
showmessage('保存成功!');
if ADQ_Tj.Active then
ADQ_Tj.Close;
ADQ_Tj.Open ;
end
else if select_flag=2 then
begin
if ADOQry_update.Active then
ADOQry_update.Close;
//ADOQry_update.Parameters.ParamByName('djid').Value :=Ed_bh.Text ;
ADOQry_update.Parameters.ParamByName('sfname').Value :=Ed_Name.Text ;
ADOQry_update.Parameters.ParamByName('dw').Value :=Com_Dw.Text;
ADOQry_update.Parameters.ParamByName('price').Value :=Ed_Dj.Text;
ADOQry_update.Parameters.ParamByName('oldDjid').value:=ADQ_Tj.FieldByName('Djid').Value ;
ADOQry_update.ExecSQL;
DB_module.ADOCon.CommitTrans;
showmessage('修改成功!');
if ADQ_Tj.Active then
ADQ_Tj.Close;
ADQ_Tj.Open ;
end
except
begin
MessageBox(0,'操作失败,用户可能插入了相同的编号!','',MB_OK+MB_ICONERROR);
DB_module.ADOCon.RollbackTrans;
exit;
end;
end;
enabledfalse ;
bitbtn_insert.Enabled:=true;
end;
procedure TDanJiaForm.bitbtn_quitClick(Sender: TObject);
begin
close;
end;
procedure TDanJiaForm.bitbtn_modifyClick(Sender: TObject);
begin
Select_flag:=2;
enabledAdd ;
AddData;
end;
procedure TDanJiaForm.bitbtn_insertClick(Sender: TObject);
begin
select_flag:=1;
enabledAdd;
cleardata;
Ed_Name.SetFocus ;
end;
procedure TDanJiaForm.bitbtn_deleteClick(Sender: TObject);
begin
try
if DB_module.ADOCon.InTransaction then DB_module.ADOCon.RollbackTrans ;
DB_module.ADOCon.BeginTrans;
if ADQ_Tj.RecordCount >0 then
begin
if (MessageBox(Handle,'确实要删除该房间吗?','警告',MB_YESNO+MB_ICONWARNING)=IDYES) then
ADQ_Tj.Delete;
DB_module.ADOCon.CommitTrans;
end
else
begin
MessageBox(0,'空记录不能删除!','余科华提示',MB_OK+MB_ICONWARNING);
end;
except
begin
MessageBox(0,'操作房间失败!','错误',MB_OK+MB_ICONERROR);
DB_module.ADOCon.RollbackTrans;
exit;
end;
end;
end;
procedure TDanJiaForm.DBGrid1CellClick(Column: TColumn);
begin
AddData;
end;
procedure TDanJiaForm.bitbtn_cancelClick(Sender: TObject);
begin
enabledfalse ;
bitbtn_insert.Enabled:=true;
// bitbtn_delete.Enabled:=true;
bitbtn_post.Enabled:=false;
bitbtn_cancel.Enabled:=false;
bitbtn_post.Enabled:=false;
bitbtn_cancel.Enabled:=false;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -