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

📄 pzsh.pas

📁 凭证管理系统的制作
💻 PAS
字号:
unit pzsh;

interface

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

type
  TForm5 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Label1: TLabel;
    ComboBox1: TComboBox;
    SpeedButton1: TSpeedButton;
    CheckBox1: TCheckBox;
    Label2: TLabel;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Panel3: TPanel;
    Label3: TLabel;
    Edit1: TEdit;
    ComboBox2: TComboBox;
    Label4: TLabel;
    Panel4: TPanel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    procedure FormShow(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure ComboBox2KeyPress(Sender: TObject; var Key: Char);
    procedure BitBtn1Click(Sender: TObject);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BitBtn1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure BitBtn1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form5: TForm5;

implementation
  uses DataModal4;
{$R *.dfm}

procedure TForm5.FormShow(Sender: TObject);
begin
  BitBtn2.OnClick(Sender);
end;

procedure TForm5.BitBtn2Click(Sender: TObject);
begin
  CheckBox1.Checked := False;
  ComboBox2.Text := '';
  DataSource1.DataSet := Nil;
  BitBtn1.Enabled := False;
  ComboBox1.Clear;
  Edit1.Clear;
  with Da.ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select 凭证号 from 凭证表 where 是否通过 = ''否''');
    Open;
  end;
  if Da.ADOQuery1.RecordCount>0 then
    while Not Da.ADOQuery1.Eof do
    begin
      ComboBox1.Items.Add(Da.ADOQuery1.FieldByName('凭证号').Value);
      Da.ADOQuery1.Next;
    end;
end;

procedure TForm5.SpeedButton1Click(Sender: TObject);
begin
  if CheckBox1.Checked = False then
  begin
    with Da.ADOQuery2 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select * from 凭证明细表 where 凭证号 = :a');
      Parameters.ParamByName('a').Value := Trim(ComboBox1.Text);
      Open;
    end;
    if Da.ADOQuery2.RecordCount>0 then
    begin
      DataSource1.DataSet := da.ADOQuery2;
      BitBtn1.Enabled := True;
    end
    else
    begin
      BitBtn1.Enabled := False;
      Application.MessageBox('该凭证数据不存在。','提示',64);
      DataSource1.DataSet := Nil;
    end;
  end
  else
  begin
    with Da.ADOQuery2 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select * from 凭证明细表 where 凭证号 in ( Select 凭证号 from 凭证表 where 是否通过 = ''否'')');
      Open;
    end;
    if Da.ADOQuery2.RecordCount>0 then
    begin
      DataSource1.DataSet := da.ADOQuery2;
      BitBtn1.Enabled := True;
    end
    else
    begin
      BitBtn1.Enabled := False;
      Application.MessageBox('该凭证数据不存在。','提示',64);
      DataSource1.DataSet := Nil;
    end;
  end;
end;

procedure TForm5.ComboBox2KeyPress(Sender: TObject; var Key: Char);
begin
  Key := #0;
end;

procedure TForm5.BitBtn1Click(Sender: TObject);
begin
  if (Trim(Edit1.Text)<>'')and(Trim(ComboBox2.Text)<>'') then
    if Trim(ComboBox2.Text)='是' then
    begin
      Try
      Da.ADOConnection1.BeginTrans;
      Da.ADOQuery2.First;
      while Not Da.ADOQuery2.Eof do
      begin
        with da.ADOQuery1 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('update 凭证表 set 审核人 = :a , 是否通过 = ''是'' where 凭证号 = :b');
          Parameters.ParamByName('a').Value := Trim(Edit1.Text);
          Parameters.ParamByName('b').Value := Trim(Da.ADOQuery2.FieldByName('凭证号').Value);
          ExecSQL;
        end;
        Da.ADOQuery2.Next;
      end;
        Da.ADOConnection1.CommitTrans;
        Application.MessageBox('操作成功,审核通过。','提示',64);
        BitBtn1.Enabled := False;
        BitBtn2.OnClick(Sender);
      Except
        Da.ADOConnection1.RollbackTrans;
        Application.MessageBox('操作失败。','提示',64);
      end;
    end
    else if Trim(ComboBox2.Text)='否' then
    begin
      while Not Da.ADOQuery2.Eof do
      begin
        with da.ADOQuery1 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('update 凭证表 set 审核人 = :a  where 凭证号 = :b');
          Parameters.ParamByName('a').Value := Trim(Edit1.Text);
          Parameters.ParamByName('b').Value := Trim(Da.ADOQuery2.FieldByName('凭证号').Value);
          ExecSQL;
        end;
        Da.ADOQuery2.Next;
      end;
      Application.MessageBox('操作成功,审核没有通过。','提示',64);
      BitBtn1.Enabled := False;
      BitBtn2.OnClick(Sender);
    end;
end;

procedure TForm5.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_ReTurn then
    if Trim(Edit1.Text)<>'' then
      ComboBox2.SetFocus;
end;

procedure TForm5.BitBtn1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  TBitBtn(Sender).Font.Color := clRed;
end;

procedure TForm5.BitBtn1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  TBitBtn(Sender).Font.Color := clBlue;
end;

end.

⌨️ 快捷键说明

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