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

📄 find_zff002.pas

📁 培训管理系统
💻 PAS
字号:
unit find_zff002;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, Wwquery, StdCtrls, Buttons, Mask, wwdbedit,
  Wwdotdot, ComCtrls, wwdbdatetimepicker;

type
  Tfind_zff002f = class(TForm)
    ScrollBox1: TScrollBox;
    GroupBox1: TGroupBox;
    Label2: TLabel;
    bjdh: TEdit;
    Label4: TLabel;
    djrq1: TwwDBDateTimePicker;
    Label6: TLabel;
    djrq2: TwwDBDateTimePicker;
    Btn_Search: TBitBtn;
    Btn_Cancel: TBitBtn;
    login_empid: TwwDBComboDlg;
    login_name: TEdit;
    Label1: TLabel;
    Data_query: TwwQuery;
    procedure FormCreate(Sender: TObject);
    procedure EditEnter(Sender: TObject);
    procedure EditExit(Sender:Tobject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Btn_SearchClick(Sender: TObject);
    procedure Btn_CancelClick(Sender: TObject);
    procedure login_empidCustomDlg(Sender: TObject);
    procedure login_empidKeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
    filter_sql,find_bill: string;
    MAXTABORDER :integer;
  end;

var
  find_zff002f: Tfind_zff002f;

implementation
uses ppublic,pdatabse,main;
{$R *.dfm}

procedure Tfind_zff002f.FormCreate(Sender: TObject);
begin
  MAXTABORDER:=10;
  djrq1.text:='';
  djrq2.text:='';
end;

procedure Tfind_zff002f.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
  begin
   key:=#0;
   if ActiveControl <> nil then
      if ActiveControl.TabOrder<MAXTABORDER then
      selectnext(Activecontrol,True,True);
  end;
end;

procedure Tfind_zff002f.EditEnter(Sender: TObject);
 begin
   TEdit(Sender).Color                :=clyellow;
   TwwDBEdit(Sender).Color            :=clyellow;
   TwwDBComboDlg(Sender).Color        :=clyellow;
   TwwdbDatetimePicker(sender).color  :=clYellow;
end;

procedure Tfind_zff002f.EditExit(Sender:Tobject);
begin
   TEdit(Sender).Color                :=clwindow;
   TwwDBEdit(Sender).Color            :=clwindow;
   TwwDBComboDlg(Sender).Color        :=clwindow;
   TwwdbDatetimePicker(sender).color  :=clwindow;
end;
procedure Tfind_zff002f.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   case Key of
      VK_DOWN:
      begin
         Key := 0;
         if ActiveControl<>nil then         
         if TWinControl(ActiveControl).TabOrder < MAXTABORDER then
            SelectNext(ActiveControl, True, True);
      end;
      VK_UP:
      begin
         Key := 0;
         if ActiveControl<>nil then         
         if TWinControl(ActiveControl).TabOrder <> 0 then
            SelectNext(ActiveControl, False, True);
      end;
   end;
end;

procedure Tfind_zff002f.Btn_SearchClick(Sender: TObject);
var sql1,sql2 :string;
begin
  sql1:='';
  if bjdh.Text<>'' then sql1:='where bill_no='+''''+bjdh.Text+'''';

  if login_empid.Text<>'' then
   if trim(sql1)='' then sql1:='where login_empid='+''''+login_empid.text+''''
       else sql1:=trim(sql1)+' and login_empid='+''''+login_empid.Text+'''';

 if djrq1.text<>'' then
 begin
    if trim(sql1)='' then sql1:='where bill_date>=#'+datetostr(djrq1.datetime)+'#'
    else  sql1:=sql1+' and bill_date>=#'+datetostr(djrq1.datetime)+'#'
 end;

 if djrq2.text<>'' then
 begin
    if trim(sql1)='' then sql1:='where bill_date<=#'+datetostr(djrq2.datetime)+'#'
    else  sql1:=sql1+' and bill_date<=#'+datetostr(djrq2.datetime)+'#'
 end;

 if trim(sql1)='' then
 begin
   sql1:='select '' '' as xh,bill_no,login_empid,login_name,bill_date from perbudget_master_view ';
    if filter_sql<>'' then sql1:=sql1+' where '+filter_sql;
 end
 else
 begin
   sql1:='select '' '' as xh,bill_no,login_empid,login_name,bill_date from perbudget_master_view '+sql1;
   if filter_sql<>'' then sql1:=sql1+' and '+filter_sql;
 end;

 sql1:= sql1+' order by bill_no';
 data_query.Close;
 data_query.Sql.Text:=sql1;
 try
   Data_query.Open;
   if Data_query.IsEmpty  then
   begin
     showmessage('没有符合条件的资料');
     Data_Query.Close;
     find_bill:='';
     exit;
   end;
   if Data_Query.RecordCount=1 then begin find_bill:='('''+Data_Query.fields[1].text+''')'; modalresult:=mrok end;
      if Data_Query.RecordCount>1 then  //如果超过一笔记录,则弹出查询窗口
      begin
        sql2:='select bill_no,dept_code,dept_name,equ_positioncode,equ_positionname from perbudget_detail_view where bill_no=:bill_no';
        find_bill:=bill_find(sql1,sql2,'perbudget_master','perbudget_detail',self,1);
        if find_bill='' then modalresult:=mrcancel else modalresult:=mrok;
      end;
    except
      showmessage('查询语句语法错误');
      find_bill:='';
      data_Query.Close;
    end;

end;

procedure Tfind_zff002f.Btn_CancelClick(Sender: TObject);
begin
   modalresult:=mrCancel;
end;

procedure Tfind_zff002f.login_empidCustomDlg(Sender: TObject);
var str:string;
    tempquery:tquery;
begin
    str:=emp_search('dimission_flag=0 ',self);
    if str<>'' then begin
      login_empid.Text:=str;
      tempquery:=tquery.Create(self);
       try
        tempquery.DatabaseName:='train';
        tempquery.SQL.Add('select emp_name from employee where emp_id='+''''+login_empid.Text+'''');
        tempquery.open;
        if not tempquery.isempty then
         login_name.Text:=tempquery.fieldbyname('emp_name').AsString;
       finally
       tempquery.free;
       end;
    end;
end;

procedure Tfind_zff002f.login_empidKeyPress(Sender: TObject;
  var Key: Char);
begin
 key:=#0;
end;

end.

⌨️ 快捷键说明

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