📄 gzgn.pas
字号:
mychar:=hjs[a_ii];
if not odd(a_ii) then //为偶数
begin
if ((hjs[a_ii]<>'+') and (hjs[a_ii]<>'-')) and ((hjs[a_ii]<>'*') and (hjs[a_ii]<>'/')) then //错的
begin //偶数不为公式符号的情况
a_ii:=100;
end;
end
else //奇数的情况
begin
//if not (mychar in myset) then //为奇数
//ii:=20;
end;
a_ii:=a_ii+1;
end; //上面while的
end
else
a_ii:=101;//上面第一个if的
end;//判断上面最后一个不能为空的情况
if a_ii=101 then //错的情况
begin
aa_hjs1:=trim(aa_hjs);
anumber:=['0'..'9'];
aa_ii:=length(aa_hjs1);
a_iiii:=1;
while a_iiii<=aa_ii do
begin
if aa_hjs1[a_iiii] in anumber then //是数字的情况
a_iiii:=a_iiii+1
else//真的出错
begin
datamodule1.ggjss.Last;
//ggjsb.show;
a_iiii:=1055;
end;
end;
end;
end;//上面判断是空字符串的情况
datamodule1.ggjss.Next;
end;//循环各条记录
if (a_row<>20) or (aa_ii=a_iiii+1) then
begin
ggjsb.show;
ggjsb.dbgrid1.SetFocus;
ggjsb.DBGrid1.DataSource.dataset.first;
ggjsb.DataSource1.dataset.moveby(a_row-1);
showmessage(ggjsb.dbgrid1.Columns[0].field.asstring+'公式出错,请重新设定,谢谢!');
end;
end;
procedure Tgzgnb.FormShow(Sender: TObject);
var
sstr:string;
begin
treeview1.visible:=false;
i_key13:=true;
TStringGrid(DBGrid1).FixedCols := TStringGrid(DBGrid1).FixedCols + 1;
button17.visible:=false;
button17.Click;
button15.visible:=false;
button14.visible:=false;
iiii:=true;
edit4.Text:='';
edit3.text:='';
//dbgrid2.visible:=false;
button1.Visible:=false;
button10.visible:=false;
button9.visible:=false;
button8.visible:=false;
button3.visible:=false;
button12.visible:=false;
sstr:='select *from gzgn order by a_date desc';
with datamodule1.gzgns do
begin
close;
sql.clear;
sql.add(sstr);
prepare;
open;
end;
edit1.text:=formatdatetime('yyyy',datamodule1.gzgns.fieldbyname('a_date').asdatetime);
edit2.text:=formatdatetime('mm',datamodule1.gzgns.fieldbyname('a_date').asdatetime);
button13.click;
end;
procedure Tgzgnb.ComboBox1DropDown(Sender: TObject);
begin
treeview1.visible:=true;
end;
procedure Tgzgnb.Edit3Click(Sender: TObject);
begin
treeview1.visible:=true;
end;
procedure Tgzgnb.DBGrid2DblClick(Sender: TObject);
var
str:string;
begin
edit4.text:=datamodule1.rsbms.fieldbyname('a_bm').asstring;
edit3.text:=datamodule1.rsbms.fieldbyname('a_bz').asstring;
treeview1.visible:=false;
button10.click;
//button3.click;
datasource1.dataset.close;
datasource1.dataset.open;
if (edit4.text='') and (edit3.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;
end;
procedure Tgzgnb.Button10Click(Sender: TObject);
var
str:string;
begin
str:='select *from gzgn where a_bm=';
str:=str+''''+edit4.text+''''+' and a_bz=';
str:=str+''''+edit3.text+''''+''+' and extract(year from a_date)=';
str:=str+edit1.text+' and extract(month from a_date)='+edit2.text;
if edit4.text='' then
begin
str:='select *from gzgn where';
str:=str+' extract(year from a_date)=';
str:=str+trim(edit1.text)+' and extract(month from a_date)='+trim(edit2.text);
end;
with datamodule1.gzgns do
begin
close;
sql.clear;
sql.add(str);
prepare;
open;
end;
datasource1.dataset.close;
datasource1.dataset.open;
end;
procedure Tgzgnb.Button5Click(Sender: TObject);
var
gpgzstr,gzgnstr,str:string;
gpgztotal:real;
begin
//button3.click;
str:='select *from ggjs where a_gzcm=''计票工资'''; //可以加一个日期来判断与这边表单上的日期对应的有无计票工资,没有则跑到那表单进行修改
str:=str+' and extract(year from a_date)='+edit1.text;
str:=str+' and extract(month from a_date)='+edit2.text;
with datamodule1.ggjss do
begin
close;
sql.clear;
sql.add(str);
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
begin
ggjsb.edit1.text:=edit1.text;
ggjsb.Edit2.text:=edit2.text;
ggjsb.button4.click;
end
else
begin
datamodule1.ggjss.Edit;
datamodule1.ggjss.FieldByName('a_jsgs').asstring:='';
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
gpgzstr:='select sum(a_jjgz) as aa from gpgz where a_number='+''''+datamodule1.gzgns.fieldbyname('a_number').asstring+'''';
gpgzstr:=gpgzstr+' and (extract(year from a_date)='+edit1.text+' and extract(month from a_date)='+edit2.text+')';
with datamodule1.gpgzs do
begin
close;
sql.clear;
sql.add(gpgzstr);
prepare;
open;
end;
gpgztotal:=datamodule1.gpgzs.fieldbyname('aa').asfloat; //取得当前的计票合计总额
datamodule1.gzgns.Edit;
datamodule1.gzgns.FieldByName(datamodule1.ggjss.fieldbyname('a_smdm').asstring).asfloat:=gpgztotal;
datamodule1.gzgns.post;
datamodule1.gzgns.Next;
end;
end;//上面判断的有计票工资的情况
end;//上面判断不能设两个计票工资的情况
str:='select *from ggjs where extract(year from a_date)=';
str:=str+edit1.text+' and extract(month from a_date)='+edit2.text;
with datamodule1.ggjss do //可以在ggjsb表单里面加一个按钮,用来根据这个表单的日期显示公资项目等
begin
close;
sql.clear;
sql.add(str);
prepare;
open;
end;
end;//最后一个
procedure Tgzgnb.Button11Click(Sender: TObject);
var
qqdjstr,gzgnstr,str:string;
qqdjtotal:real;
begin
str:='select *from ggjs where a_gzcm=''缺勤金额'''; //可以加一个日期来判断与这边
str:=str+' and extract(year from a_date)='+edit1.text;
str:=str+' and extract(month from a_date)='+edit2.text;
//表单上的日期对应的有无缺勤金额,没有则跑到那表单进行修改
with datamodule1.ggjss do
begin
close;
sql.clear;
sql.add(str);
prepare;
open;
end;
if datamodule1.ggjss.eof then
showmessage('工资项目里没有缺勤金额项,请先设定好')
else
begin
if datamodule1.ggjss.RecordCount>1 then
showmessage('不能设两个缺勤金额项')
else
begin
datamodule1.ggjss.Edit;
datamodule1.ggjss.FieldByName('a_jsgs').asstring:='';
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
qqdjstr:='select sum(a_total) as aa from qqdj where a_number='+''''+datamodule1.gzgns.fieldbyname('a_number').asstring+'''';
qqdjstr:=qqdjstr+' and (extract(year from a_date)='+edit1.text+' and extract(month from a_date)='+edit2.text+')';
with datamodule1.qqdjs do
begin
close;
sql.clear;
sql.add(qqdjstr);
prepare;
open;
end;
qqdjtotal:=datamodule1.qqdjs.fieldbyname('aa').asfloat; //取得当前的计票合计总额
datamodule1.gzgns.Edit;
datamodule1.gzgns.FieldByName(datamodule1.ggjss.fieldbyname('a_smdm').asstring).asfloat:=qqdjtotal;
datamodule1.gzgns.post;
datamodule1.gzgns.Next;
end;
end;//上面判断的有计票工资的情况
end;//上面判断不能设两个计票工资的情况
str:='select *from ggjs where extract(year from a_date)='+edit1.text;
str:=str+' and extract(month from a_date)='+edit2.text;
with datamodule1.ggjss do //可以在ggjsb表单里面加一个按钮,用来根据这个表单的日期显示公资项目等
begin
close;
sql.clear;
sql.add(str);
prepare;
open;
end;
button3.click;
end;//最后一个
procedure Tgzgnb.Button6Click(Sender: TObject);
var
yggbstr,zwszstr,zcszstr,ggjsstr,gzgnstr:string;
zwzctotal: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
begin
showmessage('不能设定一个以上的级别工资项目');
ggjsb.Edit1.text:=edit1.text;
ggjsb.edit2.text:=edit2.text;
ggjsb.Button4.Click;
end
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='' 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
yggbstr:='select *from yggb where a_number=';
yggbstr:=yggbstr+''''+datamodule1.gzgns.fieldbyname('a_number').asstring+'''';
yggbstr:=yggbstr+' and a_name='+''''+datamodule1.gzgns.fieldbyname('a_name').asstring+'''';
with datamodule1.yggb do
begin
close;
sql.clear;
sql.add(yggbstr);
prepare;
open;
end;
zwszstr:='select *from zwsz where a_zw=';
zwszstr:=zwszstr+''''+datamodule1.yggb.fieldbyname('a_zw').asstring+'''';
with datamodule1.zwszs do
begin
close;
sql.clear;
sql.add(zwszstr);
prepare;
open;
end;
if datamodule1.zwszs.Eof then //没有职务设置
begin
showmessage('没有职务设置');
zwzctotal:=0;
end
else
zwzctotal:=datamodule1.zwszs.fieldbyname('a_jj').asfloat;
zcszstr:='select *from zcsz where a_zc=';
zcszstr:=zcszstr+''''+datamodule1.yggb.fieldbyname('a_zz').asstring+'''';
with datamodule1.zcszs do
begin
close;
sql.clear;
sql.add(zcszstr);
prepare;
open;
end;
if not datamodule1.zcszs.Eof then
zwzctotal:=zwzctotal+datamodule1.zcszs.fieldbyname('a_jj').asfloat;
datamodule1.gzgns.edit;
datamodule1.gzgns.fieldbyname(datamodule1.ggjss.fieldbyname('a_smdm').asstring).asfloat:=zwzctotal;
datamodule1.gzgns.post;
datamodule1.gzgns.next;
end;
end;
end;
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 //可以在ggjsb表单里面加一个按钮,用来根据这个表单的日期显示公资项目等
begin
close;
sql.clear;
sql.add(ggjsstr);
prepare;
open;
end;
button3.click;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -