⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guestmanage.pas

📁 实用的毛织生产管理系统
💻 PAS
字号:
unit guestmanage;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGrids, DB, DBTables, Menus, constb,
 ComCtrls, ExtCtrls, DBGridEh;

type
  Tguestmanagefm = class(TForm)
    GroupBox2: TGroupBox;
    guestqy: TQuery;
    guestdb: TDataSource;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N3: TMenuItem;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    DateTimePicker1: TDateTimePicker;
    CheckBox1: TCheckBox;
    Button1: TButton;
    DBGridEh1: TDBGridEh;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure guestqyAfterOpen(DataSet: TDataSet);
    procedure guestqyBeforeEdit(DataSet: TDataSet);
    procedure guestqyBeforePost(DataSet: TDataSet);
    procedure guestqyAfterPost(DataSet: TDataSet);
    procedure guestqyBeforeInsert(DataSet: TDataSet);
    procedure guestqyAfterInsert(DataSet: TDataSet);
    procedure guestqyPostError(DataSet: TDataSet; E: EDatabaseError;
      var Action: TDataAction);
    procedure CheckBox1Click(Sender: TObject);
    procedure DBGridEh1DblClick(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure DBGridEh1KeyPress(Sender: TObject; var Key: Char);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    oldkfjz: string;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  guestmanagefm: Tguestmanagefm;

implementation

{$R *.dfm}

procedure Tguestmanagefm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  guestqy.Close;
  action := cafree;
end;

procedure Tguestmanagefm.FormDestroy(Sender: TObject);
begin
  guestmanagefm := nil;
end;

procedure Tguestmanagefm.FormCreate(Sender: TObject);
begin
  guestqy.RequestLive := true;
  guestqy.SQL.Clear;
  guestqy.sql.Add('select * from kftable order by kfjz desc');
  guestqy.Open;

end;

procedure Tguestmanagefm.Button1Click(Sender: TObject);
begin
  guestqy.SQL.Clear;
  guestqy.sql.Add('select * from kftable where kfjz=kfjz ');
  if edit1.text <> '' then
  begin
    guestqy.sql.Add(' and kfjz like :kfjz');
    guestqy.ParamByName('kfjz').AsString := '%' + edit1.Text + '%';
  end;
  if edit2.text <> '' then
  begin
    guestqy.sql.Add(' and kflink like :kflink');
    guestqy.ParamByName('kflink').AsString := edit2.Text + '%';
  end;
  if checkbox1.Checked then
  begin
    guestqy.sql.Add(' and kfdate = :kfdate');
    guestqy.ParamByName('kfdate').Asdatetime := datetimepicker1.date;
  end;
  guestqy.sql.Add(' order by kfjz desc');
  guestqy.Open;

end;

procedure Tguestmanagefm.N1Click(Sender: TObject);
begin
  guestqy.append;
end;

procedure Tguestmanagefm.N3Click(Sender: TObject);
begin
  guestqy.Delete;
end;

procedure Tguestmanagefm.guestqyAfterOpen(DataSet: TDataSet);
begin
  n3.Enabled := bool(dataset.recordcount);
  label3.Caption := '记录数:' + inttostr(dataset.recordcount) + '条';
end;

procedure Tguestmanagefm.guestqyBeforeEdit(DataSet: TDataSet);
begin
  oldkfjz := guestqy.fieldbyname('kfjz').AsString;
end;

procedure Tguestmanagefm.guestqyBeforePost(DataSet: TDataSet);
begin
  if guestqy.FieldByName('kfjz').asstring <> '' then
  begin
    case dataset.State of
      dsinsert:
        begin
          if searchfield1('kftable', 'kfjz', guestqy.FieldByName('kfjz').asstring) then

          begin
            messagedlg('输入的客户简称重复,请重新输入!', mtinformation, [mbok], 0);
            abort;
          end
        end;
      dsedit: begin
          if oldkfjz <> guestqy.FieldByName('kfjz').asstring then
            if searchfield1('kftable', 'kfjz', guestqy.FieldByName('kfjz').asstring) then
            begin
              messagedlg('输入的客户简称重复,请重新输入!', mtinformation, [mbok], 0);
              abort;
            end;

        end;
    end;
  end
  else
    dataset.cancel;


end;

procedure Tguestmanagefm.guestqyAfterPost(DataSet: TDataSet);
begin
  //guestqy.Close;
 // guestqy.Open;
end;

procedure Tguestmanagefm.guestqyBeforeInsert(DataSet: TDataSet);
begin
  guestqy.SQL.Clear;
  guestqy.sql.Add('select * from kftable order by kfdate desc,kfjz');
  guestqy.Open;
end;

procedure Tguestmanagefm.guestqyAfterInsert(DataSet: TDataSet);
begin
  guestqy.FieldByName('kfdate').AsDateTime := date;
end;

procedure Tguestmanagefm.guestqyPostError(DataSet: TDataSet;
  E: EDatabaseError; var Action: TDataAction);
begin
  if (E is EDBEngineError) then
  begin
    if ((E as EDBEngineError).Errors
      [0].Errorcode = 9729) or ((E as EDBEngineError).Errors
      [0].Errorcode = 13059) then
    begin
      action := daabort;

    end;
  end;
end;

procedure Tguestmanagefm.CheckBox1Click(Sender: TObject);
begin
  datetimepicker1.Enabled := checkbox1.Checked;
end;

procedure Tguestmanagefm.DBGridEh1DblClick(Sender: TObject);
begin
 if schflg then
   if not(guestqy.state  in [dsinsert, dsedit]) then
    begin
    if guestqy.Active and (guestqy.RecordCount > 0) then
    begin
      kfjz := guestqy.Fieldbyname('kfjz').asstring;
      close;
    end;
   end;
end;

procedure Tguestmanagefm.FormKeyPress(Sender: TObject; var Key: Char);
begin
 if key = #13 then
    if not (ActiveControl is TDbgrideh) then
    begin key := #0;
      perform(WM_NEXTDLGCTL, 0, 0);
    end;
end;

procedure Tguestmanagefm.DBGridEh1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
  begin
    with Dbgrideh1 do
      if Selectedindex < (FieldCount - 1) then
        Selectedindex := Selectedindex + 1
      else
      begin
        guestqy.Next;
        if not(guestqy.state  in [dsinsert, dsedit]) then
  
        if guestqy.Eof then
          guestqy.Append;
        Selectedindex := 0;
      end;
  end;
end;

procedure Tguestmanagefm.Button3Click(Sender: TObject);
begin
guestqy.ApplyUpdates;
guestqy.CommitUpdates;
Button1Click(Sender);

end;

procedure Tguestmanagefm.Button4Click(Sender: TObject);
begin
guestqy.CancelUpdates;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -