📄 counter.~pas
字号:
unit counter;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, baseform, DB, StdCtrls, Grids, DBGrids, ExtCtrls;
type
Tf_counter = class(Tf_baseform)
Label1: TLabel;
Panel1: TPanel;
Label2: TLabel;
Label3: TLabel;
Counter: TEdit;
Shortname: TEdit;
Panel3: TPanel;
Add: TButton;
Update: TButton;
Delete: TButton;
Cancel: TButton;
Grid1: TDBGrid;
Panel2: TPanel;
Label6: TLabel;
Label7: TLabel;
Field: TComboBox;
Value: TEdit;
Query: TButton;
Source1: TDataSource;
procedure CancelClick(Sender: TObject);
procedure AddClick(Sender: TObject);
procedure UpdateClick(Sender: TObject);
procedure DeleteClick(Sender: TObject);
procedure QueryClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Grid1CellClick(Column: TColumn);
procedure CounterKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
Function EditIsNull: Boolean;//判断编辑框是否为空
Function counterIsMore(Countername: String): Boolean;
{ Public declarations }
end;
var
f_counter: Tf_counter;
implementation
uses Data;
{$R *.dfm}
{ Tf_counter }
function Tf_counter.counterIsMore(Countername: String): Boolean;
begin
Result := False;
With t_data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select * From tb_counter where counter = :name');
Parameters.ParamByName('name').Value := Trim(Countername);
Open;
end;
if t_data.Query1.RecordCount>0 then
Result := True;
t_data.Query1.Close;
end;
function Tf_counter.EditIsNull: Boolean;
var
i: Integer;
begin
Result := False;
For i := 0 to Panel1.ControlCount-1 do
if Panel1.Controls[i]is TEdit then
if Trim(TEdit(Panel1.Controls[i]).Text)= '' then
begin
Result := True;
Break;
end;
end;
procedure Tf_counter.CancelClick(Sender: TObject);
var
i: Integer;
begin
inherited;
For i :=0 to Panel1.ControlCount-1 do
if Panel1.Controls[i] is TEdit then
TEdit(Panel1.Controls[i]).Clear;
With t_Data.counter do
begin
Close;
SQL.Clear;
SQL.Add('Select * From tb_counter');
Open;
end;
if t_data.counter.RecordCount>0 then
Source1.DataSet := t_data.counter
else
begin
Source1.DataSet := Nil;
t_data.counter.Close;
end;
end;
procedure Tf_counter.AddClick(Sender: TObject);
begin
inherited;
if EditIsNull = False then
begin
if CounterIsMore(Trim(counter.Text)) = False then
begin
Try
With t_data.Insert1 do
begin
Close;
SQL.Clear;
SQL.Add('Insert into tb_counter Values(:name,:shortname)');
Parameters.ParamByName('name').Value := Trim(counter.Text);
Parameters.ParamByName('shortname').Value := Trim(Shortname.Text);
ExecSQL;
end;
Application.MessageBox('操作成功.','提示',64);
Except
Application.MessageBox('操作失败.','提示',64);
End;
Cancel.Click;
end
else
begin
Application.MessageBox('该柜台已经存在','提示',64);
Counter.SetFocus;
end;
end
else
Application.MessageBox('柜台信息不能为空.','提示',64);
end;
procedure Tf_counter.UpdateClick(Sender: TObject);
begin
inherited;
if t_data.counter.Active then
begin
if EditIsNull = False then
begin
if Application.MessageBox('确实要修改当前柜台信息吗?','提示',mb_yesno)= id_yes then
begin
if Trim(Counter.Text)<>Trim(t_data.Counter.FieldByName('counter').AsString) then
begin
With t_data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from tb_counter where counter = :name');
Parameters.ParamByName('name').Value := Trim(counter.Text);
Open;
end;
if t_data.Query1.RecordCount>0 then
begin
Application.MessageBox('该柜台已经存在.','提示',64);
Exit;
end;
end;
Try
With t_data.Update1 do
begin
Close;
SQL.Clear;
SQL.Add('Update tb_counter set counter = :name,shortname = :shortname where counter = :oldname');
Parameters.ParamByName('name').Value := Trim(counter.Text);
Parameters.ParamByName('shortname').Value := Trim(shortname.Text);
Parameters.ParamByName('oldname').Value := Trim(t_data.counter.FieldByName('counter').AsString);
ExecSQL;
end;
Application.MessageBox('操作成功.','提示',64);
Except
Application.MessageBox('操作失败.','提示',64);
End;
Cancel.Click;
end;
end
else
Application.MessageBox('柜台信息不能为空.','提示',64);
end
else
Application.MessageBox('当前没有可修改的信息.','提示',64);
end;
procedure Tf_counter.DeleteClick(Sender: TObject);
begin
inherited;
if t_data.counter.Active then
begin
if Application.MessageBox('确实要删除当前柜台信息吗?','提示',mb_yesno)= ID_Yes then
begin
Try
t_data.counter.Delete;
Cancel.Click;
Application.MessageBox('删除成功.','提示',64);
Except
Application.MessageBox('操作失败.','提示',64);
End;
end;
end
else
Application.MessageBox('当前没有可删除的信息.','提示',64);
end;
procedure Tf_counter.QueryClick(Sender: TObject);
begin
inherited;
if (Field.Text<>'')and(Trim(Value.Text)<>'')then
begin
With t_data.counter do
begin
Close;
SQL.Clear;
SQL.Add('select * From tb_counter where ');
if Field.ItemIndex =0 then
SQL.Add('counter = :FieldValue')
else
SQL.Add('shortname = :FieldValue');
Parameters.ParamByName('FieldValue').Value := Trim(Value.Text);
Open;
end;
if t_data.counter.RecordCount<1 then
begin
Application.MessageBox('没有找到符合条件的记录.','提示',64);
Cancel.Click;
end;
end;
end;
procedure Tf_counter.FormShow(Sender: TObject);
begin
inherited;
Cancel.Click;
end;
procedure Tf_counter.Grid1CellClick(Column: TColumn);
begin
inherited;
if Source1.DataSet.active then
begin
Counter.Text := Trim(Source1.DataSet.FieldByName('counter').AsString);
Shortname.Text := Trim(Source1.DataSet.FieldByName('Shortname').AsString);
end;
end;
procedure Tf_counter.CounterKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if Key = vk_Return then
FindNext(True);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -