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

📄 bjqlunit.pas

📁 很好用的一个票据管理系统
💻 PAS
字号:
unit BjqlUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, ExtCtrls, StdCtrls, Buttons;

type
  TBjqlForm = class(TForm)
    Panel2: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Bitadd: TBitBtn;
    Bitedit: TBitBtn;
    Edit1: TEdit;
    Edit2: TEdit;
    Bitdel: TBitBtn;
    Splitter1: TSplitter;
    Panel1: TPanel;
    DBGrid1: TDBGrid;
    Edit3: TEdit;
    procedure BjqlNewll;
    procedure formcreate(Sender: TObject);
    procedure BitaddClick(Sender: TObject);
    procedure BiteditClick(Sender: TObject);
    procedure BitdelClick(Sender: TObject);
    procedure DBgridCelClick(Column: TColumn);
    procedure edit1keydown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edit2keydown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edit3keydown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edit1keypress(Sender: TObject; var Key: Char);
    procedure edit3keypress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  BjqlForm: TBjqlForm;

implementation
uses dm;
{$R *.dfm}
procedure TBjqlform.BjqlNewll;
begin

 with dmdata.BjqlADOQuery do
 begin
   close;
   sql.Clear;
   sql.Add('select * from T_Bjql');
   open;
 end;
end;
procedure TBjqlForm.formcreate(Sender: TObject);
begin
   bjqlnewll;
end;

procedure TBjqlForm.BitaddClick(Sender: TObject);
begin
  if edit1.Text = '' then
  begin
    showmessage('票据种类不能为空');
    exit;
  end;
  if edit2.Text = '' then
  begin
    showmessage('本/张/份/数量不能为空');
    exit;
  end;
  with dmdata.BjqlADOQuery do
  begin
   close;
   sql.Clear;
   sql.Add('select * from t_bjql where km=:a');
   parameters.ParamByName('a').Value := trim(edit1.Text);
   open;
   if RecordCount > 0 then
   begin
     showmessage('该票据种类已经存在');
     exit;
   end
   else
   begin
   with dmdata.BjqlADOQuery do
   begin
     close;
     sql.Clear;
     sql.Add('insert into t_bjql(km,ql,mbf) values(:a,:b,:c)');
     parameters.ParamByName('a').Value:=trim(edit1.Text);
     parameters.ParamByName('b').Value:=trim(edit2.Text);
     parameters.ParamByName('c').Value:=trim(edit3.Text);
     execsql;
   end;
   bjqlnewll;
   edit1.SetFocus;
   edit1.Text:='';
   edit2.Text:='';
   edit3.Text:='';
 end;
 end;
end;

procedure TBjqlForm.BiteditClick(Sender: TObject);
begin
  if (edit1.Text='') and (edit2.Text='') then
  begin
    showmessage('请选择修改记录!');
    exit;
  end;
  with dmdata.BjqlADOQuery do
  begin
   close;
   sql.Clear;
   sql.Add('select * from t_bjql where km=:a');
   parameters.ParamByName('a').Value := trim(edit1.Text);
   open;
   if RecordCount > 0 then
   begin
      with dmdata.BjqlADOQuery do
      begin
        close;
        sql.Clear;
        sql.Add('update t_bjql set ql =:b,mbf =:c where (km =:a)' );
        parameters.ParamByName('a').Value:=trim(edit1.Text);
        parameters.ParamByName('b').Value:=trim(edit2.Text);
        parameters.ParamByName('c').Value:=trim(edit3.Text);
        execsql;
      end;
    end
    else
    begin
       bjqlnewll;
       showmessage('该票据种类不存在,不能修改');
       exit;
    end;
  end;
  bjqlnewll;
  edit1.SetFocus;
   edit1.Text:='';
   edit2.Text:='';
   edit3.Text:='';
end;

procedure TBjqlForm.BitdelClick(Sender: TObject);
begin
  if (edit1.Text='') and (edit2.Text='') then
  begin
    showmessage('请选择要删除的记录!');
    exit;
  end;
  with dmdata.ShowADOQuery do
  begin
    close;
    sql.Clear;
    sql.Add('select * from T_ms_jl where ql_id = :a');
    parameters.ParamByName('a').Value := trim(edit1.Text);
    open;
    if RecordCount > 0 then
    begin
     showmessage('该票据种类已经使用,不能删除!');
     exit;
    end;
  end;
  with dmdata.ShowADOQuery do
  begin
    close;
    sql.Clear;
    sql.Add('select * from T_kqb where ql_id = :a');
    parameters.ParamByName('a').Value := trim(edit1.Text);
    open;
    if RecordCount > 0 then
    begin
     showmessage('该票据种类已经使用,不能删除!');
     exit;
    end;
  end;
  with dmdata.ShowADOQuery do
  begin
    close;
    sql.Clear;
    sql.Add('select * from T_Grb where ql_id = :a');
    parameters.ParamByName('a').Value := trim(edit1.Text);
    open;
    if RecordCount > 0 then
    begin
     showmessage('该票据种类已经使用,不能删除!');
     exit;
    end;
  end;
  with dmdata.ShowADOQuery do
  begin
    close;
    sql.Clear;
    sql.Add('select * from T_Lyb where ql_id = :a');
    parameters.ParamByName('a').Value := trim(edit1.Text);
    open;
    if RecordCount > 0 then
    begin
     showmessage('该票据种类已经使用,不能删除!');
     exit;
    end;
  end;
  with dmdata.ShowADOQuery do
  begin
    close;
    sql.Clear;
    sql.Add('select * from T_XHb where ql_id = :a');
    parameters.ParamByName('a').Value := trim(edit1.Text);
    open;
    if RecordCount > 0 then
    begin
     showmessage('该票据种类已经使用,不能删除!');
     exit;
    end;
  end;
   with dmdata.ShowADOQuery do
  begin
    close;
    sql.Clear;
    sql.Add('select * from t_th where ql_id = :a');
    parameters.ParamByName('a').Value := trim(edit1.Text);
    open;
    if RecordCount > 0 then
    begin
     showmessage('该票据种类已经使用,不能删除!');
     exit;
    end;
  end;
  with dmdata.BjqlADOQuery do
  begin
    close;
    sql.Clear;
    sql.Add('delete from t_bjql  where (km=:a)' );
    parameters.ParamByName('a').Value:=trim(edit1.Text);
    execsql;
  end;
  bjqlnewll;
  edit1.SetFocus;
   edit1.Text:='';
   edit2.Text:='';
   edit3.Text:='';
end;

procedure TBjqlForm.DBgridCelClick(Column: TColumn);
begin
 with dmdata.BjqlADOQuery do
 begin
   if RecordCount > 0 then
   begin
     edit1.Text :=fieldbyname('km').AsString;
     edit2.Text:=fieldbyname('ql').AsString;
     edit3.Text:=fieldbyname('mbf').AsString;
   end;
 end;
end;

procedure TBjqlForm.edit1keydown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (key=vk_return) or (key = vk_down) then
 begin
    edit2.SetFocus;
 end;   
end;

procedure TBjqlForm.edit2keydown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (key=vk_return) or (key = vk_down) then
  begin
    edit3.SetFocus;
  end;
  if key = vk_up then
  begin
    edit1.SetFocus;
  end;
end;

procedure TBjqlForm.edit3keydown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (key=vk_return) or (key = vk_down) then
  begin
    bitadd.SetFocus;
  end;
  if key = vk_up then
  begin
    edit2.SetFocus;
  end;
end;

procedure TBjqlForm.edit1keypress(Sender: TObject; var Key: Char);
var
  m:boolean;
begin
  m:=(key<#8)or(key>#8)and(key<#48)or(key>#57);
  if m then key := #0;

end;

procedure TBjqlForm.edit3keypress(Sender: TObject; var Key: Char);
var
  m:boolean;
begin
  m:=(key<#8)or(key>#8)and(key<#48)or(key>#57);
  if m then key := #0;

end;

end.

⌨️ 快捷键说明

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