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

📄 borrow.pas

📁 服装厂管理系统源程序压缩包, 请耐心阅读提供的文件包含的内容
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit Borrow;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, ExtCtrls, Grids, DBGrids, StdCtrls, Buttons, DBCtrls,
  Mask, ComCtrls, RpCon, RpConDS, RpBase, RpSystem, RpDefine, RpRave;

type
  TForm_Borrow = class(TForm)
    ADOQ_Borrow: TADOQuery;
    DS_Borrow: TDataSource;
    Panel1: TPanel;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    DBGrid1: TDBGrid;
    Label2: TLabel;
    Label3: TLabel;
    Label7: TLabel;
    Label9: TLabel;
    ADOQemployee: TADOQuery;
    Label6: TLabel;
    inedt: TEdit;
    Label8: TLabel;
    outedt: TEdit;
    Label10: TLabel;
    baledt: TEdit;
    Bevel2: TBevel;
    Label17: TLabel;
    ListBox1: TListBox;
    TabSheet3: TTabSheet;
    Button1: TButton;
    ListBox2: TListBox;
    Button2: TButton;
    Edit4: TEdit;
    ADOQoper: TADOQuery;
    ADOQopertmp_id: TAutoIncField;
    ADOQoperoperid: TStringField;
    ADOQoperopername: TStringField;
    ADOQoperpassword: TStringField;
    ADOQoperteam_id: TIntegerField;
    ADOQ_Borrowlog_id: TAutoIncField;
    ADOQ_Borrowempid: TIntegerField;
    ADOQ_Borrowrec_date: TDateTimeField;
    ADOQ_Borrowtmp_id: TIntegerField;
    ADOQ_Borrowopername: TStringField;
    ADOQ_Borrowempname: TStringField;
    ADOQ_Borrowflag: TStringField;
    adoq_temp: TADOQuery;
    Label5: TLabel;
    DBComboBox_Empid: TComboBox;
    Panel4: TPanel;
    Panel5: TPanel;
    Label22: TLabel;
    Label23: TLabel;
    Label25: TLabel;
    Bevel1: TBevel;
    Label28: TLabel;
    Label12: TLabel;
    Label15: TLabel;
    Label14: TLabel;
    OKBtn: TBitBtn;
    BitBtn1: TBitBtn;
    ComboBox1: TComboBox;
    Edit1: TEdit;
    ComboBox3: TComboBox;
    Edit2: TEdit;
    ComboBox2: TComboBox;
    GroupBox6: TGroupBox;
    Label31: TLabel;
    Label32: TLabel;
    Sdate: TDateTimePicker;
    Edate: TDateTimePicker;
    ComBox_opeid: TComboBox;
    Edit_event: TEdit;
    Edit_name: TEdit;
    Edit_Empid: TEdit;
    AddBtn: TBitBtn;
    EdtBtn: TBitBtn;
    DelBtn: TBitBtn;
    LocateBtn: TBitBtn;
    edtempname: TEdit;
    edtmoney: TEdit;
    edtmemo: TEdit;
    edtoperator: TEdit;
    Panel2: TPanel;
    ExtBtn: TBitBtn;
    SaveBtn: TBitBtn;
    CancelBtn: TBitBtn;
    RvProject1: TRvProject;
    RvSystem1: TRvSystem;
    Rv_ZCMX: TRvDataSetConnection;
    ADOQ_Borrowmoney: TBCDField;
    edtsex: TEdit;
    Label1: TLabel;
    Label19: TLabel;
    Label4: TLabel;
    Label11: TLabel;
    Label13: TLabel;
    BitBtn3: TBitBtn;
    PrtBtn: TBitBtn;
    ADOQ_Borrowtjflag: TBooleanField;
    ADOQ_Borrowevent: TStringField;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure AddBtnClick(Sender: TObject);
    procedure EdtBtnClick(Sender: TObject);
    procedure DelBtnClick(Sender: TObject);
    procedure CancelBtnClick(Sender: TObject);
    procedure LocateBtnClick(Sender: TObject);
    procedure OKBtnClick(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ListBox1DblClick(Sender: TObject);
    procedure DS_BorrowStateChange(Sender: TObject);
    procedure ADOQ_BorrowAfterInsert(DataSet: TDataSet);
    procedure ADOQ_BorrowBeforePost(DataSet: TDataSet);
    procedure DBComboBox_EmpidKeyPress(Sender: TObject; var Key: Char);
    procedure SaveBtnClick(Sender: TObject);
    procedure DBComboBox_EmpidChange(Sender: TObject);
    procedure edtmoneyKeyPress(Sender: TObject; var Key: Char);
    procedure PageControl1Changing(Sender: TObject;
      var AllowChange: Boolean);
    procedure PrtBtnClick(Sender: TObject);
    procedure ADOQ_BorrowBeforeEdit(DataSet: TDataSet);
    procedure BitBtn3Click(Sender: TObject);
    procedure Edit_EmpidKeyPress(Sender: TObject; var Key: Char);
    procedure ADOQ_BorrowAfterPost(DataSet: TDataSet);
  private
    { Private declarations }
    edit_money:real;
    function calbal():real;
  public
    { Public declarations }
  end;

var
  Form_Borrow: TForm_Borrow;

implementation
uses data, sharevar, sharefun;

{$R *.dfm}

function TForm_Borrow.calbal():real;
var earning_1,earning_2,earning_3:real;
begin
  result:=0;
  with adoq_temp do
  begin
    //工序主收入
    close;sql.clear;
    sql.add('select sum(a.seq_price*b.num) as totalsum from sequence_price a,outbom_log b');
    sql.Add(' where b.flag=1 and a.temp_key=b.temp_key and b.empid=:v_empid');
    parameters.ParamValues['v_empid']:=DBComboBox_Empid.Text;
    try
      execsql; open;
    except
      msgErr(handle,'计算员工工序收入失败!');
      exit;
    end;
    if fieldvalues['totalsum']=NULL then
      earning_1:=0
    else
      earning_1:=fieldvalues['totalsum'];

    //计算工资收入
    close;sql.clear;
    sql.add('select sum(money) as totalsum from emp_payout');
    sql.Add(' where empid=:v_empid');
    parameters.ParamValues['v_empid']:=DBComboBox_Empid.Text;
    try
      execsql; open;
    except
      msgErr(handle,'计算员工工资收入失败!');
      exit;
    end;
    if fieldvalues['totalsum']=NULL then
      earning_2:=0
    else
      earning_2:=fieldvalues['totalsum'];

    //员工附加收入
    close; sql.Clear;
    sql.Add('select sum(money) as totalsum from earn_ABS where empid=:V_empid');
    parameters.ParamValues['V_empid']:=DBComboBox_Empid.Text;
    try
      execsql; open;
    except
      msgErr(handle,'计算员工附加收入失败!');
      exit;
    end;
    if fieldvalues['totalsum']=NULL then
      earning_3:=0
    else
      earning_3:=fieldvalues['totalsum'];
  end;
  inedt.Text:='¥'+format('%.2f',[earning_1+earning_2+earning_3]);
  earning_1:=earning_1+earning_2+earning_3;
  
  //计算当前人员支出情况
  with adoq_temp do
  begin
    close;sql.clear;
    sql.add('select sum(money) as totalsum from brrow where empid=:v_empid');
    parameters.ParamValues['v_empid']:=DBComboBox_Empid.Text;
    try
      execsql; open;
    except
      msgErr(handle,'计算当前员工支出失败!');
      exit;
    end;
    if fieldvalues['totalsum']=NULL then
      earning_2:=0
    else
      earning_2:=fieldvalues['totalsum'];
  end;
  outedt.Text:='¥'+format('%.2f',[earning_2]);
  baledt.text:='¥'+format('%.2f',[earning_1-earning_2]);
  result:=earning_1-earning_2;
end;


procedure TForm_Borrow.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  if ADOQ_Borrow.Active then ADOQ_Borrow.Close;
  if ADOQoper.Active then ADOQoper.Close;
  if ADOQEmployee.Active then ADOQEmployee.Close;
  action:=cafree;
end;

procedure TForm_Borrow.AddBtnClick(Sender: TObject);
begin
  if not ADOQ_Borrow.Active then ADOQ_Borrow.Open;
  PageControl1.ActivePageIndex:=1;
  ADOQ_Borrow.Append;
  DBComboBox_Empid.Enabled:=true;
  DBComboBox_Empid.SetFocus;
end;

procedure TForm_Borrow.EdtBtnClick(Sender: TObject);
begin
  if not ADOQ_Borrow.Active then exit;
  if adoq_borrow.FieldValues['Flag']='T' then
  begin
    msgok(handle,'该条记录为系统自动生成致不可进行编辑!(以确保数据的安全性)');
    exit;
  end;
  if adoq_borrow.FieldValues['tjFlag'] then
  begin
    msgok(handle,'该条记录已统计入总账表,致不可进行编辑!(以确保数据的安全性)');
    exit;
  end;
  if adoqemployee.FieldValues['state']=0 then
  begin
    MsgErr(handle,'该员工已离职,致借支记录不能修改!');
    exit;
  end;
  if not adoqemployee.Locate('empid',ADOQ_Borrow.FieldValues['empid'],[]) then
  begin
    msgErr(handle,'借支记录修改失败!');
    exit;
  end;
  PageControl1.ActivePageIndex:=1;
  ADOQ_Borrow.Edit;
  DBComboBox_Empid.Text:=adoq_borrow.FieldValues['empid'];
  adoqemployee.Locate('empid',adoq_borrow.FieldValues['empid'],[]);
  edtempname.Text:=adoqemployee.FieldValues['empname'];
  edtmoney.Text:=adoq_borrow.FieldValues['money'];
  ADOQoper.Locate('tmp_id',adoq_borrow.FieldValues['tmp_id'],[]);
  edtoperator.Text:=ADOQoper.FieldValues['opername'];
  edtmemo.Text:=adoq_borrow.FieldValues['event'];
  calbal();
  DBComboBox_Empid.Enabled:=false;
  edtmoney.SetFocus;
end;

procedure TForm_Borrow.DelBtnClick(Sender: TObject);
var
temp_empid:integer;
temp_empname: string;
begin
  if not ADOQ_Borrow.Active then exit;
  with ADOQ_Borrow do
  begin
    if RecordCount<1 then exit;
    if State in [dsinsert,dsedit] then exit;
    if adoq_borrow.FieldValues['Flag']='T' then
    begin
      msgok(handle,'该条记录为系统自动生成致不可进行编辑!(以确保数据的安全性)');
      exit;
    end;
    if adoq_borrow.FieldValues['tjFlag'] then
    begin
      msgok(handle,'该条记录已统计入总账表,致不可进行编辑!(以确保数据的安全性)');
      exit;
    end;
    temp_empid:=adoq_borrow.fieldvalues['empid'];
    temp_empname:=adoq_borrow.fieldvalues['empname'];
    if MsgQst(handle,'确定删除编号为: ['+inttostr(temp_empid)+']  的员工 ['+temp_empname+'] 的此条支出记录吗?') =IDNO then  exit;
    try
      delete;
    except
      MsgErr(handle,'当前数据在相关连的表中用到,不能删除!');
      exit;
    end;
  end;
end;

procedure TForm_Borrow.CancelBtnClick(Sender: TObject);
begin
  if not ADOQ_Borrow.Active then exit;
  if not (adoq_borrow.State in [dsinsert, dsedit]) then exit;
  adoq_borrow.Cancel;
  DBComboBox_Empid.Enabled:=true;
end;

procedure TForm_Borrow.LocateBtnClick(Sender: TObject);
var
tmpdatetime:Tdatetime;
begin
  if adoq_borrow.State in [dsinsert, dsedit] then exit;
  PageControl1.ActivePageIndex:=0;  
  if not panel5.Visible then
  begin
    panel5.Enabled:=true;
    panel5.Visible:=true;    
    //得到入库日期
    GetHostDateTime(datamod.ADOCon,tmpdatetime);
    edate.DateTime:=tmpdatetime;
    ExtBtn.Cancel:=false;
    BitBtn1.cancel:=true;
  end;
end;

procedure TForm_Borrow.OKBtnClick(Sender: TObject);
var
empid, tmpnum, empname, event,
tmp_operid, strwhere: string;
begin
  empid:=trim(Edit_Empid.text);
  empname:=trim(edit_name.Text);
  event:=trim(Edit_event.text);
  tmp_operid:=trim(ComBox_opeid.text);

  tmpnum:=Getquery_char(ComboBox1.Text,trim(Edit1.Text),trim(ComboBox2.Text),ComboBox3.Text,trim(Edit2.Text),'money');

  //得到查询的条件语句
  begin
        strwhere:=' (rec_date between :TmpStart and :TmpEnd )';
        if empid<>'' then
        strwhere:=strwhere+' and (empid = '+''''+empid+''''+')';
        if empname<>'' then
        strwhere:=strwhere+' and (empid in (select empid from Employee where empname like '+''''+'%'+empname+'%'+''''+')'+')';
        if event<>'' then
        strwhere:=strwhere+' and (event like '+''''+'%'+event+'%'+''''+')';
        if tmp_operid<>'' then
        strwhere:=strwhere+' and (tmp_id in (select tmp_id from operator where opername='+''''+tmp_operid+''''+')'+')';
        strwhere:=strwhere + tmpnum;
  end;

  with adoq_borrow do
  begin
      try
         close;sql.Clear;
         sql.add('select * from brrow where');
         sql.add(strwhere);
         sql.add('order by empid,rec_date');
         parameters.ParamValues['TmpStart']:=strtodatetime(formatdatetime('yyyy-mm-dd',sdate.Date)+' 00:00:00');
         parameters.ParamValues['TmpEnd']:=strtodatetime(formatdatetime('yyyy-mm-dd',edate.Date)+' 23:59:59');
         execsql;
         open;
      except
         MsgErr(handle,'数据库检索失败(Borrow)!');
         exit;
      end;
      PrtBtn.Enabled:=recordcount>0;
  end;
  panel5.Visible:=false;
  panel5.Enabled:=false;

⌨️ 快捷键说明

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