📄 gzgn.pas
字号:
end;//最后一个
procedure Tgzgnb.Button7Click(Sender: TObject);
var
ggjsstr,htstr,gnstr,gzgnstr:string;
gn,gntotal:real;
begin
ggjsstr:='select *from ggjs where a_gzcm=''工龄工资''';
ggjsstr:=ggjsstr+' and extract(year from a_date)='+edit1.text;
ggjsstr:=ggjsstr+' and extract(month from a_date)='+edit2.text;
with datamodule1.ggjss do
begin
close;
sql.clear;
sql.add(ggjsstr);
prepare;
open;
end;
if datamodule1.ggjss.Eof then
begin
showmessage('工资项目里面没有工龄工资项目,请先设好!');
ggjsb.Edit1.text:=edit1.text;
ggjsb.edit2.text:=edit2.text;
ggjsb.show;
ggjsb.Button4.click;
end
else
begin
if datamodule1.ggjss.recordcount>1 then
showmessage('不能设定两个或两个以上的工龄工资项目!')
else
begin
datamodule1.ggjss.Edit;
datamodule1.ggjss.FieldByName('a_jsgs').asstring:='';
datamodule1.ggjss.post;
gzgnstr:='select *from gzgn where extract(year from a_date)=';
gzgnstr:=gzgnstr+edit1.text+' and extract(month from a_date)=';
gzgnstr:=gzgnstr+edit2.text+' and a_bm='+''''+edit4.text+'''';
gzgnstr:=gzgnstr+' and a_bz='+''''+edit3.text+'''';
if (edit4.text='') and (edit3.text='') then
begin
gzgnstr:='select *from gzgn where extract(year from a_date)=';
gzgnstr:=gzgnstr+edit1.text+' and extract(month from a_date)='+edit2.text;
end;
with datamodule1.gzgns do
begin
close;
sql.clear;
sql.add(gzgnstr);
prepare;
open;
end;
while not datamodule1.gzgns.eof do
begin
htstr:='select *from htgn where a_number='+''''+datamodule1.gzgns.fieldbyname('a_number').asstring+'''';
with datamodule1.htgns do
begin
close;
sql.clear;
sql.add(htstr);
prepare;
open;
end;
if datamodule1.htgns.eof then
begin
gntotal:=0;
end
else
begin
htstr:='select '+formatdatetime('yyyy',date)+ ' -extract(year from a_date) as aa from htgn where a_number=';
htstr:=htstr+''''+datamodule1.gzgns.fieldbyname('a_number').asstring+'''';
with datamodule1.htgns do
begin
close;
sql.clear;
sql.add(htstr);
prepare;
open;
end;
gntotal:=datamodule1.htgns.fieldbyname('aa').asfloat;
gnstr:='select *from gn where a_gn<=';
gnstr:=gnstr+floattostr(gntotal)+' order by a_gn desc';
with datamodule1.gns do
begin
close;
sql.clear;
sql.add(gnstr);
prepare;
open;
end;
gntotal:=datamodule1.gns.fieldbyname('a_jj').asfloat;
end;
datamodule1.gzgns.edit;
datamodule1.gzgns.FieldByName(datamodule1.ggjss.fieldbyname('a_smdm').asstring).asfloat:=gntotal;
datamodule1.gzgns.post;
datamodule1.gzgns.Next;
end;
end;
end;
ggjsstr:='select *from ggjs where extract(year from a_date)=';
ggjsstr:=ggjsstr+edit1.text+' and extract(month from a_date)=';
ggjsstr:=ggjsstr+edit2.text;
with datamodule1.ggjss do //可以在ggjsb表单里面加一个按钮,用来根据这个表单的日期显示公资项目等
begin
close;
sql.clear;
sql.add(ggjsstr);
prepare;
open;
end;
button3.click;
end;
procedure Tgzgnb.Button2Click(Sender: TObject);
var
str:string;
begin
edit4.text:='';
edit3.text:='';
str:='select *from gzgn where extract(year from a_date)=';
str:=str+edit1.text+' and extract(month from a_date)='+edit2.text;
with datamodule1.gzgns do
begin
close;
sql.clear;
sql.add(str);
prepare;
open;
end;
end;
procedure Tgzgnb.DBGrid2Exit(Sender: TObject);
begin
treeview1.visible:=false;
end;
procedure Tgzgnb.DBGrid2CellClick(Column: TColumn);
var
ii,ii1:integer;
begin
//确保该栏是逻辑字段
if DBGrid1.SelectedField.DataType = ftBoolean then
SaveBoolean();
if record_boolean=true then
button15.Click
else
begin
ii:=Tstringgrid(dbgrid1).row; // 取当前行数
if iiii=true then //第一次单击的情况
begin
//datamodule1.gzgns.edit;
iiii:=false;
end
else //不是第一次单击的情况
begin
if datamodule1.gzgns.state in [dsinsert,dsedit] then //判断表是否在修改状态中
datamodule1.gzgns.Post;
datamodule1.gzgns.edit;
if ii<>ii1 then //判断记录指针是否有移动(这是有移动的情况)
begin
if datamodule1.gzgns.State in [dsinsert,dsedit] then
datamodule1.gzgns.post;
datamodule1.gzgns.edit;
end;
end;
ii1:=ii;
datamodule1.gzgns.edit;
end;//else record_boolean;
end;
procedure Tgzgnb.Button12Click(Sender: TObject);
var
str:string;
i:integer;
begin
i:=0;
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;
if datamodule1.ggjss.eof then //ggjs表里面没有这个月的计算公式
begin
//showmessage('本地的计算公式还未设置,请先设置!');
ggjsb.Show;
ggjsb.Edit1.text:=edit1.text;
ggjsb.edit2.text:=edit2.text;
ggjsb.Button4.Click;
end
else
begin
button9.click;
datamodule1.ggjss.First;
while i<=19 do
begin
//根据从工资管理表里面的字段a到t的字段名来定位工资项目及计算公式表中的与之相对应的项止代码的记录,以取得工资项目及计算公式中设定的项目名称
if datamodule1.ggjss.fieldbyname('a_gzcm').asstring<>'' then //有工资项目存在
begin
if datamodule1.ggjss.fieldbyname('a_jsgs').asstring<>'' then //判断是否有计算公式(有的情况)
begin
dbgrid1.Columns[i].visible:=true;
dbgrid1.columns[i].Title.caption:=datamodule1.ggjss.fieldbyname('a_gzcm').asstring;//更改单格标题
end;
end
else //没有工资项目存在
begin
dbgrid1.columns[i].visible:=false;
end;
i:=i+1;
datamodule1.ggjss.Next;
end; //上面循环用的
end;
end;
procedure Tgzgnb.DBGrid3Exit(Sender: TObject);
begin
if datamodule1.gzgns.State in [dsinsert,dsedit] then
datamodule1.gzgns.post;
end;
procedure Tgzgnb.Button1Click(Sender: TObject);
var
str:string;
a_year,a_month:integer;
begin
str:='select *from gzgn where a_date<';
str:=str+(edit1.text+'/'+edit2.text+'/'+'30');
with datamodule1.gzgns do
begin
close;
sql.clear;
sql.add(str);
prepare;
open
end;
//a_year:=yearof(datamodule1.gzgns.fieldbyname('a_date').asdatetime);
end;
procedure Tgzgnb.CheckBox1Click(Sender: TObject);
begin
button12.click;
end;
procedure Tgzgnb.Button13Click(Sender: TObject);
var
str:string;
i:integer;
begin
i:=0;
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;
datamodule1.ggjss.First;
while i<=19 do
begin
//根据从工资管理表里面的字段a到t的字段名来定位工资项目及计算公式表中的与之相对应的项止代码的记录,以取得工资项目及计算公式中设定的项目名称
if datamodule1.ggjss.fieldbyname('a_gzcm').asstring<>'' then //有工资项目存在
begin
dbgrid1.Columns[i].visible:=true;
dbgrid1.columns[i].Title.caption:=datamodule1.ggjss.fieldbyname('a_gzcm').asstring;//更改单格标题
end
else //没有工资项目存在
begin
dbgrid1.columns[i].visible:=false;
end;
i:=i+1;
datamodule1.ggjss.Next;
end; //上面循环用的
button10.click;
end;
procedure Tgzgnb.Button14Click(Sender: TObject);
var
yjstr,gzgnstr:string;
begin
yjstr:='select *from yjb where extract(year from a_date)='+edit1.text;
yjstr:=yjstr+' and extract(month from a_date)='+edit2.text;
with datamodule1.yjbs do
begin
close;
sql.clear;
sql.add(yjstr);
prepare;
open;
end;
if datamodule1.yjbs.Eof then
begin
if checkbox2.checked=true then
begin
if edit4.text<>'' then
begin
gzgnstr:='select *from gzgn where extract(year from a_date)='+edit1.text;
gzgnstr:=gzgnstr+' and extract(month from a_date)='+edit2.text;
gzgnstr:=gzgnstr+' and a_bm='+''''+edit4.text+'''';
gzgnstr:=gzgnstr+' and a_bz='+''''+edit3.text+'''';
end
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;
while not datamodule1.gzgns.eof do
begin
yjstr:='select sum(a_yj) as bb from yjb where a_name='+''''+datamodule1.gzgns.fieldbyname('a_name').asstring+'''';
yjstr:=yjstr+' and a_number='+''''+datamodule1.gzgns.fieldbyname('a_number').asstring+'''';
with datamodule1.yjbs do
begin
close;
sql.clear;
sql.add(yjstr);
prepare;
open;
end;//with
if datamodule1.yjbs.fieldbyname('bb').asfloat<datamodule1.yjsd.fieldbyname('a_full').asfloat then
begin
datamodule1.gzgns.Edit;
datamodule1.gzgns.FieldByName('f').asfloat:=datamodule1.yjsd.fieldbyname('a_yj').asfloat;
datamodule1.gzgns.post;
with datamodule1.yjb do
begin
append;
fieldbyname('a_date').asdatetime:=strtodate(edit1.text+'-'+edit2.text+'-'+'20');
fieldbyname('a_number').asstring:=datamodule1.gzgns.fieldbyname('a_number').asstring;
fieldbyname('a_name').asstring:=datamodule1.gzgns.fieldbyname('a_name').asstring;
fieldbyname('a_yj').asfloat:=datamodule1.yjsd.fieldbyname('a_yj').asfloat;
post;
end;//with
end;//if datamodule1.yjbs.fie
datamodule1.gzgns.next;
end;//while not 的
end;//if checkbox的
end;//if datamodule1.yjbs.eof
end;
procedure Tgzgnb.Button15Click(Sender: TObject);
var
gzgnstr,ggjsstr:string;
begin
if edit4.text='' then
begin
gzgnstr:='select *from gzgn where extract(year from a_date)='+edit1.text;
gzgnstr:=gzgnstr+' and extract(month from a_date)='+edit2.text;
end//if combobox1
else
begin
gzgnstr:=gzgnstr+' and a_bm='+''''+edit4.text+'''';
gzgnstr:=gzgnstr+' and a_bz='+''''+edit3.text+'''';
end;//else
with datamodule1.gzgns do
begin
close;
sql.clear;
sql.add(gzgnstr);
prepare;
open;
end;//with
ggjsstr:='select *from ggjs where extract(year from a_date)='+edit1.text;
ggjsstr:=ggjsstr+' and extract(month from a_date)='+edit2.text;
with datamodule1.ggjss do
begin
close;
sql.Clear;
sql.add(ggjsstr);
prepare;
open;
end;
while not datamodule1.gzgns.Eof do
begin
datamodule1.gzgns.Edit;
datamodule1.ggjss.First;
while not datamodule1.ggjss.Eof do
begin
if datamodule1.ggjss.FieldByName('a_gzcm').asstring<>'' then
datamodule1.gzgns.fieldbyname(datamodule1.ggjss.fieldbyname('a_smdm').asstring).asfloat:=0;
datamodule1.ggjss.next;
end;//while ggjss
datamodule1.gzgns.post;
datamodule1.gzgns.Next;
end;//while gzgns
record_boolean:=false;
button12.click;
end;
procedure Tgzgnb.DBGrid2Enter(Sender: TObject);
//var
//gzgnstr:string;
begin
{if edit4.text='' then
begin
gzgnstr:='select *from gzgn where extract(year from a_date)='+edit1.text;
gzgnstr:=gzgnstr+' and extract(month from a_date)='+edit2.text;
end//if combobox1
else
begin
gzgnstr:=gzgnstr+' and a_bm='+''''+edit4.text+'''';
gzgnstr:=gzgnstr+' and a_bz='+''''+edit3.text+'''';
end;//else
with datamodule1.gzgns do
begin
close;
sql.clear;
sql.add(gzgnstr);
prepare;
open;
end;//with }
dbgrid2.SelectedIndex:=3;
dbgrid1.SetFocus;
end;
procedure Tgzgnb.Button16Click(Sender: TObject);
var
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -