yjcjfrm.pas

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

PAS
212
字号
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 + =
减小字号Ctrl + -
显示快捷键?