yfwxfrm.pas

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

PAS
254
字号
unit yfwxfrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, PrnDbgeh, db, Buttons, StdCtrls, Grids, DBGridEh, ExtCtrls, DBCtrls,
  ComCtrls, Mask, DBCtrlsEh;

type
  Tyfwx = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Edit3: TEdit;
    Label4: TLabel;
    DateTimePicker1: TDateTimePicker;
    Label5: TLabel;
    DBNumberEditEh1: TDBNumberEditEh;
    Label6: TLabel;
    Edit4: TEdit;
    Label7: TLabel;
    Edit5: TEdit;
    DBGridEh1: TDBGridEh;
    Label8: TLabel;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
  public
    procedure showwz;
    function wxd:string;
    { Public declarations }
  end;

var
  yfwx: Tyfwx;

implementation
uses datafrm,tjwxwz,dateutils;
{$R *.dfm}

procedure Tyfwx.SpeedButton2Click(Sender: TObject);
var
  i:integer;
begin
yfgldata.wxwz1.First;
for i:=1 to yfgldata.wxwz1.RecordCount do
  begin
    yfgldata.wxwz1.Delete;
  end;
close;
end;

procedure Tyfwx.SpeedButton3Click(Sender: TObject);
begin
application.CreateForm(twxwz,wxwz);
wxwz.wztj:=true;
wxwz.Caption:='添加维修物资';
try
  wxwz.ShowModal;
finally
  wxwz.Free;
end;
end;

procedure Tyfwx.SpeedButton4Click(Sender: TObject);
begin
if messagebox(yfwx.handle,'请确认要删除本记录吗?','营房工作管理系统',33)=1 then
  begin
    yfwx.DBNumberEditEh1.Value:=yfwx.DBNumberEditEh1.Value-yfgldata.wxwz1.FieldByName('金额').AsFloat;
    yfgldata.wxwz1.Delete;
    yfwx.showwz;
  end;
end;

procedure Tyfwx.SpeedButton5Click(Sender: TObject);
begin
application.CreateForm(twxwz,wxwz);
wxwz.wztj:=false;
wxwz.Caption:='修改维修物资';
wxwz.Edit1.Text:=yfgldata.wxwz1.FieldByName('名称').AsString;
wxwz.Edit1.ReadOnly:=true;
wxwz.ComboBox1.Text:=yfgldata.wxwz1.FieldByName('单位').AsString;
wxwz.Edit2.Text:=yfgldata.wxwz1.FieldByName('规格').AsString;
wxwz.DBNumberEditEh1.Value:=yfgldata.wxwz1.FieldByName('数量').AsInteger;
wxwz.DBNumberEditEh2.Value:=yfgldata.wxwz1.FieldByName('单价').AsFloat;
wxwz.DBNumberEditEh3.Value:=yfgldata.wxwz1.FieldByName('金额').AsFloat;
try
  wxwz.ShowModal;
finally
  wxwz.Free;
end;
end;

procedure tyfwx.showwz;
begin
  yfwx.SpeedButton4.Enabled:=yfgldata.wxwz1.RecordCount>0;
  yfwx.SpeedButton5.Enabled:=yfgldata.wxwz1.RecordCount>0;
end;

procedure Tyfwx.FormShow(Sender: TObject);
var
  i:integer;
begin
yfgldata.wxwz1.First;
for i:=1 to yfgldata.wxwz1.RecordCount do
  begin
    yfgldata.wxwz1.Delete;
  end;
yfwx.showwz;
end;

procedure Tyfwx.SpeedButton1Click(Sender: TObject);
var
  str,bh:string;
  i:integer;
begin
str:='';
bh:=yfwx.wxd;
if yfwx.Edit1.Text='' then str:='维修项目';
if yfwx.Edit2.Text='' then
  if str<>'' then
    str:=str+'、单位'
  else
    str:=str+'单位';
if yfwx.Edit3.Text='' then
  if str<>'' then
    str:=str+'、维修人员'
  else
    str:=str+'维修人员';
if yfwx.Edit3.Text='' then
  if str<>'' then
    str:=str+'、责任人'
  else
    str:=str+'责任人';
if str='' then
  begin
    if yfgldata.wxwz1.RecordCount<1 then
      messagebox(yfwx.handle,'维修物资不能为空。','营房工作管理系统',16)
    else
      begin
        yfgldata.wx.Append;
        yfgldata.wx.FieldByName('编号').AsString:=bh;
        yfgldata.wx.FieldByName('维修项目').AsString:=yfwx.Edit1.Text;
        yfgldata.wx.FieldByName('单位').AsString:=yfwx.Edit2.Text;
        yfgldata.wx.FieldByName('维修人员').AsString:=yfwx.Edit3.Text;
        yfgldata.wx.FieldByName('日期').AsDateTime:=yfwx.DateTimePicker1.Date;
        yfgldata.wx.FieldByName('合计').AsFloat:=yfwx.DBNumberEditEh1.Value;
        yfgldata.wx.FieldByName('责任人').AsString:=yfwx.Edit4.Text;
        yfgldata.wx.FieldByName('备注').AsString:=yfwx.Edit5.Text;
        yfgldata.wx.Post;
        yfgldata.wxwz1.First;
        for i:=1 to yfgldata.wxwz1.RecordCount do
          begin
            yfgldata.wxwz.Append;
            yfgldata.wxwz.FieldByName('编号').AsString:=bh;
            yfgldata.wxwz.FieldByName('名称').AsString:=yfgldata.wxwz1.FieldByName('名称').AsString;
            yfgldata.wxwz.FieldByName('单位').AsString:=yfgldata.wxwz1.FieldByName('单位').AsString;
            yfgldata.wxwz.FieldByName('规格').AsString:=yfgldata.wxwz1.FieldByName('规格').AsString;
            yfgldata.wxwz.FieldByName('数量').AsInteger:=yfgldata.wxwz1.FieldByName('数量').AsInteger;
            yfgldata.wxwz.FieldByName('单价').AsCurrency:=yfgldata.wxwz1.FieldByName('单价').AsCurrency;
            yfgldata.wxwz.FieldByName('金额').AsCurrency:=yfgldata.wxwz1.FieldByName('金额').AsCurrency;
            yfgldata.wxwz.Post;
            yfgldata.wxwz1.Next;
          end;
        yfgldata.wxwz1.First;
        for i:=1 to yfgldata.wxwz1.RecordCount do
          begin
            yfgldata.wxwz1.Delete;
          end;
        close;
      end;
  end
else
  begin
    str:=str+'不能为空。';
    showmessage(str);
  end;
end;

function tyfwx.wxd:string;
var
  n:integer;
  str,str0:string;
  find:boolean;
begin
  find:=false;
  n:=1;
  str0:='W'+inttostr(yearof(now))+'00001';
  str:=str0;
  yfgldata.wx.First;
  while not yfgldata.wx.Eof do
    begin
      if yearof(yfgldata.wx.FieldByName('日期').AsDateTime)=yearof(now) then
        begin
          find:=true;
          if str<=yfgldata.wx.FieldByName('编号').AsString then
            begin
              str:=yfgldata.wx.FieldByName('编号').AsString;
            end;
        end;
      yfgldata.wx.Next;
    end;
  if find then
    begin
      while str0<=str do
        begin
          n:=n+1;
          if n<10 then
            str0:='W'+inttostr(yearof(now))+'0000'+inttostr(n)
          else
            if n<100 then
              str0:='W'+inttostr(yearof(now))+'000'+inttostr(n)
            else
              if n<1000 then
                str0:='W'+inttostr(yearof(now))+'00'+inttostr(n)
              else
                if n<10000 then
                  str0:='W'+inttostr(yearof(now))+'0'+inttostr(n)
                else
                  if n<100000 then
                    str0:='W'+inttostr(yearof(now))+inttostr(n)
                  else
                    begin
                      messagebox(yfwx.handle,'本年度维修登记数量超过程序设计值,不能继续登记。','营房工作管理系统',16);
                      close;
                    end;
        end;
    end;
  result:=str0;
end;

procedure Tyfwx.FormActivate(Sender: TObject);
begin
yfwx.DateTimePicker1.DateTime:=now;
end;

end.

⌨️ 快捷键说明

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