📄 datamanager.pas
字号:
unit DataManager;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, ExtCtrls, ComCtrls, StdCtrls, Grids, DBGrids;
type
TDataManagerForm = class(TForm)
Panel1: TPanel;
PzmcSpeedButton: TSpeedButton;
ClientNameSpeedButton: TSpeedButton;
Panel2: TPanel;
ExitSpeedButton: TSpeedButton;
Bevel1: TBevel;
InputPageControl: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Panel3: TPanel;
PMListDBGrid: TDBGrid;
Label1: TLabel;
PzmcEdit: TEdit;
Label2: TLabel;
CfEdit: TEdit;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
WidthEdit: TEdit;
MzEdit: TEdit;
KcEdit: TEdit;
Panel5: TPanel;
Bevel2: TBevel;
Panel9: TPanel;
Panel10: TPanel;
KHListDBGrid: TDBGrid;
Label11: TLabel;
ClientNameEdit: TEdit;
AddPMSpeedButton: TSpeedButton;
DelPMSpeedButton: TSpeedButton;
AddKHSpeedButton: TSpeedButton;
DelKHSpeedButton: TSpeedButton;
procedure ExitSpeedButtonClick(Sender: TObject);
procedure PzmcSpeedButtonClick(Sender: TObject);
procedure ClientNameSpeedButtonClick(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure AddPMSpeedButtonClick(Sender: TObject);
procedure DelPMSpeedButtonClick(Sender: TObject);
procedure AddKHSpeedButtonClick(Sender: TObject);
procedure DelKHSpeedButtonClick(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure PMListDBGridDblClick(Sender: TObject);
procedure PMListDBGridDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
procedure KHListDBGridDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
procedure KHListDBGridDblClick(Sender: TObject);
private
{ Private declarations }
public
function SaveClientName(ClientName :string):boolean;
function SaveBreedName(pzmc, width, mz, kc, cf :string):boolean;
end;
var
DataManagerForm: TDataManagerForm;
implementation
uses dataform, main;
{$R *.dfm}
procedure TDataManagerForm.ExitSpeedButtonClick(Sender: TObject);
begin
MDataForm.PMManagerADOQuery.Close;
MDataForm.ClientNameADOQuery.Close;
Close;
end;
procedure TDataManagerForm.PzmcSpeedButtonClick(Sender: TObject);
begin
InputPageControl.ActivePageIndex :=0;
//打开品种资料库
try
with MDataForm.PMManagerADOQuery do
begin
Close;
SQL.Clear;
SQL.Add('select * from BreedName');
Open;
end;
PzmcEdit.SetFocus;
except
MainForm.PshowMessage('系统错误','打开资料库时失败!',0);
end;
end;
procedure TDataManagerForm.ClientNameSpeedButtonClick(Sender: TObject);
begin
InputPageControl.ActivePageIndex :=1;
//打开客户资料
try
with MDataForm.ClientNameADOQuery do
begin
Close;
SQL.Clear;
SQL.Add('select * from ClientName');
Open;
end;
ClientNameEdit.SetFocus;
except
MainForm.PshowMessage('系统错误','打开资料库时失败!',0);
end;
end;
procedure TDataManagerForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (Key=#13) and not(ActiveControl is TDBGrid)then
Perform(WM_NEXTDLGCTL,0,0);
end;
procedure TDataManagerForm.AddPMSpeedButtonClick(Sender: TObject);
var SaveOK :boolean;
begin
//先禁用ADOQuery,保存数据,关闭,打开,再解开禁止
SaveOK :=SaveBreedName(PzmcEdit.Text, WidthEdit.Text, MzEdit.Text, KcEdit.Text,
CfEdit.Text);
if not SaveOK then
MainForm.PshowMessage('系统错误','保存品种名称数据至数据库失败!',0);
PzmcSpeedButtonClick(nil); //刷新数据显示
MDataForm.PMManagerADOQuery.EnableControls;
end;
procedure TDataManagerForm.DelPMSpeedButtonClick(Sender: TObject);
begin
if MainForm.PshowMessage('提示','是否真的要删除下面所选择的数据行?',1) then
begin
try
With MDataForm.PMManagerADOQuery do
begin
DisableControls;
Delete;
PzmcSpeedButtonClick(nil); //刷新数据显示
EnableControls;
end;
except
MainForm.PshowMessage('系统错误','删除品种名称资料失败!',0)
end;
end;
end;
procedure TDataManagerForm.AddKHSpeedButtonClick(Sender: TObject);
var SaveOk :boolean;
begin
//保存客户资料
//先禁用ADOQuery,保存数据,关闭,打开,再解开禁止
SaveOK := SaveClientName(ClientNameEdit.Text);
if not SaveOK then
MainForm.PshowMessage('系统错误','保存客户名称数据至数据库失败!',0);
ClientNameSpeedButtonClick(nil); //刷新数据显示
MDataForm.ClientNameADOQuery.EnableControls;
end;
procedure TDataManagerForm.DelKHSpeedButtonClick(Sender: TObject);
begin
//删除客户资料
if MainForm.PshowMessage('提示','是否真的要删除下面所选择的数据行?',1) then
begin
try
With MDataForm.ClientNameADOQuery do
begin
DisableControls;
Delete;
ClientNameSpeedButtonClick(nil); //刷新数据显示
EnableControls;
end;
except
MainForm.PshowMessage('系统错误','删除客户名称资料失败!',0)
end;
end;
end;
procedure TDataManagerForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
//save
if (ssCtrl in Shift) and (Key=word('S')) then
begin
if InputPageControl.ActivePageIndex =0 then AddPMSpeedButtonClick(nil)
else AddKHSpeedButtonClick(nil);
end;
//delete
if (ssCtrl in Shift) and (Key=46) then
begin
if InputPageControl.ActivePageIndex =0 then DelPMSpeedButtonClick(nil)
else DelKHSpeedButtonClick(nil);
end;
end;
procedure TDataManagerForm.PMListDBGridDblClick(Sender: TObject);
begin
if PMListDBGrid.ReadOnly then
begin
PMListDBGrid.ReadOnly := false;
PMListDBGrid.Options :=PMListDBGrid.Options -[dgRowSelect] +[dgEditing];
end else
begin
PMListDBGrid.ReadOnly := true;
PMListDBGrid.Options :=PMListDBGrid.Options +[dgRowSelect] -[dgEditing];
end;
end;
procedure TDataManagerForm.PMListDBGridDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if (MDataForm.PMManagerADOQuery.RecNo mod 2) = 1 then
begin
with PMListDBGrid do
begin
canvas.brush.color:= $00F2D5D0;
DefaultDrawColumnCell(Rect, DataCol,Column,State);
end;
end;
end;
procedure TDataManagerForm.KHListDBGridDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if (MDataForm.ClientNameADOQuery.RecNo mod 2) = 1 then
begin
with KHListDBGrid do
begin
canvas.brush.color:= $00F2D5D0;
DefaultDrawColumnCell(Rect, DataCol,Column,State);
end;
end;
end;
procedure TDataManagerForm.KHListDBGridDblClick(Sender: TObject);
begin
if KHListDBGrid.ReadOnly then
begin
KHListDBGrid.ReadOnly := false;
KHListDBGrid.Options :=KHListDBGrid.Options -[dgRowSelect] +[dgEditing];
end else
begin
KHListDBGrid.ReadOnly := true;
KHListDBGrid.Options :=KHListDBGrid.Options +[dgRowSelect] -[dgEditing];
end;
end;
function TDataManagerForm.SaveBreedName(pzmc, width, mz, kc,
cf: string): boolean;
begin
try
with MDataForm.PMManagerADOQuery do
begin
DisableControls;
Close;
SQL.Clear;
SQL.Add('insert into BreedName values (:pzmc, :width, :mz, :kc, :cf)');
Parameters.ParamByName('pzmc').Value := pzmc;
Parameters.ParamByName('width').Value := width;
Parameters.ParamByName('mz').Value := StrToFloat(mz);
Parameters.ParamByName('kc').Value := StrToFloat(kc);
Parameters.ParamByName('cf').Value := cf;
ExecSQL;
end;
Result := true;
except
Result := false;
end;
end;
function TDataManagerForm.SaveClientName(ClientName: string): boolean;
begin
try
with MDataForm.ClientNameADOQuery do
begin
DisableControls;
Close;
SQL.Clear;
SQL.Add('insert into ClientName values (:khmc)');
Parameters.ParamByName('khmc').Value := ClientName;
ExecSQL;
end;
Result := true;
except
Result := false;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -