📄 gzgn.pas
字号:
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 + -