📄 sftongji.pas
字号:
end;
1:
begin
if (edit3.Text='')or (edit4.Text='') then {如果没有输入统计的收费人号警告退出过程}
begin
showmessage('请输入统计的收费人号');
exit;
end
else
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.add('select * from dj_b where (sfrh>='+''''+edit3.text+''') and( sfrh<='+''''+edit4.text+''')');
adoquery1.open;
adoquery1.first;
while not adoquery1.Eof do
begin
if adoquery1.fieldbyname('zf').value='true' then
begin
zje:=zje+adoquery1.fieldbyname('ss').value;
djs:=djs+1;
adoquery1.Next;
end
else
adoquery1.Next;
end;
edit1.Text:=inttostr(zje);
edit2.Text:=inttostr(djs);
label2.Caption:='作废单据数';
end;
end;
2:
begin
if (edit3.Text='')or (edit4.Text='') then {如果没有输入统计的单据号警告退出过程}
begin
showmessage('请输入统计的单据号');
exit;
end
else
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.add('select * from dj_b where (djh>='+''''+edit3.text+''') and( djh<='+''''+edit4.text+''')');
adoquery1.open;
adoquery1.first;
while not adoquery1.Eof do
begin
if adoquery1.fieldbyname('zf').value='true' then
begin
zje:=zje+adoquery1.fieldbyname('ss').value;
djs:=djs+1;
adoquery1.Next;
end
else
adoquery1.Next;
end;
edit1.Text:=inttostr(zje);
edit2.Text:=inttostr(djs);
label2.Caption:='作废单据数';
end;
end;
end;
end;
end;
procedure TForm4.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
adoquery1.Edit;
end;
procedure TForm4.CheckBox1Click(Sender: TObject);
var
mysql:string;
zje:integer;
begin
if CheckBox1.Checked then
begin
zje:=0;
checkbox2.Checked:=false;
checkbox1.Checked:=true;
mysql:='';
adoquery1.Filtered:=false;
mysql:='zf='+QuotedStr('true');
adoquery1.Filter:=mysql;
adoquery1.Filtered:=true;
label2.Caption:='作废单据数';
edit2.Text:=inttostr(adoquery1.Recordcount);
adoquery1.First;
while not adoquery1.Eof do
begin
if adoquery1.fieldbyname('zf').value='true' then
begin
zje:=zje+adoquery1.fieldbyname('ss').value;
adoquery1.Next;
end
else adoquery1.Next;
end;
edit1.Text:=inttostr(zje);
end
else
begin
adoquery1.Filtered:=false;
show_all;
end;
end;
procedure TForm4.CheckBox2Click(Sender: TObject);
var
mysql:string;
begin
if CheckBox2.Checked then
begin
checkbox1.Checked:=false;
checkbox2.Checked:=true;
mysql:='';
adoquery1.Filtered:=false;
mysql:='zf='+QuotedStr('false');
adoquery1.Filter:=mysql;
adoquery1.Filtered:=true;
label2.Caption:='有效单据数';
edit2.Text:=inttostr(adoquery1.Recordcount);
end
else
begin
adoquery1.Filtered:=false;
show_all;
end;
end;
procedure TForm4.N1Click(Sender: TObject); //adotable1:student_b adotable2:djmx_b adoquery2:fy_b
var
xh,djh,msql:string;
ss:double;
zje:integer;
begin
zje:=0;
if adoquery1.FieldValues['zf'] then exit;
xh:=adoquery1.FieldValues['xh'];
djh:=adoquery1.FieldValues['djh'];
ss:=adoquery1.FieldValues['ss'];
if MessageDlg('学号:'+xh+chr(13)+'单据号:'+djh+chr(13)+'金额'+floattostr(ss)+chr(13)+'确定要作废吗?',mtconfirmation,[mbyes,mbno],0)=mryes then
try
DataModule1.ADOConnection1.BeginTrans;
msql:='update dj_b set zf=true,zfrq='+QuotedStr(datetostr(now))+',ss=0 '+' where djh='+QuotedStr(djh);
DataModule1.ADOConnection1.Execute(msql);
msql:='update student_b set sj='+quotedstr(adotable1.FieldValues['sj'])+'-'+floattostr(ss)+',qj='+quotedstr(adotable1.FieldValues['qj'])+'+'+floattostr(ss)+' where xh='+QuotedStr(xh);
DataModule1.ADOConnection1.Execute(msql);
adotable2.First; //修改单据明细表记录
while not(adotable2.Eof) do
begin
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add('select * from fy_b where xh='+QuotedStr(xh)+' and fyh='+quotedstr(adotable2.FieldValues['fyh']) + ' and nf='+quotedstr(adotable2.FieldValues['nf']));
adoquery2.Open;
msql:='update fy_b set qj='+quotedstr(adoquery2.FieldValues['qj'])+'+'+floattostr(adotable2.FieldValues['sj'])+',sj='+quotedstr(adoquery2.FieldValues['sj'])+'-'+floattostr(adotable2.FieldValues['sj'])+' where xh='+QuotedStr(xh)+' and fyh='+quotedstr(adotable2.FieldValues['fyh']) + ' and nf='+quotedstr(adotable2.FieldValues['nf']);
DataModule1.ADOConnection1.Execute(msql);
msql:='update djmx_b set sj=0 where djh='+QuotedStr(djh);
DataModule1.ADOConnection1.Execute(msql);
adotable2.next;
end;
adoquery1.Requery([]);
adoquery1.Locate('djh',djh,[]);
adoquery2.Requery;
adotable1.Requery;
adotable2.Requery;
adoquery1.First; //刷新收费合计edit1.text
while not adoquery1.Eof do
begin
if adoquery1.fieldbyname('zf').value='false' then
begin
zje:=zje+adoquery1.fieldbyname('ss').value;
adoquery1.Next;
end
else adoquery1.Next;
end;
edit1.Text:=inttostr(zje);
DataModule1.ADOConnection1.CommitTrans;
except
showmessage('作废出错!');
DataModule1.ADOConnection1.RollbackTrans;
end;
end;
procedure TForm4.FormCreate(Sender: TObject);
var
zje:integer;
begin
zje:=0;
adotable1.Active:=true;
adotable2.Active:=true;
adoquery1.Active:=true;
label2.Caption:='全部单据数';
edit2.Text:=inttostr(adoquery1.Recordcount);
adoquery1.First;
while not adoquery1.Eof do
begin
if adoquery1.fieldbyname('zf').value='false' then
begin
zje:=zje+adoquery1.fieldbyname('ss').value;
adoquery1.Next;
end
else adoquery1.Next;
end;
edit1.Text:=inttostr(zje);
end;
procedure TForm4.show_all; //重新显示全部记录,edit1.text edit2.text
var
zje:integer;
begin
zje:=0;
adoquery1.Close;
adoquery1.sql.Clear;
adoquery1.sql.add('select * from dj_b');
adoquery1.open;
label2.Caption:='全部单据数';
edit2.Text:=inttostr(adoquery1.Recordcount);
adoquery1.First;
while not adoquery1.Eof do
begin
if adoquery1.fieldbyname('zf').value='false' then
begin
zje:=zje+adoquery1.fieldbyname('ss').value;
adoquery1.Next;
end
else adoquery1.Next;
end;
edit1.Text:=inttostr(zje);
edit3.Text:='';
edit4.Text:='';
checkbox1.Checked:=false;
checkbox2.Checked:=false;
end;
procedure TForm4.Button1Click(Sender: TObject);
begin
tj1:=edit3.text;
tj2:=edit4.text;
hj:=edit1.text;
dj:=edit2.text;
djs:=Label2.Caption;
with Tform8.Create(nil) do
try
quickrep1.preview;
finally
free;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -