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

📄 qqdjfind.pas

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

interface

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

type
  Tqqdjfindb = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    DateTimePicker1: TDateTimePicker;
    Label2: TLabel;
    DateTimePicker2: TDateTimePicker;
    Label3: TLabel;
    Edit1: TEdit;
    Label4: TLabel;
    Edit2: TEdit;
    Button1: TButton;
    Button3: TButton;
    DBGrid1: TDBGrid;
    Panel2: TPanel;
    Label5: TLabel;
    DataSource1: TDataSource;
    Edit3: TEdit;
    Button4: TButton;
    Label6: TLabel;
    ListBox1: TListBox;
    DBGrid2: TDBGrid;
    DataSource2: TDataSource;
    procedure Button1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure DBGrid1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit2KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBGrid2DblClick(Sender: TObject);
    procedure Edit1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    i_first:boolean;//判断是否为第一次单击网格
        { Public declarations }
  end;

var
  qqdjfindb: Tqqdjfindb;

implementation

uses datamodule;

{$R *.DFM}

procedure Tqqdjfindb.Button1Click(Sender: TObject);
var
str:string;
begin
str:='select sum(a_total) as aa from qqdj where (a_number like';
str:=str+''''+'%'+edit1.text+'%'+''''+' and a_name like';
str:=str+''''+'%'+edit2.text+'%'+''''+')'+' and a_date between ';
str:=str+''''+formatdatetime('mm''/''d''/''yyyy',datetimepicker1.date)+''''+' and ';
str:=str+''''+formatdatetime('mm''/''d''/''yyyy',datetimepicker2.date)+'''';
with datamodule1.qqdjs do
begin
close;
sql.clear;
sql.add(str);
prepare;
open;
end;
edit3.text:=floattostr(datamodule1.qqdjs.fieldbyname('aa').asfloat);
str:='select *from qqdj where (a_number like';
str:=str+''''+'%'+edit1.text+'%'+''''+' and a_name like';
str:=str+''''+'%'+edit2.text+'%'+''''+')'+' and a_date between ';
str:=str+''''+formatdatetime('mm''/''d''/''yyyy',datetimepicker1.date)+''''+' and ';
str:=str+''''+formatdatetime('mm''/''d''/''yyyy',datetimepicker2.date)+'''';
with datamodule1.qqdjs do
begin
close;
sql.clear;
sql.add(str);
prepare;
open;
end;
end;

procedure Tqqdjfindb.FormShow(Sender: TObject);
begin
edit1.text:='';
edit2.text:='';
datamodule1.qqdjs.close;
i_first:=true;
dbgrid2.visible:=false;

end;

procedure Tqqdjfindb.Button3Click(Sender: TObject);
begin
self.close;
end;

procedure Tqqdjfindb.Button4Click(Sender: TObject);
begin
if datamodule1.qqdjs.State in [dsinsert,dsedit] then
datamodule1.qqdjs.post;
end;
procedure Tqqdjfindb.Button2Click(Sender: TObject);
begin
datamodule1.qqdjs.Edit;
end;

procedure Tqqdjfindb.DBGrid1CellClick(Column: TColumn);
var
i_notrow,i_row:integer;//用来判断目前记录是否改掉
begin
i_row:=tstringgrid(dbgrid1).row ;
datamodule1.qqdjs.edit;
if i_first=true then  //第一次的情况
     begin
   datamodule1.qqdjs.edit;
   i_first:=false;
     i_notrow:=i_row;
     end;
       if i_row<>i_notrow then // 在不同行单击
       begin
       if datamodule1.qqdjs.state in [dsinsert,dsedit] then
       begin
       try
       datamodule1.qqdjs.Post;
       except
       showmessage('不能正确保存数据,请确保输入数据的正确性');
       end;
       datamodule1.qqdjs.edit;
       end
       else
        datamodule1.qqdjs.edit;
       end;

i_notrow:=i_row;
end;

procedure Tqqdjfindb.DBGrid1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if inttostr(key)='13' then
  button4.click;
end;

procedure Tqqdjfindb.Edit2KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
yggbstr:string;
begin
if inttostr(key)='13' then
begin
yggbstr:='select *from yggb where a_number like ';
yggbstr:=yggbstr+''''+'%'+edit1.text+'%'+''''+' or a_name like ';
yggbstr:=yggbstr+''''+'%'+edit2.text+'%'+'''';
with datamodule1.yggb do
begin
close;
sql.clear;
sql.add(yggbstr);
prepare;
open;
end;
if datamodule1.yggb.Eof then
showmessage('查无此人')
else
begin
dbgrid2.visible:=true;
dbgrid2.setfocus;
end;
end;
end;

procedure Tqqdjfindb.DBGrid2DblClick(Sender: TObject);
begin
edit1.text:=datamodule1.yggb.fieldbyname('a_number').asstring;
edit2.text:=datamodule1.yggb.fieldbyname('a_name').asstring;
dbgrid2.visible:=false;

end;

procedure Tqqdjfindb.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
yggbstr:string;
begin
if inttostr(key)='13' then
begin
yggbstr:='select *from yggb where a_number like ';
yggbstr:=yggbstr+''''+'%'+edit1.text+'%'+''''+' or a_name like ';
yggbstr:=yggbstr+''''+'%'+edit2.text+'%'+'''';
with datamodule1.yggb do
begin
close;
sql.clear;
sql.add(yggbstr);
prepare;
open;
end;
if datamodule1.yggb.Eof then
showmessage('查无此人')
else
begin
dbgrid2.visible:=true;
dbgrid2.setfocus;
end;
end;
end;

procedure Tqqdjfindb.DBGrid2DrawColumnCell(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 := $00F5FEFD;
     0: lastcolor := clwhite;
   end;

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

   Canvas.Brush.Color := lastcolor;
   DefaultDrawDataCell(Rect, Column.Field, State);
 end;
end;

procedure Tqqdjfindb.FormClose(Sender: TObject; var Action: TCloseAction);
begin
self.release;
end;

end.

⌨️ 快捷键说明

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