yjsffrm.pas

来自「本人编写的有关军队营房工作的管理系统」· PAS 代码 · 共 354 行 · 第 1/2 页

PAS
354
字号
              yfgldata.yj.Edit;
              yfgldata.yj.FieldByName('使用单位').AsString:=yjsf.dxLookupTreeView1.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.dbd1.Append;
              yfgldata.dbd1.FieldByName('调拨单编号').AsString:=dbdbh;
              yfgldata.dbd1.FieldByName('营具编号').AsString:=yfgldata.kcyj.FieldByName('编号').AsString;
              yfgldata.dbd1.FieldByName('营具代码').AsString:=yfgldata.kcyj.FieldByName('营具代码').AsString;
              yfgldata.dbd1.FieldByName('营具名称').AsString:=yfgldata.kcyj.FieldByName('营具名称').AsString;
              yfgldata.dbd1.FieldByName('单位').AsString:=yfgldata.kcyj.FieldByName('单位').AsString;
              yfgldata.dbd1.FieldByName('单价').AsString:=yfgldata.kcyj.FieldByName('单价').AsString;
              yfgldata.dbd1.FieldByName('使用状况').AsString:=yfgldata.kcyj.FieldByName('使用状况').AsString;
              yfgldata.dbd1.Post;
              yfgldata.dbd.Edit;
              yfgldata.dbd.FieldByName('备注').AsString:=yfgldata.dbd.FieldByName('备注').AsString+yfgldata.kcyj.FieldByName('编号').AsString+'    ';
              yfgldata.dbd.Post;
              yfgldata.kcyj.Delete;
            end
          else
            yfgldata.kcyj.Next;
          end;
        yfgldata.kcyj.First;
      end;
end;

function tyjsf.getbh:string;
var
  n:integer;
  str,str0:string;
  find:boolean;
begin
  find:=false;
  n:=1;
  str0:='D'+inttostr(yearof(now))+'00001';
  str:=str0;
  yfgldata.dbd.First;
  while not yfgldata.dbd.Eof do
    begin
      if yearof(yfgldata.dbd.FieldByName('调拨日期').AsDateTime)=yearof(now) then
        begin
          find:=true;
          if str<=yfgldata.dbd.FieldByName('调拨单编号').AsString then
            begin
              str:=yfgldata.dbd.FieldByName('调拨单编号').AsString;
            end;
        end;
      yfgldata.dbd.Next;
    end;
  if find then
    begin
      while str0<=str do
        begin
          n:=n+1;
          if n<10 then
            str0:='D'+inttostr(yearof(now))+'0000'+inttostr(n)
          else
            if n<100 then
              str0:='D'+inttostr(yearof(now))+'000'+inttostr(n)
            else
              if n<1000 then
                str0:='D'+inttostr(yearof(now))+'00'+inttostr(n)
              else
                if n<10000 then
                  str0:='D'+inttostr(yearof(now))+'0'+inttostr(n)
                else
                  if n<100000 then
                    str0:='D'+inttostr(yearof(now))+inttostr(n)
                  else
                    begin
                      messagebox(yjsf.handle,'本年度调拨单数量超过程序设计值,不能继续调拨。','营房工作管理系统',16);
                      close;
                    end;
        end;
    end;
  result:=str0;  
end;

procedure Tyjsf.SpeedButton2Click(Sender: TObject);
var
  bh,dbdbh:string;
  i:integer;
begin
if not yfgldata.dwyj.Locate('选择',true,[loCaseInsensitive]) then
  messagebox(yjsf.handle,'没有营具可以回收或者您没有选择营具。','营房工作管理系统',16)
else
  if not (yjsf.dxLookupTreeView1.Text<>'') then
    messagebox(yjsf.handle,'没有选择营具使用单位代码。','营房工作管理系统',16)
  else
    if (yjsf.Edit1.Text='') or (yjsf.Edit2.Text='') or (yjsf.Edit3.Text='') then
      messagebox(yjsf.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('单位代码',yjsf.dxLookupTreeView1.Text,'单位名称');
        yfgldata.dbd.FieldByName('调入单位名称').AsString:='营房仓库';
        yfgldata.dbd.FieldByName('批准人').AsString:=yjsf.Edit3.Text;
        yfgldata.dbd.FieldByName('调出单位责任人').AsString:=yjsf.Edit2.Text;
        yfgldata.dbd.FieldByName('调入单位责任人').AsString:=yjsf.Edit1.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.kcyj.Append;
                yfgldata.kcyj.FieldByName('编号').AsString:=yfgldata.dwyj.FieldByName('编号').AsString;
                yfgldata.kcyj.FieldByName('营具名称').AsString:=yfgldata.dwyj.FieldByName('营具名称').AsString;
                yfgldata.kcyj.FieldByName('单位').AsString:=yfgldata.dwyj.FieldByName('单位').AsString;
                yfgldata.kcyj.FieldByName('单价').AsCurrency:=yfgldata.dwyj.FieldByName('单价').AsCurrency;
                yfgldata.kcyj.FieldByName('使用状况').AsString:=yfgldata.dwyj.FieldByName('使用状况').AsString;
                yfgldata.kcyj.FieldByName('营具代码').AsString:=yfgldata.dwyj.FieldByName('代码').AsString;
                yfgldata.kcyj.FieldByName('选择').AsBoolean:=false;
                yfgldata.kcyj.Post;
                if yfgldata.kcyj1.Locate('代码',yfgldata.dwyj.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.dwyj.FieldByName('代码').AsString;
                    yfgldata.kcyj1.FieldByName('营具名称').AsString:=yfgldata.dwyj.FieldByName('营具名称').AsString;
                    yfgldata.kcyj1.FieldByName('单位').AsString:=yfgldata.dwyj.FieldByName('单位').AsString;
                    yfgldata.kcyj1.FieldByName('单价').AsFloat:=yfgldata.dwyj.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('编号',bh,[loCaseInsensitive]);
                yfgldata.yj.Edit;
                yfgldata.yj.FieldByName('使用单位').AsString:='库存';
                yfgldata.yj.Post;
                yfgldata.dwyj1.Locate('代码',yfgldata.dwyj.FieldByName('代码').AsString,[loCaseInsensitive]);
                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;
                yfgldata.dbd1.Append;
                yfgldata.dbd1.FieldByName('调拨单编号').AsString:=dbdbh;
                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.FieldByName('使用状况').AsString:=yfgldata.kcyj.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.Delete;
              end
            else
              yfgldata.dwyj.FindNext;
          end;
      end;
end;

end.

⌨️ 快捷键说明

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