yjdbfrm.pas

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

PAS
198
字号
unit yjdbfrm;

interface

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

type
  Tyjdb = class(TForm)
    Panel2: TPanel;
    SpeedButton3: TSpeedButton;
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    DBGridEh1: TDBGridEh;
    dxLookupTreeView1: TdxLookupTreeView;
    dxLookupTreeView2: TdxLookupTreeView;
    SpeedButton1: TSpeedButton;
    Label3: TLabel;
    Edit1: TEdit;
    Label4: TLabel;
    Edit2: TEdit;
    Label5: TLabel;
    Label6: TLabel;
    Edit3: TEdit;
    Label7: TLabel;
    Edit4: TEdit;
    ImageList1: TImageList;
    procedure SpeedButton3Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure dxLookupTreeView2CloseUp(Sender: TObject; Accept: Boolean);
    procedure SpeedButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  yjdb: Tyjdb;

implementation

uses datafrm,yjsffrm;
{$R *.dfm}

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

procedure Tyjdb.FormShow(Sender: TObject);
var
n:integer;
Year, Month, Day: Word;
begin
decodedate(now,year,month,day);
yjdb.Edit3.Text:=inttostr(year)+'年'+inttostr(month)+'月'+inttostr(day)+'日';
yfgldata.dwyj.First;
for n:=1 to yfgldata.dwyj.RecordCount do
  begin
    yfgldata.dwyj.Edit;
    yfgldata.dwyj.FieldByName('选择').AsBoolean:=false;
    yfgldata.dwyj.Post;
    yfgldata.dwyj.Next;
  end;
yfgldata.dwyj.Filter:='使用单位=''    ''';
yfgldata.dwyj.Filtered:=true;
end;

procedure Tyjdb.dxLookupTreeView2CloseUp(Sender: TObject; Accept: Boolean);
var
 i:integer;
begin
if yjdb.dxLookupTreeView2.Text='' then
  yfgldata.dwyj.Filter:='使用单位=''    '''
else
  yfgldata.dwyj.Filter:='使用单位='''+yjdb.dxLookupTreeView2.Text+'''';
yfgldata.dwyj.Filtered:=true;
if yjdb.dxLookupTreeView2.Text<>'' then
  begin
  yfgldata.dw.Locate('单位代码',yjdb.dxLookupTreeView2.Text,[loCaseInsensitive]);
  yjdb.Edit1.Text:=yfgldata.dw.FieldByName('单位责任人').AsString;
  end;
yfgldata.dwyj.First;
for i:=1 to yfgldata.dwyj.RecordCount do
  begin
    yfgldata.dwyj.Edit;
    yfgldata.dwyj.FieldByName('选择').AsBoolean:=false;
    yfgldata.dwyj.Post;
    yfgldata.dwyj.FindNext;
  end;
yfgldata.dwyj.FindFirst;
end;

procedure Tyjdb.SpeedButton1Click(Sender: TObject);
var
  bh,dbdbh:string;
  i:integer;
begin
if yjdb.dxLookupTreeView2.Text='' then
  messagebox(yjdb.handle,'请首先选择调出单位代码。','营房工作管理系统',16)
else
  if not yfgldata.dwyj.Locate('选择',true,[loCaseInsensitive]) then
    messagebox(yjdb.handle,'您没有选择营具或没有营具可调拨。','营房工作管理系统',16)
  else
    if (yjdb.dxLookupTreeView1.Text='') or (yjdb.Edit1.Text='') or (yjdb.Edit2.Text='') or (yjdb.Edit3.Text='') or (yjdb.Edit4.Text='') then
      messagebox(yjdb.handle,'调入单位、批准人、交接人和接收人输入信息不全。','营房工作管理系统',16)
    else
      begin
        dbdbh:=yjsf.getbh;
        yfgldata.dwyj.Edit;
        yfgldata.dwyj.Post;
        yfgldata.dbd.Append;
        yfgldata.dbd.FieldByName('调拨单编号').AsString:=dbdbh;
        yfgldata.dbd.FieldByName('调出单位名称').AsString:=yfgldata.dw.Lookup('单位代码',yjdb.dxLookupTreeView2.Text,'单位名称');
        yfgldata.dbd.FieldByName('调入单位名称').AsString:=yfgldata.dw.Lookup('单位代码',yjdb.dxLookupTreeView1.Text,'单位名称');
        yfgldata.dbd.FieldByName('批准人').AsString:=yjdb.Edit4.Text;
        yfgldata.dbd.FieldByName('调出单位责任人').AsString:=yjdb.Edit1.Text;
        yfgldata.dbd.FieldByName('调入单位责任人').AsString:=yjdb.Edit2.Text;
        yfgldata.dbd.FieldByName('调拨日期').AsDateTime:=now;
        yfgldata.dbd.FieldByName('备注').AsString:='';
        yfgldata.dbd.Post;
        yfgldata.dwyj.FindFirst;
        for i:=1 to yfgldata.dwyj.RecordCount do
          begin
            if yfgldata.dwyj.FieldByName('选择').AsBoolean then
              begin
                bh:=yfgldata.dwyj.FieldByName('编号').AsString;
                yfgldata.yj.Locate('编号',bh,[loCaseInsensitive]);
                yfgldata.yj.Edit;
                yfgldata.yj.FieldByName('使用单位').AsString:=yjdb.dxLookupTreeView1.Text;
                yfgldata.yj.Post;
                yfgldata.dwyj1.Filter:='代码='''+yfgldata.dwyj.FieldByName('代码').AsString+''' and 使用单位='''+yjdb.dxLookupTreeView1.Text+'''';
                yfgldata.dwyj1.Filtered:=true;
                if yfgldata.dwyj1.RecordCount>0 then
                  begin
                    yfgldata.dwyj1.FindFirst;
                    yfgldata.dwyj1.Edit;
                    yfgldata.dwyj1.FieldByName('数量').AsInteger:=yfgldata.dwyj1.FieldByName('数量').AsInteger+1;
                    yfgldata.dwyj1.FieldByName('合计金额').AsFloat:=yfgldata.dwyj1.FieldByName('数量').AsFloat*yfgldata.dwyj1.FieldByName('单价').AsFloat;
                    yfgldata.dwyj1.Post;
                  end
                else
                  begin
                    yfgldata.dwyj1.Append;
                    yfgldata.dwyj1.FieldByName('代码').AsString:=yfgldata.dwyj.FieldByName('代码').AsString;
                    yfgldata.dwyj1.FieldByName('营具名称').AsString:=yfgldata.dwyj.FieldByName('营具名称').AsString;
                    yfgldata.dwyj1.FieldByName('单位').AsString:=yfgldata.dwyj.FieldByName('单位').AsString;
                    yfgldata.dwyj1.FieldByName('单价').AsCurrency:=yfgldata.dwyj.FieldByName('单价').AsCurrency;
                    yfgldata.dwyj1.FieldByName('数量').AsInteger:=1;
                    yfgldata.dwyj1.FieldByName('合计金额').AsFloat:=yfgldata.dwyj1.FieldByName('单价').AsFloat*yfgldata.dwyj1.FieldByName('数量').AsFloat;
                    yfgldata.dwyj1.FieldByName('使用单位').AsString:=yjdb.dxLookupTreeView1.Text;
                    yfgldata.dwyj1.Post;
                  end;
                yfgldata.dwyj1.Filter:='代码='''+yfgldata.dwyj.FieldByName('代码').AsString+''' and 使用单位='''+yjdb.dxLookupTreeView2.Text+'''';
                yfgldata.dwyj1.Filtered:=true;
                if yfgldata.dwyj1.RecordCount>0 then
                  begin
                    yfgldata.dwyj1.FindFirst;
                    yfgldata.dwyj1.Edit;
                    yfgldata.dwyj1.FieldByName('数量').AsInteger:=yfgldata.dwyj1.FieldByName('数量').AsInteger-1;
                    yfgldata.dwyj1.FieldByName('合计金额').AsFloat:=yfgldata.dwyj1.FieldByName('数量').AsFloat*yfgldata.dwyj1.FieldByName('单价').AsFloat;
                    yfgldata.dwyj1.Post;
                    if yfgldata.dwyj1.FieldByName('数量').AsInteger=0 then
                      yfgldata.dwyj1.Delete;
                  end;
                yfgldata.dwyj1.Filtered:=false;
                yfgldata.dbd1.Append;
                yfgldata.dbd1.FieldByName('调拨单编号').AsString:=dbdbh;
                yfgldata.dbd1.FieldByName('营具编号').AsString:=bh;
                yfgldata.dbd1.FieldByName('营具代码').AsString:=yfgldata.dwyj.FieldByName('代码').AsString;
                yfgldata.dbd1.FieldByName('营具名称').AsString:=yfgldata.dwyj.FieldByName('营具名称').AsString;
                yfgldata.dbd1.FieldByName('单位').AsString:=yfgldata.dwyj.FieldByName('单位').AsString;
                yfgldata.dbd1.FieldByName('单价').AsString:=yfgldata.dwyj.FieldByName('单价').AsString;
                yfgldata.dbd1.FieldByName('使用状况').AsString:=yfgldata.dwyj.FieldByName('使用状况').AsString;
                yfgldata.dbd1.Post;
                yfgldata.dbd.Edit;
                yfgldata.dbd.FieldByName('备注').AsString:=yfgldata.dbd.FieldByName('备注').AsString+yfgldata.dwyj.FieldByName('编号').AsString+'    ';
                yfgldata.dbd.Post;
                yfgldata.dwyj.Edit;
                yfgldata.dwyj.FieldByName('使用单位').AsString:=yjdb.dxLookupTreeView1.Text;
                yfgldata.dwyj.FieldByName('责任人').AsString:=yjdb.Edit2.Text;
                yfgldata.dwyj.Post;
                yfgldata.dwyj.FindNext;
              end
            else
              yfgldata.dwyj.FindNext;
          end;
        yfgldata.dwyj.FindFirst;
      end;
end;

end.

⌨️ 快捷键说明

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