yjgz.pas

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

PAS
328
字号
unit yjgz;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, db,StdCtrls, dxdbtrel, Buttons, ComCtrls, Mask,
  DBCtrlsEh, DBCtrls, ImgList;

type
  Tyjyjgz = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edit2: TEdit;
    DBLookupComboBox1: TDBLookupComboBox;
    DBNumberEditEh1: TDBNumberEditEh;
    SpeedButton3: TSpeedButton;
    ComboBox1: TComboBox;
    DateTimePicker1: TDateTimePicker;
    Label5: TLabel;
    SpeedButton1: TSpeedButton;
    Edit1: TEdit;
    Label6: TLabel;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    Label7: TLabel;
    Label8: TLabel;
    dxLookupTreeView1: TdxLookupTreeView;
    Memo1: TMemo;
    Label9: TLabel;
    ImageList1: TImageList;
    procedure SpeedButton3Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure DBLookupComboBox1CloseUp(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure RadioButton3Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure dxLookupTreeView1CloseUp(Sender: TObject; Accept: Boolean);
  private
    { Private declarations }
    function getid:string;
  public
    { Public declarations }
  end;

var
  yjyjgz: Tyjyjgz;

implementation

uses datafrm;
{$R *.dfm}

procedure Tyjyjgz.SpeedButton3Click(Sender: TObject);
begin
close;
end;

procedure Tyjyjgz.FormShow(Sender: TObject);
var
present:tdatetime;
begin
present:=now;
yjyjgz.DateTimePicker1.Date:=present;
end;

procedure Tyjyjgz.DBLookupComboBox1CloseUp(Sender: TObject);
begin
if yjyjgz.DBLookupComboBox1.Text<>'' then
  begin
  yfgldata.yjzl.Locate('营具名称',yjyjgz.DBLookupComboBox1.Text,[loCaseInsensitive]);
  yjyjgz.Edit2.Text:=yfgldata.yjzl.FieldByName('营具代码').AsString;
  end;
end;

procedure Tyjyjgz.RadioButton1Click(Sender: TObject);
begin
yjyjgz.dxLookupTreeView1.Enabled:=not yjyjgz.RadioButton1.Checked;
yjyjgz.Edit1.ReadOnly:=yjyjgz.RadioButton1.Checked;
end;

procedure Tyjyjgz.RadioButton2Click(Sender: TObject);
begin
yjyjgz.dxLookupTreeView1.Enabled:=yjyjgz.RadioButton2.Checked;
yjyjgz.Edit1.ReadOnly:=yjyjgz.RadioButton2.Checked;
end;

procedure Tyjyjgz.RadioButton3Click(Sender: TObject);
begin
yjyjgz.dxLookupTreeView1.Enabled:=not yjyjgz.RadioButton3.Checked;
yjyjgz.Edit1.ReadOnly:=not yjyjgz.RadioButton3.Checked;
end;

function tyjyjgz.getid:string;
var
  n:integer;
  str,str0:string;
  find: boolean;
begin
  find:=false;
  n:=1;
  if yfgldata.yj.RecordCount>0 then
    while not find do
      begin
        if n<10 then
          str:=yjyjgz.Edit2.Text+'00000'+trim(inttostr(n))
        else
          if n<100 then
            str:=yjyjgz.Edit2.Text+'0000'+trim(inttostr(n))
          else
            if n<1000 then
              str:=yjyjgz.Edit2.Text+'000'+trim(inttostr(n))
            else
              if n<10000 then
                str:=yjyjgz.Edit2.Text+'00'+trim(inttostr(n))
              else
                if n<100000 then
                  str:=yjyjgz.Edit2.Text+'0'+trim(inttostr(n))
                else
                  if n<1000000 then
                    str:=yjyjgz.Edit2.Text+trim(inttostr(n))
                  else
                    begin
                    messagebox(yjyjgz.handle,'该类营具超过设定数量,不能继续添加。','营房工作管理系统',16);
                    close;
                    end;
        if not yfgldata.yj.Locate('编号',str,[loCaseInsensitive]) then
          begin
          str0:=str;
          find:=true;
          end;
        n:=n+1;
      end
  else
    str0:=yjyjgz.edit2.text+'000001';
  result:=str0;
end;

procedure Tyjyjgz.SpeedButton1Click(Sender: TObject);
var
  check:boolean;
  num:integer;
  id:string;
begin
  check:=false;
  if yjyjgz.RadioButton1.Checked then
    check:=(yjyjgz.DBLookupComboBox1.Text<>'') and (yjyjgz.ComboBox1.Text<>'') and (yjyjgz.Edit2.Text<>'');
  if yjyjgz.RadioButton2.Checked then
    check:=(yjyjgz.DBLookupComboBox1.Text<>'') and (yjyjgz.ComboBox1.Text<>'') and (yjyjgz.dxLookupTreeView1.Text<>'') and (yjyjgz.Edit1.Text<>'') and (yjyjgz.Edit2.Text<>'');
  if yjyjgz.RadioButton3.Checked then
    check:=(yjyjgz.DBLookupComboBox1.Text<>'') and (yjyjgz.ComboBox1.Text<>'') and (yjyjgz.Edit1.Text<>'') and (yjyjgz.Edit2.Text<>'');
  if not check then
    messagebox(yjyjgz.handle,'营具信息输入不全。','营房工作管理系统',16)
  else
    begin
    yjyjgz.Memo1.Clear;
    for num:=1 to yjyjgz.DBNumberEditEh1.Value do
      begin
        id:=yjyjgz.getid;
        yfgldata.yj.Append;
        yfgldata.yj.FieldByName('编号').AsString:=id;
        yfgldata.yj.FieldByName('营具名称').AsString:=yjyjgz.DBLookupComboBox1.Text;
        yfgldata.yj.FieldByName('单位').AsString:=yfgldata.yjzl.Lookup('营具代码',yjyjgz.Edit2.Text,'单位');
        yfgldata.yj.FieldByName('单价').AsFloat:=yfgldata.yjzl.Lookup('营具代码',yjyjgz.Edit2.Text,'单价');
        if yjyjgz.RadioButton1.Checked then yfgldata.yj.FieldByName('使用单位').AsString:='库存';
        if yjyjgz.RadioButton2.Checked then yfgldata.yj.FieldByName('使用单位').AsString:=yjyjgz.dxLookupTreeView1.Text;
        if yjyjgz.RadioButton3.Checked then yfgldata.yj.FieldByName('使用单位').AsString:=yjyjgz.Edit1.Text;
        yfgldata.yj.FieldByName('使用状况').AsString:=yjyjgz.ComboBox1.Text;
        yfgldata.yj.FieldByName('营具代码').AsString:=yjyjgz.Edit2.Text;
        yfgldata.yj.FieldByName('选择').AsBoolean:=false;
        yfgldata.yj.Post;
        if yfgldata.yj1.Locate('代码',yjyjgz.Edit2.Text,[loCaseInsensitive]) then
          begin
            yfgldata.yj1.Edit;
            yfgldata.yj1.FieldByName('数量').AsInteger:=yfgldata.yj1.FieldByName('数量').AsInteger+1;
            yfgldata.yj1.FieldByName('合计金额').AsFloat:=yfgldata.yj1.FieldByName('数量').AsFloat*yfgldata.yj1.FieldByName('单价').AsFloat;
            yfgldata.yj1.Post;
          end
        else
          begin
            yfgldata.yj1.Append;
            yfgldata.yj1.FieldByName('代码').AsString:=yjyjgz.Edit2.Text;
            yfgldata.yj1.FieldByName('营具名称').AsString:=yjyjgz.DBLookupComboBox1.Text;
            yfgldata.yj1.FieldByName('单位').AsString:=yfgldata.yjzl.Lookup('营具代码',yjyjgz.Edit2.Text,'单位');
            yfgldata.yj1.FieldByName('单价').AsFloat:=yfgldata.yjzl.Lookup('营具代码',yjyjgz.Edit2.Text,'单价');
            yfgldata.yj1.FieldByName('数量').AsInteger:=1;
            yfgldata.yj1.FieldByName('合计金额').AsFloat:=yfgldata.yj1.FieldByName('单价').AsFloat*yfgldata.yj1.FieldByName('数量').AsFloat;
            yfgldata.yj1.Post;
          end;
        if yjyjgz.RadioButton1.Checked then
          begin
            yfgldata.kcyj.Append;
            yfgldata.kcyj.FieldByName('编号').AsString:=id;
            yfgldata.kcyj.FieldByName('营具名称').AsString:=yjyjgz.DBLookupComboBox1.Text;
            yfgldata.kcyj.FieldByName('单位').AsString:=yfgldata.yjzl.Lookup('营具代码',yjyjgz.Edit2.Text,'单位');
            yfgldata.kcyj.FieldByName('单价').AsFloat:=yfgldata.yjzl.Lookup('营具代码',yjyjgz.Edit2.Text,'单价');
            yfgldata.kcyj.FieldByName('使用状况').AsString:=yjyjgz.ComboBox1.Text;
            yfgldata.kcyj.FieldByName('选择').AsBoolean:=false;
            yfgldata.kcyj.FieldByName('营具代码').AsString:=yjyjgz.Edit2.Text;
            yfgldata.kcyj.Post;
            if yfgldata.kcyj1.Locate('代码',yjyjgz.Edit2.Text,[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:=yjyjgz.Edit2.Text;
                yfgldata.kcyj1.FieldByName('营具名称').AsString:=yjyjgz.DBLookupComboBox1.Text;
                yfgldata.kcyj1.FieldByName('单位').AsString:=yfgldata.yjzl.Lookup('营具代码',yjyjgz.Edit2.Text,'单位');
                yfgldata.kcyj1.FieldByName('单价').AsFloat:=yfgldata.yjzl.Lookup('营具代码',yjyjgz.Edit2.Text,'单价');
                yfgldata.kcyj1.FieldByName('数量').AsInteger:=1;
                yfgldata.kcyj1.FieldByName('合计金额').AsFloat:=yfgldata.kcyj1.FieldByName('单价').AsFloat*yfgldata.kcyj1.FieldByName('数量').AsFloat;
                yfgldata.kcyj1.Post;
              end;
          end;
        if yjyjgz.RadioButton2.Checked then
          begin
            yfgldata.dwyj.Append;
            yfgldata.dwyj.FieldByName('编号').AsString:=id;
            yfgldata.dwyj.FieldByName('营具名称').AsString:=yjyjgz.DBLookupComboBox1.Text;
            yfgldata.dwyj.FieldByName('单位').AsString:=yfgldata.yjzl.Lookup('营具代码',yjyjgz.Edit2.Text,'单位');
            yfgldata.dwyj.FieldByName('单价').AsFloat:=yfgldata.yjzl.Lookup('营具代码',yjyjgz.Edit2.Text,'单价');
            yfgldata.dwyj.FieldByName('使用状况').AsString:=yjyjgz.ComboBox1.Text;
            yfgldata.dwyj.FieldByName('选择').AsBoolean:=false;
            yfgldata.dwyj.FieldByName('代码').AsString:=yjyjgz.Edit2.Text;
            yfgldata.dwyj.FieldByName('使用单位').AsString:=yjyjgz.dxLookupTreeView1.Text;
            yfgldata.dwyj.FieldByName('责任人').AsString:=yjyjgz.Edit1.Text;
            yfgldata.dwyj.Post;
            yfgldata.dwyj1.Filter:='代码='''+yjyjgz.Edit2.Text+''' and 使用单位='''+yjyjgz.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:=yjyjgz.Edit2.Text;
                yfgldata.dwyj1.FieldByName('营具名称').AsString:=yjyjgz.DBLookupComboBox1.Text;
                yfgldata.dwyj1.FieldByName('单位').AsString:=yfgldata.yjzl.Lookup('营具代码',yjyjgz.Edit2.Text,'单位');
                yfgldata.dwyj1.FieldByName('单价').AsFloat:=yfgldata.yjzl.Lookup('营具代码',yjyjgz.Edit2.Text,'单价');
                yfgldata.dwyj1.FieldByName('数量').AsInteger:=1;
                yfgldata.dwyj1.FieldByName('合计金额').AsFloat:=yfgldata.dwyj1.FieldByName('单价').AsFloat*yfgldata.dwyj1.FieldByName('数量').AsFloat;
                yfgldata.dwyj1.FieldByName('使用单位').AsString:=yjyjgz.dxLookupTreeView1.Text;
                yfgldata.dwyj1.Post;
              end;
            yfgldata.dwyj1.Filtered:=false;
          end;
        if yjyjgz.RadioButton3.Checked then
          begin
            yfgldata.grjyyj.Append;
            yfgldata.grjyyj.FieldByName('编号').AsString:=id;
            yfgldata.grjyyj.FieldByName('营具名称').AsString:=yjyjgz.DBLookupComboBox1.Text;
            yfgldata.grjyyj.FieldByName('单位').AsString:=yfgldata.yjzl.Lookup('营具代码',yjyjgz.Edit2.Text,'单位');
            yfgldata.grjyyj.FieldByName('单价').AsFloat:=yfgldata.yjzl.Lookup('营具代码',yjyjgz.Edit2.Text,'单价');
            yfgldata.grjyyj.FieldByName('使用状况').AsString:=yjyjgz.ComboBox1.Text;
            yfgldata.grjyyj.FieldByName('选择').AsBoolean:=false;
            yfgldata.grjyyj.FieldByName('代码').AsString:=yjyjgz.Edit2.Text;
            yfgldata.grjyyj.FieldByName('借用日期').AsDateTime:=yjyjgz.DateTimePicker1.Date;
            yfgldata.grjyyj.FieldByName('借用人').AsString:=yjyjgz.Edit1.Text;
            yfgldata.grjyyj.Post;
            yfgldata.grjyyj1.Filter:='代码='''+yjyjgz.Edit2.Text+''' and 借用人='''+yjyjgz.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:=yjyjgz.Edit2.Text;
                yfgldata.grjyyj1.FieldByName('营具名称').AsString:=yjyjgz.DBLookupComboBox1.Text;
                yfgldata.grjyyj1.FieldByName('单位').AsString:=yfgldata.yjzl.Lookup('营具代码',yjyjgz.Edit2.Text,'单位');
                yfgldata.grjyyj1.FieldByName('单价').AsFloat:=yfgldata.yjzl.Lookup('营具代码',yjyjgz.Edit2.Text,'单价');
                yfgldata.grjyyj1.FieldByName('数量').AsInteger:=1;
                yfgldata.grjyyj1.FieldByName('合计金额').AsFloat:=yfgldata.grjyyj1.FieldByName('单价').AsFloat*yfgldata.grjyyj1.FieldByName('数量').AsFloat;
                yfgldata.grjyyj1.FieldByName('借用人').AsString:=yjyjgz.Edit1.Text;
                yfgldata.grjyyj1.Post;
              end;
            yfgldata.grjyyj1.Filtered:=false;
          end;
        yjyjgz.Memo1.Lines.Add(id);
      end;
      yjyjgz.DBLookupComboBox1.KeyValue:='';
      yjyjgz.ComboBox1.ItemIndex:=-1;
      yjyjgz.Edit2.Text:='';
      yjyjgz.DBNumberEditEh1.Value:=1;
      yjyjgz.RadioButton1.Checked:=true;
      yjyjgz.RadioButton2.Checked:=false;
      yjyjgz.RadioButton3.Checked:=false;
      yjyjgz.DateTimePicker1.DateTime:=now;
      yjyjgz.dxLookupTreeView1.Text:='';
      yjyjgz.Edit1.Text:='';
      yjyjgz.DBLookupComboBox1.SetFocus;
      messagebox(yjyjgz.handle,'营具记帐完毕,添加的营具编号见编号显示。','营房工作管理系统',64);
    end;
end;

procedure Tyjyjgz.dxLookupTreeView1CloseUp(Sender: TObject;
  Accept: Boolean);
begin
if yjyjgz.dxLookupTreeView1.Text<>'' then
  begin
  yfgldata.dw.Locate('单位代码',yjyjgz.dxLookupTreeView1.Text,[loCaseInsensitive]);
  yjyjgz.Edit1.Text:=yfgldata.dw.FieldByName('单位责任人').AsString;
  end;
end;

end.

⌨️ 快捷键说明

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