📄 unitgys.pas
字号:
unit UnitGys;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, ExtCtrls, DB;
type
TfrmGys = class(TForm)
Panel2: TPanel;
btnAdd: TButton;
btnCancel: TButton;
btnErase: TButton;
btnMod: TButton;
btnSave: TButton;
btnExit: TButton;
Panel1: TPanel;
lblGys: TLabel;
lblGysName: TLabel;
Label1: TLabel;
Label2: TLabel;
lblZip: TLabel;
lblLxr: TLabel;
lblAdd: TLabel;
lblBz: TLabel;
lblTel: TLabel;
lblBank: TLabel;
lblTax: TLabel;
lblAccount: TLabel;
lblCredit: TLabel;
lblAudit: TLabel;
edtGys: TEdit;
edtZip: TEdit;
edtLxr: TEdit;
edtAdd: TEdit;
edtTel: TEdit;
edtBank: TEdit;
edtTax: TEdit;
edtAccount: TEdit;
edtCredit: TEdit;
edtBz: TEdit;
edtAudit: TEdit;
DBGrid1: TDBGrid;
dsGys: TDataSource;
edtGysName: TEdit;
procedure Clear(form:TForm);
procedure btnAddClick(Sender: TObject);
procedure btnEraseClick(Sender: TObject);
procedure btnModClick(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure btnExitClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure edtGysKeyPress(Sender: TObject; var Key: Char);
procedure edtBzKeyPress(Sender: TObject; var Key: Char);
procedure edtGysExit(Sender: TObject);
procedure dsGysDataChange(Sender: TObject; Field: TField);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmGys: TfrmGys;
isAdd,isMod:boolean;
Recno:Tbookmark;
implementation
uses UnitDm;
{$R *.dfm}
procedure TfrmGys.Clear(form:TForm);
var
i:integer;
begin
for i:=0 to TForm(form).ComponentCount-1 do
begin
if form.Components[i] is TEdit then
TEdit(form.Components[i]).Text:=''
else if form.Components[i] is TComboBox then
begin
TComboBox(form.Components[i]).ItemIndex:=-1;
TComboBox(form.Components[i]).text:='';
end
else if form.Components[i] is TMemo then
TMemo(form.Components[i]).Lines.Text:='';
end;
end;
procedure TfrmGys.btnAddClick(Sender: TObject);
begin
isAdd:=true;
isMod:=false;
if btnAdd.caption='增加(&A)' then
begin
btnAdd.enabled:=false;
btnErase.enabled:=false;
btnMod.enabled:=false;
btnSave.enabled:=true;
btnCancel.enabled:=true;
panel1.enabled:=true;
Clear(frmGys);
edtGys.setfocus;
end;
end;
procedure TfrmGys.btnEraseClick(Sender: TObject);
begin
if dm.qry_Gys.RecordCount=0 then exit;
if application.MessageBox('确信删除当前记录?','警告',mb_okcancel+mb_iconwarning)=IDOK then
begin
with dm.qry_Gys do
begin
edit;
Delete;
Close;
Open;
end;
end;
end;
procedure TfrmGys.btnModClick(Sender: TObject);
begin
if dm.qry_Gys.RecordCount=0 then exit;
//获得当前的记录位置
Recno:=dm.qry_Gys.GetBookmark;
//关闭与表的联系-------------
dm.qry_Gys.DisableControls;
//标志位--------
isAdd:=false;
isMod:=true;
btnAdd.Enabled:=false;
btnErase.Enabled:=false;
btnMod.Enabled:=false;
btnSave.Enabled:=true;
btnCancel.Enabled:=true;
edtGysName.enabled:=true;
edtLxr.enabled:=true;
edtTel.enabled:=true;
edtAdd.enabled:=true;
edtZip.enabled:=true;
edtTax.enabled:=true;
edtBank.enabled:=true;
edtAccount.enabled:=true;
edtAudit.enabled:=true;
edtCredit.enabled:=true;
edtBz.enabled:=true;
panel1.enabled:=true;
edtGysName.setfocus;
end;
procedure TfrmGys.btnSaveClick(Sender: TObject);
begin
if edtGys.text='' then
begin
application.MessageBox('注意:'+#13+' 供应商代码不能为空!','警告',mb_ok+mb_iconwarning);
edtGys.setfocus;
exit;
end;
if (length(edtGys.text)>0) and (length(edtGys.text)<4) then
begin
application.MessageBox('注意:'+#13+' 供应商代码不能少于两个字符!','警告',mb_ok+mb_iconwarning);
edtGys.setfocus;
exit;
end;
if isadd then
begin
DM.qry_Gys.DisableControls;
DM.qry_Gys.append;
end;
DM.qry_Gys.edit;
DM.qry_Gys.fieldbyname('Gys_code').asstring:=edtGys.Text;
DM.qry_Gys.fieldbyname('Gys_name').asstring:=edtGysName.text;
DM.qry_Gys.fieldbyname('Gys_Add').asstring:=edtLxr.Text;
DM.qry_Gys.fieldbyname('Gys_Lxr').asstring:=edtTel.text;
DM.qry_Gys.fieldbyname('Gys_Tel').asstring:=edtAdd.Text;
DM.qry_Gys.fieldbyname('Gys_Zip').asstring:=edtZip.text;
DM.qry_Gys.fieldbyname('Gys_Tax').asstring:=edtTax.Text;
DM.qry_Gys.fieldbyname('Gys_Khbank').asstring:=edtBank.text;
DM.qry_Gys.fieldbyname('Gys_Account').asstring:=edtAccount.Text;
DM.qry_Gys.fieldbyname('Gys_Credit').asstring:=edtAudit.text;
DM.qry_Gys.fieldbyname('Gys_memo').asstring:=edtCredit.Text;
Dm.qry_Gys.post;
//---------------------------------------
if isAdd then isAdd:=false;
if isMod then isMod:=false;
Panel1.Enabled:=false;
btnadd.enabled:=true;
btnadd.SetFocus;
btnErase.enabled:=true;
btnMod.enabled:=true;
btnSave.enabled:=false;
btnCancel.enabled:=false;
edtGys.Enabled:=true;
Dm.qry_Gys.EnableControls;
Dm.qry_Gys.close;
Dm.qry_Gys.open;
end;
procedure TfrmGys.btnCancelClick(Sender: TObject);
begin
if btnCancel.caption='取消(&C)' then
begin
panel1.enabled:=false;
btnAdd.enabled:=true;
btnErase.enabled:=true;
btnMod.enabled:=true;
btnSave.enabled:=false;
btnCancel.enabled:=false;
end;
end;
procedure TfrmGys.btnExitClick(Sender: TObject);
begin
close;
end;
procedure TfrmGys.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
end;
procedure TfrmGys.FormShow(Sender: TObject);
begin
with dm.qry_Gys do
begin
close;
sql.Clear;
sql.Add('select * from GysArchives order by Gys_code');
open;
end;
end;
procedure TfrmGys.edtGysKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
perform(cm_dialogkey,vk_tab,0);
end;
end;
procedure TfrmGys.edtBzKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
btnSave.setfocus;
end;
end;
procedure TfrmGys.edtGysExit(Sender: TObject);
begin
if edtGys.text='' then exit;
if isadd then//增加
begin
if dm.qry_Gys.Locate('Gys_code',edtGys.text ,[loCaseInsensitive]) then
begin
application.MessageBox('注意:'+#13+' 供应商代码重复,请重新输入!','警告',mb_ok+mb_iconwarning);
edtGys.text:='';
edtGys.SetFocus;
exit;
end;
end;
end;
procedure TfrmGys.dsGysDataChange(Sender: TObject; Field: TField);
begin
if not isadd then
begin
edtGys.Text:=DM.qry_Gys.fieldbyname('Gys_code').asstring;
edtGysName.text:=DM.qry_Gys.fieldbyname('Gys_name').asstring;
edtLxr.Text:=DM.qry_Gys.fieldbyname('Gys_Add').asstring;
edtTel.text:=DM.qry_Gys.fieldbyname('Gys_Lxr').asstring;
edtAdd.Text:=DM.qry_Gys.fieldbyname('Gys_Tel').asstring;
edtZip.text:=DM.qry_Gys.fieldbyname('Gys_Zip').asstring;
edtTax.Text:=DM.qry_Gys.fieldbyname('Gys_Tax').asstring;
edtBank.text:=DM.qry_Gys.fieldbyname('Gys_Khbank').asstring;
edtAccount.Text:=DM.qry_Gys.fieldbyname('Gys_Account').asstring;
edtAudit.text:=DM.qry_Gys.fieldbyname('Gys_Credit').asstring;;
edtCredit.Text:=DM.qry_Gys.fieldbyname('Gys_memo').asstring
end else
exit;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -