?? yjcjfrm.pas
字號:
unit yjcjfrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Buttons, db,Grids, StdCtrls, DBGridEh, ComCtrls;
type
Tyjcj = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
SpeedButton3: TSpeedButton;
DBGridEh1: TDBGridEh;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Label3: TLabel;
Edit2: TEdit;
Label4: TLabel;
DateTimePicker1: TDateTimePicker;
SpeedButton1: TSpeedButton;
procedure SpeedButton3Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
function getcjdbh:string;
public
{ Public declarations }
end;
var
yjcj: Tyjcj;
implementation
uses datafrm,dateutils;
{$R *.dfm}
procedure Tyjcj.SpeedButton3Click(Sender: TObject);
begin
close;
end;
procedure Tyjcj.FormShow(Sender: TObject);
begin
yjcj.DateTimePicker1.DateTime:=now;
yfgldata.kcyj.First;
while not yfgldata.kcyj.Eof do
begin
yfgldata.kcyj.Edit;
yfgldata.kcyj.FieldByName('選擇').AsBoolean:=false;
yfgldata.kcyj.Post;
yfgldata.kcyj.Next;
end;
yfgldata.kcyj.First;
end;
function tyjcj.getcjdbh:string;
var
n:integer;
str,str0:string;
find:boolean;
begin
find:=false;
n:=1;
str0:='C'+inttostr(yearof(yjcj.DateTimePicker1.DateTime))+'00001';
str:=str0;
yfgldata.cjd.First;
while not yfgldata.cjd.Eof do
begin
if yearof(yfgldata.cjd.FieldByName('借用日期').AsDateTime)=yearof(yjcj.DateTimePicker1.DateTime) then
begin
find:=true;
if str<=yfgldata.cjd.FieldByName('編號').AsString then
begin
str:=yfgldata.cjd.FieldByName('編號').AsString;
end;
end;
yfgldata.cjd.Next;
end;
if find then
begin
while str0<=str do
begin
n:=n+1;
if n<10 then
str0:='C'+inttostr(yearof(yjcj.DateTimePicker1.DateTime))+'0000'+inttostr(n)
else
if n<100 then
str0:='C'+inttostr(yearof(yjcj.DateTimePicker1.DateTime))+'000'+inttostr(n)
else
if n<1000 then
str0:='C'+inttostr(yearof(yjcj.DateTimePicker1.DateTime))+'00'+inttostr(n)
else
if n<10000 then
str0:='C'+inttostr(yearof(yjcj.DateTimePicker1.DateTime))+'0'+inttostr(n)
else
if n<100000 then
str0:='C'+inttostr(yearof(yjcj.DateTimePicker1.DateTime))+inttostr(n)
else
begin
messagebox(yjcj.handle,'本年度調撥單數量超過程序設計值,不能繼續調撥。','營房工作管理系統',16);
close;
end;
end;
end;
result:=str0;
end;
procedure Tyjcj.SpeedButton1Click(Sender: TObject);
var
bh,cjdbh:string;
i:integer;
begin
if not yfgldata.kcyj.Locate('選擇',true,[loCaseInsensitive]) then
messagebox(yjcj.handle,'沒有營具可以出借或者您沒有選擇營具。','營房工作管理系統',16)
else
if yjcj.Edit1.Text<>'' then
begin
if yjcj.Edit2.Text<>'' then
begin
cjdbh:=yjcj.getcjdbh;
yfgldata.kcyj.Edit;
yfgldata.kcyj.Post;
yfgldata.cjd.Append;
yfgldata.cjd.FieldByName('編號').AsString:=cjdbh;
yfgldata.cjd.FieldByName('借用人').AsString:=yjcj.Edit1.Text;
yfgldata.cjd.FieldByName('出借人').AsString:=yjcj.Edit2.Text;
yfgldata.cjd.FieldByName('借用日期').AsDateTime:=now;
yfgldata.cjd.FieldByName('備注').AsString:='';
yfgldata.cjd.Post;
yfgldata.kcyj.First;
for i:=1 to yfgldata.kcyj.RecordCount do
begin
if yfgldata.kcyj.FieldByName('選擇').AsBoolean then
begin
bh:=yfgldata.kcyj.FieldByName('編號').AsString;
yfgldata.grjyyj.Append;
yfgldata.grjyyj.FieldByName('編號').AsString:=bh;
yfgldata.grjyyj.FieldByName('營具名稱').AsString:=yfgldata.kcyj.FieldByName('營具名稱').AsString;
yfgldata.grjyyj.FieldByName('單位').AsString:=yfgldata.kcyj.FieldByName('單位').AsString;
yfgldata.grjyyj.FieldByName('單價').AsCurrency:=yfgldata.kcyj.FieldByName('單價').AsCurrency;
yfgldata.grjyyj.FieldByName('使用狀況').AsString:=yfgldata.kcyj.FieldByName('使用狀況').AsString;
yfgldata.grjyyj.FieldByName('借用日期').AsDateTime:=yjcj.DateTimePicker1.DateTime;
yfgldata.grjyyj.FieldByName('借用人').AsString:=yjcj.Edit1.Text;
yfgldata.grjyyj.FieldByName('選擇').AsBoolean:=false;
yfgldata.grjyyj.FieldByName('代碼').AsString:=yfgldata.kcyj.FieldByName('營具代碼').AsString;
yfgldata.grjyyj.Post;
yfgldata.grjyyj1.Filter:='代碼='''+yfgldata.kcyj.FieldByName('營具代碼').AsString+''' and 借用人='''+yjcj.Edit1.Text+'''';
yfgldata.grjyyj1.Filtered:=true;
if yfgldata.grjyyj1.RecordCount>0 then
begin
yfgldata.grjyyj1.FindFirst;
yfgldata.grjyyj1.Edit;
yfgldata.grjyyj1.FieldByName('數量').AsInteger:=yfgldata.grjyyj1.FieldByName('數量').AsInteger+1;
yfgldata.grjyyj1.FieldByName('合計金額').AsFloat:=yfgldata.grjyyj1.FieldByName('數量').AsFloat*yfgldata.grjyyj1.FieldByName('單價').AsFloat;
yfgldata.grjyyj1.Post;
end
else
begin
yfgldata.grjyyj1.Append;
yfgldata.grjyyj1.FieldByName('代碼').AsString:=yfgldata.kcyj.FieldByName('營具代碼').AsString;
yfgldata.grjyyj1.FieldByName('營具名稱').AsString:=yfgldata.kcyj.FieldByName('營具名稱').AsString;
yfgldata.grjyyj1.FieldByName('單位').AsString:=yfgldata.kcyj.FieldByName('單位').AsString;
yfgldata.grjyyj1.FieldByName('單價').AsCurrency:=yfgldata.kcyj.FieldByName('單價').AsCurrency;
yfgldata.grjyyj1.FieldByName('數量').AsInteger:=1;
yfgldata.grjyyj1.FieldByName('合計金額').AsFloat:=yfgldata.grjyyj1.FieldByName('單價').AsFloat*yfgldata.grjyyj1.FieldByName('數量').AsFloat;
yfgldata.grjyyj1.FieldByName('借用人').AsString:=yjcj.Edit1.Text;
yfgldata.grjyyj1.Post;
end;
yfgldata.grjyyj1.Filtered:=false;
yfgldata.yj.Locate('編號',bh,[loCaseInsensitive]);
yfgldata.yj.Edit;
yfgldata.yj.FieldByName('使用單位').AsString:=yjcj.Edit1.Text;
yfgldata.yj.Post;
yfgldata.kcyj1.Locate('代碼',yfgldata.kcyj.FieldByName('營具代碼').AsString,[loCaseInsensitive]);
yfgldata.kcyj1.Edit;
yfgldata.kcyj1.FieldByName('數量').AsInteger:=yfgldata.kcyj1.FieldByName('數量').AsInteger-1;
yfgldata.kcyj1.FieldByName('合計金額').AsFloat:=yfgldata.kcyj1.FieldByName('數量').AsFloat*yfgldata.kcyj1.FieldByName('單價').AsFloat;
yfgldata.kcyj1.Post;
if yfgldata.kcyj1.FieldByName('數量').AsInteger=0 then
yfgldata.kcyj1.Delete;
yfgldata.cjd1.Append;
yfgldata.cjd1.FieldByName('出借單編號').AsString:=cjdbh;
yfgldata.cjd1.FieldByName('營具編號').AsString:=yfgldata.kcyj.FieldByName('編號').AsString;
yfgldata.cjd1.FieldByName('營具代碼').AsString:=yfgldata.kcyj.FieldByName('營具代碼').AsString;
yfgldata.cjd1.FieldByName('營具名稱').AsString:=yfgldata.kcyj.FieldByName('營具名稱').AsString;
yfgldata.cjd1.FieldByName('單位').AsString:=yfgldata.kcyj.FieldByName('單位').AsString;
yfgldata.cjd1.FieldByName('單價').AsString:=yfgldata.kcyj.FieldByName('單價').AsString;
yfgldata.cjd1.FieldByName('使用狀況').AsString:=yfgldata.kcyj.FieldByName('使用狀況').AsString;
yfgldata.cjd1.Post;
yfgldata.cjd.Edit;
yfgldata.cjd.FieldByName('備注').AsString:=yfgldata.cjd.FieldByName('備注').AsString+yfgldata.kcyj.FieldByName('編號').AsString+' ';
yfgldata.cjd.Post;
yfgldata.kcyj.Delete;
end
else
yfgldata.kcyj.Next;
end;
yfgldata.kcyj.First;
end
else
messagebox(yjcj.handle,'請輸入借出人姓名。','營房工作管理系統',16);
end
else
messagebox(yjcj.handle,'請輸入借用人姓名。','營房工作管理系統',16);
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -