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

📄 earning.pas

📁 服装厂管理系统源程序压缩包, 请耐心阅读提供的文件包含的内容
💻 PAS
字号:
unit Earning;

interface

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

type
  TForm_Earning = class(TForm)
    Panel1: TPanel;
    Label2: TLabel;
    Label3: TLabel;
    Bevel1: TBevel;
    DBE_event: TDBEdit;
    DBE_money: TDBEdit;
    Panel2: TPanel;
    AddBtn: TBitBtn;
    EdtBtn: TBitBtn;
    DelBtn: TBitBtn;
    SaveBtn: TBitBtn;
    CancelBtn: TBitBtn;
    ExtBtn: TBitBtn;
    DBGrid1: TDBGrid;
    ADOQ_Earning: TADOQuery;
    ADOQ_Operator: TADOQuery;
    ADOQ_Operatortmp_id: TAutoIncField;
    ADOQ_Operatoroperid: TStringField;
    ADOQ_Operatoropername: TStringField;
    ADOQ_Operatorpassword: TStringField;
    ADOQ_Operatorteam_id: TIntegerField;
    DS_Earning: TDataSource;
    ADOQ_Earningearn_id: TAutoIncField;
    ADOQ_Earningmoney: TFloatField;
    ADOQ_Earningrec_date: TDateTimeField;
    ADOQ_Earningtmp_id: TIntegerField;
    ADOQ_Earningflag: TStringField;
    ADOQ_Earningopername: TStringField;
    LocateBtn: TBitBtn;
    Panel3: TPanel;
    Label1: TLabel;
    Label14: TLabel;
    OKBtn: TBitBtn;
    EndBtn: TBitBtn;
    GroupBox6: TGroupBox;
    Label31: TLabel;
    Label32: TLabel;
    Sdate: TDateTimePicker;
    Edate: TDateTimePicker;
    Label24: TLabel;
    Edit_event: TEdit;
    Label28: TLabel;
    ComBox_opeid: TComboBox;
    ADOQtmp: TADOQuery;
    PrtBtn: TBitBtn;
    Bevel3: TBevel;
    Bevel4: TBevel;
    Bevel5: TBevel;
    GroupBox1: TGroupBox;
    ComboBox1: TComboBox;
    Edit1: TEdit;
    ComboBox2: TComboBox;
    ComboBox3: TComboBox;
    Edit2: TEdit;
    Bevel2: TBevel;
    ADOQ_Earningtjflag: TBooleanField;
    ADOQ_Earningevent: TStringField;
    RvProject1: TRvProject;
    RvSystem1: TRvSystem;
    Rv_Etp_Earning: TRvDataSetConnection;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure AddBtnClick(Sender: TObject);
    procedure EdtBtnClick(Sender: TObject);
    procedure DelBtnClick(Sender: TObject);
    procedure SaveBtnClick(Sender: TObject);
    procedure CancelBtnClick(Sender: TObject);
    procedure DS_EarningStateChange(Sender: TObject);
    procedure LocateBtnClick(Sender: TObject);
    procedure EndBtnClick(Sender: TObject);
    procedure OKBtnClick(Sender: TObject);
    procedure ADOQ_EarningAfterInsert(DataSet: TDataSet);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure PrtBtnClick(Sender: TObject);
    procedure ADOQ_EarningAfterPost(DataSet: TDataSet);
  private
    { Private declarations }
    s_date, e_date:string;
    procedure refreshdb;
  public
    { Public declarations }
  end;

var
  Form_Earning: TForm_Earning;

implementation

uses sharevar, sharefun, data, Main;

{$R *.dfm}

procedure TForm_Earning.refreshdb;
begin
  with ADOQ_Operator do begin close; open; end;
  with ADOQ_Earning do
  begin
    sql.Strings[1]:='';
    sql.Strings[2]:='order by rec_date';
    try
      execsql;
      open;
    except
      msgErr(handle,'刷新数据库失败!(Earning_Q)');
    end;
  end;
end;

procedure TForm_Earning.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  if adoq_operator.Active then adoq_operator.Close;
  if adoq_earning.Active then adoq_earning.Close;
  action:=cafree;
end;

procedure TForm_Earning.AddBtnClick(Sender: TObject);
begin
  if not adoq_earning.Active then exit;
  if adoq_earning.State in [dsinsert, dsedit] then exit;
  if Panel3.Visible then Panel3.Visible:=false;
  adoq_earning.Append;
end;

procedure TForm_Earning.EdtBtnClick(Sender: TObject);
begin
  if not adoq_earning.Active then exit;
  if adoq_earning.State in [dsinsert, dsedit] then exit;
  if adoq_earning.RecordCount<1 then exit;
  if adoq_earning.FieldValues['Flag']='T' then
  begin
    msgok(handle,'该条记录为系统自动生成致不可进行编辑!(以确保数据的安全性)');
    exit;
  end;
  if adoq_earning.FieldValues['tjflag'] then
  begin
    MsgErr(handle,'该条记录已统计入总账表,致不可进行编辑!(以确保数据的安全性)');
    exit;
  end;
  if Panel3.Visible then Panel3.Visible:=false;
  adoq_earning.edit;
end;

procedure TForm_Earning.DelBtnClick(Sender: TObject);
var
tmp_event: string;
begin
  with adoq_earning do
  begin
    if not active then exit;
    if RecordCount<1 then exit;
    if State in [dsinsert, dsedit] then exit;
    if FieldValues['Flag']='T' then
    begin
      msgok(handle,'该条记录为系统自动生成致不可删除!(以确保数据的安全性)');
      exit;
    end;
    if FieldValues['tjflag'] then
    begin
      MsgErr(handle,'该条记录已统计入总账表,致不可进行编辑!(以确保数据的安全性)');
      exit;
    end;
    tmp_event:=fieldvalues['event'];
    if MsgQst(handle,'确定删除事由:  [ '+tmp_event+' ]  相关的企业的收入记录吗?') =IDNO then  exit;
    try
      delete;
    except
      MsgErr(handle,'当前数据在相关连的表中用到,不能删除!');
      exit;
    end;
  end;
end;

procedure TForm_Earning.SaveBtnClick(Sender: TObject);
var
tmp_id:integer;
info:string;
begin
  if not adoq_earning.Active then exit ;
  if not (adoq_earning.State in [dsinsert, dsedit]) then exit;
  if dbe_event.Text='' then
  begin
    msgok(handle,'收入事由不能为空!');
    dbe_event.SetFocus;
    exit;
  end;
  if adoq_earning.fieldvalues['money']<=0 then
  begin
    msgok(handle,'请输入正确的收入金额!');
    dbe_money.SetFocus;
    exit;
  end;
  if not ToMoney(floattostr(adoq_earning.fieldvalues['money']),info) then
  begin
    MsgErr(handle,'金额格式不对[0.00]!');
    dbe_money.SetFocus; abort; exit;
  end;
  if adoq_earning.State in [dsedit] then
  begin
    if not get_oper_tmpid(curAdmin.user_id , tmp_id) then
    begin
      MsgOk(handle,'操作失败,请重试!');
      exit;
    end;
    adoq_earning.FieldValues['tmp_id']:=tmp_id;
  end;
  if adoq_earning.State in [dsinsert] then
  begin
    if not get_oper_tmpid(curAdmin.user_id , tmp_id) then
    begin
      MsgOk(handle,'操作失败,请重试!');
      exit;
    end;
    adoq_earning.FieldValues['tmp_id']:=tmp_id;
    adoq_earning.FieldValues['flag']:='F';
  end;
  try
    adoq_earning.Post;
  except
    msgErr(handle, '数据库操作失败!(Earning_Q)');
    exit;
  end;
end;

procedure TForm_Earning.CancelBtnClick(Sender: TObject);
begin
  if not adoq_earning.Active then exit;
  if not (adoq_earning.State in [dsinsert, dsedit]) then exit;
  adoq_earning.Cancel;
end;

procedure TForm_Earning.DS_EarningStateChange(Sender: TObject);
begin
  if (Sender as Tdatasource).DataSet.State in [dsinsert,dsedit] then
  begin
    panel1.Height:=135;
    DBE_event.Enabled:=true;
    DBE_Money.Enabled:=true;
    AddBtn.Enabled:=false;
    EdtBtn.Enabled:=false;
    DelBtn.Enabled:=false;
    DBGrid1.Enabled:=FALSE;
    Panel3.Visible:=false;
    Panel3.Enabled:=true;
    LocateBtn.Enabled:=false;
    DBE_event.SetFocus;
  end;

  if (Sender as Tdatasource).DataSet.State in [dsbrowse] then
  begin
    Panel1.Height:=45;
    DBE_event.Enabled:=false;
    DBE_Money.Enabled:=false;
    AddBtn.Enabled:=true;
    EdtBtn.Enabled:=true;
    DelBtn.Enabled:=true;
    DBGrid1.Enabled:=TRUE;
    LocateBtn.Enabled:=true;
  end;
end;

procedure TForm_Earning.LocateBtnClick(Sender: TObject);
var
tmpdatetime:Tdatetime;
begin
  if panel3.Visible then exit;
  with ADOQtmp do
  begin
    close; sql.Clear;
    sql.Add('select opername from operator');
    open; first;
    ComBox_opeid.Clear;
    ComBox_opeid.Items.Add(' ');
    while not eof do
    begin
      ComBox_opeid.items.Add(fieldvalues['opername']);
      next;
    end;
    close;
  end;
  if panel1.Height=135 then panel1.Height:=45;
  if not panel3.Visible then
  begin
    panel3.Enabled:=true;
    panel3.Visible:=true;
    //得到下单日期
    GetHostDateTime(datamod.ADOCon,tmpdatetime);
    edate.DateTime:=tmpdatetime;
    Edit_event.Clear; ComBox_opeid.ItemIndex:=0;
    Edit1.Clear; Edit2.Clear;
    ExtBtn.Cancel:=false;
    EndBtn.cancel:=true;
  end;
end;

procedure TForm_Earning.EndBtnClick(Sender: TObject);
begin
  Panel3.Enabled:=false;
  Panel3.Visible:=false;
  ExtBtn.Cancel:=true;
  EndBtn.cancel:=false;
end;

procedure TForm_Earning.OKBtnClick(Sender: TObject);
var
tmpnum, tmpevent, tmp_operid, strwhere: string;
tmp_id:integer;
begin
  if not ADOQ_Operator.Active then ADOQ_Operator.Open;
  tmpevent:=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:='where (rec_date between :TmpStart and :TmpEnd )';
        if tmp_operid<>'' then
        begin
          ADOQ_Operator.Locate('opername',tmp_operid,[]);
          tmp_id:=adoq_operator.FieldValues['tmp_id'];
          strwhere:=strwhere+' and (tmp_id=:tmp_id)';
        end;
        if tmpevent<>'' then
        strwhere:=strwhere+' and (event like '+''''+'%'+tmp_operid+'%'+''''+')';
        strwhere:=strwhere + tmpnum;
  end;

  with ADOQ_Earning do
  begin
      try
         close;
         sql.Strings[1]:=strwhere;
         sql.Strings[2]:='order by rec_date,tmp_id,flag';
         if tmp_operid<>'' then parameters.ParamValues['tmp_id']:=tmp_id;
         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');
         open;
      except
         MsgErr(handle,'数据库检索失败(Fin_product_CK_Q)!');
         refreshdb;
         exit;
      end;
      PrtBtn.Enabled:=recordcount>0;
      if recordcount>0 then
      begin
        s_date:=formatdatetime('yyyy-mm-dd',sdate.Date);
        e_date:=formatdatetime('yyyy-mm-dd',edate.Date);
      end;
  end;
  Panel3.Enabled:=false;
  Panel3.Visible:=false;
  ExtBtn.Cancel:=true;
  EndBtn.cancel:=false;
end;

procedure TForm_Earning.ADOQ_EarningAfterInsert(DataSet: TDataSet);
begin
  DataSet.FieldValues['money']:=0.00;
end;

procedure TForm_Earning.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['0'..'9','.',#13,#8,#46]) then abort;
end;

procedure TForm_Earning.PrtBtnClick(Sender: TObject);
begin
  if not ADOQ_Earning.Active then exit;
  if ADOQ_Earning.RecordCount=0 then exit;
  InitPage(RvProject1,RvSystem1,apppath+'\'+ReportName,apppath+'\'+ReportNdrName,0);
  SelectPage(RvProject1,'Report1',7);
  //传递参数
  AddParameter(RvProject1,'sdate',s_date);
  AddParameter(RvProject1,'edate',e_date);
  AddParameter(RvProject1,'UserName',curAdmin.user_name);
  AddParameter(RvProject1,'companyname',sysconfig.COMPANYANME);
  //显示页
  PageShow(RvProject1);
end;

procedure TForm_Earning.ADOQ_EarningAfterPost(DataSet: TDataSet);
var
  earn_id:integer;
begin
  with dataset do
  begin
    earn_id:=fieldvalues['earn_id'];
    close; open;
  end;
  ADOQ_Operator.close; ADOQ_Operator.Open;
  dataset.Locate('earn_id',earn_id,[]);
end;

end.

⌨️ 快捷键说明

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