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

📄 gzgn.pas

📁 2004090611144625767.rar 资源名称:通用工资管理
💻 PAS
📖 第 1 页 / 共 4 页
字号:
str:string;
begin
if edit4.text='' then
begin
str:='select *from gzgn where Extract(year from a_date)=';
str:=str+edit1.text+' and extract(month from a_date)=';
str:=str+edit2.text;
end
else
begin
str:='select *from gzgn where extract(year from a_date)=';
str:=str+edit1.text+' and extract(month from a_date)=';
str:=str+edit2.text+' and a_bm='+''''+edit4.text+'''';
str:=str+' and a_bz='+''''+edit3.text+'''';
end;
with datamodule1.gzgns do
begin
close;
sql.clear;
sql.add(str);
prepare;
open;
end;
if datamodule1.gzgns.eof then  //还没有工资表
   begin
   str:='select *from ggjs where extract(year from a_date)=';
   str:=str+edit1.text+' and extract(month from a_date)=';
   str:=str+edit2.text;
   with datamodule1.ggjss do
   begin
   close;
   sql.clear;
   sql.add(str);
   prepare;
   open;
   end;//with
  if datamodule1.ggjss.eof then //ggjs表里面没有这个月的计算公式
      begin
      if application.messagebox('本月还未输入公式要输入公式吗?','程序执行确认',mb_yesno+mb_defbutton2+mb_iconstop+mb_applmodal)=idyes then
  begin
  ggjsb.Show;
  ggjsb.Edit1.text:=edit1.text;
  ggjsb.edit2.text:=edit2.text;
  ggjsb.Button4.Click;
  button8.click;
  end;
       end //if datamodule1.ggjss.eof
       else
       button8.click;
  end//if datamodule1.gzgns.eof
  else
  begin
    button12.click;
    showmessage('sdfsdf');
  button14.click;
 button3.click;



  end;//else


   end;




procedure Tgzgnb.Button17Click(Sender: TObject);
 var
grouprsbm,rsbmstr:string;
begin
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  //到这边结束
 end;
procedure Tgzgnb.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
     edit4.text:=treeview1.selected.parent.text
     else
     edit4.text:=copy(treeview1.selected.parent.text,1,pos('(',treeview1.selected.parent.text)-1);
     if pos('(',treeview1.selected.text)=0 then
     edit3.text:=treeview1.Selected.Text
     else
     edit3.text:=copy(treeview1.selected.text,1,pos('(',treeview1.selected.text)-1);
     //show();
     end;
end;//if treeview1
if treeview1.selected.level<>0 then
begin
if pos('(',treeview1.Selected.parent.Text)=0 then
     edit1.text:=treeview1.selected.parent.text
     else
     edit4.text:=copy(treeview1.selected.parent.text,1,pos('(',treeview1.selected.parent.text)-1);
     if pos('(',treeview1.selected.text)=0 then
     edit3.text:=treeview1.Selected.Text
     else
     edit3.text:=copy(treeview1.selected.text,1,pos('(',treeview1.selected.text)-1);
      //show();
     end;
end;//if inttostr
if key=13 then
begin
if (treeview1.Selected.HasChildren=true) and (treeview1.Selected.Level=0) then
begin

 i_key13:=true;
showmessage('请先选择好班组,谢谢!');
 treeview1.Selected.getFirstChild.Selected:=true;
end//if (
else
begin

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


end;//if key  13结束

if key=27 then
treeview1.visible:=false;
end; //begin

procedure Tgzgnb.Edit4Enter(Sender: TObject);
begin
edit4.color:=cllime;
edit3.color:=cllime;
treeview1.visible:=true;
end;

procedure Tgzgnb.DBGrid2Draw(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
  const
// 这个整数值将按照布尔值返回,并送入数组
CtrlState : array[Boolean] of Integer = (DFCS_BUTTONCHECK,
DFCS_BUTTONCHECK or DFCS_CHECKED);
  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;

 //确保只有在逻辑字段才能插入组件
 if Column.Field.DataType = ftBoolean then
begin
DBGrid1.Canvas.FillRect(Rect);
DrawFrameControl(DBGrid1.Canvas.Handle,
Rect,
DFC_BUTTON,
CtrlState[Column.Field.AsBoolean]);
 end;

end;

procedure Tgzgnb.DBGrid2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
//确保该栏是逻辑字段和空格键在键盘中被敲击
if ( Key = VK_SPACE ) and
( DBGrid1.SelectedField.DataType = ftBoolean ) then
SaveBoolean();
end;

procedure Tgzgnb.SaveBoolean();
begin
apassb.show;
{DBGrid1.SelectedField.Dataset.Edit;
DBGrid1.SelectedField.AsBoolean :=not DBGrid1.SelectedField.AsBoolean;
DBGrid1.SelectedField.Dataset.Post;
label6.caption:='false'; }

end;


procedure Tgzgnb.DBGrid1ColEnter(Sender: TObject);
begin
// 确保该栏是逻辑字段
if DBGrid1.SelectedField.DataType = ftBoolean then
begin
OriginalOptions := DBGrid1.Options;
DBGrid1.Options := DBGrid1.Options - [dgEditing];
end;
end;

procedure Tgzgnb.DBGrid1ColExit(Sender: TObject);
begin
if DBGrid1.SelectedField.DataType = ftBoolean then
DBGrid1.Options := OriginalOptions;
end;

procedure Tgzgnb.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
lastcolor:tcolor;

const
// 这个整数值将按照布尔值返回,并送入数组
CtrlState : array[Boolean] of Integer = (DFCS_BUTTONCHECK,
DFCS_BUTTONCHECK or DFCS_CHECKED);
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;
if Column.Field.DataType = ftBoolean then
begin
DBGrid1.Canvas.FillRect(Rect);
DrawFrameControl(DBGrid1.Canvas.Handle,
Rect,
DFC_BUTTON,
CtrlState[Column.Field.AsBoolean]);
end;

end;

procedure Tgzgnb.DBGrid1CellClick(Column: TColumn);
begin
if DBGrid1.SelectedField.DataType = ftBoolean then
SaveBoolean();
end;

procedure Tgzgnb.DBGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
//确保该栏是逻辑字段和空格键在键盘中被敲击
if ( Key = VK_SPACE ) and
( DBGrid1.SelectedField.DataType = ftBoolean ) then
SaveBoolean();
end;


procedure Tgzgnb.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 := clyellow;      //选中行背景为绿色

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

procedure Tgzgnb.DBGrid2ColEnter(Sender: TObject);
begin
dbgrid1.SetFocus;
end;

procedure tgzgnb.show();
var
gzgnstr:string;
begin
if edit4.text<>'' then
begin
gzgnstr:='select *from gzgn where a_bm='+''''+edit4.text+'''';
gzgnstr:=gzgnstr+' and a_bz='+''''+edit3.text+'''';
gzgnstr:=gzgnstr+' and extract(year from a_date)='+edit1.text;
gzgnstr:=gzgnstr+' and extract(month from a_date)='+edit2.text;
end//if
else
begin
gzgnstr:='select *from gzgn where extract(year from a_date)='+edit1.text;
gzgnstr:=gzgnstr+' and extract(month from a_date)='+edit2.text;
end;
with datamodule1.gzgns do
begin
close;
sql.clear;
sql.Add(gzgnstr);
prepare;
open;
end;
 datasource1.DataSet.close;
 datasource1.dataset.open;

end;

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

end.

⌨️ 快捷键说明

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