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

📄 borrow.pas

📁 服装厂管理系统源程序压缩包, 请耐心阅读提供的文件包含的内容
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  ExtBtn.Cancel:=true;
  BitBtn1.cancel:=false;
end;

procedure TForm_Borrow.BitBtn1Click(Sender: TObject);
begin
    panel5.Visible:=false;
    panel5.Enabled:=false;
    ExtBtn.Cancel:=true;
    BitBtn1.cancel:=false;
end;

procedure TForm_Borrow.Button1Click(Sender: TObject);
var i:integer;tmpstr:string;
begin
  tmpstr:=trim(edit4.Text);
  if tmpstr='' then exit;
  ClearSpaceBar(tmpstr);
  edit4.Text:=tmpstr;
  for i:=0 to ListBox2.Items.Count-1 do
  if ListBox2.Items[i]=tmpstr then
  begin
    MsgErr(handle,'事由['+trim(tmpstr)+']已存在,不能重复!');
    exit;
  end;
  ListBox2.Items.Add(tmpstr);
  ListBox2.Items.SaveToFile(apppath+'\borrow.txt');
  ListBox1.Items.LoadFromFile(apppath+'\borrow.txt')
end;

procedure TForm_Borrow.FormShow(Sender: TObject);
begin
  ListBox1.Items.LoadFromFile(apppath+'\borrow.txt');
  ListBox2.Items.LoadFromFile(apppath+'\borrow.txt');
  //添加在职人员信息
  if not ADOQemployee.Active then ADOQemployee.Open;
  if ADOQemployee.recordcount =0 then
  begin
    MsgErr(handle,'无人员信息!');
    exit;
  end;
  DBComboBox_Empid.Clear;
  ADOQemployee.First;
  while not ADOQemployee.eof do
  begin
    DBComboBox_Empid.Items.add(inttostr(ADOQemployee.FieldValues['empid']));
    ADOQemployee.next;
  end;

  //添加所有人员信息,包括非在职人员
  with adoqemployee do
  begin
    close; sql.Clear;
    sql.Add('select empid, empname, sex, state from employee');
    try
      execsql; open;
    except
      MsgErr(handle,'得到人员信息失败!'); exit;
    end;
  end;

  //添加操作员信息
  if not ADOQoper.Active then ADOQoper.Open;
  if ADOQoper.recordcount =0 then
  begin
    MsgErr(handle,'无操作员信息!');
    exit;
  end;
  adoqoper.First;
  ComBox_opeid.Clear;
  ComBox_opeid.Items.Add(' ');
  while not ADOQoper.eof do
  begin
    ComBox_opeid.Items.add(ADOQoper.FieldValues['opername']);
    ADOQoper.next;
  end;
end;

procedure TForm_Borrow.Button2Click(Sender: TObject);
begin
if ListBox2.Items.Count >0 then
begin
  ListBox2.Items.Delete(ListBox2.ItemIndex);
  ListBox2.Items.SaveToFile(apppath+'\borrow.txt');
end;
end;

procedure TForm_Borrow.ListBox1DblClick(Sender: TObject);
begin
  if listbox1.Items.Count=0 then exit;
  edtmemo.text:=listbox1.Items[listbox1.ItemIndex];
end;

procedure TForm_Borrow.DS_BorrowStateChange(Sender: TObject);
begin
  if (Sender as TDataSource).DataSet.State in [dsedit,dsinsert] then
  Begin
        AddBtn.Enabled :=False;
        EdtBtn.Enabled :=False;
        DelBtn.Enabled :=False;
        CancelBtn.Enabled :=True;
        Locatebtn.Enabled:=false;
        SaveBtn.Enabled:=true;
        ExtBtn.Enabled :=False;
  end;

  if (Sender as TDataSource).DataSet.State in [dsBrowse] then
  Begin
        AddBtn.Enabled :=True;
        EdtBtn.Enabled :=True;
        DelBtn.Enabled :=True;
        CancelBtn.Enabled :=False;
        Locatebtn.Enabled:=true;
        ExtBtn.Enabled :=True;
  end;
end;

procedure TForm_Borrow.ADOQ_BorrowAfterInsert(DataSet: TDataSet);
var tmp_id:integer;
begin
  if not get_oper_tmpid(curAdmin.user_id , tmp_id) then
  begin
    MsgErr(handle,'数据库操作失败,请重试!');
    abort; exit;
  end;
  adoq_borrow.FieldValues['tmp_id']:=tmp_id;
  adoq_borrow.FieldValues['empid']:=null;
  adoq_borrow.FieldValues['money']:=0.00;
  adoq_borrow.FieldValues['event']:=''; 
  adoq_borrow.FieldValues['flag']:='F';
end;

procedure TForm_Borrow.ADOQ_BorrowBeforePost(DataSet: TDataSet);
var tmpdatetime:Tdatetime;
begin
  if trim(edtempname.Text)='' then
  begin
    msgok(handle,'请选择待借支的员工信息!');
    dbcombobox_empid.SetFocus;
    abort;
    exit;
  end;

  if adoq_borrow.FieldValues['money']=0.00 then
  begin
        MsgErr(handle,'金额不能为零!');
        edtmoney.SetFocus;
        abort;
        exit;
  end;

  try 
    if strtofloat(trim(edtmoney.Text))<=0 then
    begin
      msgok(handle, '请输入正确的借支金额!');
      edtmoney.SetFocus;
      abort;
      exit;
    end;
  except
    msgerr(handle,'请输入正确的金额格式!');
    edtmoney.SetFocus;
    abort;
    exit;
  end;
  
  if trim(edtmemo.Text)='' then
  begin
    msgok(handle, '请输入员工借支金额的事由!');
    edtmemo.SetFocus;
    abort;
    exit;
  end;
  GetHostDateTime(datamod.ADOCon,tmpdatetime);
  adoq_borrow.FieldValues['rec_date']:=tmpdatetime;
end;

procedure TForm_Borrow.DBComboBox_EmpidKeyPress(Sender: TObject;
  var Key: Char);
var earning_1:real;
begin
  if not ( key in ['0'..'9',chr(8),chr(13)]) then abort;
  if key <> chr(13) then exit;
  edtempname.Clear; edtmoney.text:='0.00';
  edtmemo.clear; inedt.Clear; outedt.Clear; baledt.Clear;
  dbcombobox_empid.Text:=trim(dbcombobox_empid.Text);
  if not adoqemployee.Locate('empid',dbcombobox_empid.Text,[loCaseInsensitive]) then
  begin
    MsgErr(handle,'员工编码['+dbcombobox_empid.Text+']不存在!');
    dbcombobox_empid.SetFocus;
    exit;
  end;
  if adoqemployee.FieldValues['state']=0 then
  begin
    MsgErr(handle,'该员工已离职,无法执行借支!');
    exit;
  end;
  edtempname.text:=adoqemployee.FieldValues['empname'];
  edtoperator.text:=curAdmin.user_name;
  edtsex.Text:=adoqemployee.FieldValues['sex'];
  //初始化人员的总收入、总支出、结余
  inedt.Text:='0.00';
  outedt.Text:='0.00';
  baledt.Text:='0.00';
  //计算当前人员收支情况(主收入+附加收入)
  earning_1:=calbal();
  if earning_1<=0 then
  begin
    Msgerr(handle,'当前人员账面上没有结余,不能借支!');
    edtempname.clear;
    //初始化人员的总收入、总支出、结余
{    inedt.Text:='0.00';
    outedt.Text:='0.00';
    baledt.Text:='0.00';
    edtmoney.Text:='0.00';     }
    DBComboBox_Empid.SetFocus; exit;
  end;
  edtmoney.SetFocus;
end;

procedure TForm_Borrow.SaveBtnClick(Sender: TObject);
var tmpstate:integer;
info:string;
begin
  if trim(edtempname.Text)='' then
  begin
      MsgErr(handle,'支款人信息不能为空,请在员工编号文本框内输入员工编号,再按回车键!');
      DBComboBox_Empid.SetFocus;
      exit;
  end;
  if not adoq_borrow.Active then
  begin
    adoq_borrow.Open;
    adoq_borrow.Append;
    if not CancelBtn.Enabled then CancelBtn.Enabled:=true;
  end;
  if adoq_borrow.State in [dsBrowse] then
  begin
    adoq_borrow.Append;
    if not CancelBtn.Enabled then CancelBtn.Enabled:=true;
  end;
  
  with adoq_borrow do
  begin
    if adoq_borrow.State in [dsinsert,dsedit] then
    begin
      FieldValues['empid']:=trim(DBComboBox_Empid.Text);
      if not ToMoney(edtmoney.Text,info) then
      begin
        MsgErr(handle,'金额格式不对[0.00]!');
        edtmoney.SetFocus; abort; exit;
      end;
      if strtofloat(edtmoney.Text)<=0 then
      begin
        msgok(handle,'请输入正确的支出金额!');
        edtmoney.SetFocus;
        exit;
      end;
      try
        FieldValues['money']:=strtofloat(edtmoney.Text);
      except
        MsgErr(handle,'金额格式不对!');
        edtmoney.SetFocus;
        exit;
      end;
      FieldValues['event']:=trim(edtmemo.Text);
    end;
  end;
  if adoq_borrow.State in [dsedit] then
  begin
    if calbal()+edit_money<adoq_borrow.FieldValues['money'] then
    begin
      msgerr(handle,'当前员工的借支金额超过本人的收入结余,无法进行数据入库!');
      exit;
    end;
  end;
  if adoq_borrow.State in [dsinsert] then 
  if calbal()<adoq_borrow.FieldValues['money'] then
  begin
    msgerr(handle,'当前员工的借支金额超过本人的收入结余,无法进行数据入库!');
    exit;
  end;

  if adoq_borrow.State in [dsinsert] then
  tmpstate:=1
  else
  tmpstate:=0;
  try 
    adoq_borrow.Post;
    if tmpstate=1 then
    MsgOK(handle,'员工 ['+trim(edtempname.Text)+'] 支出记录增加成功!')
    else
    MsgOK(handle,'员工 ['+trim(edtempname.Text)+'] 支出记录修改成功!');
    DBComboBox_Empid.Enabled:=true; 
  except
    MsgErr(handle,'员工支出数据操作失败!');
    exit;
  end;
end;

procedure TForm_Borrow.DBComboBox_EmpidChange(Sender: TObject);
begin
  edtempname.clear;
  //初始化人员的总收入、总支出、结余
  inedt.Text:='0.00';
  outedt.Text:='0.00';
  baledt.Text:='0.00';
  edtmoney.Text:='0.00';
end;

procedure TForm_Borrow.edtmoneyKeyPress(Sender: TObject; var Key: Char);
begin
  if not ( key in ['0'..'9',chr(8),chr(13),'.']) then abort;
end;

procedure TForm_Borrow.PageControl1Changing(Sender: TObject;
  var AllowChange: Boolean);
begin
  if (adoq_borrow.State in [dsinsert,dsedit]) then
  begin
    AllowChange:=false;
    Msgok(handle,'数据库正处在操作状态,请先按 [取消] 按钮!');
  end;
end;

procedure TForm_Borrow.PrtBtnClick(Sender: TObject);
begin
  if not adoq_borrow.Active then exit;
  if ADOQ_Borrow.RecordCount<1 then exit;
  InitPage(RvProject1,RvSystem1,apppath+'\'+ReportName,apppath+'\'+ReportNdrName,0);
  SelectPage(RvProject1,'Report1',1);
  //传递参数
  AddParameter(RvProject1,'UserName',curAdmin.user_name);
  AddParameter(RvProject1,'companyname',sysconfig.COMPANYANME);
  //显示页
  PageShow(RvProject1);
end;

procedure TForm_Borrow.ADOQ_BorrowBeforeEdit(DataSet: TDataSet);
begin
  edit_money:=DataSet.FieldValues['money'];
end;

procedure TForm_Borrow.BitBtn3Click(Sender: TObject);
begin
  if not adoq_borrow.Active then exit;
  with ADOQoper do begin close; open; end;
  with ADOQemployee do begin close; open; end;
  with ADOQ_Borrow do
  begin
    try
      close;sql.Clear;
      sql.add('select * from brrow ');
      sql.add('order by empid,rec_date');
      execsql; open;
    except
      MsgErr(handle,'数据库刷新失败(ALL_Borrow)!');
      exit;
    end;
  end;
end;

procedure TForm_Borrow.Edit_EmpidKeyPress(Sender: TObject; var Key: Char);
begin
  if not ( key in ['0'..'9',chr(8),chr(13)]) then abort;
end;

procedure TForm_Borrow.ADOQ_BorrowAfterPost(DataSet: TDataSet);
var
  log_id:integer;
begin
  with dataset do
  begin
    log_id:=fieldvalues['log_id'];
    close; open;
  end;
  ADOQoper.Close; adoqoper.open;
  ADOQemployee.Close; ADOQemployee.open;
  dataset.Locate('log_id',log_id,[]);
end;

end.

⌨️ 快捷键说明

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