yjzlfrm.pas

来自「本人编写的有关军队营房工作的管理系统」· PAS 代码 · 共 238 行

PAS
238
字号
unit yjzlfrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, ExtCtrls, Grids, db,DBGridEh, PrnDbgeh;

type
  Tyjzl = class(TForm)
    Panel1: TPanel;
    SpeedButton1: TSpeedButton;
    Panel2: TPanel;
    SpeedButton8: TSpeedButton;
    SpeedButton9: TSpeedButton;
    SpeedButton10: TSpeedButton;
    SpeedButton11: TSpeedButton;
    DBGridEh1: TDBGridEh;
    SpeedButton2: TSpeedButton;
    PrintDBGridEh1: TPrintDBGridEh;
    procedure SpeedButton1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure SpeedButton8Click(Sender: TObject);
    procedure SpeedButton9Click(Sender: TObject);
    procedure DBGridEh1CellClick(Column: TColumnEh);
    procedure DBGridEh1DrawDataCell(Sender: TObject; const Rect: TRect;
      Field: TField; State: TGridDrawState);
    procedure DBGridEh1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBGridEh1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure SpeedButton10Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton11Click(Sender: TObject);
  private
    { Private declarations }
    function getid:string;
  public
    { Public declarations }
    procedure showbuttons;
  end;

var
  yjzl: Tyjzl;

implementation

uses datafrm,tjyjzlfrm,xgyjzlfrm,yjzldwfrm;
{$R *.dfm}

procedure Tyjzl.SpeedButton1Click(Sender: TObject);
begin
close;
end;

procedure tyjzl.showbuttons;
begin
yjzl.SpeedButton9.Enabled:=yfgldata.yjzl.RecordCount>0;
yjzl.SpeedButton10.Enabled:=yfgldata.yjzl.RecordCount>0;
yjzl.SpeedButton11.Enabled:=yfgldata.yjzl.RecordCount>0;
yjzl.SpeedButton2.Enabled:=yfgldata.yjzl.RecordCount>0;
end;

procedure Tyjzl.FormShow(Sender: TObject);
begin
yjzl.showbuttons;
end;

function tyjzl.getid:string;
var
  n:integer;
  str,str0:string;
  find: boolean;
begin
  find:=false;
  n:=1;
  if yfgldata.yjzl.RecordCount>0 then
    while not find do
      begin
        if n<10 then
          str:='Y00'+trim(inttostr(n))
        else
          if n<100 then
            str:='Y0'+trim(inttostr(n))
          else
            if n<1000 then
              str:='Y'+trim(inttostr(n))
            else
              begin
                messagebox(yjzl.handle,'营具种类超过999种,不能继续添加。','营房工作管理系统',16);
                close;
              end;
        if not yfgldata.yjzl.Locate('营具代码',str,[loCaseInsensitive]) then
          begin
          str0:=str;
          find:=true;
          end;
        n:=n+1;
      end
  else
    str0:='Y001';
  result:=str0;
end;

procedure Tyjzl.SpeedButton8Click(Sender: TObject);
begin
application.CreateForm(ttjyjzl,tjyjzl);
try
  begin
  tjyjzl.Edit1.Text:=yjzl.getid;
  tjyjzl.Edit2.Text:='新营具名称';
  tjyjzl.Edit3.Text:='个';
  tjyjzl.Edit5.Text:='上级价拨';
  tjyjzl.ShowModal;
  end;
finally
  tjyjzl.Free;
end;
end;

procedure Tyjzl.SpeedButton9Click(Sender: TObject);
var
  id:string;
begin
if yfgldata.yjzl.RecordCount>0 then
  if messagebox(yjzl.Handle,'本营具种类删除后,系统内与之相关的记录将要被删除,确认要删除本营具种类吗?','营房工作管理系统',33)=1 then
    begin
      id:=yfgldata.yjzl.fieldbyname('营具代码').AsString;
      while yfgldata.yj.Locate('营具代码',id,[loCaseInsensitive]) do
        begin
          yfgldata.yj.Delete;
        end;
      yfgldata.yj.First;
      while yfgldata.yj1.Locate('代码',id,[loCaseInsensitive]) do
        begin
          yfgldata.yj1.Delete;
        end;
      yfgldata.yj1.First;
      while yfgldata.grjyyj.Locate('代码',id,[loCaseInsensitive]) do
        begin
          yfgldata.grjyyj.Delete;
        end;
      yfgldata.grjyyj.First;
      while yfgldata.grjyyj1.Locate('代码',id,[loCaseInsensitive]) do
        begin
          yfgldata.grjyyj1.Delete;
        end;
      yfgldata.grjyyj1.First;
      while yfgldata.kcyj1.Locate('代码',id,[loCaseInsensitive]) do
        begin
          yfgldata.kcyj1.Delete;
        end;
      yfgldata.kcyj1.First;
      while yfgldata.kcyj.Locate('营具代码',id,[loCaseInsensitive]) do
        begin
          yfgldata.kcyj.Delete;
        end;
      yfgldata.kcyj.First;
      while yfgldata.dwyj1.Locate('代码',id,[loCaseInsensitive]) do
        begin
          yfgldata.dwyj1.Delete;
        end;
      yfgldata.dwyj1.First;
      while yfgldata.dwyj.Locate('代码',id,[loCaseInsensitive]) do
        begin
          yfgldata.dwyj.Delete;
        end;
      yfgldata.dwyj.First;
      yfgldata.yjzl.Delete;
      yjzl.showbuttons;
    end
else
  messagebox(yjzl.handle,'没有营具种类可以删除。','营房工作管理系统',16);
end;

procedure Tyjzl.DBGridEh1CellClick(Column: TColumnEh);
begin
yjzl.showbuttons;
end;

procedure Tyjzl.DBGridEh1DrawDataCell(Sender: TObject; const Rect: TRect;
  Field: TField; State: TGridDrawState);
begin
yjzl.showbuttons;
end;

procedure Tyjzl.DBGridEh1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
yjzl.showbuttons;
end;

procedure Tyjzl.DBGridEh1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
yjzl.showbuttons;
end;

procedure Tyjzl.SpeedButton10Click(Sender: TObject);
begin
application.CreateForm(txgyjzl,xgyjzl);
try
  begin
  xgyjzl.Edit1.Text:=yfgldata.yjzl.FieldByName('营具代码').AsString;
  xgyjzl.Edit2.Text:=yfgldata.yjzl.FieldByName('营具名称').AsString;
  xgyjzl.Edit3.Text:=yfgldata.yjzl.FieldByName('单位').AsString;
  xgyjzl.DBNumberEditEh1.Value:=yfgldata.yjzl.FieldByName('单价').AsFloat;
  xgyjzl.Edit4.Text:=yfgldata.yjzl.FieldByName('规格').AsString;
  xgyjzl.DateTimePicker1.Date:=yfgldata.yjzl.FieldByName('购入时间').AsDateTime;
  xgyjzl.Edit5.Text:=yfgldata.yjzl.FieldByName('获取方式').AsString;
  xgyjzl.ShowModal;
  end;
finally
  xgyjzl.Free;
end;
end;

procedure Tyjzl.SpeedButton2Click(Sender: TObject);
begin
yjzl.PrintDBGridEh1.PageHeader.CenterText.Clear;
yjzl.PrintDBGridEh1.PageHeader.CenterText.Add('营具种类列表');
yjzl.PrintDBGridEh1.Preview;
end;

procedure Tyjzl.SpeedButton11Click(Sender: TObject);
begin
application.CreateForm(tyjzldw,yjzldw);
try
  begin
  yjzldw.ShowModal;
  end;
finally
  yjzldw.Free;
end;
end;

end.

⌨️ 快捷键说明

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