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 + -
显示快捷键?