📄 borrow.pas
字号:
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 + -