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

📄 rsfind.pas

📁 2004090611144625767.rar 资源名称:通用工资管理
💻 PAS
字号:
unit rsfind;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  DBCtrls, ComCtrls, StdCtrls, ExtCtrls, Grids, DBGrids, Mask, Db;

type
  Trsfindb = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Label3: TLabel;
    Edit2: TEdit;
    Label4: TLabel;
    Edit3: TEdit;
    Label5: TLabel;
    ComboBox2: TComboBox;
    Label6: TLabel;
    Edit4: TEdit;
    Label7: TLabel;
    Edit5: TEdit;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    DateTimePicker1: TDateTimePicker;
    Label11: TLabel;
    DateTimePicker2: TDateTimePicker;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Panel2: TPanel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    Panel3: TPanel;
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    DataSource3: TDataSource;
    DataSource4: TDataSource;
    DataSource5: TDataSource;
    DataSource6: TDataSource;
    c: TPageControl;
    TabSheet1: TTabSheet;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    Label24: TLabel;
    Label25: TLabel;
    Label26: TLabel;
    Label27: TLabel;
    Label28: TLabel;
    Label29: TLabel;
    Label30: TLabel;
    Label31: TLabel;
    Label32: TLabel;
    Label33: TLabel;
    Label34: TLabel;
    Label35: TLabel;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
   //DBComboBox6: TDBComboBox;
    DBEdit3: TDBEdit;
    DateTimePicker3: TDateTimePicker;
   // DBComboBox7: TDBComboBox;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    DateTimePicker4: TDateTimePicker;
    DBEdit6: TDBEdit;
    DBEdit7: TDBEdit;
    DBEdit8: TDBEdit;
    DBEdit9: TDBEdit;
    Panel4: TPanel;
    DBImage1: TDBImage;
    Button5: TButton;
    TabSheet2: TTabSheet;
    DBRichEdit1: TDBRichEdit;
    DataSource7: TDataSource;
 //   DBComboBox5: TDBComboBox;
    DBLookupComboBox5: TDBLookupComboBox;
    DBLookupComboBox6: TDBLookupComboBox;
    DBLookupComboBox7: TDBLookupComboBox;
    DBLookupComboBox8: TDBLookupComboBox;
    DBGrid3: TDBGrid;
    DBEdit10: TDBEdit;
    DBEdit11: TDBEdit;
    DBEdit12: TDBEdit;
    DBEdit13: TDBEdit;
    DBEdit14: TDBEdit;
    DBEdit15: TDBEdit;
    DBEdit16: TDBEdit;
    DBComboBox1: TDBComboBox;
    Edit6: TEdit;
    treeview1: TTreeView;
    procedure FormShow(Sender: TObject);
    procedure DBGrid2DblClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure CheckBox2Click(Sender: TObject);
    procedure treeview1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit6Enter(Sender: TObject);
    procedure Edit6Exit(Sender: TObject);
    procedure DBGrid3DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
 i_key13:boolean;   { Public declarations }
  end;

var
  rsfindb: Trsfindb;

implementation

uses datamodule;

{$R *.DFM}

procedure Trsfindb.FormShow(Sender: TObject);
var
grouprsbm,rsbmstr:string;
begin
dbgrid1.setfocus;
i_key13:=true;
edit6.text:='';
edit1.text:='';
edit2.text:='';
edit3.text:='';
combobox2.text:='';
edit4.text:='';
edit5.text:='';
datetimepicker1.date:=strtodate('1990-1-1');
 treeview1.items.clear;
grouprsbm:='select a_bm from rsbm group by a_bm';
with datamodule1.rsbms do
begin
close;
sql.clear;
sql.add(grouprsbm);
prepare;
open;
end;
datamodule1.rsbms.Last;
while not datamodule1.rsbms.bof do
begin
 rsbmstr:='select *from rsbm where a_bm='+''''+datamodule1.rsbms.fieldbyname('a_bm').asstring+'''';
 with datamodule1.rsbmss do
 begin
 close;
 sql.clear;
 sql.add(rsbmstr);
 prepare;
 open;
 end;//with
 // treeview1.Items.Clear;
 if datamodule1.rsbms.eof  then
 begin
 if (datamodule1.rsbms.eof) and (datamodule1.rsbmss.RecordCount<=1) then
 begin
 treeview1.Items.Add(treeview1.TopItem ,datamodule1.rsbmss.fieldbyname('a_bm').asstring+'('+datamodule1.rsbmss.fieldbyname('a_number').asstring+')');
 treeview1.TopItem.selected:=true;
 end//if
 else
 begin
 treeview1.Items.Add(treeview1.TopItem ,datamodule1.rsbms.fieldbyname('a_bm').asstring);
 datamodule1.rsbmss.last;
 while not datamodule1.rsbmss.bof do
 begin
  if datamodule1.rsbmss.FieldByName('a_bz').asstring<>'' then
 treeview1.Items.addchild(treeview1.topitem,datamodule1.rsbmss.fieldbyname('a_bz').asstring+'('+datamodule1.rsbmss.fieldbyname('a_number').asstring+')');
 datamodule1.rsbmss.prior;
 end;//while
 treeview1.TopItem.selected:=true;
 end;//else  第一条头节点
  end//datamodule1.rsbms.bof
  else
  begin
  if datamodule1.rsbmss.RecordCount<=1 then
  begin
  treeview1.Items.Add(treeview1.selected,datamodule1.rsbmss.fieldbyname('a_bm').asstring+'('+datamodule1.rsbmss.fieldbyname('a_number').asstring+')');
  treeview1.Selected.getNextSibling.Selected :=true;
  end
  else
  begin
  treeview1.items.add(treeview1.Selected.getNextSibling,datamodule1.rsbms.fieldbyname('a_bm').asstring);
  treeview1.Selected.getNextSibling.Selected :=true;
  datamodule1.rsbmss.last;
  while not datamodule1.rsbmss.bof do
  begin
  if datamodule1.rsbmss.FieldByName('a_bz').asstring<>'' then
  treeview1.items.addchild(treeview1.selected,datamodule1.rsbmss.fieldbyname('a_bz').asstring+'('+datamodule1.rsbmss.fieldbyname('a_number').asstring+')');
  datamodule1.rsbmss.prior;
  end;//while not
  end;
  end;//else不是第一条节点
datamodule1.rsbms.prior;
end;//while not rsbms  //到这边结束
treeview1.visible:=false;
end;

procedure Trsfindb.DBGrid2DblClick(Sender: TObject);
begin
edit6.text:=datamodule1.rsbm.fieldbyname('a_bm').asstring;
edit1.text:=datamodule1.rsbm.fieldbyname('a_bz').asstring;

end;

procedure Trsfindb.Button1Click(Sender: TObject);
var
first_age,last_age,str:string;
begin
 if edit6.text<>'' then //有选择部门和班组的情况
 begin
 str:='select *from yggb where a_bm=';
 str:=str+''''+edit6.text+''''+' and a_bz=';
 str:=str+''''+edit1.text+'''';
 end
 else //没有选择部门和班组的情况
 begin
 str:='select *from yggb where a_bm like ';
 str:=str+''''+'%'+edit6.text+'%'+''''+' and a_bz like ';
 str:=str+''''+'%'+edit1.text+'%'+'''';
 end;
  if (edit2.text<>'') and (edit3.text<>'') then //年龄段
  begin
  first_age:='12/31/'+(inttostr(strtoint(formatdatetime('yyyy',date))-strtoint(edit2.text)));
     // 要从last先来
  last_age:='1/1/'+(inttostr(strtoint(formatdatetime('yyyy',date))-strtoint(edit3.text)));
  str:=str+' and a_bir between '+''''+last_age+''''+' and '+''''+first_age+'''';
  end;
   if combobox2.text<>'' then //性别
   begin
   str:=str+' and a_sex='+''''+combobox2.text+'''';
   end;
   if (edit4.text<>'') and (edit5.text<>'') then //生日
   begin
   str:=str+' and extract(month from a_bir)='+''''+edit4.text+'''';
   str:=str+' and extract(day from a_bir)='+''''+edit5.text+'''';
   end;
   if dblookupcombobox7.text<>'' then //民族
   begin
   str:=str+' and a_mz='+''''+dblookupcombobox7.text+'''';
   end;
    if dblookupcombobox8.text<>'' then  //文化程度
    begin
    str:=str+' and a_whzd='+''''+dblookupcombobox8.text+'''';
    end;
     if dblookupcombobox5.text<>'' then //职称
     begin
     str:=str+' and a_zz='+''''+dblookupcombobox5.text+'''';
     end;
      if dblookupcombobox6.text<>'' then  //职务
      begin
      str:=str+' and a_zw='+''''+dblookupcombobox6.text+'''';
      end;

      //最后加一个进公司日期
      str:=str+' and a_hzsj between '+''''+formatdatetime('mm''/''d''/''yyyy',datetimepicker1.date)+'''';
      str:=str+' and '+''''+formatdatetime('mm''/''d''/''yyyy',datetimepicker2.date)+'''';


with datamodule1.yggb do
begin
close;
sql.clear;
sql.add(str);
prepare;
open;
end;
if datamodule1.yggb.eof then
showmessage('查无此人');
end;

procedure Trsfindb.Button6Click(Sender: TObject);
begin
//showmessage(inttostr(( (strtoint(formatdatetime('yyyy',date))-20) ))));
showmessage('12/31/'+(inttostr(strtoint(formatdatetime('yyyy',date))-20)));
end;

procedure Trsfindb.CheckBox1Click(Sender: TObject);
begin
checkbox2.checked:=not checkbox1.checked;
if checkbox1.checked=true then
dbgrid3.visible:=true
else
dbgrid3.visible:=false;
end;

procedure Trsfindb.CheckBox2Click(Sender: TObject);
begin

checkbox1.checked:=not checkbox2.checked;

if checkbox1.checked=true then
dbgrid3.visible:=true
else
dbgrid3.visible:=false;

end;

procedure Trsfindb.treeview1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
 begin
  if key in [37..40] then
begin
if treeview1.Selected.haschildren=true then
begin
     if treeview1.Selected.level<>0 then
     begin
     if pos('(',treeview1.Selected.parent.Text)=0 then
     edit6.text:=treeview1.selected.parent.text
     else
     edit6.text:=copy(treeview1.selected.parent.text,1,pos('(',treeview1.selected.parent.text)-1);
     if pos('(',treeview1.selected.text)=0 then
     edit1.text:=treeview1.Selected.Text
     else
     edit1.text:=copy(treeview1.selected.text,1,pos('(',treeview1.selected.text)-1);
   end;
   end;//if treeview1
{else
begin
if pos('(',treeview1.Selected.parent.Text)=0 then
     edit1.text:=treeview1.selected.parent.text
     else
     edit1.text:=copy(treeview1.selected.parent.text,1,pos('(',treeview1.selected.parent.text)-1);
     edit2.text:='';
end;//else  }
if treeview1.selected.level<>0 then
begin
if pos('(',treeview1.Selected.parent.Text)=0 then
     edit6.text:=treeview1.selected.parent.text
     else
     edit6.text:=copy(treeview1.selected.parent.text,1,pos('(',treeview1.selected.parent.text)-1);
     if pos('(',treeview1.selected.text)=0 then
     edit1.text:=treeview1.Selected.Text
     else
     edit1.text:=copy(treeview1.selected.text,1,pos('(',treeview1.selected.text)-1);
end;
end;//if inttostr
if key=13 then
begin
if (treeview1.Selected.HasChildren=true) and (treeview1.Selected.Level=0) then
begin
showmessage('请先选择好班组,谢谢!');
i_key13:=true;
treeview1.Selected.getFirstChild.Selected:=true;
end//if (
else
begin

if i_key13=false then
treeview1.visible:=false;
  //
if treeview1.Selected.haschildren=true then
begin
     if treeview1.Selected.level<>0 then
     begin
  if pos('(',treeview1.Selected.parent.Text)=0 then
     edit6.text:=treeview1.selected.parent.text
     else
     edit6.text:=copy(treeview1.selected.parent.text,1,pos('(',treeview1.selected.parent.text)-1);
     if pos('(',treeview1.selected.text)=0 then
     edit1.text:=treeview1.Selected.Text
     else
     edit1.text:=copy(treeview1.selected.text,1,pos('(',treeview1.selected.text)-1);
   end;
   end//if treeview1
else
begin
    if pos('(',treeview1.Selected.Text)=0 then
    edit6.text:=treeview1.selected.text
    else
    edit6.text:=copy(treeview1.selected.text,1,pos('(',treeview1.selected.text)-1);
    edit1.text:='';
end;//else
if treeview1.selected.level<>0 then
begin
   if pos('(',treeview1.Selected.parent.Text)=0 then
     edit6.text:=treeview1.selected.parent.text
     else
     edit6.text:=copy(treeview1.selected.parent.text,1,pos('(',treeview1.selected.parent.text)-1);
     if pos('(',treeview1.selected.text)=0 then
     edit1.text:=treeview1.Selected.Text
     else
     edit1.text:=copy(treeview1.selected.text,1,pos('(',treeview1.selected.text)-1);
end;

    //

i_key13:=false;
end;

end;//if key  13结束
  end;
procedure Trsfindb.Edit6Enter(Sender: TObject);
begin
with (sender as tedit) do
color:=cllime;
treeview1.visible:=true;
treeview1.setfocus;
end;

procedure Trsfindb.Edit6Exit(Sender: TObject);
begin
with (sender as tedit) do
color:=clwhite;
end;

procedure Trsfindb.DBGrid3DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var
 lastcolor: TColor;
begin
 with (Sender as TDBGrid) do
 begin
   lastcolor := clred;

   case DataSource.DataSet.RecNo mod 2 of
     1: lastcolor := cllime;
     0: lastcolor := clwhite;
   end;

   if gdSelected in State then
     lastcolor := clred;      //选中行背景为绿色

   Canvas.Brush.Color := lastcolor;
   DefaultDrawDataCell(Rect, Column.Field, State);
 end;
end;
procedure Trsfindb.FormClose(Sender: TObject; var Action: TCloseAction);
begin
self.release;
end;

end.

⌨️ 快捷键说明

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