⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bxpzlr.pas

📁 服务信息管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  if bxpz_bjzt <> '' then
    SaveButton.Enabled := True;
end;

procedure Tfrmbxpzlr.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
  frmbxpzlr := nil;
end;

procedure Tfrmbxpzlr.bxryDBEditEhEditButtons0Click(Sender: TObject;
  var Handled: Boolean);
begin
  selecttext1 := '';
  selecttext2 := '';
  frmygzlxz := Tfrmygzlxz.Create(Self);
  with frmygzlxz do
    begin
      fwrycx_data := '';
      ShowModal;
    end;
  if selecttext1 <> '' then
    begin
      bxpztable.FieldByName('pz_rybh').AsString := selecttext1;
      bxryDBEditEh.Text := selecttext2;
    end
  else
    begin
      //bxryDBEditEh.SetFocus;
    end;
end;

procedure Tfrmbxpzlr.FormShow(Sender: TObject);
begin
  SaveButton.Enabled := False;
  DBNavigator.OnClick(Sender, nbLast);
end;

procedure Tfrmbxpzlr.FormCreate(Sender: TObject);
begin
  bxpz_bjzt := '';
  if bxpztable.Active = False then bxpztable.Active := True;
  bxpztable.Last;
end;

procedure Tfrmbxpzlr.DBNavigatorBeforeAction(Sender: TObject;
  Button: TNavigateBtn);
var
  lsbl_save: Boolean;
begin
  if SaveButton.Enabled = True then
    begin
      BUMessageBox.Text := '数据已修改,是否保存修改';
      BUMessageBox.style := bsYesNo;
      BUMessageBox.Display := bdIconQuestion;
      if BUMessageBox.Execute = brYes then
        begin
          lsbl_save := dataverify('111');
          if lsbl_save = True then
            begin
              lsbl_save := datasave();
              if lsbl_save = True then
                begin
                  ygdatable.CancelUpdates;
                  bmmltable.CancelUpdates;
                  SaveButton.Enabled := False;
                  bxpz_bjzt := '';
                  Editenabled(False);
                end;
            end;
        end
      else
        begin
          bxpztable.CancelUpdates;
          bxpzmxtable.CancelUpdates;
        end;
    end;
  bxpz_bjzt := '';
end;

procedure Tfrmbxpzlr.BxbmDBEditEhExit(Sender: TObject);
var
  lsbl_bxbmcxdata, lsbl_bxbm: string;
begin
  if bxpz_bjzt <> '' then
    begin
      lsbl_bxbm := Trim(bxbmDBEditEh.Text);
      if lsbl_bxbm <> '' then
        begin
          case Getbmfunction(lsbl_bxbm) of
            0: lsbl_bxbmcxdata := '';
            1:
              begin
                bxpztable.FieldByName('pz_bmbh').AsString := selecttext1;
                Exit;
              end;
            2: lsbl_bxbmcxdata := lsbl_bxbm;
          end;
          selecttext1 := '';
          selecttext2 := '';
          frmbmmlcx := Tfrmbmmlcx.Create(Self);
          with frmbmmlcx do
            begin
              bmmlcx_data := lsbl_bxbmcxdata;
              ShowModal;
            end;
          if selecttext1 <> '' then
            begin
              bxpztable.FieldByName('pz_bmbh').AsString := selecttext1;
            end
          else
            begin
              bxbmDBEditEh.SetFocus;
              Exit;
            end;
        end
      else
        begin
          BUMessageBox.Text := '【报销部门】不能为空,请选择【报销部门】';
          BUMessageBox.style := bsOk;
          BUMessageBox.Display := bdIconWarning;
          BUMessageBox.Execute;
          bxbmDBEditEh.SetFocus;
          Exit;
        end;
    end;
end;

function Tfrmbxpzlr.dataverify(Verify_lx: string): Boolean; //数据校验函数
begin
  if (copy(Verify_lx, 1, 1) = '1') then
    begin
      if BxbmDBEditEh.Text = '' then
        begin
          BUMessageBox.Text := '【报销部门】不能为空,请选择【报销部门】';
          BUMessageBox.style := bsOk;
          BUMessageBox.Display := bdIconWarning;
          BUMessageBox.Execute;
          bxbmDBEditEh.SetFocus;
          Result := False;
          Exit;
        end;
      selecttext1 := Trim(bxbmDBEditEh.Text); //将部门名称赋值全局临时变量selecttext1
      with cxQuery do //下面进行部门名称的查询,如果没有找到则不能进行数据保存
        begin
          SQL.clear;
          SQL.Add('select Count(*) as cxbmsl from bmmlk where Trim(bm_mc)=:lsbl_bmmc');
          ParamByName('lsbl_bmmc').AsString := selecttext1;
          Prepare;
          open;
          if FieldByName('cxbmsl').AsInteger = 0 then
            begin
              Close;
              BUMessageBox.Text := '没有找到报销部门【' + selecttext1 + '】,请重新选择';
              BUMessageBox.style := bsOk;
              BUMessageBox.Display := bdIconWarning;
              BUMessageBox.Execute;
              bxbmDBEditEh.SetFocus;
              Result := False;
              Exit;
            end;
          Close;
        end;
    end;
  if (copy(Verify_lx, 2, 1) = '1') then
    begin
      if BxryDBEditEh.Text = '' then
        begin
          BUMessageBox.Text := '【报销人员】不能为空,请选择【报销人员】';
          BUMessageBox.style := bsOk;
          BUMessageBox.Display := bdIconWarning;
          BUMessageBox.Execute;
          bxryDBEditEh.SetFocus;
          Result := False;
          Exit;
        end;
      selecttext1 := Trim(bxryDBEditEh.Text); //将报销人员姓名赋值全局临时变量selecttext1
      with cxQuery do //下面进行报销人员姓名的查询,如果没有找到则不能进行数据保存
        begin
          SQL.clear;
          SQL.Add('select Count(*) as cxrysl from ygdasjk where Trim(yg_xm)=:lsbl_ryxm');
          ParamByName('lsbl_ryxm').AsString := selecttext1;
          Prepare;
          open;
          if FieldByName('cxrysl').AsInteger = 0 then
            begin
              Close;
              BUMessageBox.Text := '没有找到报销人员【' + selecttext1 + '】,请重新选择';
              BUMessageBox.style := bsOk;
              BUMessageBox.Display := bdIconWarning;
              BUMessageBox.Execute;
              bxryDBEditEh.SetFocus;
              Result := False;
              Exit;
            end;
          Close;
        end;
    end;
  if (copy(Verify_lx, 3, 1) = '1') then
    begin
      if BxrqDBEditEh.Text = '' then
        begin
          BUMessageBox.Text := '【报销日期】不能为空,请重新输入';
          BUMessageBox.style := bsOk;
          BUMessageBox.Display := bdIconWarning;
          BUMessageBox.Execute;
          bxrqDBEditEh.SetFocus;
          Result := False;
          Exit;
        end;
    end;
  Result := True;
end;

function Tfrmbxpzlr.datasave: Boolean; //数据保存函数
var
  lsbl_pzbh: string;
  lsbl_jlbh: Integer;
begin
  try
    if bxpz_bjzt = 'New' then
      begin
        lsbl_pzbh := Getmaxbxpzdh();
        bxpztable.FieldByName('pz_bh').AsString := lsbl_pzbh;
      end
    else
      lsbl_pzbh := bxpztable.FieldByName('pz_bh').AsString;
    bxpztable.Post;
    bxpztable.ApplyUpdates;
    bxpztable.CommitUpdates;
    lsbl_jlbh := 0;
    with bxpzmxtable do
      begin
        First;
        while not eof do
          begin
            Edit;
            lsbl_jlbh := lsbl_jlbh + 1;
            FieldByName('pz_bh').AsString := lsbl_pzbh;
            FieldByName('pz_jlbh').AsInteger := lsbl_jlbh;
            First;
          end;
      end;
    bxpzmxtable.ApplyUpdates;
    bxpzmxtable.CommitUpdates;
    Result := True;
  except
    BUMessageBox.Text := '数据保存失败';
    BUMessageBox.style := bsOk;
    BUMessageBox.Display := bdIconError;
    BUMessageBox.Execute;
    Result := False;
  end;
end;

function Tfrmbxpzlr.Getmaxbxpzdh: string; //凭证单编号生成器;
var
  lsbl_pzbh: string;
  lsbl_bhcd: Integer;
begin
  with cxQuery do
    begin
      SQL.Clear;
      SQL.Add('select max(pz_bh) as maxpzbh from bxpzsjk');
      Prepare;
      open;
      lsbl_pzbh := FieldByName('maxpzbh').AsString;
      if lsbl_pzbh <> '' then
        begin
          lsbl_bhcd := Length(lsbl_pzbh);
          lsbl_pzbh := Inttostr(strtoint(lsbl_pzbh) + 1);
          lsbl_pzbh := copy('0000000000', 1, lsbl_bhcd - length(lsbl_pzbh)) + lsbl_pzbh;
        end
      else
        begin
          lsbl_pzbh := '00000001';
        end;
      Close;
    end;
  Result := lsbl_pzbh;
end;

function Tfrmbxpzlr.DataSummary(Summarylx: string): string; //合计统计函数
var
  sbookmark: TBookMark;
  summarycount: Integer;
  summaryje: Currency;
begin
  if Summarylx = 'Count' then
    begin
      summarycount := 0;
      with bxpzmxtable do
        begin
          sbookmark := GetBookMark;
          disablecontrols;
          First;
          while not eof do
            begin
              summarycount := summarycount + 1;
              Next;
            end;
          gotobookmark(sbookmark);
          freebookmark(sbookmark);
          enablecontrols;
          Result := inttostr(summarycount);
        end;
    end
  else
    begin
      summaryje := 0.00;
      with bxpzmxtable do
        begin
          sbookmark := GetBookmark;
          disablecontrols;
          First;
          while not eof do
            begin
              summaryje := summaryje + FieldByName('pz_bxje').AsCurrency;
              Next;
            end;
          gotobookmark(sbookmark);
          freebookmark(sbookmark);
          enablecontrols;
          Result := FormatFloat('0.00', summaryje);
        end;
    end;
end;

end.

⌨️ 快捷键说明

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