yjghfrm.pas

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

PAS
171
字号
unit yjghfrm;

interface

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

type
  Tyjgh = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    DBGridEh1: TDBGridEh;
    Label1: TLabel;
    GroupBox1: TGroupBox;
    Label2: TLabel;
    Edit1: TEdit;
    Label3: TLabel;
    Edit2: TEdit;
    Label4: TLabel;
    Edit3: TEdit;
    DateTimePicker1: TDateTimePicker;
    Label6: TLabel;
    DateTimePicker2: TDateTimePicker;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    CheckBox1: TCheckBox;
    SpeedButton4: TSpeedButton;
    procedure SpeedButton3Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  yjgh: Tyjgh;

implementation

uses datafrm;
{$R *.dfm}

procedure Tyjgh.SpeedButton3Click(Sender: TObject);
begin
yfgldata.grjyyj.Filtered:=false;
close;
end;

procedure Tyjgh.FormShow(Sender: TObject);
var
  i:integer;
begin
yjgh.DateTimePicker1.DateTime:=now;
yjgh.DateTimePicker2.DateTime:=now;
yfgldata.grjyyj.First;
for i:=1 to yfgldata.grjyyj.RecordCount do
  begin
    yfgldata.grjyyj.Edit;
    yfgldata.grjyyj.FieldByName('选择').AsBoolean:=false;
    yfgldata.grjyyj.Post;
    yfgldata.grjyyj.Next;
  end;
yfgldata.grjyyj.First;
end;

procedure Tyjgh.SpeedButton1Click(Sender: TObject);
begin
yfgldata.grjyyj.Filter:='';
if yjgh.Edit1.Text<>'' then
  yfgldata.grjyyj.Filter:=yfgldata.grjyyj.Filter+'编号='''+yjgh.Edit1.Text+'''';
if yjgh.Edit2.Text<>'' then
  if yfgldata.grjyyj.Filter<>'' then
    yfgldata.grjyyj.Filter:=yfgldata.grjyyj.Filter+' and 营具名称='''+yjgh.Edit2.Text+''''
  else
    yfgldata.grjyyj.Filter:=yfgldata.grjyyj.Filter+'营具名称='''+yjgh.Edit2.Text+'''';
if yjgh.Edit3.Text<>'' then
  if yfgldata.grjyyj.Filter<>'' then
    yfgldata.grjyyj.Filter:=yfgldata.grjyyj.Filter+' and 借用人='''+yjgh.Edit3.Text+''''
  else
    yfgldata.grjyyj.Filter:=yfgldata.grjyyj.Filter+'借用人='''+yjgh.Edit3.Text+'''';
if yjgh.CheckBox1.Checked then
  if yfgldata.grjyyj.Filter<>'' then
    yfgldata.grjyyj.Filter:=yfgldata.grjyyj.Filter+' and 借用日期>='''+DateToStr(yjgh.DateTimePicker1.DateTime)+''' and 借用日期<='''+DateToStr(yjgh.DateTimePicker2.DateTime)+''''
  else
    yfgldata.grjyyj.Filter:=yfgldata.grjyyj.Filter+'借用日期>='''+DateToStr(yjgh.DateTimePicker1.DateTime)+''' and 借用日期<='''+DateToStr(yjgh.DateTimePicker2.DateTime)+'''';
yfgldata.grjyyj.Filtered:=true;
end;

procedure Tyjgh.SpeedButton2Click(Sender: TObject);
begin
yjgh.Edit1.Text:='';
yjgh.Edit2.Text:='';
yjgh.Edit3.Text:='';
yjgh.CheckBox1.Checked:=false;
yfgldata.grjyyj.Filtered:=false;
end;

procedure Tyjgh.SpeedButton4Click(Sender: TObject);
var
  i:integer;
begin
if not yfgldata.grjyyj.Locate('选择',true,[loCaseInsensitive]) then
  messagebox(yjgh.handle,'没有营具可以归还或者您没有选择营具。','营房工作管理系统',16)
else
  begin
    yfgldata.grjyyj.Edit;
    yfgldata.grjyyj.Post;
    yfgldata.grjyyj.First;
    for i:=1 to yfgldata.grjyyj.RecordCount do
      begin
        if yfgldata.grjyyj.FieldByName('选择').AsBoolean then
          begin
            yfgldata.kcyj.Append;
            yfgldata.kcyj.FieldByName('编号').AsString:=yfgldata.grjyyj.FieldByName('编号').AsString;
            yfgldata.kcyj.FieldByName('营具名称').AsString:=yfgldata.grjyyj.FieldByName('营具名称').AsString;
            yfgldata.kcyj.FieldByName('单位').AsString:=yfgldata.grjyyj.FieldByName('单位').AsString;
            yfgldata.kcyj.FieldByName('单价').AsCurrency:=yfgldata.grjyyj.FieldByName('单价').AsCurrency;
            yfgldata.kcyj.FieldByName('使用状况').AsString:=yfgldata.grjyyj.FieldByName('使用状况').AsString;
            yfgldata.kcyj.FieldByName('营具代码').AsString:=yfgldata.grjyyj.FieldByName('代码').AsString;
            yfgldata.kcyj.FieldByName('选择').AsBoolean:=false;
            yfgldata.kcyj.Post;
            if yfgldata.kcyj1.Locate('代码',yfgldata.grjyyj.FieldByName('代码').AsString,[loCaseInsensitive]) then
              begin
                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;
              end
            else
              begin
                yfgldata.kcyj1.Append;
                yfgldata.kcyj1.FieldByName('代码').AsString:=yfgldata.grjyyj.FieldByName('代码').AsString;
                yfgldata.kcyj1.FieldByName('营具名称').AsString:=yfgldata.grjyyj.FieldByName('营具名称').AsString;
                yfgldata.kcyj1.FieldByName('单位').AsString:=yfgldata.grjyyj.FieldByName('单位').AsString;
                yfgldata.kcyj1.FieldByName('单价').AsFloat:=yfgldata.grjyyj.FieldByName('单价').AsCurrency;
                yfgldata.kcyj1.FieldByName('数量').AsInteger:=1;
                yfgldata.kcyj1.FieldByName('合计金额').AsFloat:=yfgldata.kcyj1.FieldByName('单价').AsFloat*yfgldata.kcyj1.FieldByName('数量').AsFloat;
                yfgldata.kcyj1.Post;
              end;
            yfgldata.yj.Locate('编号',yfgldata.grjyyj.FieldByName('编号').AsString,[loCaseInsensitive]);
            yfgldata.yj.Edit;
            yfgldata.yj.FieldByName('使用单位').AsString:='库存';
            yfgldata.yj.Post;
            yfgldata.grjyyj1.Filter:='代码='''+yfgldata.grjyyj.FieldByName('代码').AsString+''' and 借用人='''+yfgldata.grjyyj.FieldByName('借用人').AsString+'''';
            yfgldata.grjyyj1.Filtered:=true;
            if yfgldata.grjyyj1.RecordCount>0 then
              begin
                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;
                if yfgldata.grjyyj1.FieldByName('数量').AsInteger=0 then
                  yfgldata.grjyyj1.Delete;
              end;
            yfgldata.grjyyj1.Filtered:=false;
            yfgldata.grjyyj.Delete;
          end
        else
          yfgldata.grjyyj.Next;
      end;
  end;
end;

end.

⌨️ 快捷键说明

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